Italian Registratore Telematico (XON-XOFF) Fattura e Scontrino elettronico

Star-Dust

Expert
Licensed User
Per non occupare il thread di @giannimaione dove è iniziato il discorso del protocollo dei misuratori fiscali , proseguo qua la conversazione.
___________________________________________________________________________________________________________________________________
questo è il protocollo Xon-Xoff
nel link che ho postato io c'è un manuale aggiornato al 2013 quindi più recente.

Ma si collegano sulla seriale o su lan? (o entrambi?)


Ho trovato questo sorgente

Java:
public SerialPortHandler(String portaCOM){
       log = new MyLog4J();
       try {
           this.connect(portaCOM);
           this.provaScontrino();
       } catch (IOException e) {
         log.logStackTrace(e);
       }
}

public void connect(String portName) throws IOException {
  try {
    // Obtain a CommPortIdentifier object for the port you want to open
    CommPortIdentifier portId =
    CommPortIdentifier.getPortIdentifier(portName);
    log.information("apro porta seriale");
    //System.out.println("apro porta seriale");
    // Get
    serialPort =
    (SerialPort) portId.open("Demo application", 5000);
    // Set the parameters of the connection.
    setSerialPortParameters();
    log.information("settaggio porta terminato");

  } catch (NoSuchPortException e) {
    log.logStackTrace(e);
    throw new IOException(e.getMessage());
  } catch (PortInUseException e) {
    log.logStackTrace(e);
    throw new IOException(e.getMessage());
  } catch (IOException e) {
    log.logStackTrace(e);
    serialPort.close();
    throw e;
  }
}
  
public void provaScontrino(){
try {
  outStream = serialPort.getOutputStream();
  //inStream = serialPort.getInputStream();
  log.information("output acquisito ora provo a stampare uno scontrino");
  String messageString = "j";
  outStream.write(messageString.getBytes());
  //messageString = "'PANTALONE'10H1R";
  //outStream.write(messageString.getBytes());
  messageString = "\"MAGLIA\"3*100H1P";
  outStream.write(messageString.getBytes());
  messageString = "1T";
  outStream.write(messageString.getBytes());
  messageString = "J";
  outStream.write(messageString.getBytes());
  log.information("scontrino stampato ora apro il cassetto");
  apriCassetto();
  } catch (Exception e) {
    log.logStackTrace(e);
  }
}
 

Star-Dust

Expert
Licensed User
la connessione alla cassa è abbastanza semplice; oggi le casse hanno una connessione eth (mi dai confermi @Lello1964) e quindi un proprio indirizzo IP;
utilizzando il protocollo XON-XOFF, puoi inviare i comandi tramite socket e AsyncStreams; (puoi realizzare un modulo B4A !!, B4J !!, e B4I ??)
in pratica la cassa diventa una sorta di stampante;
Si volevo realizzare una B4XLib per tutte e tre le piattaforme. Pensi sia una pessima idea?

per la fattura elettronica mi limito a generare il file xml; l'utente avrà cura di inviare il file all' ADE
Già è molto, riuscire a create xml e poi inviarlo con un servizio tipo aruba.
 

Xfood

Well-Known Member
Licensed User
buongiorno,
allego il documento aggiornato, anche per le nuove regole Lotteria

e aggiungo anche il protocollo custom
 

Star-Dust

Expert
Licensed User
Non so nemmeno cosa sia il protocollo custom
 

Star-Dust

Expert
Licensed User
buongiorno,
allego il documento aggiornato, anche per le nuove regole Lotteria

e aggiungo anche il protocollo custom
Non mi pare una cosa semplice come fosse una stampante.
 

Xfood

Well-Known Member
Licensed User
e' il protocollo piu diffuso dopo xon-xoff, sopratutto in italia la maggior parte dei registratori di cassa sono Custom,
anche se marcati NCR,Siemens,IBM, a grandi linee direi che come misuratori fiscali in italia ci sono 2 modelli che si dividono il mercato, Epson e Custom, Custom negli anni del 1990 ad oggi ha acquisito tutti i produttori di registratori di cassa italiani
per cusi Fasy,MWCR,Sarema, ecc. Il protocollo xon-xoff e' comune a tutti ma un po obsoleto, bisogna "settare" il MF in modalita' Stampante fiscale, utilizzare la ecchia seriale, e da quel momento viene utilizzato solo dal gestionale, per passare alla vendita manuale, oppure per dei rapporti, devi uscire dalla modalita' xon-xoff e passare alla modalita' utente, il protocollo Custom ti permette di lavorare con la cassa e anche con il tastierino collegato per eventuali letture e rapporti, oppure vendite
 
Last edited:

Xfood

Well-Known Member
Licensed User
Non mi pare una cosa semplice come fosse una stampante.
non e' una stampante, ha un "linguaggio" interno da rispettare un po come hai fatto tu con le stampanti usb " anche se ancora non lo studiato bene, perche per adesso non mi e' servito"
 

Xfood

Well-Known Member
Licensed User
posso recuperare qualsiasi documento ufficiale, siamo concessionari Custom / System per cui se serve qualcosa di specifico posso procurarlo senza problemi.

la maggiorn parte di chi collega i registratori di cassa utilizza l'interfaccia WEC. che altro non e' che un programmino che si installa sul pc e gli passi un file ascii dello scontrino " piu semplice di gestire xon-xoff direttamente" alla fine lo copiano nella cartella designata e' il programa invia i dati al MF, fanno cosi il 90 % dei software delle farmacie, Ferramenta ecc.

tempo fa "negli anni 90" ho fatto un programmino che comunicava in xon-off direttamente, provo a cercarlo
 

Xfood

Well-Known Member
Licensed User
per il protocollo custom, sfruttando una dll di custom ,con questo codice permette di stampare uno scontrino
( chiaramente su pc con windows, il codice e' del buon vecchio fox, ma i comandi si capiscono lo stesso)
( magari fa comodo al nostro caro @Lello1964 ) ;)
 

Attachments

  • scontrino_custom.txt
    18 KB · Views: 56

Star-Dust

Expert
Licensed User
non e' una stampante, ha un "linguaggio" interno da rispettare un po come hai fatto tu con le stampanti usb " anche se ancora non lo studiato bene, perche per adesso non mi e' servito"
Veramente no 😂 😂 😂 😂
 

Star-Dust

Expert
Licensed User
per il protocollo custom, sfruttando una dll di custom ,con questo codice permette di stampare uno scontrino
( chiaramente su pc con windows, il codice e' del buon vecchio fox, ma i comandi si capiscono lo stesso)
( magari fa comodo al nostro caro @Lello1964 ) ;)
C'è una dll richiamata da Fox per comunicare con custom?
 

Xfood

Well-Known Member
Licensed User
scuami, non ho capito la domanda...
bisogna istanziare questi metodi / Funzioni contenute nell dll di Custom [ CeFdll ]
Declare integer CEFOpenEthCustom in CeFdll ;
STRING dwIp, INTEGER dwPort, INTEGER @lpdwSysError

Declare integer CEFWriteCustom in CeFdll ;
STRING textcmd, INTEGER @lpdwSysError

Declare integer CEFReadCustom in CeFdll ;
STRING @RetData, INTEGER @pdwByteRead, INTEGER @lpdwSysError

Declare integer CEFGetVersion in CeFdll ;
INTEGER @RetData, INTEGER @lpdwSysError

Declare integer CEFClose in CeFdll ;
INTEGER @lpdwSysError

' *** Apertura porta ethernet per scontrino
lnRetErr = CEFOpenEthCustom( IndirizzoIp, Porta, @lnErr )

IF lnRetErr <> 0 then
log( lnRetErr &"CEFOpenCustom() - ScontrinoFiscale" )
RETURN False
ENDIF
lcComando = "3301"
lcTipo = "1"
lcQuanti = PADL( "1", 6, "0" ) + "000"
lcReparto = "001"
lcLunDes = "22"
lcDescri = PADR( "Coca Cola cl 33", 22, " " )
lcImporto = PADL( 120, 9, "0" )
lcIvaRt = "22"
lcStringa = lcComando + lcTipo + lcQuanti + lcReparto + lcLunDes + lcDescri + lcImporto + lcIvaRt

lnRetErr = CEFWriteCustom( lcStringa, @lnErr )
IF lnRetErr <> 0 then
log(( lnRetErr & "CEFWriteCustom() ---- " & lcStringa )
lnErr = 1
return false
ENDIF
 

Star-Dust

Expert
Licensed User
per il protocollo custom, sfruttando una dll di custom
La domanda chiede.... stai dicendo che usa una dll per inviare comandi custom?
 

Star-Dust

Expert
Licensed User

Xfood

Well-Known Member
Licensed User
World Endurance Championship?

oggi che ti sei mangiato? stai dicendo troppe cose strane
veramente sto per andare a pranzare adesso, il WEC, e' un programmino rilasciato da Custom,Ditron che tutti gli "addetti del settore conoscono" serve come dicevo qualche post fa, a leggere un file txt formattato ed inviare i dati al registratore di cassa in modalita' Xon-xOff per semplificare l'emissione dello scontrino.
 

Star-Dust

Expert
Licensed User
ok. Poi mi rileggo tutto con calma.

Comunque io non sono addetto del settore. Avevo in amico che lavorava per la Sicily Data System circa 10 anni fa, ma mi sembra poco per capirne.

Non è che hai un misuratore fiscale per fare delle prove? 😂 😂 😂
Ma poi gli scontrini si possono annullare? C'è una modalità test sviluppatore alle prime armi?
 
Last edited:

Xfood

Well-Known Member
Licensed User
Basta non fiscalizzarlo, ce la modalita'demo.
Che ti stampa le righe con ???? Iniziali e finali.
 

Xfood

Well-Known Member
Licensed User
ok. Poi mi rileggo tutto con calma.

Comunque io non sono addetto del settore. Avevo in amico che lavorava per la Sicily Data System circa 10 anni fa, ma mi sembra poco per capirne.

Non è che hai un misuratore fiscale per fare delle prove? 😂 😂 😂
Ma poi gli scontrini si possono annullare? C'è una modalità test sviluppatore alle prime armi?
Io conosco a tutti in Sicily Data Systems.
E collaboriamo spesso.
Da C.Torcitto, F.Barbagallo. ecc.
 

Star-Dust

Expert
Licensed User
Io conosco a tutti in Sicily Data Systems.
E collaboriamo spesso.
Da C.Torcitto, F.Barbagallo. ecc.
Quelli che conoscevo io è passato a miglior vita anni fa
 
Top