Why the change to messages and nodes?

When Jurjen wrote up the SerialPower Network he placed the emphasis on cooperating processes, bits of code running on Picaxe (or other) microprocessors scattered around the network. Each process is granted communication slots on the network that it can use to send data. I had two difficulties with this presentation:

  1. The mental model did not fit with anything that I was familiar with, so I couldn’t wrap my head around it. I finally “got it” when I stopped thinking about processes and started thinking about messages.
  2. The process model can be expensive in terms of network resources. When each process is granted a communications slot, it can quickly use up the process table, and makes each round-robin cycle on the network longer.

I found the move to messages and nodes made it easier for me to manage the conceptual model and to make use of multiple nodes that send essentially the same information.

This is almost entirely a cosmetic and conceptual change to the network that Jurjen presents. The modified network stacks that I use are virtually unchanged from the ones that Jurjen wrote, I’ve only changed the names of the constants and variables to match my conceptual framework (there are some other, minor changes, but nothing significant).

In a devolved case, where each node on the network runs one process, my implementation is identical to Jurjen’s. However, when there are multiple processes running on a node, and there are many nodes that perform essentially the same functions, my implementation provides for slower growth of the process table and ease the implementation of some nodes.

Log in