Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Explicitly state message type req-rply convention #9

Open
bruno-f-cruz opened this issue Nov 1, 2023 · 2 comments
Open

Explicitly state message type req-rply convention #9

bruno-f-cruz opened this issue Nov 1, 2023 · 2 comments

Comments

@bruno-f-cruz
Copy link
Member

We assume that for each message to request from the device, at least one message will always be returned from that register and with the same message type. This symmetry should be explicitly stated in the protocol.

@Poofjunior
Copy link

Possible solution:

In datasheets for digital MEMs sensors, I've seen these types of transactions disambiguated to request and reply. We could probably adopt that terminology here where:

  • Harp Request Message
    • pc-to-device
    • does not include timestamp
  • Harp Reply Message
    • device-to-pc
    • includes timestamp
    • reply message type field will be the same as the Request message type (i.e: write request issues a write reply.)

The documentation currently just refers to these two types as just Harp Messages, which is missing key info about what makes these subtypes different.

@bruno-f-cruz
Copy link
Member Author

I can see how this simplifies things. My question is whether we want to move into a scenario where we assume that the protocol is indeed not symmetrical. For instance, nothing prevents two harp-devices from communicating with each other at this point, using the harp protocol. That being said, I can already see how this might naively break if we move in a direction where we use timestamps of write messages to schedule operations. Under such a scenario, two devices communicating with each other would essentially end up in an infinite message loop of write messages (as the RPLY from device 1 might schedule an event in device 2, and so on...).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

When branches are created from issues, their pull requests are automatically linked.

2 participants