Receiving serial data - gb.net

Post

Posted
Rating:
#1 (In Topic #1196)
Trainee
PeteMarsh is in the usergroup ‘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
Banned
 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
Banned
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.