Page 1 of 1

Process Killed by error with SBC

Posted: Thu Feb 28, 2013 7:09 pm
by pplusa
I have two questions related to programming with SBCs involved.

I've been encountering a weird error with a project I'm working on. There's no real error message thrown but the whole program just stops (there is a Windows message about the program encountering "an" error and shutting down - but no specifics; even with try...catch blocks on everything).

The system uses stations set up with:
1 RFID reader, 1 LCD panel with built-in 8/8/8 IF Kit, a touch sensor, two LEDs, and 1 USB hub (the RFID and LCD panel are connected to the hub, so I only have to plug in one cord).
There are (ideally) 4 or so stations connected to the SBC2; with my program running on a virtual server elsewhere (and controlling the stations through the SBC over the network).
Each LCD panel has a heartbeat (timer) on it that triggers it to refresh and cycle to a new piece of data every 6 seconds - the data it displays is specific to the station.

Typically the error seems to be related to the LCD panel refresh (unfortunately, even in debug mode and stopping at every step, I can't quite pin-down the exact point); and it acts up more often when 4 stations are plugged in, versus 3 when it almost never happens.

I'm mostly wondering if there are any ideas on what it could be. Could running 8 devices through the SBC's USB hub be overloading it? Maybe a data collision from the server trying to update two LCDs on the same SBC at the same moment (typical network response is 1-4ms; rarely it will jump to 300ms)?
I'm adjusting my code around it, so the whole program doesn't stop from it anymore; but ideally I wouldn't have this crash happening at all.

My second question:
Is it possible to restart an SBC through some sort of command in .Net? Something like sending a command to a given port on the SBC that triggers it to restart.
I'm sure I could write something that resides on the SBC that handles it, I'm just wondering if there's anything like that built-in.

Thanks :)

Re: Process Killed by error with SBC

Posted: Fri Mar 08, 2013 10:01 am
by pplusa
Just as an update, I put in a debug log (logging every step as it occurs), and found that the error was happening specifically when sending data to Line 2 of the LCD panel (LCD.row(1).displaystring). It occurred roughly every 5-15 times the data was sent.

The error was typically an access violation (C0000005). Unfortunately, from tracing through my code, there was no case where multiple threads could act on one LCD panel.

For now I've just disabled displaying data to line 2.