hasselmm / hasselmm/LibreModeltrainStudio

Make Z21 client more stable

Open
#10 0 comments 0 reactions 0 assignees View on GitHub
bug
Dominant language
C++
Stars
1
Forks
0
PR merge metrics
No merged PRs in 30d

Description

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).

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.