Skip to content

This is a new Qt based track control software based on the MRW project.

License

Notifications You must be signed in to change notification settings

stmork/mrw-track-control-ng

Repository files navigation

MRW Track Control NG

This is the next generation Qt based track control software based on the MRW project. It reads the modelrailway file, which is XML/XMI based and displays the GUI to control the model railway.

Data flow architecture

flowchart TB
	subgraph Eclipse
	Modelrailway.umlclass -- converts --> Ecore --> GenModel
	GenModel --> Modelleditor-Plugin
	Ecore --> Modelleditor-Plugin
	end
	Modelleditor-Plugin -- edit --> MRW.modelrailway -- uses --> MRW-NG
	subgraph Qt-App
	MRW-NG -. creates .-> Settings
	Signal.properties -. converts .-> MRW-NG
	Gruppe.properties -. converts .-> MRW-NG
	Gleisteile.properties -. converts .-> MRW-NG
	end
Loading

Installation

To install precompiled software on your ubuntu system you have to prepare the APT subsystem. First you have to download the keyring:

sudo wget -O /etc/apt/trusted.gpg.d/mrw.gpg http://eisenbahnsteuerung.org/mrw.gpg

Now you can add an entry into your sources.list file, but it is better to put the line into its own file (/etc/apt/sources.list.d/mrw.list):

deb [signed-by=/etc/apt/trusted.gpg.d/mrw.gpg] http://eisenbahnsteuerung.org/apt/ mrw common firmware

After that you can update and install the software:

sudo apt update
sudo apt install mrw-ng

Starting the application

To start the track control software refer to the README of the MRW-TrackControl application. It additionally contains information about configuring the CAN bus and prepare the EGL on Raspberry Pi mini computers.

Software packages and namespaces

The software is organized in packages each using its own namespace. Every package result in a static library. There are the following packages:

  • mrw::util, libMRW-Util.a which contains convenience classes.
  • mrw::log, libMRW-Log.a which contains logging classes.
  • mrw::can, libMRW-Can.a which contains the CAN support.
  • mrw::model, libMRW-Model.a which contains the data model of model railways.
  • mrw::ctrl, libMRW-Ctrl.a which contains logic classes.
  • mrw::ui, libMRW-UI.a which contains widgets for graphical interaction.
  • mrw::statecharts, libMRW-Statecharts.a which contains state machines supporting the controller classes.

The packages have dependencies as shown in the following diagram:

flowchart BT
	model[mrw::model]
	sc[mrw::statecharts]
	ui[mrw::ui]
	util[mrw::util]
	can[mrw::can]
	ctrl[mrw::ctrl]
	log[mrw::log]

	can -->|depends|util
	ui -->|depends|util
	ctrl -->|depends|util
	ctrl -->|depends|model
	ctrl -->|depends|can
	ui -->|depends|ctrl
	model -->|depends|util
	model -->|depends|can
	ctrl -->|depends|sc
	log -->|depends|util
Loading

About

This is a new Qt based track control software based on the MRW project.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages