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

    Lettura stringa ASCII da porta seriale

    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)

  2. #2
    Utente di HTML.it L'avatar di U235
    Registrato dal
    Mar 2006
    Messaggi
    1,521

    Re: Lettura stringa ASCII da porta seriale

    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.).


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 © 2024 vBulletin Solutions, Inc. All rights reserved.