Reinder Feenstra
6640cec82f
Merge pull request #73 from gfgit/work/z21_pending_queue
...
Z21 pending request queue
2024-09-24 18:44:29 +02:00
Reinder Feenstra
5301752ed6
Implemented DCCext defaults for 3-way and slip turnouts
...
based on YaMoRC YD8116 (there is no standard yet)
2024-09-04 18:29:13 +02:00
Reinder Feenstra
e51b3c03a9
Added unit attribute
2024-08-29 23:34:42 +02:00
Filippo Gentile
943c52fc45
server: Z21 SimulationIOHandler updateChecksum()
2024-08-17 13:35:20 +02:00
Filippo Gentile
2c7f27370e
seerver: Z21 SimulationIOHandler cache Decoder state
...
- Decoder state is cached to allow replying correctly
- Cache uses LanXLocoInfo so it does not need conversion upon sending
2024-08-17 13:00:09 +02:00
Filippo Gentile
e4c3aab43e
Revert "server: Z21 ClientKernel fix crash on disconnect"
...
This reverts commit 5a291f0c914c904c98dcd3d1f0434f05bf31f39e.
This workaround is not needed anymore after commit
161a0e9521bc3ef30c799234d3f82d84b971afdd
2024-08-17 12:27:11 +02:00
Filippo Gentile
2f1bfe49cc
server: TrainVehicleList strich checks on add/remove
2024-08-16 16:37:38 +02:00
Reinder Feenstra
2e429d2e65
fix: addToWorld was called instead of destroyed
...
thanks @gfgit for spotting it!
2024-08-01 23:14:04 +02:00
Filippo Gentile
e66f1083df
server: BlockRailTile move path release to TrainTracking
...
- This effectively reverts commit 0b22d1f7
- Logic from commit 0b22d1f7 is now in TrainTracking
- This fixes case when short train releases "enter"
block before occupying "exit" block.
2024-07-29 20:26:33 +02:00
Filippo Gentile
7510a10ef4
BlockPath: implement delayed release
...
This simulates train still occupying turnouts while it has
already left the entrance ("from") block.
Useful when turnouts do not have dedicate occupancy detectors.
- New World property
- English and Italian translations
2024-07-29 20:26:33 +02:00
Filippo Gentile
4c6f80afa7
server: World add new settings for external output change
...
- Refactored code in TurnoutRailTile and SignalRailTile
- Use early return pattern
- Added Enlish and Italian translations
- New Category::trains
2024-07-29 20:26:33 +02:00
Filippo Gentile
343a14ceb1
server: Add better log messages to Signal and Turnouts
...
- New messages when position/aspect is externally changed
- New messages when position/aspect is corrected
- New messages when train is stopped
- Separate messages for Signals and Turnouts
- Avoid stopping twice the same Train
- Italian and English translations
2024-07-29 20:26:33 +02:00
Filippo Gentile
76c5451275
server: Add log warning when output is externally changed while locked
2024-07-29 20:26:33 +02:00
Filippo Gentile
7590a82d39
server: SignalRailTile stop trains when retry is exceded
...
- When locked and retry count is reached, stop trains in path
- Evaluate only if a path is reserved
2024-07-29 20:26:33 +02:00
Filippo Gentile
a2687177a4
server: TurnoutRailTile implement retry count
...
- If position is externally changed while a path is reserve
Turnout will try to reset it's position to reserved one
If it fails and reaches maximum retry count it will stop trains in
path.
2024-07-29 20:26:33 +02:00
Filippo Gentile
7bcffe3319
server: SignalRailTile implement basic retry count
2024-07-29 20:26:33 +02:00
Filippo Gentile
96124b4419
server: BlockRailTile release path when train leaves
2024-07-29 20:26:33 +02:00
Filippo Gentile
7f8d16de0c
server: BlockPath prevent release while train is inside it
2024-07-29 20:26:33 +02:00
Filippo Gentile
06a2d46ccc
server: BlockPath remove block reservation on release
...
TODO: this is HACKY and bypasses some logic
2024-07-29 20:26:33 +02:00
Filippo Gentile
bda6f4b495
server: NXManager allow releasing a reserved path
2024-07-29 20:26:33 +02:00
Filippo Gentile
40722ef433
server: BlockRailTile always updateTrainMethodEnabled when adding train
2024-07-29 20:26:33 +02:00
Filippo Gentile
aa35bacfac
server: DirectionControlRailTile prevent double reservation
...
- Allow setting to "Both" while reserved
2024-07-29 20:26:33 +02:00
Filippo Gentile
17a0a05fd8
server: DirectionControlRailTile lock while in reserved path
2024-07-29 20:26:33 +02:00
Filippo Gentile
c1480f15cb
server: CrossRailTile clear state on path release
2024-07-29 20:26:33 +02:00
Filippo Gentile
dd55749777
server: TurnoutRailTile lock position if reserved
...
Also react to external output changes and revert to reserved position if sneeded.
2024-07-29 20:26:33 +02:00
Filippo Gentile
b63d071ddf
server: SignalRailTile fix external aspect change evaluation
2024-07-29 20:26:30 +02:00
Reinder Feenstra
f79f016a89
test: added: Direction path reservation using NX and change direction state
2024-07-29 20:22:54 +02:00
Reinder Feenstra
4f338f8e10
fix: use _stricmp on Windows, strcasecmp is POSIX
2024-07-16 08:34:10 +02:00
Reinder Feenstra
8e655f7c2e
worldlist now sorted case insensetive
2024-07-15 23:53:04 +02:00
Reinder Feenstra
fdda0888d3
Upgrade to Lua 5.4
2024-07-12 00:23:12 +02:00
Reinder Feenstra
e545408c1e
fix: objects kept each other alive
2024-07-10 00:33:17 +02:00
Reinder Feenstra
80b08cb02a
outputmap: added parent property for client, so it can access the object the outputmap belongs to.
2024-07-08 23:11:09 +02:00
Reinder Feenstra
4d76dc8891
Converted Tile::tileId() to a property, so it can be used by the client.
2024-07-08 23:09:15 +02:00
Reinder Feenstra
e6cc388aa9
fix: SIG SEGV when ECoS failed to connect
...
see #150
2024-07-08 22:58:19 +02:00
Reinder Feenstra
e6a215825b
output map: moved use to signal output map
...
(other output maps always use all values)
2024-07-07 00:15:10 +02:00
Reinder Feenstra
4e11e789aa
fix: dual_motor translation
2024-07-07 00:12:39 +02:00
Filippo Gentile
3b6f7c8fd0
server: Z21 fix reply to broadcast flags
...
- Protocol specs says reply has LAN_GET_BROADCASTFLAGS header too
2024-07-06 15:37:42 +02:00
Filippo Gentile
eba845cab5
server: Z21 ClientKernel remove speed trend logic
...
- Reply queue superseeds it
- It never worked and it's over complicated
- Keep LocoCache, maybe can be further simplified
2024-07-06 15:12:45 +02:00
Filippo Gentile
fc2ff35856
server: Z21 reply queue, use encoded speed and steps
...
- To save space we use the same encoding as done
in Z21 protocol.
- This way we also can directly compare without decoding
- Now also direction and emergency stop are checked
2024-07-06 14:27:50 +02:00
Reinder Feenstra
aa8228dd6b
Added "dual motor/coil" option to single/double slip turnout, this controls the available turnout positions.
...
see #112
2024-07-05 23:51:01 +02:00
Filippo Gentile
8a8772ede0
server: Z21 add pending request tracking
...
This makes it possible to detect replies from
Z21 originated by our own requests and process
them differently than externally generated
messages.
This also enables resending requests which did
not receive the expected reply in timeout
2024-07-04 13:55:03 +02:00
Reinder Feenstra
f4c9e722c9
No more git lfs, git lfs is metered
2024-07-03 23:01:45 +02:00
Reinder Feenstra
9a9614edc0
fix error: captured structured bindings are a C++20 extension
2024-07-03 21:21:32 +02:00
Reinder Feenstra
93c7204d9c
Renumbered error codes, E3003 and E3004 conflict with PR #115
2024-07-03 19:50:34 +02:00
Reinder Feenstra
343cc1c978
fix error: declaration shadows a structured binding [clang-diagnostic-shadow]
2024-07-03 08:13:01 +02:00
Reinder Feenstra
10c7d732d1
Added train param to block.removeTrain and error reporting.
...
Client will now show an error in case the train can't be removed.
Added support for removing a specific train if multiple trains are in the block.
see #70
2024-07-02 23:42:22 +02:00
Reinder Feenstra
1dd2f375c3
xpressnet: use async tcp connect the prevent "hanging", see #150
2024-06-27 23:53:51 +02:00
Reinder Feenstra
7e8d82673a
fix: added missing destructor in header
2024-06-27 23:51:46 +02:00
Reinder Feenstra
0bc31a7129
traintasticdiy: use async tcp connect the prevent "hanging", see #150
2024-06-27 22:24:03 +02:00
Reinder Feenstra
a9ae2497bf
block: deactivate train if it is removed from the last block
2024-06-27 21:41:35 +02:00