Local listener and live data export

I’m implementing a Raspberry Pi based system for monitoring status of up to 255 units connected to one Raspberry Pi (via CAN BUS).

I first tried to implement the CAN BUS listener as a pure Particle Firmware but failed to solve the problem of listening on the CAN BUS live stream without terminating and starting the listener over an over again (thereby loosing listening time). The solution I’m now using has the listener in Bash and Particle reading a file every few seconds instead. Works but needs more than just the Firmware. Any suggestions on how to get a working listener? I was using this before:

Process proc = Process::run( "candump can0" );
proc.wait();

Next is how to report back the status values (intger) of the connected units. I fail to see any way to respond to calls from external systems with any other value than “Success/Fail”. This where I want functions like “getValueForUnit( n )” or “getValueForAll255Units()”. Should I have the Firmware send the values directly to our (Parse-based) system? Any suggestions are welcome!

@svante, You might get some good advice asking the same question over on the community.carloop,io site. Especially “dubb45” who is active there has been doing simulation work and using candump. Carloop is a CANbus product based on Particle devices, so things should be common between the forums here and there.