Receiving serial data - gb.net

Post

Posted
Rating:
#1 (In Topic #1196)
Trainee
 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.
Online now: No Back to the top

Post

Posted
Rating:
#2
Guru
BruceSteers is in the usergroup ‘Guru’
 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
Online now: No Back to the top

Post

Posted
Rating:
#3
Regular
vuott is in the usergroup ‘Regular’

PeteMarsh said

I’m used to the oncomm event in vb which is triggered when a serial port receives data
Uhmmmm…that is, are you looking for an Event that will be raised only when the serial port receives data ?

Europaeus sum !

<COLOR color="#FF8000">Amare memorentes atque deflentes ad mortem silenter labimur.</COLOR>
Online now: No Back to the top

Post

Posted
Rating:
#4
Guru
BruceSteers is in the usergroup ‘Guru’
What is this line… ?

TRY READ #SComm , Rx, Lof(SComm )

If Rx is your String I think should be..

Rx = READ #SComm , Lof(SComm)


Code (gambas)

  1.  
  2. Public Sub SComm _Read()
  3.  
  4.   Dim Rx as String
  5.  
  6.   Rx = Read #SComm , Lof(SComm)
  7.   If not Trim(Rx) Then
  8.     Message.info("No received data!")
  9.     Return
  10.   Endif
  11.  
  12. ' Do whatever with Rx data
  13.   ProcessCommString(Rx)
  14.  
  15.  
  16.  
Online now: No Back to the top
1 guest and 0 members have just viewed this.