Reinder Feenstra 0e1cbf1dfc Fixed network protocol bug
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".
2021-05-26 23:02:05 +02:00
2021-05-26 23:02:05 +02:00
2021-05-26 23:02:05 +02:00
2021-04-12 23:41:54 +02:00
2021-04-04 23:33:07 +02:00
2021-05-14 23:23:32 +02:00

Traintastic - Model railway control software

Build GitHub

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:

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
  • 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
  • Build traintastic-server: cmake --build . --config Release --target traintastic-server

Build Traintastic manual

  1. From the project root go into the manual directory: cd manual
  2. 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
Readme GPL-2.0 17 MiB
Languages
C++ 95.4%
Python 1.7%
CMake 1%
Inno Setup 0.9%
Lua 0.4%
Andere 0.5%