Newsgroup: it.comp.lang.vo-clipper
Titolo: pos

Ciao a tutti,
ho la necessita' di interfacciare un programma ad un registratore di cassa.
Non so come si faccia, o meglio o provato a capirlo, ma l'assistenza non mi
da grossi aiuti.
Il registratore e' il DS (anker) rs-40.
Qualcuno ha avuto a che fare con tale registratore? Ho fatto un tentativo
con le ca-tools, ma .... meglio sorvolare sull'esito.
Ciao
Marco

Marco ha scritto:

La prima cosa che devi fare č procurarti la documentazione.
Normalmente i registratori di cassa si pilotano con la seriale, la
comunicazione puň essere monodirezionale o bidirezionale, il primo
caso č piů semplice e normalmente sufficiente, praticamente si tratta
usare il RCF come se fosse una stampante seriale.
Io normalmente scrivo un file di testo con i dati da inviare e poi
chiamo da Clipper (o quello che vuoi) un programma scritto per
GWBASIC o QBASIC che esegue la stampa su RCF, in questo modo posso
configurare vari modelli senza modificare il programma.
Per quando riguarda il modello, io l'Ankor non lo conosco, ma
ho interfacciato 2 o 3 modelli. Quelli della Hugin hanno un 
protocollo molto semplice, infatti una volta stabilita la 
comunicazione si emula la tastiera, il manuale contiene alcuni
esempi scritti in gwbasic che aiutano molto. Altro protocollo
abbastanza semplice č quello di Sarema, vengono forniti eccellenti
esempi in VB ed alcune DLL, invece il protocollo di Olivetti
č abbastanza complicato, richiede trasformazioni di stringhe
in esadecimale o cose del genere.
Ciao...
Claudio Driussi
http://www.swit.net/csoft
mailto:
cldr...@swit.net

 comunicazione si emula la tastiera
potresti fornire qualche informazioni ulteriore... per le seriali non ci
sono problemi nella configurazione ma per la simulazione della tastiera non
ho idea trattandosi di una tastiera non standard.

 ho idea trattandosi di una tastiera non standard.
Sul manuale di qui sopra trovi tutto, comunque questo è
un semplice programmino:
10 OPEN "COM2:2400,E,7,1,CS,DS" AS#1
20 GOSUB 100
30 X$ = "KR10R1 COCA COLA" :       PRINT# 1, X$ : GOSUB 100
50 X$ = "KRT1" :                   PRINT# 1, X$ : GOSUB 100
80 PRINT #1, "KX794ST"
90 CLOSE:SYSTEM
100 PRINT X$
105 LINE INPUT #1,A$ : IF A$ <> CHR$(4) THEN 105
110 RETURN
Non ricordo bene, ma mi pare che i comandi inizino con KR, KX o altro
a seconda del tipo. 
a riga 30 dopo KR viene scritto l'importo (10) seguito dal reparto (R1)
e da una breve descrizione.
a riga 50 dopo KR viene inviato T1 che corrisponde al tasto totale.
In quest'altro esempio vengono inviati alcuni comandi:
1  TIMEOUT = 0.5
10 OPEN "COM2:2400,E,7,1,CS,DS" AS#1
20 X$ = "KX0T1" :           PRINT# 1, X$ : GOSUB 1300 ' STAMPA TOTALE
30 X$ = "KXRF"  :           PRINT# 1, X$ : GOSUB 1300 ' AVANZA SCONTRINO
40 X$ = "KXJF"  :           PRINT# 1, X$ : GOSUB 1300 ' AVANZA GIORNALE
50 X$ = "KXCL"  :           PRINT# 1, X$ : GOSUB 1300 ' TASTO CANCELLA
60 X$ = "KXAC"  :           PRINT# 1, X$ : GOSUB 1300 ' APERTURA CASSA
90 CLOSE:SYSTEM
1300 '
1301 ' -----------   STAMPA SU REGISTRATORE DI CASSA HUGIN TWISTER  -----------
1302 '
1320 PRINT X$
1330 PRINT#1,X$
1332 INIT = TIMER
1333 WHILE ((INIT + TIMEOUT) > TIMER) : WEND
1340 LINE INPUT #1,A$ : IF A$ <> CHR$(4) THEN 1340
1350 RETURN


2k thanks...
pensavo peggio, e' quasi come stampare su una stampante seriale.

 ha scritto nel messaggio
news:3D327F92...@libero.it...



 > 110 RETURN
Ciao...


 non dovrebbe essere così difficile da tradurre se conosci le


 non dovrebbe essere così difficile da tradurre se conosci le


riceverli?
Non conosco le catools, ma come per inviare hai a disposizione la
funzione Com_Send è molto probabile che per ricevere vi sia una
funzione dal nome Com_Receive.
E' senz'altro bene che tu riceva le risposte dal registratore, perchè,
a seconda della risposta, sai se tutto stat procedendo bene, o se devi
rinviare la stringa, o se vi è "indisponibilità" dall'altra parte.
ciao

 ha scritto nel messaggio
news:kf59jus6ic9jcaha5...@4ax.com...


lo scontrino non viene completato: in questo caso come mi comporto ?
non lo so, potresti dover inviare una stringa o un carattere che
segnala l'abort della trasmissione, per poi riprendere subito dopo.
Purtoppo dipende dal caso specifico, o meglio dalla "cassa"
specifica...
ciao

    Com_Close(1)


Con le catools feci un tentativo di questo tipo
Non conosco la CA-Tools, ma dubito che possa gestire il protocollo
Xon-Xoff in maniera trasparente.
Lo stesso vale per il comando TYPE del DOS.
ciao, acc.   
a...@libero.it