openlcb / documents

The OpenLCB specification: standards, recommended practices and other documentation.
3 stars 7 forks source link

Simple Protocol Subset #104

Open balazsracz opened 9 months ago

balazsracz commented 9 months ago

There seem to be various inconsistencies in the definition and implementation of the simple protocol subset in the standard and in the code that we have.

An example is that https://groups.io/g/openlcb/message/15827 Message Network S 4.1.2 incorrectly lists Protocol Support Inquiry as an unaddressed message.

bobjacobsen commented 9 months ago

Another issue is the Simple-specific MTI values for Initialization Complete (0x0100 vs 0x0101) and Verified Node ID (0x0170 vs 0x0171); see sections 3.3.1 and 3.3.3 of the Message Protocol Standard.

The RR-Cirkits boards have the Simple bit set in their PIP, but do not send the Simple-specific versions of these MTIs.

Several software tools, specifically including JMRI, don't recognize the Simple-specific MTIs. This needs to be fixed, of course, but we have a problem with existing installations. They would have to all (mostly?) be updated before RR-Cirkits can use the Simple-specific MTIs. That's a tricky roll-out problem.

It's arguable that Simple protocol should not include the Producer/Consumer Verified messages. The purpose of Simple-subset was to enable creating segments with significantly less traffic by making certain global messages unnecessary. It was originally imagined that leaf nodes would not listen to P/C Verified messages, so they could be excluded from Simple segments. They would just listen to PCER global messages and addressed messages. The RR-Cirkits boards do listen to the P/C Verified global messages to get their original status. So perhaps the RR-Cirkits boards should not have their Simple PIP bit set.