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

modbus: initial cut #11

Merged
merged 2 commits into from Dec 6, 2016
Merged

modbus: initial cut #11

merged 2 commits into from Dec 6, 2016

Conversation

jonseymour
Copy link
Collaborator

@jonseymour jonseymour commented Dec 5, 2016

Introduce support for modbus physical device implementations.

The library uses the Client interface of github.com/goburrow/modbus library for the RTU &/or TCP comms. A simulator is provided which uses a memory slab to simulate the persistence of a real Modbus device.

The PR is left open since I will likely refactor the code over the next few days.

@crabmusket
Copy link
Owner

Awesome, this is exciting :D

@jonseymour
Copy link
Collaborator Author

@crabmusket The modbus support is pretty much ready to go. I will leave it open until tomorrow morning to allow for an optional review by yourself, then merge it.

The library uses the Client interface of github.com/goburrow/modbus
library for the RTU &/or TCP comms. A simulator is provided which
uses a memory slab to simulate the persistence of a real Modbus device.

The key considerations in the implementation of this driver are to
optimise both the read and write schedules to reduce the number of
calls to the modbus interface which, in the case of writes, preserving
the ordering of the writes. Like the memory driver the devices and models,
present in the address space on connection need to be enumerated and the
number of blocks calculated from the size of the models.

Signed-off-by: Jon Seymour <jon@wildducktheories.com>
Signed-off-by: Jon Seymour <jon@wildducktheories.com>
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.

None yet

2 participants