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
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
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
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
Reinder Feenstra
0adf0584dd
marklincan: use async tcp connect the prevent "hanging", see #150
2024-06-25 22:46:54 +02:00
Reinder Feenstra
ea027d8d3f
fix: endless started loop, see #150
2024-06-25 22:31:01 +02:00
Reinder Feenstra
f47499d5c5
ecos: use async tcp connect the prevent "hanging", see #150
2024-06-24 22:51:55 +02:00
Reinder Feenstra
4eb0e97513
dcc-ex: use async tcp connect the prevent "hanging", see #150
2024-06-24 22:49:30 +02:00
Reinder Feenstra
bd09107180
loconet: use async tcp connect the prevent "hanging", see #150
2024-06-23 23:07:37 +02:00
Reinder Feenstra
161a0e9521
fix: implemented deleteLater for protocol kernels, to make sure all EventLoop work posted by the kernel thread is processed before the kernel is deleted.
2024-06-22 09:05:20 +02:00
Ryan Freeman
b73cf4782a
Fixed new line character skipping \n\r handles in both directions as well \r\n as well as just \n or \r
2024-06-21 16:11:21 +01:00
Reinder Feenstra
6db8c82d81
fix: loconet lbserver write "failed succesfully", see #141
2024-06-18 22:44:19 +02:00
Filippo Gentile
dd5da3ed8c
server: Z21 fix setting power state
...
- Power state must be set only once per change
- If change comes from Z21 it must not be mirrored back
- Z21 Emergency Stop state has implicit Power On
- Sending PowerOn to Z21 is equivalent to Traintastic Run state
- Sending EmergencyStop state to Z21 is equivalent to PowerOn + stopped
2024-06-12 18:33:36 +02:00