Hola a tod@s, aquí os dejo una nueva versión del programa RecTimerMgr, le he mejorado algunas cosillas.

Historial de versiones:

(0.2.0.0)

* La modificación mas IMPORTANTE es que ya NO se necesita la tabla Frequency en la base de datos, la descripción del campo de frecuencia que se llama date (los campos tienen unos nombres malísimos), junto con la descripción de otros muchos campos, se hace ahora en el momento de visualizar los datos de los eventos. De esta manera se descodifican los campos: date (frecuencia), channel (Nombre de la cadena), dia (día de la semana), source (origen de la grabación), quality (calidad de la grabación) y target (destino de la grabación)
* Se han simplificado el número de columnas que no cambian o no nos indican nada, se recuperan pero las columnas no son visibles.
* Se ha añadido la lectura del fichero de canales para poder disponer de los NOMBRES de las cadenas junto con su número de canal, de tal forma que se puede usar el número de canal y nos pondrá su nombre o el nombre de la cadena y nos pondrá su número de canal.
* El nombre de la cadena en la lista de grabaciones, aparece de color rojo si es un nombre de 10 caracteres o más, para que sepamos que podemos correr el peligro del nombre largo, y lo tengamos en cuenta
* En el fichero de configuración se ha eliminado la variable DatabaseDD que no se usaba y se ha añadido la variable ChannelFile que es la ubicación del fichero de canales.


(0.2.0.1)

* Se han anclado algunos controles para que no se pierdan los botones en resoluciones de pantalla menores, ahora saldrán barras de scroll para acceder a los botones de la derecha (Delete), y el botón Insert estará siempre visible en la parte inferior de la ventana.

* Se ha añadido el cálculo del checksum para el fichero de canales ubicado en el directorio BT. De esta manera, se puede cambiar el fichero y añadir el checksum resultante en las últimas 4 posiciones del fichero, para crear un fichero válido. Hay que tener en cuenta que el orden es inverso, es decir si el checksum nos da: AA BB CC DD en el fichero se pondrían los últimos cuatro bytes como: DD CC BB AA, luego habría que mandar el fichero a su sitio (el programa no hace esto).

* Si entramos en Insert, Update o Delete y no hemos enviado la base de datos al equipo (botón Save), al cerrar el programa saltará un aviso para que sepamos que no hemos "grabado".

* Se han mejorado algunas cosillas que no se ven.

Este programa sirve para editar, insertar y borrar registros de la base de datos de la programación de grabaciones del HD795T, aunque puede servir para cualquier equipo que use el mismo sistema de base de datos SIN guia avanzada. En la práctica son casi todos los equipos con el chip Realtek.



INSTALACIÓN:
Bájate este fichero:

http://www.2shared.com/file/XJYSjsjI...rMgr-0201.html

Y descomprímelo en un directorio de tu elección.

Edita el fichero RecTimerMgr.exe.config y pon los parámetros adecuados, el fichero es XML, así que edítalo con sumo cuidado para no cambiar nada mas que el valor (<value>xxx</value> )de cada una de sus claves (<setting name="DatabaseFile" serializeAs="String">). En este ejemplo el valor que hay que cambiar es xxx y corresponde a la clave DatabaseFile.

Las claves de este fichero son:

* DatabaseFile: Es el nombre del fichero de base de datos al que vamos a acceder, el programa lo copia en el directorio BT del equipo visto desde Windows. Ejemplo: \\Gigaset_hd795t\hdd1\BT\schedule_record.db

* HD795IP: Es la IP del equipo. Ejemplo: 192.168.0.30

* TelnetPort: Es el valor de conexión del puerto telnet, este puerto tiene que estar abierto en tu PC, normalmente es el 23. Ejemplo: 23

* HD795User: Usuario telnet para entrar en el equipo, normalmente root. Ejemplo: root

* HD795Password: Password del usuario anterior, normalmente está en blanco. No tocar. Ejemplo: <value />

* GetDB: Comando linux para copiar las bases de datos desde su directorio original al directorio BT. Ejemplo: cp /usr/local/etc/dvdplayer/schedule_*.db /tmp/hdd/volumes/HDD1/BT

* SetDB: Comando linux para copiar las bases de datos desde el directorio BT a su directorio original. Ejemplo: cp /tmp/hdd/volumes/HDD1/BT/schedule_*.db /usr/local/etc/dvdplayer

* Timeout: Timeout en milisegundos para esperar al comando telnet. Ejemplo: 200

* DatabaseHistFile: Es el nombre del fichero de base de datos histórico al que vamos a acceder, el programa lo copia en el directorio BT del equipo visto desde Windows. Ejemplo: \\Mhdworld\ntfs\BT\schedule_history.db

* PasswordPresent: Valor que indica si el login de telnet va a tener password (aunque sea nula) o no, para los firmwares de Gigaset su valor es False (Respetar mayúsculas y minúsculas) y para el firmware de MHDWorld su valor es True. Ejemplo: True

* ChannelFile: Es el nombre del fichero de canales que vamos a usar, el programa lo copia en el directorio BT del equipo visto desde Windows. Ejemplo: \\Gigaset_hd795t\hdd1\BT\dtv_channel.txt


FUNCIONAMIENTO
Usar el programa es muy sencillo, después de arrancar podemos hacer tres cosas básicamente:
Obtener las bases de datos: Dando a este botón (botón abrir), el programa se conecta vía telnet al equipo, copia los ficheros correspondientes a un sitio de red "visible" (directorio BT) y abre la base de datos de las programaciones.
Con esta interface podemos insertar nuevas grabaciones, modificar alguna existente o borrar algunas.
Para ello usaremos los botones correspondientes de edición (uno por evento), borrado (uno por evento) o insert (uno al final de la tabla).

Una vez que estemos conformes con las modificaciones, tenemos que guardarlas o enviarlas de nuevo a su sitio, para ello usaremos el botón de grabación que lo que hace es conectarse al equipo vía telnet y copiar las bases de datos en sentido inverso, es decir desde el directorio BT a su ubicación definitiva.

Por último tenemos el botón Ver histórico, que sirve para ver el estado de las últimas grabaciones. Este botón recupera las bases de datos de la misma forma que lo hace el botón de obtención. Los estados de las grabaciones realizadas pueden ser:
* OK: Todo ha ido correctamente
* STOP!: La grabación la hemos detenido nosotros manualmente, en teoría todo estará bien.
* FAIL!: La grabación ha fallado.
* LONG!: La grabación ha fallado debido a que hemos usado un nombre de cadena largo.

Cada vez que se realice una conexión con el equipo, la ventana de los comandos telnet permanecerá visible, para ocultarla/mostrarla tenemos el botón "Ver telnet"

Una vez que hayamos modificado/insertado los eventos, no basta con enviar las bases de datos al equipo, puesto que el equipo maneja una tabla en memoria que no se actualiza desde la base de datos nada mas que cuando se enciende el equipo o cuando se modifica un evento desde el menú. Por esto, si no hacemos nada los parámetros modificados y/o insertados no se tendrán en cuenta.
Después de muchas pruebas he visto que la mejor manera es realizar un reboot del equipo, ya que probé (entre otras cosas) a realizar un edit por comandos desde el menú de grabaciones, pero aparte de muy complejo, hay que editar TODO lo nuevo (no basta con editar el primer evento), con lo cual la tarea es practicamente imposible (porque no sabemos que/cuantos eventos hay que editar) y he optado por el reboot.

Por todo lo anterior, esta versión cuenta con un botón que realiza el reboot del equipo y cierra el programa, avisando convenientemente. El uso de este botón, NO es obligatorio, pero ya sabes que aunque veas tus modificaciones en el menú de grabaciones, estas no se efectuarán si no apagas y enciendes el equipo.

Así mismo, he añadido un botón para cerrar el programa en cualquier momento.


CARACTERÍSTICAS
* El programa se conecta vía telnet con el equipo para obtener las bases de datos y el fichero de canales y para enviar las bases de datos cuando sea necesario, para ello se usan varios de los parámetros de configuración.

* La tabla de eventos se desarrolla de forma semanal, es decir, si hay un evento que se graba a diario, ese evento aparecera 7 veces en la tabla, con la fecha correspondiente a cada dia y su hora de comienzo, aunque si se edita, se pone la fecha de comienzo tal y como se haría con la interface del equipo; de la misma manera se desarrollan todos lo eventos (Cada dia, Lunes a Viernes, Lunes a Sábado, Todos los Martes, etc.), este desarrollo es fundamental para que se pueda determinar cuando puede haber un conflicto con las grabaciones usando los dos sintonizadores. Así pues, cada evento tiene una celda con el uso de los sintonizadores y un código de colores, verde si sólo se va a usar un sintonizador, amarillo si se van a usar los dos y rojo si se van a usar mas de dos, de esta manera, podremos ver si va a haber algún conflicto con nuestras grabaciones de forma totalmente visual, y podremos corregir lo que se necesite.

* El campo DiaSem indica el día de la semana que se va a producir el evento: Lunes, Martes, ..., etc.

* El campo Target indica donde se va a efectuar la grabación: HDD, USB y CARD

* Si en el momento de la edición hay algún programa grabando el campo lock estará a 1 y se coloreará de naranja. Hay que tener cuidado para que no cambie el estado de lock durante la edición (entre que recuperamos las bases de datos y las volvemos a guardar), por ejemplo si empezamos con el equipo grabando (lock=1) y cuando terminamos y enviamos las bd, el equipo ha terminado de grabar, nosotros le vamos a mandar lock=1 y podemos generar una inconsistencia.

* En la edición/inserción de eventos, se ha añadido, además de la hora de inicio y la duración un campo no editable para ver la hora de finalización sin necesidad de andar haciendo cálculos mentales. Así mismo, podemos nombrar el evento como queramos y ese será el nombre de nuestra grabación.

* Si no damos al botón de grabación, no se enviará nada al equipo y la edición que hagamos se perderá

* Para que nuestros cambios tengan efecto habrá que reinicar el equipo bien manualmente o por medio del nuevo botón "Reboot"

* Como "efecto secundario" en el directorio del programa se creará un fichero de texto llamado CanalesUTF8.txt, con la lista de nuestros canales.

Espero vuestros comentarios.

Saludos