750 Commits

Autor SHA1 Nachricht Datum
Reinder Feenstra
648f323106 train: lob and weight are calculated automatically (override is possible) 2023-03-06 00:23:08 +01:00
Reinder Feenstra
b0aa99a8de objectlist: moved property changed to virtual method
so sub classes can do something with it if required
2023-03-06 00:20:50 +01:00
Reinder Feenstra
de34b0553c trainlist: added lob and weigth columns 2023-03-06 00:17:42 +01:00
Reinder Feenstra
2eed611da9 fix: object is empty after move 2023-03-06 00:05:35 +01:00
Reinder Feenstra
27125314a1 fix: object list didn't always register property changed on load 2023-03-05 23:05:07 +01:00
Reinder Feenstra
0c4094b365 implemented add/remove vehicles to a train, see #25 2023-03-05 23:03:54 +01:00
Reinder Feenstra
471db84655 removed restriction to only create/delete trains in edit mode, see #25 2023-03-03 00:03:12 +01:00
Filippo Gentile
6fe8f7af49 Add 2 new positions to Single Slip Switch
This matches recent addition to Double Slip Switch
2023-03-02 00:21:51 +01:00
Filippo Gentile
661b25c1e8 Add 4 new positions to Double Slip Switch turnout
- This adds Left/Right to double switch
- And adds new DoubleSlipStraightA / DoubleSlipStraightB to
TurnoutPosition enum
- Implemented new state drawing in TilePainter
- Updated logic in SignalPath::findBlocks()
2023-02-26 13:08:59 +01:00
Reinder Feenstra
63a5b8c7af rename list add/remove to create/delete
add = add existing item
remove = remove item, but don't destroy it
2023-02-25 23:15:38 +01:00
Reinder Feenstra
4f5e4f2992 fix: set socket options from network thread, see #33 2023-02-21 23:46:57 +01:00
Reinder Feenstra
6e3d2e68fc added version property to Traintastic object 2023-02-19 12:23:34 +01:00
Reinder Feenstra
f7fd18ea1a Merge branch 'master' of github.com:traintastic/traintastic 2023-02-18 23:14:40 +01:00
Reinder Feenstra
5a407e5ba1 fix: socket shutdown and close wasn't called by the io context thread
see #33
2023-02-18 23:14:37 +01:00
Filippo Gentile
2d035b6bac logging: Fix MinGW broken std::put_time()
Workaround missing specifier support in MinGW 12.2.0 by using old pre-C+
+11 specifiers.
2023-02-15 21:32:10 +01:00
Reinder Feenstra
7397cb9e16 Merge branch 'master' of github.com:traintastic/traintastic 2023-02-10 20:36:50 +01:00
Reinder Feenstra
ac9505f1f7 fix: disconnect() not called by the eventloop thread, see #34 2023-02-10 20:36:47 +01:00
Reinder Feenstra
312950c28c
Merge pull request #31 from gfgit/work/object_list_removed
model: HACK to let client refresh after object is removed
2023-02-06 23:23:44 +01:00
Filippo Gentile
54c2dc7c72 model: HACK to let client refresh after object is removed
When an object is removed from a list, Clients need to clear cached
values and reload the model.
This could be more efficient but it will be adressed in a separate pull
request.
2023-02-06 23:17:12 +01:00
Reinder Feenstra
ea3fbd8022 bugfix: blocksAhead may only be decremented on block tile 2023-02-06 19:59:14 +01:00
Reinder Feenstra
86c4685b69 ObjectProperty: added getObject() to request object without knowing the id on the client
see #22
2023-01-30 23:33:25 +01:00
Reinder Feenstra
1d250f28f8 added object id validation, see #22
an id may only contain a-z 0-9 _ and must start with a-z
all chars must be lowercase
2023-01-25 23:25:13 +01:00
Reinder Feenstra
9ee10e8aff
Merge pull request #18 from gfgit/work/gcc_warnings
Fix gcc warnings
2023-01-22 21:56:07 +01:00
Filippo Gentile
536c82f739 server: remove unix specific signal handler header 2023-01-22 01:22:10 +01:00
Filippo Gentile
4277285591 Fix GCC warning -Werror=uninitialized
std::array has no explicit constructors but GCC 12.2.0 doesn't like it
so add brace initialization.
2023-01-22 01:19:32 +01:00
Reinder Feenstra
6ad267f333
Merge pull request #13 from gfgit/work/signal_handler
server: handle SIGINT, SIGTERM, SIGBREAK (all platforms)
2023-01-21 22:23:59 +01:00
Reinder Feenstra
d5ace6999b
some changes for code style 2023-01-21 22:22:17 +01:00
Reinder Feenstra
7ee8a6aad7
corrected spelling, some changes for code style 2023-01-21 22:20:17 +01:00
Filippo Gentile
280d3ae2c4 server: log signal handler
New static function for signal handling
2023-01-21 21:35:30 +01:00
Filippo Gentile
45fd09e071 server: removed Unix specific signal handlers
Now it uses Boost.Asio
2023-01-21 21:34:17 +01:00
Reinder Feenstra
e490c656bc bugfix: Infinite recursion in SignalPath, closes #7 2023-01-20 21:54:36 +01:00
Filippo Gentile
e2b6c149d4 server: handle SIGINT, SIGTERM, SIGBREAK
Register signal handlers to shutdown gracefully
2023-01-19 23:31:15 +01:00
Reinder Feenstra
11d407b5af bugfix: if an interface failed to go online and exception caused the event processing
closes #9
2023-01-18 19:48:53 +01:00
Reinder Feenstra
a440d3968d fix: assigning another interface to an input didn't work 2023-01-18 19:17:42 +01:00
Reinder Feenstra
61b3db241a bugfix: assert() triggered on invalid data on world close
closes #8
2023-01-17 23:43:39 +01:00
Reinder Feenstra
27e14f4bd1 eventloop: threadId writable during tests
some test require a working eventloop
2023-01-15 22:50:52 +01:00
Reinder Feenstra
1839233687
Merge pull request #5 from gfgit/work/diy_input_sim_fix
input: fix TraintasticDIY input simulation
2023-01-13 23:11:23 +01:00
Filippo Gentile
794b0a4dcc input: fix TraintasticDIY input simulation
Toggling a disabled input caused crash.
Prevent iterator derefencing when invalid.

Other interfaces, like z21, allow toggling disabled inputs so the
behaviour is still correct.
2023-01-13 23:05:18 +01:00
Reinder Feenstra
37fc7bfcdb fix: use memcpy, size is always known
(MinGW complained)
2023-01-13 00:14:08 +01:00
Reinder Feenstra
b22e011ded
fix: missing include for mingw 2023-01-11 23:55:45 +01:00
Reinder Feenstra
08e4b45268
Merge pull request #3 from gfgit/work/fix_mingw
Fix compilation on Windows with MinGW
2023-01-10 23:41:57 +01:00
Reinder Feenstra
db87ed9cc1
fix: m_socket -> m_socketTCP 2023-01-10 08:33:08 +01:00
Reinder Feenstra
e738a162bf minor optimalizations 2023-01-09 23:01:39 +01:00
Filippo Gentile
8c12a50078 threading: fix MinGW thread name
SetThreadDescription() is not currently supported by MinGW compiler.
It was added in Windows 10 so it's relatively new function.

But MinGW comes with a Windows implementation of pthread library.
This means we can just use the same code as for linux which
calls 'pthread_setname_np()' and skip windows specific call.
2023-01-09 21:52:43 +01:00
Filippo Gentile
0bd6148a1e TrayIcon: fix string literal conversion.
The member function menuAddItem() is called passing constant string
literals for "text" argument which is a pointer to non constant string.

MinGW refuses to compile so change the type to constant LPCSTR.
The variable is later passed inside explicit const_cast<LPSTR>(text).
2023-01-09 21:49:51 +01:00
Filippo Gentile
fc8ce2a891 endianess: fix MinGW on Windows
MinGW has _byteswap_ushort and the other functions like MSVC but
needs additional <cstdlib> header.
2023-01-09 21:46:31 +01:00
Filippo Gentile
09b9ed3de6 SerialPortListImplWin32: fix includes with MinGW on Windows
MinGW needs additional <ntdef.h> header to define PHYSICAL_ADDRESS.
The type is then used inside <ntddser.h>
2023-01-09 21:45:02 +01:00
Reinder Feenstra
ff9b524593 fix: use localtime_s or localtime_r instead of localtime 2023-01-08 23:34:38 +01:00
Reinder Feenstra
59a7f22ab9 fix: assigning a new interface to an output failed 2023-01-06 01:04:29 +01:00
Reinder Feenstra
9425c30cfd fix: assert caused crash 2023-01-06 01:03:16 +01:00