Newsgroup: it.comp.lang.visual-basic
Titolo: protocollo ack nack

Ciao a tutti, devo implementare il protocollo in oggetto per una
trasmissione dati tra pc e dispositivo tramite seriale.
Mi hanno detto che devo inviare il valore esadecimale ack in caso di
ricezione ok e nack in caso di ricezione ko.
Di solito invio stringhe alla seriale, come faccio ad inviare l'esadecimale
ack e nack
Grazie, AEOM

AEOM wrote:
<snip>
Ciao,
Quelli che hai elencato sembrano piu' comandi inviati da uno
stack TCP che da un protocollo RS232.
Consiglio caldamente una ricerca su google.
Andrea



Il 24/11/2003 10.47, AEOM scrisse:

chr(6)
chr(15)
ciao
	maxx
-- 
NOSPAM: Rimuovere i trattini dallo username!
Cut hyphens from my username!

"AEOM" <in...@FUCK-LAMER.com> ha scritto nel messaggio
news:oskwb.83239$hV.32...@news2.tin.it...

Stai parlando si protocollo ASTM... vero?
Non so se ti può essere utile ma io per mandare quei caratteri (utilizzando
mscomm32.ocx)  in tanto apro la porta di comunicazione :-)
e poi con il comando mscomm1.output gli madno i caratteri...cioè
MsComm1.output = chr$(6)
il 6 sta per ACK (acknoleg..)
ti scrivo una tabellina  dei caratteri da mettere al posto del 6
1 = SOH
2 = STX (Start of  Text)
3 = ETX (End of  Text)
4 = EOT (End of Trasmission)
5 = ENQ (Enquiry - si solito si usa per iniziare la comunicazione)
6 = ACK (Acknolegd)
21 = NACK (Not Acknolegd)
e poi ci sono altri caratteri come il CR e Line feed..
Prova e fammi sapere ...... !
Saluti Antonio.
PS: Come già accennato in altri post ribadisco che non sono un esperto di VB
!!

 Andrea
ciaociao

 ciaociao
Ciao,
Andrea

Il 24/11/2003 12.06, The DeerBear scrisse:

Per le comunicazioni seriali molto spesso ogni produttore si inventa un 
protocollo di comunicazione.
Un misuratore fiscale con cui ho lavorato prevede che lo scambio di 
informazioni con il pc sia del tipo:
-Invio stringa di comando con carattere di inizio comando, lunghezza 
comando, comando, carattere di fine comando
-Il ricevente se riceve il comando correttamente invia ACK altrimenti 
invia NAK
Con un altro modello la cassa inviava ogni secondo un "messaggio" a cui 
il pc deve rispondere con ACK o con ACK seguito da un comando.
Per concludere: bisogna assolutamente procurarsi e studiare il 
protocollo di comunicazione specifico che, essendo quasi sempre di tipo 
proprietario, difficilmente si riuscira' a trovare con google.
Ma tentar non nuoce...
ciao
	maxx
P.S. ACK e NAK (cosi' come i codic ASCII sino a 20h) sono stati 
introdotti proprio per le comunicazioni tramite seriale!



Beh, diciamo che ogni tipologia di dispositivo (leggasi "il costruttore"),
decide quale protocollo utilizzare per la comunicazione fra il dispositivo e
l'host.
Generalmente ci sono 2 tipi di metodi per il controllo della comunicazione:
hardware e software.
Nel primo caso vengono utilizzati direttamente i segnali della porta
(RTS/CTS, Xon/Xoff ecc.), nel secondo caso dipende appunto dal dispositivo,
altre volte sono implementati tutti e due.
Un esempio di comunicazione dove l'host deve passare un comando potrebbe
essere:
1) Host invia la richesta di trasmissione (enquire) e attende la risposta
dal dispositivo
2) Dispositivo risponde che va bene (ACK)
3) Host riceve l'ack, invia il comando e attende la conferma di avvenuta
ricezione
4) Dispositivo riceve il comando e se e corretto risponde con un ack,
altrimenti nack
5) Host riceve la risposta e se è un ack tutto a posto e fine della
trasmissione, se è un nack ripete l'invio del comando N volte fino a che non
riceve un ack o viene superato il numero massimo di tentativi previsto nel
protocollo
spero di essere stato spiegato :)
ciaociao