EPG_adjust
2 participantes
Página 1 de 1.
EPG_adjust
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 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
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 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- Mensajes : 2260
Fecha de inscripción : 09/12/2009
Edad : 52
Localización : Malaga
Re: EPG_adjust
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>
[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- Mensajes : 2260
Fecha de inscripción : 09/12/2009
Edad : 52
Localización : Malaga
Re: EPG_adjust
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
Lo tengo que probar luego en casa, o si alguien lo quiere probar antes ...
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
Lo tengo que probar luego en casa, o si alguien lo quiere probar antes ...
vic1972- Mensajes : 2260
Fecha de inscripción : 09/12/2009
Edad : 52
Localización : Malaga
Re: EPG_adjust
Bueno, pues ha funcionado a la primera.
Lo siguiente ha funcionado ok, y mete Victor en el user_string , y a la primera
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
Lo siguiente ha funcionado ok, y mete Victor en el user_string , y a la primera
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
vic1972- Mensajes : 2260
Fecha de inscripción : 09/12/2009
Edad : 52
Localización : Malaga
Re: EPG_adjust
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
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
Muy chulo
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.
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
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
Muy chulo
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.
vic1972- Mensajes : 2260
Fecha de inscripción : 09/12/2009
Edad : 52
Localización : Malaga
Re: EPG_adjust
Bueno, pues vamos mejorando el tema.
El funcionamiento mas sencillo y limpio no puede ser
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 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
El funcionamiento mas sencillo y limpio no puede ser
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 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
vic1972- Mensajes : 2260
Fecha de inscripción : 09/12/2009
Edad : 52
Localización : Malaga
Re: EPG_adjust
Estupendo!!
Pues funciona perfecto!!
Hoy mismo, al grabar un minuto mas, se ha conseguido grabar enter un codigo lyoko que habiamos programado por EPG
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?
Pues funciona perfecto!!
Hoy mismo, al grabar un minuto mas, se ha conseguido grabar enter un codigo lyoko que habiamos programado por EPG
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- Mensajes : 2260
Fecha de inscripción : 09/12/2009
Edad : 52
Localización : Malaga
Re: EPG_adjust
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>
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- Mensajes : 2260
Fecha de inscripción : 09/12/2009
Edad : 52
Localización : Malaga
Re: EPG_adjust
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.
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- Mensajes : 150
Fecha de inscripción : 03/01/2010
Localización : Barcelona
Re: EPG_adjust
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
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
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
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
vic1972- Mensajes : 2260
Fecha de inscripción : 09/12/2009
Edad : 52
Localización : Malaga
Página 1 de 1.
Permisos de este foro:
No puedes responder a temas en este foro.