LG MS450H MS400H
¿Quieres reaccionar a este mensaje? Regístrate en el foro con unos pocos clics o inicia sesión para continuar.

EPG_adjust

2 participantes

Ir abajo

EPG_adjust Empty EPG_adjust

Mensaje  vic1972 Mar Ene 26, 2010 3:50 pm

Bueno,
se me vienen algunas ideas para mi aplicacion EPG_adjust, que quisiera plasmarlas aqui para que no se me olviden,
y compartir con vosotros, y que me paseis vuestros comentarios, ideas, mejoras, etc.

Como sabeis, si programamos por EPG, algunas veces no se graba el principio y/o final del programa.
La aplicacion modificaria la BD de las programaciones para modificar los inicios y finales en 5 o 10 minutos, configurable.

Tengo que probar si modificando la BD del LG , surtiria efecto los cambios, me creo que no;
asi que necesitamos un truco para que el LG re-lea la BD.


Se me acaba de ocurrir un idea Smile que fuerte, que bueno, espero que funciones!!!
Es añadir triggers a la BD sqlite
mas info aqui:

http://www.sqlite.org/lang_createtrigger.html

saludos
vic1972
vic1972

Mensajes : 2260
Fecha de inscripción : 09/12/2009
Edad : 52
Localización : Malaga

Volver arriba Ir abajo

EPG_adjust Empty Re: EPG_adjust

Mensaje  vic1972 Mar Ene 26, 2010 4:04 pm

Mas info para que no se me olvide, ahora no lo puedo probar que estoy fuera de casa.

[victor@victor schedule_records]$ sqlite3 ./schedule_record5.db
SQLite version 3.6.20
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> .headers on
sqlite> .tables
schema_version timer_record_table
sqlite> select * from timer_record_table;
ID|datestamp|date|date_year|date_month|date_day|start_hour|start_minute|length_hour|length_minute|source|channel|quality|target|SAP|timestamp_start|timestamp_offset|enable|lock|schedule_type|event_id|user_id|user_string
13|0|0|2009|12|21|22|13|2|7|10|3|1|0|0|1261433580|7620|0|1|0|-1|0|
sqlite> CREATE TRIGGER update_EPG UPDATE OF start_hour ON timer_record_table
...> BEGIN
...> UPDATE timer_record_table SET user_string='Victor';
...> END;
sqlite> select * from timer_record_table;
ID|datestamp|date|date_year|date_month|date_day|start_hour|start_minute|length_hour|length_minute|source|channel|quality|target|SAP|timestamp_start|timestamp_offset|enable|lock|schedule_type|event_id|user_id|user_string
13|0|0|2009|12|21|22|13|2|7|10|3|1|0|0|1261433580|7620|0|1|0|-1|0|
sqlite> .tables
schema_version timer_record_table
sqlite>



tutorial bueno de triggers: http://linuxgazette.net/109/chirico1.html
ç


Asi queda el trigger metido en la BD.

si hacemos un dump, vemos que asi es:
sqlite> .dump
PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
CREATE TABLE schema_version(ID integer primary key autoincrement, version integer);
INSERT INTO "schema_version" VALUES(1,4);
CREATE TABLE timer_record_table(ID integer primary key autoincrement, datestamp integer, date integer, date_year integer, date_month integer, date_day integer, start_hour integer, start_minute integer, length_hour integer, length_minute integer, source integer, channel integer, quality integer, target integer, SAP integer, timestamp_start integer, timestamp_offset integer, enable integer, lock integer, schedule_type integer, event_id integer, user_id integer, user_string text);
INSERT INTO "timer_record_table" VALUES(13,0,0,2009,12,21,22,13,2,7,10,3,1,0,0,1261433580,7620,0,1,0,-1,0,'');
DELETE FROM sqlite_sequence;
INSERT INTO "sqlite_sequence" VALUES('schema_version',1);
INSERT INTO "sqlite_sequence" VALUES('timer_record_table',13);
CREATE TRIGGER update_EPG UPDATE OF start_hour ON timer_record_table
BEGIN
UPDATE timer_record_table SET user_string='Victor';
END;
COMMIT;
sqlite>
vic1972
vic1972

Mensajes : 2260
Fecha de inscripción : 09/12/2009
Edad : 52
Localización : Malaga

Volver arriba Ir abajo

EPG_adjust Empty Re: EPG_adjust

Mensaje  vic1972 Mar Ene 26, 2010 4:25 pm

Vale, creo que este seria el triiger a probar, trigger por insert,


CREATE TRIGGER update_EPG2 AFTER INSERT ON timer_record_table
BEGIN
UPDATE timer_record_table SET user_string='Victor' WHERE ID = new.ID;
END;


Si esto funciona ..... ya casi estamos listos Smile
Lo tengo que probar luego en casa, o si alguien lo quiere probar antes ...
vic1972
vic1972

Mensajes : 2260
Fecha de inscripción : 09/12/2009
Edad : 52
Localización : Malaga

Volver arriba Ir abajo

EPG_adjust Empty Re: EPG_adjust

Mensaje  vic1972 Mar Ene 26, 2010 8:30 pm

Bueno, pues ha funcionado a la primera.

Lo siguiente ha funcionado ok, y mete Victor en el user_string Smile , y a la primera Wink

CREATE TRIGGER update_EPG2 AFTER INSERT ON timer_record_table
BEGIN
UPDATE timer_record_table SET user_string='Victor' WHERE ID = new.ID;
END;

[Tienes que estar registrado y conectado para ver esa imagen]


Ahora me voy a entretener para hacer el ajuste en las grabaciones, luego postearé la solución final Smile
vic1972
vic1972

Mensajes : 2260
Fecha de inscripción : 09/12/2009
Edad : 52
Localización : Malaga

Volver arriba Ir abajo

EPG_adjust Empty Re: EPG_adjust

Mensaje  vic1972 Mar Ene 26, 2010 8:49 pm

Para borrar triggers:
DROP TRIGGER update_EPG3;


Por ahora tenemos:

CREATE TRIGGER update_EPG3 AFTER INSERT ON timer_record_table
BEGIN
UPDATE timer_record_table SET timestamp_Start=timestamp_Start - 300 WHERE ID = new.ID;
UPDATE timer_record_table SET timestamp_Offset=timestamp_Offset + 300 WHERE ID = new.ID;
UPDATE timer_record_table SET user_string='Victor' WHERE ID = new.ID;
END;


Bueno, bueno Smile

Pues lo acabo de probar y funciona muy bien.
He creado un programacion manual para que grabe desde las 19:00 hasta las 19:10.
Y automaticamente, ha empezado a grabar 5 minutos antes 18:55, y espero que acabe a las 19:15 Smile

Muy chulo Smile
Lo tendre en prueba algun tiempo.

Queda la parte de "cosmetica", me explicao que si entras en timer-rec, en realidad de ve de 19:00 hasta 19:10, pero vaya esto es visual.
Lo importante es modificar los timestamps.





cheers bounce
vic1972
vic1972

Mensajes : 2260
Fecha de inscripción : 09/12/2009
Edad : 52
Localización : Malaga

Volver arriba Ir abajo

EPG_adjust Empty Re: EPG_adjust

Mensaje  vic1972 Miér Ene 27, 2010 11:06 am

Bueno, pues vamos mejorando el tema.
El funcionamiento mas sencillo y limpio no puede ser Smile

Nos acabamos de dar cuenta de que si movemos el timestarmp de inicio 1 minutos,
no es valido aumentar el duration 1 minuto, sino 2 Wink lo entendeis.

Bueno, cuando este todo, se hara un tutorial, por ahora os dejo por si lo quereis probar que funciona muy bien,
y no hay ningun riesgo.

Os dejo el archivo original : schedule_records.db vacio, y sin triggers.
Para poder volver simpre hacia atras, tambien podeis hace copia de seguridad del vuestro antes de sobre-escribir.

Original:
http://dl.dropbox.com/u/684543/varios/ms450h/schedule_record_original_vacio.db
lo renombrais a schedule_record.db


Que la grabación se inicie un minuto antes, y dure un minuto mas:
Os bajais este archivo:
http://dl.dropbox.com/u/684543/varios/ms450h/schedule_record_1min.db
Lo renombrais a schedule_record.db
y sobre-escribes en /usr/local/etc/dvdplayer

Y listo!!!!
Este archivo ya lleva dentro instalado el trigger Smile
vic1972
vic1972

Mensajes : 2260
Fecha de inscripción : 09/12/2009
Edad : 52
Localización : Malaga

Volver arriba Ir abajo

EPG_adjust Empty Re: EPG_adjust

Mensaje  vic1972 Miér Ene 27, 2010 10:26 pm

Estupendo!!
Pues funciona perfecto!!
Hoy mismo, al grabar un minuto mas, se ha conseguido grabar enter un codigo lyoko que habiamos programado por EPG Smile

Otra mejora, solo se veran autoincrementados las programaciones hechas por EPG;
las grabaciones programadas desde el timer rec no seran modificadas.

Esto se consigue con el siguiente trigger:

CREATE TRIGGER update_EPG1 AFTER INSERT ON timer_record_table
BEGIN
UPDATE timer_record_table SET timestamp_Start=timestamp_Start - 60 WHERE ID = new.ID and event_id>0;
UPDATE timer_record_table SET timestamp_Offset=timestamp_Offset + 120 WHERE ID = new.ID and event_id>0;
END;

Ya queda poco para el tutorial, alguien lo ha probado ya?
vic1972
vic1972

Mensajes : 2260
Fecha de inscripción : 09/12/2009
Edad : 52
Localización : Malaga

Volver arriba Ir abajo

EPG_adjust Empty Re: EPG_adjust

Mensaje  vic1972 Jue Ene 28, 2010 4:31 pm

Para que no se me olvide en el tutorial,
comando muy util:
sqlite>
sqlite> .schema timer_record_table
CREATE TABLE timer_record_table(ID integer primary key autoincrement, datestamp integer, date integer, date_year integer, date_month integer, date_day integer, start_hour integer, start_minute integer, length_hour integer, length_minute integer, source integer, channel integer, quality integer, target integer, SAP integer, timestamp_start integer, timestamp_offset integer, enable integer, lock integer, schedule_type integer, event_id integer, user_id integer, user_string text);
CREATE TRIGGER update_EPG1 AFTER INSERT ON timer_record_table
BEGIN
UPDATE timer_record_table SET timestamp_Start=timestamp_Start - 60 WHERE ID = new.ID;
UPDATE timer_record_table SET timestamp_Offset=timestamp_Offset + 120 WHERE ID = new.ID;
END;
sqlite>
vic1972
vic1972

Mensajes : 2260
Fecha de inscripción : 09/12/2009
Edad : 52
Localización : Malaga

Volver arriba Ir abajo

EPG_adjust Empty Re: EPG_adjust

Mensaje  maquinabaja Jue Ene 28, 2010 5:05 pm

Joder tio, eres un fenómeno.

Yo me pierdo del todo con estos temas.

Espero que hagas un tutorial para "tontos" porque sino me temo que me quedaré´con las ganas de probarlo jejeje.

Saludos y gracias por el trabajo que estas realizando.
maquinabaja
maquinabaja

Mensajes : 150
Fecha de inscripción : 03/01/2010
Localización : Barcelona

Volver arriba Ir abajo

EPG_adjust Empty Re: EPG_adjust

Mensaje  vic1972 Vie Ene 29, 2010 1:03 am

Si, no te preocupes, ya mismo habra un tuto,
mientras estoy utilizando esto como un blog, poniendo los avances para que no se pierdan.

Hoy he afinado un poco mas, y creo que ya esta perfecto:

Finalmente el trigger (para +/- 1 minuto ) queda:

CREATE TRIGGER update_EPG1 AFTER INSERT ON timer_record_table
BEGIN
UPDATE timer_record_table SET timestamp_Start=timestamp_Start - 60 WHERE ID = new.ID and event_id>0;
UPDATE timer_record_table SET timestamp_Offset=timestamp_Offset + 120 WHERE ID = new.ID and event_id>0;
UPDATE timer_record_table SET start_minute=max(0,start_minute -1) WHERE ID = new.ID and event_id>0;
UPDATE timer_record_table SET length_minute=length_minute + 2 WHERE ID = new.ID and event_id>0;
END;

Funciona siempre OK.
Hoy mismo, gracias a tener este mecanismo, me ha salvado y ha grabado el fnal de un Dora Smile

Por ejmplo, acabo de programar un dora para mañana que segun epg es de 10:19 a 10:43, serian 24 minutos.
bueno, pues mi web de programas muestra:
29-1-2010 10:18 0:26
Es decir, que empiece un minuto antes, y la duracion total es de 2 minutos extra Smile
vic1972
vic1972

Mensajes : 2260
Fecha de inscripción : 09/12/2009
Edad : 52
Localización : Malaga

Volver arriba Ir abajo

EPG_adjust Empty Re: EPG_adjust

Mensaje  Contenido patrocinado


Contenido patrocinado


Volver arriba Ir abajo

Volver arriba


 
Permisos de este foro:
No puedes responder a temas en este foro.