Autore Topic: Comunicare sulla seriale  (Letto 1309 volte)

Offline nino83

  • Gamberetto
  • *
  • Post: 35
    • Mostra profilo
Comunicare sulla seriale
« il: 12 Ottobre 2021, 12:13:11 »
Salve,
ho il problema di dover comunicare con un arduino tramite porta seriale.
Ho trovato vari articoletti, ma il tutto è molto frammentato e sconnesso per me.

Qualcuno ha da suggerire una guida, un tutorial, che spieghi tutti i vari step e i passaggi da compiere?

grazie

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.158
  • Tonno verde
    • Mostra profilo
Re:Comunicare sulla seriale
« Risposta #1 il: 12 Ottobre 2021, 12:26:15 »
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline nino83

  • Gamberetto
  • *
  • Post: 35
    • Mostra profilo
Re:Comunicare sulla seriale
« Risposta #2 il: 12 Ottobre 2021, 12:47:43 »
penso di aver già visionato quella pagina (ne ho viste tante).

Starei cercando proprio una guida, anche generica, che spieghi COSA voglia dire comunicare sulla seriale, ecc (compreso i concetti di stream, flush, ecc... tutte cose che NON mi sono affatto chiare).


Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.158
  • Tonno verde
    • Mostra profilo
Re:Comunicare sulla seriale
« Risposta #3 il: 12 Ottobre 2021, 13:41:21 »
penso di aver già visionato quella pagina (ne ho viste tante).

Starei cercando proprio una guida, anche generica, che spieghi COSA voglia dire comunicare sulla seriale, ecc (compreso i concetti di stream, flush, ecc... tutte cose che NON mi sono affatto chiare).

Che io sappia una guida in tal senso non esiste, ma di questo aspetto della programmazione sono digiuno, potresti iniziare a leggere questo:
http://gambaswiki.org/wiki/comp/gb/stream?l=it
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.316
  • Ne mors quidem nos iunget
    • Mostra profilo
Re:Comunicare sulla seriale
« Risposta #4 il: 12 Ottobre 2021, 15:26:22 »
Ho trovato vari articoletti...
Hai visto anche le pagine della nostra WIKI sull'argomento ?
« 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 nino83

  • Gamberetto
  • *
  • Post: 35
    • Mostra profilo
Re:Comunicare sulla seriale
« Risposta #5 il: 12 Ottobre 2021, 16:05:23 »
credo di sì... ma a questo punto ho il dubbio!  ;D

perchè per un argomento del genere mi aspetterei un po' di più...

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.316
  • Ne mors quidem nos iunget
    • Mostra profilo
Re:Comunicare sulla seriale
« Risposta #6 il: 12 Ottobre 2021, 16:18:01 »
perchè per un argomento del genere mi aspetterei un po' di più...
Devi sempre tenere conto che ogni pagina della wiki è fatta da qualcuno che volontariamente e gratuitamente intende condividere le proprie conoscenze su un argomento.
« 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 vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.316
  • Ne mors quidem nos iunget
    • Mostra profilo
« Ultima modifica: 12 Ottobre 2021, 16:54:02 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 vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.316
  • Ne mors quidem nos iunget
    • Mostra profilo
« Ultima modifica: 12 Ottobre 2021, 16:50:44 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 nino83

  • Gamberetto
  • *
  • Post: 35
    • Mostra profilo
Re:Comunicare sulla seriale
« Risposta #9 il: 12 Ottobre 2021, 16:52:12 »
Citazione
Devi sempre tenere conto che ogni pagina della wiki è fatta da qualcuno che volontariamente e gratuitamente intende condividere le proprie conoscenze su un argomento.

Ma assolutamente, lo so. Ero solo stupito, perchè ritengo l'argomento "non di nicchia" (per quanto personalmente detesti questo tipo di programmazione "a basso livello")  ;D

Guarderò la serie di link che mi hai postato. Grazie mille

Offline nino83

  • Gamberetto
  • *
  • Post: 35
    • Mostra profilo
Re:Comunicare sulla seriale
« Risposta #10 il: 12 Ottobre 2021, 16:55:20 »
avevo già visto questi link

Citazione
Sulle "Porte":
   https://www.gambas-it.org/wiki/index.php?title=Guide_della_comunit%C3%A0#Porte

questa diciamo non fa al caso mio

Citazione
Su "Arduino":
   https://www.gambas-it.org/wiki/index.php?title=Guide_della_comunit%C3%A0#Gambas_e_Arduino

Questo sembrava interessante ma fa un po' casino. Perchè mi sembra di capire che modifica un esempio (che non riesco ad ottenere).  E, in ogni caso, tutte istruzioni già "provate" grosso modo.

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.316
  • Ne mors quidem nos iunget
    • Mostra profilo
Re:Comunicare sulla seriale
« Risposta #11 il: 12 Ottobre 2021, 17:03:35 »
Forse :-\ dovresti porre una domanda specifica alla volta, passo-passo.
(Speriamo che qualcuno ben più esperto di me al riguardo intervenga.)
« 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 nino83

  • Gamberetto
  • *
  • Post: 35
    • Mostra profilo
Re:Comunicare sulla seriale
« Risposta #12 il: 12 Ottobre 2021, 17:08:19 »
Citazione
Forse :-\ dovresti porre una domanda specifica alla volta, passo-passo.
(Speriamo che qualcuno ben più esperto di me al riguardo intervenga.)

e il problema è appunto quello: quale domanda? perchè a questo punto forse richiedo di capirci un po' di più.
Ho un intero sistema, complesso, ereditato su piattaforma Xojo: anche lì, eseguendo su linux, ho dei problemi. Di fatto, lo stesso che ho su gambas:

se eseguo direttamente il codice, non funziona.  Se metto un breakpoint prima, ed eseguo passo-passo, sento il rumore corrispondente a un hub che si accende (la mia istruzione HUB_ON).

Quindi son spiazzato.  Forse dovrei capire tutto ciò che sta dietro, in linea di principio, alla comunicazione sulla seriale (tutti concetti a me poco chiari... si parla di buffer... iniziare la "bufferizzazione", scrivere, poi fare il "send"... diciamo non ci sto capendo molto).

In tutto ciò mi trovo su linux, per me una foresta sconosciuta e irta di pericoli :-D  pericoli dei quali  probabilmente non ho nemmeno idea e che non riesco ad immaginare!

Offline kicco

  • Senatore Gambero
  • ******
  • Post: 1.703
  • So dove andare, seguitemi, ci perderemo insieme!
    • Mostra profilo
Re:Comunicare sulla seriale
« Risposta #13 il: 13 Ottobre 2021, 15:39:08 »
Forse :-\ dovresti porre una domanda specifica alla volta, passo-passo.
(Speriamo che qualcuno ben più esperto di me al riguardo intervenga.)
Sì lo spero anch'io...
Per intanto ben venuto nino83.
Io o giocato un po' con le seriali, se posti del codice posso provare ad aiutarti, perché così faccio fatica a immaginare cosa non va.
Tieni presente, ma probabilmente già lo sai, la gestione delle seriali su Linux è differente da quella  di Windows. Se già lo hai precisato nei post precedenti,  perdonami.
Partiamo dall'HW. cosa devi collegare?
 :ciao:
Chi ha paura muore ogni giorno, chi non ha paura muore una volta sola. (Paolo Borsellino)

Offline nino83

  • Gamberetto
  • *
  • Post: 35
    • Mostra profilo
Re:Comunicare sulla seriale
« Risposta #14 il: 13 Ottobre 2021, 16:07:58 »
Citazione
Per intanto ben venuto nino83.

grazie!

Citazione
Io ho giocato un po' con le seriali, se posti del codice posso provare ad aiutarti, perché così faccio fatica a immaginare cosa non va.

ok, ci provo... ad esempio:

Codice: [Seleziona]
Private SerialPort1 As SerialPort

Public Sub Form_Open()
  With SerialPort1 = New SerialPort As "portaseriale"
    .PortName = "/dev/ttyACM0"
    .Speed = 9600
    .Parity = 0
    .DataBits = 8
    .StopBits = 1
    .FlowControl = SerialPort.None
  End With
End


Public Sub btnON_Click()
  SerialPort1.Open()
  If SerialPort1.Status = Net.Active Then
    SerialPort1.Begin
    Print #SerialPort1, "HUB_ON"; Chr$(13); Chr$(10)
    Sleep 0.1
    SerialPort1.Send
    Sleep 1.0
    Wait
    SerialPort1.Close
  Endif
End

Public Sub btnOFF_Click()
  SerialPort1.Open()
  If SerialPort1.Status = Net.Active Then
    SerialPort1.Begin
    Print #SerialPort1, "HUB_OFF"; Chr$(13); Chr$(10)
    Sleep 0.1
    SerialPort1.Send
    Sleep 1.0
    SerialPort1.Close
  Endif
End


Public Sub Form_Close()
  If SerialPort1.Status = Net.Active Then SerialPort1.Close
End


Citazione
Tieni presente, ma probabilmente già lo sai, la gestione delle seriali su Linux è differente da quella  di Windows.


Diciamo sto provando a capirlo adesso.  Già su windows non è che avessi tutte queste conoscenze sul tema.  Su linux non ho conoscenza praticamente di nulla!  ???

Citazione
Partiamo dall'HW. cosa devi collegare?

un Arduino.