Originariamente inviato da gieffe74
Ciao a tutti,
premetto che ho iniziato da qualche giorno a muovermi su VB 2010 express e ho scritto un codice per leggere ed inviare dati alla porta seriale usando la classe serialport.
La macchina a cui sono collegato funziona così:
1)invia al PC un "ENQ" (Ascii 5 decimale) per comunicare che è pronta
2)attende di ricevere un "ACK" (Ascii 6 decimale) prima di inviare la stringa
3) Ricevuto l'ack invia la stringa formattata come: STX .....stringa dati....ETX sempre in codice ascii
riesco a ricevere l'ENQ usando serialport.readchar() e ad inviare l'Ack con serialport.write()
ma non riesco a leggere tutta la stringa ASCII ad esempio con .readexisting o.readline. Potete aiutarmi?
nota: se uso readchar() ottengo il primo carattere della trasmissione, cioè 2 (=STX)
Ciao, come prima cosa ti consiglio di postare a corredo sempre uno stralcio di codice, giusto per capire di cosa si parla... comunque per leggere con ReadLine è necessario che ci sia impostato un carattere di newLine nella seriale (nel caso non sia quello di default), quello indica appunto una nuova linea. inoltre devi controllare che i due comunichino alla stessa velocità ( e altri paramentri) detto questo, bisogna vedere come leggi i caratteri, nel senso che spesso si usa l'evento di ricezione, e non sempre è performante come ci si aspetterebbe... poi se usi readchar, devi ciclare finchè non hai letto tutti i caratteri disponibili.
Il discorso si basa anche su quello che è il comportamento dell'altra macchina (impostazioni e setaggi tipo timeout e velocità ecc.).
![]()