Our concept of distributed processing is going to need some attention to details in the Assembler/VM design, but it will work. We now have two mechanisms involved:
- We have an easy way to synchronize data between several modules
- We can make on module execute logic on a different module.
The principles of how we do this through easyIPC is easy, but we need to dig into the detailson some some loose ends in our design. One such issue is module addressing in a larger network.
The block diagram above consist 7 devices in a system. We have two RPI’s one for controlling the actuator/sensor sub systems, and one for HMI. The HMI contains a Led Hat where I want to blink Leds from the Servo and stepper controllers.
LedHat example
use System Module LedHat Object LedGroup Bit Led1 Bit Led2 Bit Led3 End interface C LedGroup leds[1..6]; Interface Func SetLedStatus(uint32 group, Bit l1, Bit l2, Bit l3) Transaction leds[group] leds[group].Led1 = l1 leds[group].Led2 = l2 leds[group].Led3 = l3 Update End End
32xIO example
use System use LedHat Module 32xIO LedHat.SetLedStatus(1,0,0,1) End
These two code examples are the Plain code I expect to write.
to be continued in part 3…