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

Implement modbus driver #314

Merged
merged 14 commits into from
Jul 17, 2024
Merged

Implement modbus driver #314

merged 14 commits into from
Jul 17, 2024

Conversation

amrc-benmorrow
Copy link
Contributor

  • Implement a driver for testing purposes.
  • Implement a modbus-tcp driver. This could be adapted to support modbus-serial fairly straightforwardly.
  • Factor out a JS library for writing edge drivers.

This accepts addresses specifying fixed functions.

We need to supply a `version` in the address config.
This doesn't handle errors entirely properly yet, but it works.
We need to emit "open" and "close" on the Driver connection, but only if
this is a change of status.
This class will only handle drivers which can't do their own polling,
and ignore the address groups. Drivers like OPCUA will need a different
implementation.

This driver is also careful to always poll serially. Some drivers might
be able to handle parallel polls, and we should allow this. (Modbus
can't.)
We want to maintain a continuous connection to the modbus device. We
also want to alert the edge agent promptly if we lose our connection.
Handle reconnection via connection events rather than waiting for a
poll.

Delay 5s before attempting to reconnect, otherwise we may enter a fast
loop.
These drivers do not need the GSSAPI code, so should not need our
customised base images.
@amrc-benmorrow amrc-benmorrow merged commit 08f2fb0 into bmz/edge-split Jul 17, 2024
@amrc-benmorrow amrc-benmorrow deleted the bmz/edge-modbus branch July 17, 2024 11:11
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

Successfully merging this pull request may close these issues.

1 participant