Separate Location and Feature Messages in CMP

Redesign the CMP so that locations and features are sent as separate messages, rather than one message with flags that control which parts should be processed by LMs.

Today, the Cortical Messaging Protocol (CMP) couples a location and features together on the same message.
Whether the receiving learning module (LM) uses the message at all, and whether it processes the features in it, is controlled by two flags on the message, pass_message and process_features_in_lm.
PR 1051 introduced these flags and added a location-only LM mode to allow a sensor module (SM) to send up its location even when its features did not change.
The location information and the feature information therefore share the same message type, and the LM has to flag the location-only step at the start of its matching and exploratory steps.

Ideally, we want two kinds of messages that can be sent independently:

An LM would update its hypotheses on every location message and only process features when a feature message arrives, which is what the flags currently allows us to do.

Separating the messages would make it easier to send features from different input channels at different rates, which is the goal of Extend Percept Filtering to LM-to-LM Messages, and would remove the need for flags that tell the receiver which parts of a message to ignore.




Help Us Make This Page Better

All our docs are open-source. If something is wrong or unclear, submit a PR to fix it!

Make a Contribution

Learn how to contribute to our docs


Did this page help you?