No NMEASentenceReceived in RELEASE version

there is a little problem of understanding
I have a little well working projekt, running jointly with the debugger VB2010-Express

The problem with the debug-version:
running the program, stand alone without a debugger, the program hangs after executeing the “ProgramStarted()” Code.
After a few minutes there is a “buffer overflow” notification on the TE35 - display

How to get / and transfer a release - version…

I had, well, a more or less similar Problem.
When running with attached debugger my code for TCP/IP communication between PC and board worked fine.
But standalone the connection failed after a few seconds.

The reason:
Without debugger the board works way faster.
In my case an answer with debugger took 200ms, without about 10ms.
My PC sent a lot of requests (as much as possible. With a request every 200ms it (my code) worked fine.
Without Debugger and one request per 10ms the connection on the board side failed and did not answer any more. Not even TCP/IP Ack Messages where sent.
My quick solution was to send only one request evrey 50ms. By this everything was fine.

The conclusion:
The debugger delays a lot of stuff on the board. Without debugger you might run into timing problems like a necessarry delay between two initialization steps.

1 Like

your hint help to find more information of the problem
some status text on the display, a timer to see if the system is hanging…
I renamed the thrad:

when debugging in VB2010 IDE:

  • a few NMEASentenceReceived messages in a second

when running stand alone

  • no NMEASentenceReceived event was handled
  • buffer overflow after 76 seconds

when running connected with the Deployment Tool

  • massage in Deployment Tool before "ProgrammStarded"
    Using mainboard GHI Electronics FEZSpider version 1.0

    Exception System.InvalidOperationException - 0x00000000 (4)


    System.IO.Ports.SerialPort::set_ReadTimeout [IP: 0009]

    Gadgeteer.Interfaces.Serial::ReadLineProcess [IP: 0015]

Uncaught exception

  • no NMEASentenceReceived event was handled
  • buffer overflow after 76 seconds
  • (same behavior GPS connected to slot 4 / 9

show us an image of your Gadgeteer designer, and show us a simple code example that replicates this. seems to me that you have a coding problem that is causing the exception that you need to work around.

you only need a spider/Gadgeteer.Modules.Seeed.GPS/Gadgeteer.Modules.GHIElectronics.UsbClientDP
The programcode:

    Public Sub ProgramStarted()
        gps.Enabled = True
        Debug.Print("Program Started")
    End Sub

    Private Sub gps_NMEASentenceReceived(ByVal sender As Gadgeteer.Modules.Seeed.GPS, ByVal nmeaSentence As String) Handles gps.NMEASentenceReceived
        Dim a As String
        a = nmeaSentence
    End Sub

running with the deployment Tool you gettin a buffer overflow after a few seconds

seems to be the same as

Welcome to forum!!

Using code tags will make your post more readable. This can be done in two ways:[ol]
Click the “101010” icon and paste your code between the

 tags or...
Select the code within your post and click the "101010" icon.[/ol]
(Generated by QuickReply)

This doesn't seem to be all the code. Where are you setting the handler for gps_NMEASentenceReceived???

This is Visual Basic! :slight_smile:

I have not used in years but I believe the handles clause on the gps_NMEASentenceReceived Sub declaration handles the registration.

lts looking a little different because it VB not C
the handels is defined in the generated code

Private WithEvents GPS as Gadgeteer.Modules.Seeed.GPS

in your own code you only use the sub with the “handels…”-Event like

Private Sub GPS_NMEASentenceReceived(ByVal sender As Gadgeteer.Modules.Seeed.GPS, ByVal nmeaSentence As String) Handles GPS.NMEASentenceReceived

thank for explaining the 101010-Button…I’m learning every post…

Oh yeah … d’oh … it’s been about a decade since I’ve looked at VB.NET.

My apologies.

here’s th next button to learn. The pencil icon on the top right of your post is the “edit” button. Hit that, of the one that’s got your code, highlight your code, hit the 101010 at the top of the post, and then submit your post again :wink: b

Some more informations

if the opening of the serial port to fast (btw by adding a positionReseaved Handler) after the constructor
is called, there never raised the Serial_LineReceived

I added a thread.sleep(200) in the constructor of the gps.cs

the second problem is the serial buffer. Observeing Serial.BytesToRead in the gps.cs demonstrate thera a to many datas from the GPS-Chip.
Are the a possibility to slow the gps down ? I think its the UBX-CFG-RATE command but i don’t find out how its works