+ Reply to Thread
Results 1 to 12 of 12
  1. #1
    VM Guest

    File dati e/o RS232 [lungo]

    Ciao a tutti.

    Ho uno strumento di misura un po' datato ma perfettamente funzionate
    che dispone di un software di "gestione" che fa pena e che non è più
    sviluppato da un po' di tempo e su cui il venditore non è più disposto
    a darmi alcun supporto.
    A questo punto ho pensato di crearmene uno come serve a me.
    Il software di gestione non fa altro che interfacciarsi allo strumento
    tramite una porta RS232 e sacricare i dati contenuti nella memoria.
    A questo punto posso salvarli in un formato proprietario.
    Io ho bisogno di poter accedere a questi dati.
    A questo punto ho pensato di avere 2 strade possibili:
    - Usare direttamente la porta RS232 e scaricare direttamente i dati
    dallo strumento;
    - Usare il software di gestione vecchio come "ponte" per generare il
    file dati e poi elaborare quest'ultimo.
    Ho tentato tutte e due le strade, ma non sono riuscito a andarne a capo.

    Partiamo con la prima soluzione : RS232.
    Tramite il software Portmon della ex Sysinternals (oggi MS) ho loggato
    la porta per cercare di capire la comunicazione fra sofware e strumento
    e quello che ho ottenuto è questo:

    IRP_MJ_CREATE Serial0 SUCCESS Options: Open
    IOCTL_SERIAL_GET_BAUD_RATE Serial0 SUCCESS
    IOCTL_SERIAL_GET_LINE_CONTROL Serial0 SUCCESS
    IOCTL_SERIAL_GET_CHARS Serial0 SUCCESS
    IOCTL_SERIAL_GET_HANDFLOW Serial0 SUCCESS
    IOCTL_SERIAL_GET_BAUD_RATE Serial0 SUCCESS
    IOCTL_SERIAL_GET_LINE_CONTROL Serial0 SUCCESS
    IOCTL_SERIAL_GET_CHARS Serial0 SUCCESS
    IOCTL_SERIAL_GET_HANDFLOW Serial0 SUCCESS
    IOCTL_SERIAL_SET_BAUD_RATE Serial0 SUCCESS Rate: 1200
    IOCTL_SERIAL_SET_RTS Serial0 SUCCESS
    IOCTL_SERIAL_SET_DTR Serial0 SUCCESS
    IOCTL_SERIAL_SET_LINE_CONTROL Serial0 SUCCESS StopBits: 1 Parity: NONE
    WordLength: 8
    IOCTL_SERIAL_SET_CHAR Serial0 SUCCESS EOF:0 ERR:0 BRK:0 EVT:0 XON:11
    XOFF:13
    IOCTL_SERIAL_SET_HANDFLOW Serial0 SUCCESS Shake:1 Replace:40
    XonLimit:2048 XoffLimit:512
    IOCTL_SERIAL_GET_BAUD_RATE Serial0 SUCCESS
    IOCTL_SERIAL_GET_LINE_CONTROL Serial0 SUCCESS
    IOCTL_SERIAL_GET_CHARS Serial0 SUCCESS
    IOCTL_SERIAL_GET_HANDFLOW Serial0 SUCCESS
    IOCTL_SERIAL_GET_PROPERTIES Serial0 SUCCESS
    IOCTL_SERIAL_GET_WAIT_MASK Serial0 SUCCESS
    IOCTL_SERIAL_GET_TIMEOUTS Serial0 SUCCESS
    IOCTL_SERIAL_SET_TIMEOUTS Serial0 SUCCESS RI:250 RM:0 RC:0 WM:0 WC:0
    IOCTL_SERIAL_GET_BAUD_RATE Serial0 SUCCESS
    IOCTL_SERIAL_GET_LINE_CONTROL Serial0 SUCCESS
    IOCTL_SERIAL_GET_CHARS Serial0 SUCCESS
    IOCTL_SERIAL_GET_HANDFLOW Serial0 SUCCESS
    IOCTL_SERIAL_SET_BAUD_RATE Serial0 SUCCESS Rate: 1200
    IOCTL_SERIAL_SET_RTS Serial0 SUCCESS
    IOCTL_SERIAL_SET_DTR Serial0 SUCCESS
    IOCTL_SERIAL_SET_LINE_CONTROL Serial0 SUCCESS StopBits: 1 Parity: NONE
    WordLength: 8
    IOCTL_SERIAL_SET_CHAR Serial0 SUCCESS EOF:0 ERR:0 BRK:0 EVT:0 XON:11
    XOFF:13
    IOCTL_SERIAL_SET_HANDFLOW Serial0 SUCCESS Shake:1 Replace:40
    XonLimit:2048 XoffLimit:512
    IOCTL_SERIAL_SET_WAIT_MASK Serial0 SUCCESS Mask: ERR
    IOCTL_SERIAL_WAIT_ON_MASK Serial0 CANCELLED
    IOCTL_SERIAL_PURGE Serial0 SUCCESS Purge: RXABORT RXCLEAR
    IOCTL_SERIAL_PURGE Serial0 SUCCESS Purge: RXABORT RXCLEAR
    IRP_MJ_READ Serial0 CANCELLED Length 8
    IOCTL_SERIAL_PURGE Serial0 SUCCESS Purge: RXABORT RXCLEAR
    IRP_MJ_READ Serial0 SUCCESS Length 8: .$.<RN..
    IRP_MJ_WRITE Serial0 SUCCESS Length 8: .$.<..p.
    IOCTL_SERIAL_PURGE Serial0 SUCCESS Purge: RXABORT RXCLEAR
    IRP_MJ_READ Serial0 CANCELLED Length 8
    IOCTL_SERIAL_PURGE Serial0 SUCCESS Purge: RXABORT RXCLEAR
    IRP_MJ_READ Serial0 SUCCESS Length 8: .$.=..!b
    IRP_MJ_WRITE Serial0 SUCCESS Length 8: .$.=..!.
    IOCTL_SERIAL_PURGE Serial0 SUCCESS Purge: RXABORT RXCLEAR
    IRP_MJ_READ Serial0 CANCELLED Length 8
    IOCTL_SERIAL_PURGE Serial0 SUCCESS Purge: RXABORT RXCLEAR
    IRP_MJ_READ Serial0 SUCCESS Length 262:
    ..4......................................./......................
    IRP_MJ_WRITE Serial0 SUCCESS Length 8: .4......
    IOCTL_SERIAL_PURGE Serial0 SUCCESS Purge: RXABORT RXCLEAR
    IRP_MJ_READ Serial0 CANCELLED Length 262
    IOCTL_SERIAL_PURGE Serial0 SUCCESS Purge: RXABORT RXCLEAR
    IRP_MJ_READ Serial0 SUCCESS Length 262: .4.......-..........`...9...
    ........`..Q9...!.......`..j9... ...
    IRP_MJ_WRITE Serial0 SUCCESS Length 8: .4.....R
    IOCTL_SERIAL_PURGE Serial0 SUCCESS Purge: RXABORT RXCLEAR
    IRP_MJ_READ Serial0 CANCELLED Length 262
    IOCTL_SERIAL_PURGE Serial0 SUCCESS Purge: RXABORT RXCLEAR
    IRP_MJ_READ Serial0 SUCCESS Length 262: .4..`.
    ..9...&.......`..79...&.......`.![9... .......V.1.0.1.a.`.
    IRP_MJ_WRITE Serial0 SUCCESS Length 8: .4......
    IOCTL_SERIAL_PURGE Serial0 SUCCESS Purge: RXABORT RXCLEAR
    IRP_MJ_READ Serial0 CANCELLED Length 262
    IOCTL_SERIAL_PURGE Serial0 SUCCESS Purge: RXABORT RXCLEAR
    IRP_MJ_READ Serial0 SUCCESS Length 262: .4..`.!R9...
    .......`.!N9...!.......V.2.0.2.a.`...`.V.3.0.3.`.` .
    IRP_MJ_WRITE Serial0 SUCCESS Length 8: .4......
    IOCTL_SERIAL_PURGE Serial0 SUCCESS Purge: RXABORT RXCLEAR
    IRP_MJ_READ Serial0 CANCELLED Length 262
    IOCTL_SERIAL_PURGE Serial0 SUCCESS Purge: RXABORT RXCLEAR
    IRP_MJ_READ Serial0 SUCCESS Length 262: .4..`...9...
    ......A`..M9...0......C`. .9... ......A`. .9... ...
    IRP_MJ_WRITE Serial0 SUCCESS Length 8: .4......
    IOCTL_SERIAL_PURGE Serial0 SUCCESS Purge: RXABORT RXCLEAR
    IRP_MJ_READ Serial0 CANCELLED Length 262
    IOCTL_SERIAL_PURGE Serial0 SUCCESS Purge: RXABORT RXCLEAR
    IRP_MJ_READ Serial0 SUCCESS "Length 262: .4..`...9... ......A`...9...
    ......A`."".9...1......C`...9... ..."
    IRP_MJ_WRITE Serial0 SUCCESS Length 8: .4.....b
    IOCTL_SERIAL_PURGE Serial0 SUCCESS Purge: RXABORT RXCLEAR
    IRP_MJ_READ Serial0 CANCELLED Length 262
    IOCTL_SERIAL_PURGE Serial0 SUCCESS Purge: RXABORT RXCLEAR
    IRP_MJ_READ Serial0 SUCCESS Length 262: .4..`...9... .......`...9...
    .......`...9... .......T.0.0.0.c.`.
    IRP_MJ_WRITE Serial0 SUCCESS Length 8: .4.....&
    IOCTL_SERIAL_PURGE Serial0 SUCCESS Purge: RXABORT RXCLEAR
    IRP_MJ_READ Serial0 CANCELLED Length 262
    IOCTL_SERIAL_PURGE Serial0 SUCCESS Purge: RXABORT RXCLEAR
    IRP_MJ_READ Serial0 SUCCESS Length 262: .4..`...9... .......`.!R9...
    .......`.!R9... .......`...9... ...
    IRP_MJ_WRITE Serial0 SUCCESS Length 8: .4......
    IOCTL_SERIAL_PURGE Serial0 SUCCESS Purge: TXABORT TXCLEAR
    IOCTL_SERIAL_PURGE Serial0 SUCCESS Purge: RXABORT RXCLEAR
    IOCTL_SERIAL_PURGE Serial0 SUCCESS Purge: RXABORT RXCLEAR
    IRP_MJ_CLEANUP Serial0 SUCCESS
    IRP_MJ_CLOSE Serial0 SUCCESS

    ho provato a cercare di capire il significato della configurazione
    della porta ma non ne sono andato a capo. Qualcuno ha idea di come
    "decifrare" queste informazioni?

    Seconda soluzione : File dati.

    Il file di dati è un file il cui contenuto (aperto con blocco note) è
    composto da stringhe leggibili e riconducibili a informazioni di
    configurazione dello strumento (es. nome della mia società) e altre
    praticamente indecifrabili.
    Non conoscendo minimamente la struttura del file è possibile
    ricostruirla in qualche modo e gestirla, non so tramite un
    binaryreader, uno streamreader o una cosa simile?

    Spero che qualcuno mi possa essere di aiuto.

    In ogni caso grazie.


  2. #2
    Corrado Cavalli [MVP] Guest

    Re: File dati e/o RS232 [lungo]

    VM wrote :
    > Ciao a tutti.
    >
    > Ho uno strumento di misura un po' datato ma perfettamente funzionate
    > che dispone di un software di "gestione" che fa pena e che non è più
    > sviluppato da un po' di tempo e su cui il venditore non è più disposto
    > a darmi alcun supporto.
    > A questo punto ho pensato di crearmene uno come serve a me.
    > Il software di gestione non fa altro che interfacciarsi allo strumento
    > tramite una porta RS232 e sacricare i dati contenuti nella memoria.
    > A questo punto posso salvarli in un formato proprietario.
    > Io ho bisogno di poter accedere a questi dati.
    > A questo punto ho pensato di avere 2 strade possibili:
    > - Usare direttamente la porta RS232 e scaricare direttamente i dati
    > dallo strumento;
    > - Usare il software di gestione vecchio come "ponte" per generare il
    > file dati e poi elaborare quest'ultimo.
    > Ho tentato tutte e due le strade, ma non sono riuscito a andarne a capo.
    >
    > Partiamo con la prima soluzione : RS232.
    > Tramite il software Portmon della ex Sysinternals (oggi MS) ho loggato
    > la porta per cercare di capire la comunicazione fra sofware e strumento
    > e quello che ho ottenuto è questo:
    >
    > IRP_MJ_CREATE Serial0 SUCCESS Options: Open
    > IOCTL_SERIAL_GET_BAUD_RATE Serial0 SUCCESS
    > IOCTL_SERIAL_GET_LINE_CONTROL Serial0 SUCCESS
    > IOCTL_SERIAL_GET_CHARS Serial0 SUCCESS
    > IOCTL_SERIAL_GET_HANDFLOW Serial0 SUCCESS
    > IOCTL_SERIAL_GET_BAUD_RATE Serial0 SUCCESS
    > IOCTL_SERIAL_GET_LINE_CONTROL Serial0 SUCCESS
    > IOCTL_SERIAL_GET_CHARS Serial0 SUCCESS
    > IOCTL_SERIAL_GET_HANDFLOW Serial0 SUCCESS
    > IOCTL_SERIAL_SET_BAUD_RATE Serial0 SUCCESS Rate: 1200
    > IOCTL_SERIAL_SET_RTS Serial0 SUCCESS
    > IOCTL_SERIAL_SET_DTR Serial0 SUCCESS
    > IOCTL_SERIAL_SET_LINE_CONTROL Serial0 SUCCESS StopBits: 1 Parity: NONE
    > WordLength: 8
    > IOCTL_SERIAL_SET_CHAR Serial0 SUCCESS EOF:0 ERR:0 BRK:0 EVT:0 XON:11
    > XOFF:13
    > IOCTL_SERIAL_SET_HANDFLOW Serial0 SUCCESS Shake:1 Replace:40
    > XonLimit:2048 XoffLimit:512
    > IOCTL_SERIAL_GET_BAUD_RATE Serial0 SUCCESS
    > IOCTL_SERIAL_GET_LINE_CONTROL Serial0 SUCCESS
    > IOCTL_SERIAL_GET_CHARS Serial0 SUCCESS
    > IOCTL_SERIAL_GET_HANDFLOW Serial0 SUCCESS
    > IOCTL_SERIAL_GET_PROPERTIES Serial0 SUCCESS
    > IOCTL_SERIAL_GET_WAIT_MASK Serial0 SUCCESS
    > IOCTL_SERIAL_GET_TIMEOUTS Serial0 SUCCESS
    > IOCTL_SERIAL_SET_TIMEOUTS Serial0 SUCCESS RI:250 RM:0 RC:0 WM:0 WC:0
    > IOCTL_SERIAL_GET_BAUD_RATE Serial0 SUCCESS
    > IOCTL_SERIAL_GET_LINE_CONTROL Serial0 SUCCESS
    > IOCTL_SERIAL_GET_CHARS Serial0 SUCCESS
    > IOCTL_SERIAL_GET_HANDFLOW Serial0 SUCCESS
    > IOCTL_SERIAL_SET_BAUD_RATE Serial0 SUCCESS Rate: 1200
    > IOCTL_SERIAL_SET_RTS Serial0 SUCCESS
    > IOCTL_SERIAL_SET_DTR Serial0 SUCCESS
    > IOCTL_SERIAL_SET_LINE_CONTROL Serial0 SUCCESS StopBits: 1 Parity: NONE
    > WordLength: 8
    > IOCTL_SERIAL_SET_CHAR Serial0 SUCCESS EOF:0 ERR:0 BRK:0 EVT:0 XON:11
    > XOFF:13
    > IOCTL_SERIAL_SET_HANDFLOW Serial0 SUCCESS Shake:1 Replace:40
    > XonLimit:2048 XoffLimit:512
    > IOCTL_SERIAL_SET_WAIT_MASK Serial0 SUCCESS Mask: ERR
    > IOCTL_SERIAL_WAIT_ON_MASK Serial0 CANCELLED
    > IOCTL_SERIAL_PURGE Serial0 SUCCESS Purge: RXABORT RXCLEAR
    > IOCTL_SERIAL_PURGE Serial0 SUCCESS Purge: RXABORT RXCLEAR
    > IRP_MJ_READ Serial0 CANCELLED Length 8
    > IOCTL_SERIAL_PURGE Serial0 SUCCESS Purge: RXABORT RXCLEAR
    > IRP_MJ_READ Serial0 SUCCESS Length 8: .$.<RN..
    > IRP_MJ_WRITE Serial0 SUCCESS Length 8: .$.<..p.
    > IOCTL_SERIAL_PURGE Serial0 SUCCESS Purge: RXABORT RXCLEAR
    > IRP_MJ_READ Serial0 CANCELLED Length 8
    > IOCTL_SERIAL_PURGE Serial0 SUCCESS Purge: RXABORT RXCLEAR
    > IRP_MJ_READ Serial0 SUCCESS Length 8: .$.=..!b
    > IRP_MJ_WRITE Serial0 SUCCESS Length 8: .$.=..!.
    > IOCTL_SERIAL_PURGE Serial0 SUCCESS Purge: RXABORT RXCLEAR
    > IRP_MJ_READ Serial0 CANCELLED Length 8
    > IOCTL_SERIAL_PURGE Serial0 SUCCESS Purge: RXABORT RXCLEAR
    > IRP_MJ_READ Serial0 SUCCESS Length 262:
    > .4......................................./......................
    > IRP_MJ_WRITE Serial0 SUCCESS Length 8: .4......
    > IOCTL_SERIAL_PURGE Serial0 SUCCESS Purge: RXABORT RXCLEAR
    > IRP_MJ_READ Serial0 CANCELLED Length 262
    > IOCTL_SERIAL_PURGE Serial0 SUCCESS Purge: RXABORT RXCLEAR
    > IRP_MJ_READ Serial0 SUCCESS Length 262: .4.......-..........`...9...
    > .......`..Q9...!.......`..j9... ...
    > IRP_MJ_WRITE Serial0 SUCCESS Length 8: .4.....R
    > IOCTL_SERIAL_PURGE Serial0 SUCCESS Purge: RXABORT RXCLEAR
    > IRP_MJ_READ Serial0 CANCELLED Length 262
    > IOCTL_SERIAL_PURGE Serial0 SUCCESS Purge: RXABORT RXCLEAR
    > IRP_MJ_READ Serial0 SUCCESS Length 262: .4..`.
    > .9...&.......`..79...&.......`.![9... .......V.1.0.1.a.`.
    > IRP_MJ_WRITE Serial0 SUCCESS Length 8: .4......
    > IOCTL_SERIAL_PURGE Serial0 SUCCESS Purge: RXABORT RXCLEAR
    > IRP_MJ_READ Serial0 CANCELLED Length 262
    > IOCTL_SERIAL_PURGE Serial0 SUCCESS Purge: RXABORT RXCLEAR
    > IRP_MJ_READ Serial0 SUCCESS Length 262: .4..`.!R9...
    > .......`.!N9...!.......V.2.0.2.a.`...`.V.3.0.3.`.` .
    > IRP_MJ_WRITE Serial0 SUCCESS Length 8: .4......
    > IOCTL_SERIAL_PURGE Serial0 SUCCESS Purge: RXABORT RXCLEAR
    > IRP_MJ_READ Serial0 CANCELLED Length 262
    > IOCTL_SERIAL_PURGE Serial0 SUCCESS Purge: RXABORT RXCLEAR
    > IRP_MJ_READ Serial0 SUCCESS Length 262: .4..`...9...
    > ......A`..M9...0......C`. .9... ......A`. .9... ...
    > IRP_MJ_WRITE Serial0 SUCCESS Length 8: .4......
    > IOCTL_SERIAL_PURGE Serial0 SUCCESS Purge: RXABORT RXCLEAR
    > IRP_MJ_READ Serial0 CANCELLED Length 262
    > IOCTL_SERIAL_PURGE Serial0 SUCCESS Purge: RXABORT RXCLEAR
    > IRP_MJ_READ Serial0 SUCCESS "Length 262: .4..`...9... ......A`...9...
    > ......A`."".9...1......C`...9... ..."
    > IRP_MJ_WRITE Serial0 SUCCESS Length 8: .4.....b
    > IOCTL_SERIAL_PURGE Serial0 SUCCESS Purge: RXABORT RXCLEAR
    > IRP_MJ_READ Serial0 CANCELLED Length 262
    > IOCTL_SERIAL_PURGE Serial0 SUCCESS Purge: RXABORT RXCLEAR
    > IRP_MJ_READ Serial0 SUCCESS Length 262: .4..`...9... .......`...9...
    > .......`...9... .......T.0.0.0.c.`.
    > IRP_MJ_WRITE Serial0 SUCCESS Length 8: .4.....&
    > IOCTL_SERIAL_PURGE Serial0 SUCCESS Purge: RXABORT RXCLEAR
    > IRP_MJ_READ Serial0 CANCELLED Length 262
    > IOCTL_SERIAL_PURGE Serial0 SUCCESS Purge: RXABORT RXCLEAR
    > IRP_MJ_READ Serial0 SUCCESS Length 262: .4..`...9... .......`.!R9...
    > .......`.!R9... .......`...9... ...
    > IRP_MJ_WRITE Serial0 SUCCESS Length 8: .4......
    > IOCTL_SERIAL_PURGE Serial0 SUCCESS Purge: TXABORT TXCLEAR
    > IOCTL_SERIAL_PURGE Serial0 SUCCESS Purge: RXABORT RXCLEAR
    > IOCTL_SERIAL_PURGE Serial0 SUCCESS Purge: RXABORT RXCLEAR
    > IRP_MJ_CLEANUP Serial0 SUCCESS
    > IRP_MJ_CLOSE Serial0 SUCCESS
    >
    > ho provato a cercare di capire il significato della configurazione
    > della porta ma non ne sono andato a capo. Qualcuno ha idea di come
    > "decifrare" queste informazioni?
    >
    > Seconda soluzione : File dati.
    >
    > Il file di dati è un file il cui contenuto (aperto con blocco note) è
    > composto da stringhe leggibili e riconducibili a informazioni di
    > configurazione dello strumento (es. nome della mia società) e altre
    > praticamente indecifrabili.
    > Non conoscendo minimamente la struttura del file è possibile
    > ricostruirla in qualche modo e gestirla, non so tramite un
    > binaryreader, uno streamreader o una cosa simile?
    >
    > Spero che qualcuno mi possa essere di aiuto.
    >
    > In ogni caso grazie.


    Ci sono tools che permettono di vedere l'intero stream di bytes che
    passano sulla seriale (forse portmon stesso può farlo...) guardando i
    bytes forse puoi capire megli eventuali patterns e cercare di
    replicarli.

    --
    ....... Cavalli [Microsoft .NET MVP-MCP]
    UGIdotNET - http://www.ugidotnet.org
    Weblog: http://blogs.ugidotnet.org/......./



  3. #3
    VM Guest

    Re: File dati e/o RS232 [lungo]

    ....... Cavalli [MVP] wrote:

    >
    > Ci sono tools che permettono di vedere l'intero stream di bytes che
    > passano sulla seriale (forse portmon stesso può farlo...) guardando i
    > bytes forse puoi capire megli eventuali patterns e cercare di
    > replicarli.


    Il software l'ho trovato. Adesso lo provo e poi vediamo che ne esce..
    Grazie dell'idea.


    --


  4. #4
    VM Guest

    Re: File dati e/o RS232 [lungo]

    VM wrote:

    >
    > Il software l'ho trovato. Adesso lo provo e poi vediamo che ne esce..
    > Grazie dell'idea.


    Ok, riesco a leggere i dati dalla seriale dello strumento.

    Altro problema. Ricevo una serie di blocchi di dati più o meno simili a
    questo:
    01 34 01 00 60 40 17 A3 39 40 F0 00 20 40 F0 00
    F0 40 01 01 60 40 17 A3 39 40 F0 00 20 40 F0 00
    F0 40 01 01 60 40 14 40 39 40 F0 00 20 40 F0 00
    F0 40 01 01 54 40 30 E3 30 40 30 E5 63 40 60 E8
    F0 40 60 0A 60 40 21 C0 39 40 F0 00 20 40 F0 00
    F0 40 01 01 60 40 21 D5 39 40 F0 00 30 40 F0 00
    F0 40 01 03 60 40 17 A4 39 40 F0 00 30 40 F0 00
    F0 40 01 03 60 40 17 A3 39 40 F0 00 20 40 F0 00
    F0 40 01 01 60 40 20 D4 39 40 F0 00 31 40 F0 00
    F0 40 01 04 60 40 17 9B 39 40 F0 00 20 40 F0 00
    F0 40 01 01 60 40 20 D2 39 40 F0 00 20 40 F0 00
    F0 40 01 01 54 40 31 B3 30 40 31 B6 62 40 60 E7
    F0 40 60 01 60 40 17 A4 39 40 F0 00 20 40 F0 00
    F0 40 01 01 60 40 20 CF 39 40 F0 00 20 40 F0 00
    F0 40 01 01 60 40 17 A3 39 40 F0 00 20 40 F0 00
    F0 40 01 01 60 40 21 09 39 40 F0 00 20 40 F0 00
    F0 40 01 01 6E CA

    Quello che mi sfugge adesso è questo:
    Visto che il software originale legge i dati dell'azienda direttamente
    dallo strumento, dovrei trovare tra i dati che lo strumento mi fornisce
    anche le codifiche dei caratteri ascii del nome dell'azienda.
    solo che se converto i dati esadecimali che leggo in caratteri ascii da
    nessuna parte trovo le informazioni che ho inserito.

    Sbaglio il ragionamento?

  5. #5
    Corrado Cavalli [MVP] Guest

    Re: File dati e/o RS232 [lungo]

    It happens that VM formulated :
    > VM wrote:
    >
    >>
    >> Il software l'ho trovato. Adesso lo provo e poi vediamo che ne esce..
    >> Grazie dell'idea.

    >
    > Ok, riesco a leggere i dati dalla seriale dello strumento.
    >
    > Altro problema. Ricevo una serie di blocchi di dati più o meno simili a
    > questo:
    > 01 34 01 00 60 40 17 A3 39 40 F0 00 20 40 F0 00
    > F0 40 01 01 60 40 17 A3 39 40 F0 00 20 40 F0 00
    > F0 40 01 01 60 40 14 40 39 40 F0 00 20 40 F0 00
    > F0 40 01 01 54 40 30 E3 30 40 30 E5 63 40 60 E8
    > F0 40 60 0A 60 40 21 C0 39 40 F0 00 20 40 F0 00
    > F0 40 01 01 60 40 21 D5 39 40 F0 00 30 40 F0 00
    > F0 40 01 03 60 40 17 A4 39 40 F0 00 30 40 F0 00
    > F0 40 01 03 60 40 17 A3 39 40 F0 00 20 40 F0 00
    > F0 40 01 01 60 40 20 D4 39 40 F0 00 31 40 F0 00
    > F0 40 01 04 60 40 17 9B 39 40 F0 00 20 40 F0 00
    > F0 40 01 01 60 40 20 D2 39 40 F0 00 20 40 F0 00
    > F0 40 01 01 54 40 31 B3 30 40 31 B6 62 40 60 E7
    > F0 40 60 01 60 40 17 A4 39 40 F0 00 20 40 F0 00
    > F0 40 01 01 60 40 20 CF 39 40 F0 00 20 40 F0 00
    > F0 40 01 01 60 40 17 A3 39 40 F0 00 20 40 F0 00
    > F0 40 01 01 60 40 21 09 39 40 F0 00 20 40 F0 00
    > F0 40 01 01 6E CA
    >
    > Quello che mi sfugge adesso è questo:
    > Visto che il software originale legge i dati dell'azienda direttamente
    > dallo strumento, dovrei trovare tra i dati che lo strumento mi fornisce
    > anche le codifiche dei caratteri ascii del nome dell'azienda.
    > solo che se converto i dati esadecimali che leggo in caratteri ascii da
    > nessuna parte trovo le informazioni che ho inserito.
    >
    > Sbaglio il ragionamento?


    Beh, dipende ovviamente da come lo strumento e il software
    interagiscono, può essere che abbiano volutamente criptato lo scambio
    dati. Onestamente non la vedo così facile...

    --
    ....... Cavalli [Microsoft .NET MVP-MCP]
    UGIdotNET - http://www.ugidotnet.org
    Weblog: http://blogs.ugidotnet.org/......./



  6. #6
    Max Guest

    Re: File dati e/o RS232 [lungo]

    >
    > Sbaglio il ragionamento?
    >

    Ha ragione ....... sul fatto che potrebbero essere criptati.
    In che linguaggio è scritto il software di gestione ? Potresti provare
    a "decompilarlo" e cercare di capire se effettivamente stia criptando
    la connessione.

    > ho provato a cercare di capire il significato della configurazione
    > della porta ma non ne sono andato a capo. Qualcuno ha idea di come
    >"decifrare" queste informazioni?


    Mi pare che la "conversazione" si svolga a 1200 8N1

    Max

  7. #7
    VM Guest

    Re: File dati e/o RS232 [lungo]

    Max wrote:

    > >
    > > Sbaglio il ragionamento?
    > >

    > Ha ragione ....... sul fatto che potrebbero essere criptati.
    > In che linguaggio è scritto il software di gestione ? Potresti provare
    > a "decompilarlo" e cercare di capire se effettivamente stia criptando
    > la connessione.
    >
    > > ho provato a cercare di capire il significato della configurazione
    > > della porta ma non ne sono andato a capo. Qualcuno ha idea di come
    > > "decifrare" queste informazioni?

    >
    > Mi pare che la "conversazione" si svolga a 1200 8N1
    >
    > Max


    Effettivamente la "conversazione" si svolge a 1200 8N1.

    Il software è datato, come già detto, e verificando i log di
    installazione vedo che usa la libreria "vb6stkit.dll", quindi direi che
    a occhio e croce è stato scritto in VB6.

    Riguardo la possibile criptatura dei dati, potrebbe essere anche
    realistica l'ipotesi, dato che nella directory di installazione c'è una
    libreira che si chiama RSoSetf.dll che potrebbe essere relativa alla
    comunicazione seriale.
    C'è modo di provare a referenziarla in un programma sviluppato in c# e
    vedere se espone dei metodi pubblici?
    Ho provato a metterla come riferimento nel progetto c# che sto
    sviluppando ma ovviamente l'operazione non va a buon fine.

    Grazie.
    --


  8. #8
    Max Guest

    Re: File dati e/o RS232 [lungo]

    > C'è modo di provare a referenziarla in un programma sviluppato in c# e
    > vedere se espone dei metodi pubblici?


    Per vedere le funzioni esportate
    http://www.nirsoft.net/utils/dll_export_viewer.html

    > Ho provato a metterla come riferimento nel progetto c# che sto
    > sviluppando ma ovviamente l'operazione non va a buon fine.


    Per importare le dll "legacy" via Interop
    http://www.codeproject.com/kb/cs/interopBycchrism.aspx

    Ma se la comunicazione è criptata utilizzerà probabilmente una chiave
    simmetrica, che ovviamente tu non conosci.
    Lo spunto sulla cifratura è per capire se la comunicazione è criptata
    e quindi intraprendere la strada di utilizzare il programma come ponte
    (in alternativa dovresti cercare la chiave di decifratura)

    Saluti

    Max

  9. #9
    VM Guest

    Re: File dati e/o RS232 [lungo]

    Max wrote:

    > > C'è modo di provare a referenziarla in un programma sviluppato in
    > > c# e vedere se espone dei metodi pubblici?

    >
    > Per vedere le funzioni esportate
    > http://www.nirsoft.net/utils/dll_export_viewer.html
    >
    > > Ho provato a metterla come riferimento nel progetto c# che sto
    > > sviluppando ma ovviamente l'operazione non va a buon fine.

    >
    > Per importare le dll "legacy" via Interop
    > http://www.codeproject.com/kb/cs/interopBycchrism.aspx
    >
    > Ma se la comunicazione è criptata utilizzerà probabilmente una chiave
    > simmetrica, che ovviamente tu non conosci.
    > Lo spunto sulla cifratura è per capire se la comunicazione è criptata
    > e quindi intraprendere la strada di utilizzare il programma come ponte
    > (in alternativa dovresti cercare la chiave di decifratura)
    >
    > Saluti
    >
    > Max


    Niente da fare.
    Usando il software che mi hai indicato mi risulta che la Dll non
    esporta funzioni.
    Tra l'altro usando la funzione che esplora tutte le Dll agganciate al
    processo del software che vorrei "sostituire" la libreria non risulta
    neppure caricata nè prima, nè durante nè dopo il processo di lettura
    dei dati dallo strumento.
    Sono sempre più perplesso. Mi sembra un software tanto della minchia
    per avere tutte queste finezze tecniche.
    A questo punto ho il dubbio che non abbia neanche senso mettersi li a
    importare una dll tramite Interop.


  10. #10
    Max Guest

    Re: File dati e/o RS232 [lungo]

    > A questo punto ho il dubbio che non abbia neanche senso mettersi li a
    > importare una dll tramite Interop.


    A questo punto no. Non sai nemmeno che cosa faccia di preciso la lib.
    Verifica meglio le impostazioni per la comunicazione, un parametro non
    configurato o configurato male ti da un flusso non leggibile.

    Puoi provare a decompilare il programma per vedere se riesci a capire
    qualche cosa ho trovato questo tool
    http://www.soft32.com/download_124248.html


    Max

  11. #11
    VM Guest

    Re: File dati e/o RS232 [lungo]

    Max wrote:

    > > A questo punto ho il dubbio che non abbia neanche senso mettersi li
    > > a importare una dll tramite Interop.

    >
    > A questo punto no. Non sai nemmeno che cosa faccia di preciso la lib.
    > Verifica meglio le impostazioni per la comunicazione, un parametro non
    > configurato o configurato male ti da un flusso non leggibile.
    >


    Su questo punto sono sicuro di non avere problemi perchè il flusso di
    dati ottenuto loggando la comuncazione tramite il software originale e
    il mio software di prova è perfettamente identico, quindi escludo un
    problema di questo tipo.

    > Puoi provare a decompilare il programma per vedere se riesci a capire
    > qualche cosa ho trovato questo tool
    > http://www.soft32.com/download_124248.html
    >


    Adesso gli do' un'occhiata e poi vedo cosa fare.
    Ma a questo punto è più probabile che mi convenga utilizzare i dati
    contenuti dentro il file che genera il software originale. Solo che ho
    il problema che non so come è strutturato.
    Li qualche info è leggibile direttamente aprendo il file con blocco
    note perciò non dovrebbe esserci alcuna "cifratura" dei dati.

    Grazie per l'impegno e per i consigli.

    VM



    --


  12. #12
    VM Guest

    Re: File dati e/o RS232 [lungo]

    Max wrote:

    > > A questo punto ho il dubbio che non abbia neanche senso mettersi li
    > > a importare una dll tramite Interop.

    >
    > A questo punto no. Non sai nemmeno che cosa faccia di preciso la lib.
    > Verifica meglio le impostazioni per la comunicazione, un parametro non
    > configurato o configurato male ti da un flusso non leggibile.
    >
    > Puoi provare a decompilare il programma per vedere se riesci a capire
    > qualche cosa ho trovato questo tool
    > http://www.soft32.com/download_124248.html
    >
    >
    > Max


    Boh. A questo punto ho pure dei dubbi che sia stato compilato in VB.
    Il decompilatore,(categoria di software verso i quali nutro pochissima
    fiducia), mi dice che il software è stato compilato con un compilatore
    sconosciuto..
    Mah.. Che dire. Mi vien da ridere..

    Meglio che ci spostiamo sul file generato dal software originale.
    Consigli per decifrarlo?

    VM
    --


Similar Threads

  1. Copia file non permessa per nome file troppo lungo
    By adriano46 in forum microsoft.public.it.windowsxp
    Replies: 1
    Last Post: 10-25-2008, 12:58 PM
  2. campo dati binario lungo
    By luca in forum microsoft.public.it.office.access
    Replies: 0
    Last Post: 07-01-2008, 07:23 AM
  3. Leggere dati da rs232...
    By r+r in forum microsoft.public.it.dotnet.csharp
    Replies: 3
    Last Post: 09-09-2004, 06:33 PM
  4. RS232 ....... cavalli - eventi - ricezione dati
    By matcy in forum microsoft.public.it.dotnet.csharp
    Replies: 5
    Last Post: 08-24-2004, 10:48 AM
  5. [MI] Cerco cavo dati Rs232 per s55
    By Jeremy in forum it.annunci.usato.telefonia
    Replies: 0
    Last Post: 02-15-2004, 08:06 AM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
If you are still using perl webstats, then give GoStats a try.  It's free.