The eXtensible Travel Modelling Framework 2
This repository contains the core DLL for operating with and a desktop user interface a desktop user interface.
The modules curated by TMG can be found in different repositories.
-
TMG-Framework contains the core modules for building travel demand models.
-
TMG.Tasha2 contains the modules for running TASHA (included in GTAModel V4) and TASHA2 (to be included in GTAModel V5).
-
TMG.EMME contains the modules for interacting with INRO's EMME software. Additionally it contains TMG's TMGToolbox2 for EMME.
-
TMG.Visum contains the modules for interacting with PTV Groups' VISUM from XTMF2.
- DotNet Core 10.0+ SDK
dotnet build -c Release
dotnet test -c Release
dotnet run -c Release --project src/XTMF2.GUI/XTMF2.GUI.csproj
Local RunServer execution requires no setup. XTMF2 creates and connects to its local RunServer automatically.
Remote TCP RunServers require TLS and token authentication. On the machine that will host the RunServer, generate its security files once:
dotnet run -c Release --project src/XTMF2.Client/XTMF2.RunServer.csproj -- -setup-security ./runserver-securityThis creates:
runserver-cert.pem: the self-signed TLS certificate.runserver-key.pem: the certificate private key. Keep this file private.runserver-token.txt: the authentication token. Keep this file private.
The setup command prints the certificate's SHA-256 fingerprint. The server also prints the same fingerprint each time it starts; this is safe to share with GUI users and is not the authentication token. Start the remote server with the security directory:
dotnet run -c Release --project src/XTMF2.Client/XTMF2.RunServer.csproj -- -tcp 0.0.0.0 5000 -security ./runserver-securityIn XTMF2, open Settings, open RunServers, and add a remote endpoint. Enter:
- The remote machine's address and TCP port.
- The contents of
runserver-token.txtin Token. - The printed SHA-256 fingerprint in Certificate. Colons and spaces are accepted.
The GUI pins the server certificate to this fingerprint and authenticates with the token before creating the RunServer bus. A mismatched certificate or token is rejected. Do not expose the TCP port to untrusted networks; use firewall rules or a private network as appropriate.
There are 4 major branches for XTMF 2 intended for different purposes: