Today I have debugged the problems constructing CAN datagrams described in a previous
I found some flaws in my handling of the various parameters handed to the CAN message object constructor. As soon as I had fixed these, the end-to-end testing was successful!
I press a switch, and the configured relay output is toggled.
Though this may not sound like a big achievement, I am quite happy that after about five years of spare-time work on this project, now at least the proof-of-concept consisting of five homegrown PCB prototypes, one Raspberry Pi, and about 20 k lines of code (in C and Python) seems to do what I want.
The list of things to do is still not empty, and "mass production" is not the next thing on that list yet.