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 failsafe timer on RS485 buscontroller #153

Open
MichielVanwelsenaere opened this issue Feb 22, 2024 · 1 comment
Open

Implement failsafe timer on RS485 buscontroller #153

MichielVanwelsenaere opened this issue Feb 22, 2024 · 1 comment
Assignees
Labels
bug Something isn't working

Comments

@MichielVanwelsenaere
Copy link
Owner

Although I've been using the implementation of the RS485 buscontroller for quite some time I recently ran into an issue where the controller got into an invalid state. This happened during the testing of some new RS485 hardware. A possible cause might be an improper implementation of the standard on the tested device.

To avoid the RS485 buscontroller getting in this invalid state (which blocks all further RS485 traffic) it's a good idea to implement a failsafe timer that marks the RTU query is failed after a certain time and moves on to the next device.

@MichielVanwelsenaere MichielVanwelsenaere added the bug Something isn't working label Feb 22, 2024
@MichielVanwelsenaere MichielVanwelsenaere self-assigned this Feb 22, 2024
@MichielVanwelsenaere
Copy link
Owner Author

In addition to the above the RS485 buscontroller would also benifit from a 'linked list' implementation instead of the current array implementation with RS485 devices. A linked list would allow to iterate over the devices sequentially starting from the device that last leveraged the bus. This instead each time of iterating over the entire collection from position 0. A user has provided an implementation with this approach:

buildingautomation_v6.zip

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

1 participant