Desconectado Mensajes: 84 Registrado: 24 Abr 2016 20:03
Hola
En este esquema se muestra el funcionamiento básico de la librería XpressNet, usado por el TCO (Así es como lo he deducido después de trabajar con ella)
Cuando pulsamos una tecla, le enviamos un comando a la central y esta pone los datos en el bus, los leemos y realizamos las acciones
Cuando se identifican datos en el bus, se lanza la función correspondiente para gestionar accesorios o el estado de la central
Gran trabajo muchas gracias por compartirlo Y además muy bien comentado Creo que has usado interruptores en el tco y no pulsadores Funcionaria con pulsadores?
Desconectado Mensajes: 123 Registrado: 17 Nov 2008 18:53
Hola
Se usan pulsadores, según se configure: Un pulsador por accesorio, a cada pulsación cambia el estado Un pulsador para cada posición del accesorio (2 pulsadores por accesorio)
Desconectado Mensajes: 3 Ubicación: Madrid Registrado: 18 Abr 2013 15:38
Buenas noches compañeros, hace no mucho encontré este hilo que me ha resultado de grandísima ayuda, con un montaje excelente, lo he modificado a mis necesidades perfectamente gracias a los comentarios, pero tengo un problema, por si alguno me podéis ayudar. Al modificar cualquier accesorio desde la central, el TCO no la reconoce, pero si pulso el STOP, al volver al estado normal de la central, los accesorios se actualizan en el TCO y se visualizan en el estado que se encuentran, ¿alguno sabe por qué puede suceder esto? Gracias de antemano
Desconectado Mensajes: 84 Registrado: 24 Abr 2016 20:03
Hola
Mírando el esquemas de bloques, dentro del bucle loop, se llama constantemente a la función "update", que mira si hay datos en el bus. Si detecta datos correspondiente a un cambio de accesorio se lanza la función "notifytrnt" para tratar la información recbida según convenga. Revisa que esto es así, que no hay ninguna condición que altere este flujo, etc.
Desconectado Mensajes: 3 Ubicación: Madrid Registrado: 18 Abr 2013 15:38
Hola de nuevo
Gracias por la información, he comprobado con la versión sin modificar de tu sketch y está exactamente igual, de todas formas intentaré probar con otra central o por puerto serie por si es algún problema de este tipo y me estoy volviendo loco cuando funciona bien
Desconectado Mensajes: 4 Registrado: 22 Jun 2020 08:33
Hola
En primer lugar, muchas gracias a la excelente documentación. Construí el TCO y lo adapté a mis necesidades.
En detalle, sin embargo, surgió el siguiente problema.
El estado de los LED (configuración del interruptor) no se actualiza cuando se recibe un pedido de la PC (Rocrail).
Dónde podría estar el error?
En la dirección opuesta cuando el TCO se opera con botones, los LED y Rocrail siempre se actualizan. Además, se cuelga un mouse múltiple en el bus XpressNet. Esto funciona muy bien bidireccionalmente cuando se controla Rocrail o el TCO. En el mouse múltiple, el curso siempre se actualiza.
Desconectado Mensajes: 84 Registrado: 24 Abr 2016 20:03
Hola Ralf Mírando el esquemas de bloques, dentro del bucle loop, se llama constantemente a la función "update", que mira si hay datos en el bus. Si detecta datos correspondiente a un cambio de accesorio se lanza la función "notifytrnt" , tienes que verificar si esta función actúa.
Si usas un sistema ROCO multimaus, puedes probar añadir esta línea en la función notifyTrnt
saludos
// Notificación de cambio en un accesorio, esta función se lanza desde la libería XpressNet ---------------------------------------------------------------------- void notifyTrnt(uint8_t Adr_High, uint8_t Adr_Low, uint8_t Pos) { if (keyInArray == 0) INT_OFF; // Si la orden de cambio del accesorio no proviene de una tecla pulsada se deshabilita la interrupción para no leer teclas int acc_Num = (Adr_High * 256) + Adr_Low + 1; // Calculamos dirección DCC acc_Num +=4; if(acc_Num > MAX_ACC_NUM || acc_Num < MIN_ACC_NUM) { if (keyInArray == 0) INT_ON;
Desconectado Mensajes: 4 Registrado: 22 Jun 2020 08:33
Hola sls_h0e Tengo la instruccion
acc_Num + = 4;
agregó que cambia el acc_Num por 4.
El problema básico persiste, pero el curso solo se actualiza en el TCO cuando se reciben comandos del mismo TCO o de un mouse múltiple. El TCO no se actualiza cuando se reciben comandos de Rocrail a través de la estación de comando DCC (Patrick Smout).
Desconectado Mensajes: 84 Registrado: 24 Abr 2016 20:03
Hola
Cuando cambia un desvío en el multimaus, cambia en Rocrail? Cuantos desvíos tiene en el TCO? Haga estas pruebas: Si es posible, programe las direcciones 1,2,3,4,5,6,7,8 en el TCO, Envíe una orden desde Rocrail a la posición 1, vea si alguna posición del TCO se actualiza (la 1 o la 5) Envíe una orden desde Rocrail a la posición 5, vea si alguna posición del TCO se actualiza (la 1 o la 5)
Usted usa el Multimaus de ROCO con la caja negra como amplificador, es este caso la "central" es el Multimaus
El TCO se comporta como si fuera un mando para mover desvíos, envía ordenes a la central, Rocrail hace lo mismo
Desconectado Mensajes: 761 Ubicación: Salamanca Registrado: 12 Ene 2012 14:44
Creo que el problema podría estar en la línea 180 del archivo XPressNet.cpp actual de Gahtow. No está ya como yo lo puse (parece haberlo cambiado alguien llamado A. Schenk por alguna razón que no se explica en el código). El caso es que podría estar ignorando los comandos "espiados" del tipo 0x52 al exigir la condición if (XNetMsg[XNetdata2] >= 0x80) {...
Desactivad la línea 180 y restaurad la 178 if (XNetMsg[XNetlength] >= 3) {... a ver si se arregla. O cambiad en la que tiene ahora el 0x80 por el 0x52.
Desconectado Mensajes: 84 Registrado: 24 Abr 2016 20:03
Hola
Lo que me extraña es que si se envía la instrucción desde el Multimaus, si se actualiza, pero si se envía desde Rocrail no se actualiza Hice las pruebas con Traincontroller sin problemas
Desconectado Mensajes: 4 Registrado: 22 Jun 2020 08:33
Hola
Lamentablemente, no logro cambiar el archivo XpressNet.cpp tan rápido que se reconoce correctamente. Al compilar MY_TCO_vB.1 hecho Anular con "Estado de salida 1"
Cómo debería ser el archivo?
Estoy de vacaciones por tres semanas a partir de mañana. Y continuará probando e informando después.