OpenECoSys-NetworkViewer Support for Arduino (Scope Demo)

This would be problematic if you access the shared memory from an interrupt for instance. If you know how to fix that, please tell me!

Every access to those variables has to be protected by a mutex of some description, the easiest thing is just disable interrupts I suppose. For a quick read or write that shouldn't cause any drama unless there's some serious time-dependent code running.

block interrupts in an "hardware independent" manner (reusable code for PIC32 & Atmel based microcontrollers).

Can't you just have a macro to set and clear the interrupt flag?

Another way might be to make sure all your network interrupts are atomic, meaning in this case that they do everything that have to do for a given transaction before they exit the ISR. On entering they can check a semaphore and do nothing if it's set. The writing of the semaphore by the application is atomic so the only problem is that NetworkViewer may miss out on some readings.

As I assume the whole process is asynchronous so you can't guarantee to get every different value for "variables" anyway can you?

If you need to get every value with no missed ones the the above is no good and somebody has to block at some point.

I'm reasonably happy to use a .NET derivative like Mono but to be honest would rather work in C/Java.

For the GUI, you can use the GPL code of the NetworkViewer.

How do I get that? I got the exe from sourceforge but that svn link just has links to a 100 files. I assume they are the Qt source files, do I download them separately?

I also grabbed the DMG file but have no idea what it is :slight_smile:


Rob