Autore Topic: Evento read() nel componente Sport  (Letto 896 volte)

Offline akrobaticone

  • Gran Maestro dei Gamberi
  • *****
  • Post: 983
    • Mostra profilo
Evento read() nel componente Sport
« il: 13 Marzo 2013, 12:42:36 »
Non mi è molto chiaro l'esatto funzionamento dell'evento read() nel  componente serial port
avviene quando si riceve il primo carattere?
nel caso la stringa sia molto lunga dovrei mettere un ritardo prima di andare a leggere la porta per permettere l'arrivo di tutta la trasmissione?

"e il naufragar m'è dolce in questo mar"

Offline Picavbg

  • Senatore Gambero
  • ******
  • Post: 1.620
    • Mostra profilo
Re: Evento read() nel componente Sport
« Risposta #1 il: 13 Marzo 2013, 15:52:02 »
Non mi è molto chiaro l'esatto funzionamento dell'evento read() nel  componente serial port
avviene quando si riceve il primo carattere?
nel caso la stringa sia molto lunga dovrei mettere un ritardo prima di andare a leggere la porta per permettere l'arrivo di tutta la trasmissione?
Non ho esperienza su gb.net, però, dato che  la porta seriale fornisce i dati richesti da read un bit dietro l'altro, quindi molto lentamente rispetto alla velocità esecutiva del programma, giustamente, hai bisogno di ritardare l'esecuzione dell'istruzione successiva alla Read, perchè altrimenti il buffer di lettura/scrittura della porta non è ancora totalmente pronto.
L'istruzione che permette tale effetto è Wait
Dovrai naturalmente capire bene il ritardo da imporre per permettere il riempimento del buffer.
 :ciao:
:ciao:

Offline akrobaticone

  • Gran Maestro dei Gamberi
  • *****
  • Post: 983
    • Mostra profilo
Re: Evento read() nel componente Sport
« Risposta #2 il: 13 Marzo 2013, 16:22:19 »
quindi all'interno della read() dovrei mettere wait(tempo) e poi leggere il buffer?
questo però va bene se la lunghezza della stringa che arriva è nota e posso calcolare il tempo che ci vuole affinchè arrivi tutta nel buffer

il componente gb.net da questo punto di vista è un po primitivo...


« Ultima modifica: 13 Marzo 2013, 16:49:22 da Akrobaticone »
"e il naufragar m'è dolce in questo mar"

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.334
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: Evento read() nel componente Sport
« Risposta #3 il: 13 Marzo 2013, 16:49:17 »
...forse con un
 For Read Watch......    :-X
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline akrobaticone

  • Gran Maestro dei Gamberi
  • *****
  • Post: 983
    • Mostra profilo
Re: Evento read() nel componente Sport
« Risposta #4 il: 13 Marzo 2013, 16:53:45 »
...forse con un
 For Read Watch......    :-X
???
"e il naufragar m'è dolce in questo mar"

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.334
  • Ne mors quidem nos iunget
    • Mostra profilo
« Ultima modifica: 13 Marzo 2013, 17:55:52 da vuott »
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline akrobaticone

  • Gran Maestro dei Gamberi
  • *****
  • Post: 983
    • Mostra profilo
Re: Evento read() nel componente Sport
« Risposta #6 il: 13 Marzo 2013, 17:02:37 »
ma li non c'è il
for read watch
"e il naufragar m'è dolce in questo mar"

Offline akrobaticone

  • Gran Maestro dei Gamberi
  • *****
  • Post: 983
    • Mostra profilo
Re: Evento read() nel componente Sport
« Risposta #7 il: 13 Marzo 2013, 17:05:18 »
correggo
c'è ma non lo vedevo

si tratta di leggere il file corrispondente alla porta seriale
In lInux (quasi) tutto è un file, giusto?
"e il naufragar m'è dolce in questo mar"

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.334
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: Evento read() nel componente Sport
« Risposta #8 il: 13 Marzo 2013, 17:08:29 »

si tratta di leggere il file corrispondente alla porta seriale
In lInux (quasi) tutto è un file, giusto?

Io con i "file" ci sguazzo !
      
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline akrobaticone

  • Gran Maestro dei Gamberi
  • *****
  • Post: 983
    • Mostra profilo
Re: Evento read() nel componente Sport
« Risposta #9 il: 13 Marzo 2013, 17:11:45 »
ora si che posso mettere RISOLTO!
con la seriale mi sento un pesce fuor d'acqua....
"e il naufragar m'è dolce in questo mar"

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.334
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: Evento read() nel componente Sport
« Risposta #10 il: 13 Marzo 2013, 17:52:27 »
ora si che posso mettere RISOLTO!
con la seriale mi sento un pesce fuor d'acqua....
...però prima di nuotare fai la verifica con adeguate prove del codice.  :-\
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline akrobaticone

  • Gran Maestro dei Gamberi
  • *****
  • Post: 983
    • Mostra profilo
Re: Evento read() nel componente Sport
« Risposta #11 il: 13 Marzo 2013, 18:08:25 »
era solo una battuta :P
questa sera provo
ho parecchi problemi con un dispositivo modbus che non vuole comunicare, mentre un'altra scheda funziona perfettamente
la stessa scheda con un altro programma sotto win funziona

"e il naufragar m'è dolce in questo mar"

Offline akrobaticone

  • Gran Maestro dei Gamberi
  • *****
  • Post: 983
    • Mostra profilo
Re: Evento read() nel componente Sport
« Risposta #12 il: 14 Marzo 2013, 09:51:06 »
per la cronaca
il problema era l'istruzione PRINT# Sport che agiunge in fondo alla stringa un LF (0A)
ho usato WRITE e tutto ha funzionato

in ogni caso ho capito meglio il funzionamento della seriale
Grazie per le info
"e il naufragar m'è dolce in questo mar"