Implementazione client NodeJS
Inviato: 01/03/2013, 0:01
Buona sera,
ho preso visione del protocollo EgoClient e degli esempi in Delphi con le procedure di lettura/scrittura via socket. Ho intenzione di sviluppare un client in linguaggio nodeJs (http://www.nodejs.org). Per ora lo scopo è principalmente quello di monitorare il comportamento dell'impianto, cioè ascoltare gli eventi che la centrale riceve sul bus (es. valore di consumo instantaneo, temperatura, etc).
Attualmente non sono ancora in grado di comunicare con la centrale, e non ho modo di capire l'origine dell'errore.
Di seguito posto i dettagli del problema, in modo che voi o qualche utente che ha già implementato le specifiche EgoClient in java o altri linguaggi, possa aiutarmi ad risolvere il problema.
Ecco di seguito la situazione:
- ambiente windows7 e windowsXP
- firewall disabilitati
- lato server (centrale), il socket sembra in ascolto, infatti stabilisco la connessione sulla porta 215
- anche il keydome si connette, e mi chiede di inserire n caratteri del Codice di Accesso. Inserendo però il codice, la finestra principale va a tutto schermo, ma non mostra nient altro (eccetto versione, ora, e lo scorrere della scritta "ON-LINE")
- nel mio codice, qualsiasi stream di byte invii via socket, la centrale non ritorna alcuna risposta (nemmeno di errore)
- stando al protocollo, il pacchetto per la prima richiesta (comando 9000 senza altri parametri) dovrebbe essere il seguente: ( 35, 75, 0, 0, 16, 0, 0, 239, 0, 0, 0, 0, 0, 0, 0, 0 );
cioè
35,75 = 9000 (comando di richiesta accesso)
16 = dimensione pacchetto
239 = XOR della dimensione pacchetto
-convertito in hex diventa ( 0x23, 0x4b, 0x0, 0x0, 0x10, 0x0, 0x0, 0xef, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0), questo dovrebbe essere il buffer di byte da inviare sul socket.
Come accennato, spedisco il pacchetto, e non ricevo nessuna risposta. Provando anche con altri esempi, il comportamento è il medesimo. Il fatto che anche il keydome non sembra funzionare a pieno mi fa sospettare ci sia qualche blocco lato centrale, ma almeno sul keydome la richiesta del Codice di Accesso e la relativa risposta avvengono correttamente. Come primo step, vorrei arrivare a replicare almeno questa situazione.
grazie dell'aiuto
ho preso visione del protocollo EgoClient e degli esempi in Delphi con le procedure di lettura/scrittura via socket. Ho intenzione di sviluppare un client in linguaggio nodeJs (http://www.nodejs.org). Per ora lo scopo è principalmente quello di monitorare il comportamento dell'impianto, cioè ascoltare gli eventi che la centrale riceve sul bus (es. valore di consumo instantaneo, temperatura, etc).
Attualmente non sono ancora in grado di comunicare con la centrale, e non ho modo di capire l'origine dell'errore.
Di seguito posto i dettagli del problema, in modo che voi o qualche utente che ha già implementato le specifiche EgoClient in java o altri linguaggi, possa aiutarmi ad risolvere il problema.
Ecco di seguito la situazione:
- ambiente windows7 e windowsXP
- firewall disabilitati
- lato server (centrale), il socket sembra in ascolto, infatti stabilisco la connessione sulla porta 215
- anche il keydome si connette, e mi chiede di inserire n caratteri del Codice di Accesso. Inserendo però il codice, la finestra principale va a tutto schermo, ma non mostra nient altro (eccetto versione, ora, e lo scorrere della scritta "ON-LINE")
- nel mio codice, qualsiasi stream di byte invii via socket, la centrale non ritorna alcuna risposta (nemmeno di errore)
- stando al protocollo, il pacchetto per la prima richiesta (comando 9000 senza altri parametri) dovrebbe essere il seguente: ( 35, 75, 0, 0, 16, 0, 0, 239, 0, 0, 0, 0, 0, 0, 0, 0 );
cioè
35,75 = 9000 (comando di richiesta accesso)
16 = dimensione pacchetto
239 = XOR della dimensione pacchetto
-convertito in hex diventa ( 0x23, 0x4b, 0x0, 0x0, 0x10, 0x0, 0x0, 0xef, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0), questo dovrebbe essere il buffer di byte da inviare sul socket.
Come accennato, spedisco il pacchetto, e non ricevo nessuna risposta. Provando anche con altri esempi, il comportamento è il medesimo. Il fatto che anche il keydome non sembra funzionare a pieno mi fa sospettare ci sia qualche blocco lato centrale, ma almeno sul keydome la richiesta del Codice di Accesso e la relativa risposta avvengono correttamente. Come primo step, vorrei arrivare a replicare almeno questa situazione.
grazie dell'aiuto