Gambas-it

Gambas3 => Programmazione => Topic aperto da: fionda08 - 23 Ottobre 2014, 17:49:21

Titolo: inviare dati alla seriale con serialport
Inserito da: fionda08 - 23 Ottobre 2014, 17:49:21
Salve a tutti mi presento sono fionda08 e sono nuovo, premetto che sto iniziando ora a programmare con Gambas per una mia scoperta di recente. fino a 10 giorni fa usavo Visual basic, e sta cosa dava molto fastido.
Comunque pongo il mio problema, vorrei inviare dei dati alla seriale (1 o 0) che verra letto successivamente da arduino.
Io ho inserito una serial port nel form e in un bottone ho scritto
Serialport1.write ("1")
e nell altro ho inserito
Serialport1.write ("0")
.
naturalmente nel form ho scritto
Serialport1.open() e inizializzato la seriale a 9600baud e chiamata dev/ttyACM0

ma mi da errore nel codice che invia 1 e 0
Titolo: Re: inviare dati alla seriale con serialport
Inserito da: fionda08 - 23 Ottobre 2014, 19:56:38
Codice: [Seleziona]
Public Sub Form_Open()
StatoSeriale.Background = Color.Red
SerialPort1.Open
End

Public Sub AccendiBottone_Click()

  StatoBottone.Text = "ON"
  StatoBottone.Background = Color.Green
  SerialPort1.Write = "1"

End

Public Sub SpegniBottone_Click()

  StatoBottone.Text = "OFF"
  StatoBottone.Background = Color.Red
 SerialPort1.Write = "0"
End

Public Sub AvvioSeriale_Click()

 
  StatoSeriale.Background = Color.Green
  StatoBottone.Enabled = True
End

un errore è cannot open serial port
e l'altro è unknow symbol write serial port
Titolo: Re: inviare dati alla seriale con serialport
Inserito da: vuott - 23 Ottobre 2014, 19:58:42
e l'altro è unknow symbol write serial port

Relativamente a questo errore, effettivamente .Write non è un metodo della Classe SerialPort.
Dovresti fare così:
Codice: gambas [Seleziona]
Write #SerialPort1, "1"
Titolo: Re: inviare dati alla seriale con serialport
Inserito da: fionda08 - 23 Ottobre 2014, 20:01:58
ok ma quando apro la porta seriale
serialport1.open
mi dice
Codice: [Seleziona]
cannot open serialport (5)
Titolo: Re: inviare dati alla seriale con serialport
Inserito da: fionda08 - 23 Ottobre 2014, 20:05:14
ok, dava questo errore perchè scrivevo dev/ttyACM0 invece di /dev/ttyACM0
Titolo: Re: inviare dati alla seriale con serialport
Inserito da: vuott - 23 Ottobre 2014, 20:12:25
ok, dava questo errore perchè scrivevo dev/ttyACM0 invece di /dev/ttyACM0
Altre volte può dare quell'errore, poiché il file-device è protetto, ed in questi casi va eliminata quella protezione.



Quindi hai risolto ?   :)
Titolo: Re: inviare dati alla seriale con serialport
Inserito da: fionda08 - 23 Ottobre 2014, 20:22:42
sisi però ti faccio leggere il codice .
Codice: [Seleziona]
Public Sub _new()

End

Public Sub Form_Open()
StatoBtnSeriale.Background = Color.Red

End





Public Sub AccendiBottone_Click()

  If SerialPort1.Status == Net.Active
  StatoBottone.Text = "ON"
  StatoBottone.Background = Color.Green
  Write #SerialPort1, "1" 
  Else
    Message("porta seriale non abilitata")
Endif 
 

 
   
   
   
   
 

End

Public Sub SpegniBottone_Click()

  If SerialPort1.Status == Net.Active
  StatoBottone.Text = "OFF"
  StatoBottone.Background = Color.Red
  Write #SerialPort1, "0"
  Else
    Message("porta seriale non abilitata")
    Endif
 
 
 
 

End

Public Sub AvvioSeriale_Click()

  If SerialPort1.Status == Net.Inactive
  SerialPort1.Open
  StatoBtnSeriale.Background = Color.Green
  StatoBottone.Enabled = True
  StatoBtnSeriale.text = "Enabled9600Baud"
  Else
    AvvioSeriale.Enabled = False
    Endif
 
 
End


Public Sub SerialPort1_Read()

 

End
Public Sub StatoBtnSeriale_Click()

 

End

ti spiego quando clicco su accendi senza abilitare la seriale mi da il messaggio , ma dopo che abilito la seriale devo cliccare 2 volte su accendi per farlo accendere e non una sola volta come mai?
Titolo: Re: inviare dati alla seriale con serialport
Inserito da: vuott - 23 Ottobre 2014, 21:11:37
ma dopo che abilito la seriale devo cliccare 2 volte su accendi per farlo accendere e non una sola volta come mai?
Suppongo che sia un problema legato ad Arduino.
Io qui non posso aiutarti, perché non c'ho mai lavorato.   :-\
Speriamo che qualche altro amico del forum intervenga per darti la risposta al problema.
Titolo: Re: inviare dati alla seriale con serialport
Inserito da: fsurfing - 24 Ottobre 2014, 20:56:38

io con arduino usavo:

Codice: [Seleziona]
Print #SerialPort1, "1"; Chr$(13); Chr$(10);

Titolo: Re: inviare dati alla seriale con serialport
Inserito da: allegfede - 24 Novembre 2014, 13:43:31
mah suppongo che il codice gambas sia residente su macchina linux che deve dialogare con arduino via collegamento seriale ....

per il problema delle "doppie" attivazioni io controllerei la successioni di seriale aperta/chiusa e lo stato "passo passo" della stessa, magari forzando la chiusura prima di fare una comunicazione.

hai infatti istruzioni SerialPort1.Open ma non vedo SerialPort1.close (non so neanchg se sia necessario, ma a naso ...)