Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    Interfacciare PC con registratore di cassa INDESIT DITRON Serena

    Salve a tutti,
    sto sviluppando un gestionale che tra le altre cose deve emulare il registratore di cassa INDESIT DITRON Serena.

    Il linguaggio di programmazione utilizzato è il c#.

    Ho il manuale del costruttorre del registratore dove sono spiegati i protocolli di comunicazione.

    Ho collegato il PC con il registratore di cassa tramite RS232.
    Il collegamento funziona in quanto facendo varie prove riesco a leggere quello che il registratore invia al PC.
    Purtroppo però non riesco a inviare comandi verso il registratore di cassa in quanto non è molto chiaro come bisogna inviare tali comandi.
    Se può essere di aiuto i protocolli di comunicazione sono uguali al registratore DITRON ZIP
    Qualcuno può aiutarmi?

    se avete bisogno di qualche informazione in più chiedete pure

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,466

    Moderazione

    Originariamente inviato da acapanni
    Purtroppo però non riesco a inviare comandi verso il registratore di cassa in quanto non è molto chiaro come bisogna inviare tali comandi.
    Cioè? Cos'è che non ti è chiaro?

    Definisci con cura i dettagli del problema che non ti sono chiari, così è possibile fornire soluzioni in merito, altrimenti la richiesta è troppo astratta e vaga per poter essere affrontata.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    ok
    allora i messaggi da inviare al registratore di cassa sono cosi formati:

    DLE,STX,<NUM>,<ID>,<UF>,<UF>,<CODICE>,..........., DLE,ETX,<CRC>

    dove al posto dei puntini è necessario inserire un valore che identifica il comando da inviare al registratore.

    Il protocollo è del tipo "trasparent mode" ossia i caratteri di controllo sono preceduti dal carattere speciale DLE. Se nel testo del messaggio capita un carattere coincidente con DLE, questo viene prefissato da un altro DLE.

    Ciò consente di utilizzare pienamente per i dati tutti e 8 i bit possibili e quindi permette di rappresentare i dati in BCD-PACKED (binary coded decimal) ossia di dimezzare la lunghezza dei messaggi numerici, trasmettendo due digits decimali per ogni carattere. (Questa scelta però obbliga ad utilizzare sempre 8 bit per carattere.)

    STX = carattere di controllo : start-of-text
    ETX = carattere di controllo : end-of-text
    CRC = 1 byte calcolato come check-sum sul messaggio

    Il messaggio si compone di due parti logiche, la "testata" e la parte "dati" (che può anche essere nulla).

    La testata è formata da 5 bytes :

    NUM:
    Contatore binario di messaggio. Viene incrementato ad ogni nuovo messaggio mentre resta invariato quando il messaggio viene ritrasmesso per retry.

    ID:
    Indirizzo del nodo.
    Nei messaggi in partenza da ecr è posto uguale all' indirizzo di canale programmato sull'ecr; nei messaggi verso l'ecr deve essere uguale all' indirizzo di canale dell' ecr a cui viene inviato il messaggio. L'ecr, infatti, "ignora" gli eventuali messaggi dove il campo ID non coincide con il proprio indirizzo di canale ossia non destinati a lui, mentre l'host può controllare che, anche a livello logico, un messaggio sia stato effettivamente ricevuto dall' ecr con il quale ha intrapreso una connessione.

    U.F.
    Uso Futuro. Lasciare sempre a 00 Hex per compatibilità con implementazioni future.

    COD:
    E' un codice che specifica il "tipo" di messaggio ossia l'azione (logica) che esso comporta. E' una lettera ascii compresa tra "A" e "Z".

    DLE = 10h prefisso codici di controllo
    STX = 02h inizio messaggio
    ETX = 03h fine messaggio

    Come codice utilizzo sempre quelli di tipo "A"che servono per emulare la tastiera

    Con il messaggio tipo “A”, PC simula una sequenza di tasti premuti da tastiera.
    In tal modo si può lanciare sull'ecr qualsiasi funzione attivabile da tastiera dell'ecr.

    I dati rappresentano una sequenza di tasti, dove ogni tasto è identificato da un numero compreso tra 0 e 255 e quindi rappresentabile in un byte. Ne segue che il campo dati è una stringa di N bytes, dove ogni byte rappresenta un codice-tasto, ossia la stringa dati è l’immagine di una sequenza di N tasti.

    E’ indispensabile che la sequenza di tasti sia sempre “terminata” da un tasto di funzione (es, Reparto, Plu, Totale ecc.) altrimenti non viene processata dall’automa accettore dell’ecr.

    ecco alcuni valori relativi ai tasti:

    01=Tasto '1'
    02=Tasto '2'
    03=Tasto '3'
    ...
    09=Tasto '9'
    75=Reparto

    Per comunicare con la porta seriale utilizzo la classe SerialPort di C#.
    Come devo costruire il messaggio da inviare?

  4. #4
    ho trovato!!!!
    avevo dei driver vecchi.
    Ho scaricato winecrcom che permette la gestione semplificata dei protocolli di comunicazione.

    Grazie lo stesso

  5. #5
    Come ti sei collegatro a winecrcom con c#???
    nn riesco a trovare niente..

  6. #6
    Utente di HTML.it L'avatar di Stoicenko
    Registrato dal
    Feb 2004
    Messaggi
    2,254
    installando i driver di sicuro avrà avuto una dll com o un ocx da usare per comandarla..
    oppure tramite porta seriale (molto più probabile)

  7. #7
    ci sono delle librerie nel cartella ti installa nel pc mi sembra sotto C:\Programmi\MicroPOS.
    Inoltre ci sono vari esempi in vb abbastanza chiari.

    Prova un po

    ciaooo

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.