I have been able to set up a serial port, set the baud rate etc, use send to output data, and verified on oscilloscope. All very simple in the end. I’m now looking to read a reply. With gb.net enabled I can see there is an event called read but examples of its use don’t seem to be event driven :
'******** Incoming serial data ********
PUBLIC SUB SComm _Read()
SLEEP 0.025
TRY READ #SComm , Rx, Lof(SComm )
IF ERROR THEN
Message.info(No received data!
End if
I’m used to the oncomm event in vb which is triggered when a serial port receives data - having to poll the port on the off chance that data arrives doesn’t seem right - does anyone know if there is an equivalent of oncomm? - thanks in anticipation.
Receiving serial data - gb.net
-
- Legend
- Posts: 2110
- Joined: Thu Jul 23, 2020 5:20 pm
- Location: Isle of Wight
Re: Receiving serial data - gb.net
Looks like serial port inherits Stream so usual Stream methods should work.
The event should require that the object is attached either when creating or after.
hSerialPort = New SerialPort ( ) As "SComm"
or ..
hSerialPort = New SerialPort ( )
Object.Attach(hSerialPort, Me, "SComm")
then your SComm_Read() event should work.
Please post some example code or a small application showing the problem if you still need help
The event should require that the object is attached either when creating or after.
hSerialPort = New SerialPort ( ) As "SComm"
or ..
hSerialPort = New SerialPort ( )
Object.Attach(hSerialPort, Me, "SComm")
then your SComm_Read() event should work.
Please post some example code or a small application showing the problem if you still need help
Re: Receiving serial data - gb.net
Uhmmmm...that is, are you looking for an Event that will be raised only when the serial port receives data ?
Europaeus sum !
Amare memorentes atque deflentes ad mortem silenter labimur.
Amare memorentes atque deflentes ad mortem silenter labimur.
-
- Legend
- Posts: 2110
- Joined: Thu Jul 23, 2020 5:20 pm
- Location: Isle of Wight
Re: Receiving serial data - gb.net
What is this line... ?
Rx = READ #SComm , Lof(SComm)
If Rx is your String I think should be..TRY READ #SComm , Rx, Lof(SComm )
Rx = READ #SComm , Lof(SComm)
Public Sub SComm _Read()
Dim Rx as String
Rx = Read #SComm , Lof(SComm)
If not Trim(Rx) Then
Message.info("No received data!")
Return
Endif
' Do whatever with Rx data
ProcessCommString(Rx)
End