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

Make Z21 client more stable #10

Open
hasselmm opened this issue Mar 3, 2023 · 0 comments
Open

Make Z21 client more stable #10

hasselmm opened this issue Mar 3, 2023 · 0 comments
Labels
bug Something isn't working

Comments

@hasselmm
Copy link
Owner

hasselmm commented Mar 3, 2023

The Z21 protocol uses any UDP without any kind of flow control. This means that we'll lose messages, and have to retransmit sometimes. This doesn't work too well yet. Sometimes identical messages stack up because of this effects. Sometimes we process messages like Railcom responses that were meant for a later request.

So instead of just queuing we'll have to create some kind of state machine, that tracks what kind of requests are needed, but didn't get a response set. This state machine also has to avoid, that we emit potentially conflicting messages (like Railcom, accessory, or detector... queries), while a conflicting query still is in flight.

Most importantly reading and writing of CV variables must be stable enough, that we can read and write ESU function mappings. Also this must be good enough for reading the Railcom+ pages (vehicle name, function symbols, function key behavior).

@hasselmm hasselmm added the bug Something isn't working label Mar 3, 2023
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