The client could release an object handle while at the same the handle was on the wire from the server to the client. The client then expected a serialized object which the server didn't send because the handle not yet release by the client at the time it was sent. Solution: The client and server both count how many times an handle is send from the server to the client. The client object release only succeeds if the counters match, to be sure no handles are "on the wire".
Traintastic - Model railway control software
About The Project
Traintastic is a client/server software application to control a model railway. It is in an early stage of development, it contains very limited functionality.
The project goal is to develop open source software that can control everything in your model railway layout. More information can be found using the links below:
- Download Traintastic
- Traintastic Manual
- Traintastic hardware support
- Traintastic development roadmap
Build Traintastic from source
This section is only for developers, if your just want to use it download Traintastic.
Requirements:
- Client:
- C++ compiler: MSVC, GCC or Clang
- Visual Studio 16 2019 (Windows only)
- CMake 3.9+
- Qt 5.15+
- Server:
- C++ compiler: GCC or Clang (MSVC doesn't work yet)
- Visual Studio 16 2019 (Windows only)
- CMake
- liblua5.3 (Linux only)
- Manual:
- Python 3.6+ (older versions untested)
- pycmarkgfm (
pip3 install pycmarkgfm)
Note: When cloning the source from git, git-lfs is required.
Build Traintastic client
- From the project root go into the client directory:
cd client - Create a build directory:
cmake -E make_directory build - Go into the created build directory:
cd build - Run CMake:
- Windows:
cmake ../ -G "Visual Studio 16 2019" -A x64 -DCMAKE_BUILD_TYPE=Release - Linux:
cmake ../ -DCMAKE_BUILD_TYPE=Release
- Windows:
- Build traintastic-client:
cmake --build . --config Release
Build Traintastic server
- From the project root go into the server directory:
cd server - Create a build directory:
cmake -E make_directory build - Go into the created build directory:
cd build - Configure CMake:
- Windows:
cmake ../ -G "Visual Studio 16 2019" -A x64 -T ClangCL -DCMAKE_BUILD_TYPE=Release -DUSB_XPRESSNET=OFF - Linux:
cmake ../ -DCMAKE_BUILD_TYPE=Release -DUSB_XPRESSNET=OFF
- Windows:
- Build traintastic-server:
cmake --build . --config Release --target traintastic-server
Build Traintastic manual
- From the project root go into the manual directory:
cd manual - Run the build script:
python3 builddoc.py html-single-page --output-dir build
Beschreibung
This is my working repository of Traintastic.
https://github.com/traintastic/traintastic
Languages
C++
95.4%
Python
1.7%
CMake
1%
Inno Setup
0.9%
Lua
0.4%
Andere
0.5%