193 Commits

Autor SHA1 Nachricht Datum
Reinder Feenstra
52bf436769 Limit decoder address range by selected protocol
see #72
2023-06-27 00:39:04 +02:00
Reinder Feenstra
02c674e061 property: enum type now checks if value is in values attribute 2023-06-23 23:12:30 +02:00
Reinder Feenstra
ab81ad73b3 #72 Decoder.protocol is now limited by DecoderController 2023-06-23 00:19:35 +02:00
Reinder Feenstra
5d01de9b32 Replace ArrayAttribute by more versatile SpanAttribute 2023-06-21 20:07:15 +02:00
Filippo Gentile
7b411163f7 method.tpp fix copyright 2023-06-18 13:23:34 +02:00
Filippo Gentile
4c58c9d829 server: split method.hpp implementation
- Added method.tpp file
- Include it where needed
- Use CREATE_DEF when needed
2023-06-18 13:23:31 +02:00
Filippo Gentile
781f5b20e3 ObjectVectorProperty: add reverseInternal()
New function which reverses the items order
2023-06-18 13:23:25 +02:00
Filippo Gentile
9945f23155 ObjectList: use static_assert 2023-06-18 13:23:24 +02:00
Reinder Feenstra
43a8713047 bugfix: updateRegion call missed bounds checking 2023-05-27 23:20:06 +02:00
Reinder Feenstra
dfec2a5f23 added StateObject base class
Base class for objects that only store state data
2023-05-25 23:15:19 +02:00
Reinder Feenstra
1c0066ab6f objectvectorproperty: moved methods to tpp, to make forward declaration possible 2023-05-06 17:21:43 +02:00
Reinder Feenstra
e0b3eba685 objectvectorproperty: added reverse iterators 2023-05-06 17:21:43 +02:00
Reinder Feenstra
46072d8198 interfacelist: re-implemented status column 2023-04-23 16:57:06 +02:00
Reinder Feenstra
e6f3c69462 object: don't fire propertyChanged while dying 2023-04-23 16:42:18 +02:00
Reinder Feenstra
246b27c434 moved ObjectProperty<> implementation to seperate file
world.hpp now uses forward decl. for many classes, this reduces built time!
see #43
2023-03-30 15:09:11 +02:00
Reinder Feenstra
ffcc9bd877 add support for StoreState save/load object vector properties 2023-03-29 23:49:54 +02:00
Reinder Feenstra
f3d7bee1ef objectvectorproperty: added clearInternal() 2023-03-28 23:15:30 +02:00
Reinder Feenstra
cf27823cc9 objectproperty: added setValueInternal(std::nullptr_t) overload
saves constructing an empty std::shared_ptr
2023-03-27 22:39:10 +02:00
Reinder Feenstra
77851bbbc3 rail vehicle: added power property
for future physics simulation
2023-03-20 23:01:59 +01:00
Reinder Feenstra
6e03b67a08 added volume unit and property 2023-03-06 23:35:39 +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
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
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
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
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
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
896bd2a13f bugfix: added keepalive, to make sure object isn't deleted during destroy() call 2023-01-06 00:50:56 +01:00
Reinder Feenstra
1ef5e847b5 bugfix: propertyChanged signals were not disconnected 2023-01-06 00:11:46 +01:00
Reinder Feenstra
8659fc1d52 bugfix: vector iterator was used while modifing the vector 2022-12-25 23:42:08 +01:00
Reinder Feenstra
34abfafd21 added special serial device property and serial port list 2022-12-19 23:55:24 +01:00
Reinder Feenstra
3e1121ee04 added throttle objects to aquire/release decoder control 2022-12-04 23:16:08 +01:00
Reinder Feenstra
a22c42dc71 eventloop now uses boost::asio::io_context
make it easier to use timers etc.
2022-11-06 23:53:32 +01:00
Reinder Feenstra
8e0de0e410 bugfix: added missing overload (could cause UB) 2022-08-17 00:11:10 +02:00
Reinder Feenstra
202fa7e929 objectlist: replaced static_assert by assert, to allow forward declaration of T 2022-08-07 18:02:56 +02:00
Reinder Feenstra
0bf58424d6 cleanup 2022-06-01 17:51:31 +02:00
Reinder Feenstra
b774642610 method: call() can now handle any number of args
implementated using fold expression and std::index_sequence
2022-05-29 23:37:30 +02:00
Reinder Feenstra
f990e79afe method: moved indexing into getArgument template 2022-05-29 19:46:19 +02:00
Reinder Feenstra
af7834af8d cleanup 2022-05-29 19:43:44 +02:00
Reinder Feenstra
bc7025d9eb bugfix: AbstractEvent didn't disconnect handlers
causing use after free
2022-05-29 00:20:19 +02:00
Reinder Feenstra
49c7cd7ada fix: added missing include due to df1d9d33711c6dbe5c6f0224d1e00c67299e9bc7 2022-05-26 10:01:26 +02:00
Reinder Feenstra
37ddc710fd added contains() overload for easier use with set properties 2022-05-24 00:03:55 +02:00
Reinder Feenstra
cdc5dab129 moved server to seperate object and thread, eventloop now runs in main thread 2022-05-22 11:33:25 +02:00
Reinder Feenstra
18a5a8a1dd added network support for object events 2022-05-03 23:14:05 +02:00
Reinder Feenstra
01b3379a76 added assert to check for illegal use 2022-05-02 08:59:04 +02:00
Reinder Feenstra
781129bc1d signal: replaced nextAspect by setAspect (aspect is now readonly) 2022-04-12 21:21:28 +02:00
Reinder Feenstra
6d677f2300 board: move tile now supports rotating 2022-04-06 23:05:34 +02:00
Reinder Feenstra
f159668406 Added new typeinfo for method and event 2022-03-22 23:39:59 +01:00