Scusa ... ma non comprendo il problema ...
Come ti ho detto prima, il timer non c'entra.
C'e' l'evento di ricezione del controllo ... utilizza quello per aggiornare i dati che ti vengono inviati. Nulla di piu'.
Scusa ... ma non comprendo il problema ...
Come ti ho detto prima, il timer non c'entra.
C'e' l'evento di ricezione del controllo ... utilizza quello per aggiornare i dati che ti vengono inviati. Nulla di piu'.
No MP tecnici (non rispondo nemmeno!), usa il forum.
tu dici questo??Originariamente inviato da oregon
Scusa ... ma non comprendo il problema ...
Come ti ho detto prima, il timer non c'entra.
C'e' l'evento di ricezione del controllo ... utilizza quello per aggiornare i dati che ti vengono inviati. Nulla di piu'.
Private Sub MSComm1_OnComm()
lo uso, solo che non me li trascrive sempre nelle coordinate... suppongo sia perchè salvo la ricezione in una variabile, e mentre elabora i dati per elaborare la stringa questa venga sovrascritta.
Certo ...Originariamente inviato da morocarlo
tu dici questo??
Private Sub MSComm1_OnComm()
Non so cosa hai scritto (si dovrebbe vedere il codice), ne' cosa trasmette il tuo device (non hai indicato marca/modello), ne' cosa vuoi ottenere tra tutto quello che invia (non lo hai detto) ... insomma, mi mancano molte informazioni per dirti qualcosa in piu' ...lo uso, solo che non me li trascrive sempre nelle coordinate... suppongo sia perchè salvo la ricezione in una variabile, e mentre elabora i dati per elaborare la stringa questa venga sovrascritta.
No MP tecnici (non rispondo nemmeno!), usa il forum.
Originariamente inviato da morocarlo
tu dici questo??
Private Sub MSComm1_OnComm()
lo uso, solo che non me li trascrive sempre nelle coordinate... suppongo sia perchè salvo la ricezione in una variabile, e mentre elabora i dati per elaborare la stringa questa venga sovrascritta.
dovresti anche controllare quando è scaturito l'evento
ad ogni byte scritto
ad ogni carattere di escape trovato
alla saturazione del buffer
alla ricezione di una linea ecc.
se ad esempio avviene ad ogni carattere devi gestire i dati attendendo un qualche carattere di escape
Originariamente inviato da oregon
Certo ...
Non so cosa hai scritto (si dovrebbe vedere il codice), ne' cosa trasmette il tuo device (non hai indicato marca/modello), ne' cosa vuoi ottenere tra tutto quello che invia (non lo hai detto) ... insomma, mi mancano molte informazioni per dirti qualcosa in piu' ...
Private Sub Form_Load()
MSComm1.PortOpen = True
End Sub
Private Sub MSComm1_OnComm()
Data = MSComm1.Input
Text6.Text = Text6.Text + Data
If Mid(Data, 1, 7) = "$GPGLL," Then
Text1.Text = Mid(Data, 8, 10)
Text2.Text = Mid(Data, 19, 1)
Text3.Text = Mid(Data, 21, 11)
Text4.Text = Mid(Data, 33, 1)
End If
End Sub
questo è il codice, a me interessano solo le coordinate.. nulla di più, ho impostato la velocità a 4800 e Rtreadshot a 1... e vedo sulla text6 tutti i dati ricevuti correttamente, ma sulle altre a volte vedo, altre no...non capisco come mai...
Quando controlli la prima parte della stringa ($GPGLL) non e' detto che la seriale abbia gia' ricevuto tutta la riga completa, quindi e' possibile che tu non mostri nulla nelle varie textbox seguenti.e vedo sulla text6 tutti i dati ricevuti correttamente, ma sulle altre a volte vedo, altre no...non capisco come mai...
Nell'evento devi attendere non solo che la prima parte sia quella giusta ($GPGLL) ma che sia ricevuta tutta la stringa, fino al carattere finale (che penso sia un line feed o un return).
Ti ripeto ... se non dici la marca/modello non posso conoscere le specifiche ...
No MP tecnici (non rispondo nemmeno!), usa il forum.
la chiedo al proprietario del gps visto che non la ho sottomano... ti faccio sapereOriginariamente inviato da oregon
Quando controlli la prima parte della stringa ($GPGLL) non e' detto che la seriale abbia gia' ricevuto tutta la riga completa, quindi e' possibile che tu non mostri nulla nelle varie textbox seguenti.
Nell'evento devi attendere non solo che la prima parte sia quella giusta ($GPGLL) ma che sia ricevuta tutta la stringa, fino al carattere finale (che penso sia un line feed o un return).
Ti ripeto ... se non dici la marca/modello non posso conoscere le specifiche ...
edit: finalmente mi ha risposto: navilock bt451![]()
scusa se mi reintrometto...Originariamente inviato da morocarlo
la chiedo al proprietario del gps visto che non la ho sottomano... ti faccio sapere
edit: finalmente mi ha risposto: navilock bt451![]()
ma non fai prima ad aprire hypertrm e vedere l'ultimo carattere prima che si ripetano i dati? quello è il carattere di escape, oppure p'rndi semplicemente la $ come separatore, e tutto cio' che c'e' prima tranne la prima volta e dato utile....
praticamente mi manda varie stringe ognuna con delle informazioni diverse... del tipoOriginariamente inviato da U235
scusa se mi reintrometto...
ma non fai prima ad aprire hypertrm e vedere l'ultimo carattere prima che si ripetano i dati? quello è il carattere di escape, oppure p'rndi semplicemente la $ come separatore, e tutto cio' che c'e' prima tranne la prima volta e dato utile....
$GCSV 125,465
$GVRS 173.1,47612
Ognuna di queste contiene diverse informazioni, e mi ripete il ciclo tre volte al secondo..
Certo, invia tutte le frasi standard "NMEA 0183".
Non ho trovato molto su quel device, ma sicuramente il tuo problema sta nel fatto che devi attendere nell'evento il completamento della ricezione della stringa che ti serve.
Quindi non basta fare quella If ... bisogna controllare che la stringa sia completamente ricevuta.
Ovviamente, senza avere il device a disposizione, non posso fare molto ...
Per capire meglio cosa fare, ti consiglio di trasformare il dato ricevuto dalla seriale, nel corrispondente testo esadecimale e di scriverlo su un file di testo. In seguito, dall'esame di tale file si potrebbe definire - una volta per tutte - cosa fare.
No MP tecnici (non rispondo nemmeno!), usa il forum.