mirror of
https://github.com/MaSzyna-EU07/maszyna.git
synced 2026-03-22 15:05:03 +01:00
896 lines
54 KiB
C++
896 lines
54 KiB
C++
/*
|
|
This Source Code Form is subject to the
|
|
terms of the Mozilla Public License, v.
|
|
2.0. If a copy of the MPL was not
|
|
distributed with this file, You can
|
|
obtain one at
|
|
http://mozilla.org/MPL/2.0/.
|
|
*/
|
|
|
|
#include "stdafx.h"
|
|
#include "command.h"
|
|
|
|
#include "Globals.h"
|
|
#include "Logs.h"
|
|
#include "Timer.h"
|
|
#include "utilities.h"
|
|
#include "simulation.h"
|
|
#include "Train.h"
|
|
|
|
namespace simulation {
|
|
|
|
command_queue Commands;
|
|
commanddescription_sequence Commands_descriptions = {
|
|
|
|
{"aidriverenable", command_target::vehicle, command_mode::oneoff},
|
|
{"aidriverdisable", command_target::vehicle, command_mode::oneoff},
|
|
{"jointcontrollerset", command_target::vehicle, command_mode::oneoff},
|
|
{"mastercontrollerincrease", command_target::vehicle, command_mode::oneoff},
|
|
{"mastercontrollerincreasefast", command_target::vehicle, command_mode::oneoff},
|
|
{"mastercontrollerdecrease", command_target::vehicle, command_mode::oneoff},
|
|
{"mastercontrollerdecreasefast", command_target::vehicle, command_mode::oneoff},
|
|
{"mastercontrollerset", command_target::vehicle, command_mode::oneoff},
|
|
{"secondcontrollerincrease", command_target::vehicle, command_mode::oneoff},
|
|
{"secondcontrollerincreasefast", command_target::vehicle, command_mode::oneoff},
|
|
{"secondcontrollerdecrease", command_target::vehicle, command_mode::oneoff},
|
|
{"secondcontrollerdecreasefast", command_target::vehicle, command_mode::oneoff},
|
|
{"secondcontrollerset", command_target::vehicle, command_mode::oneoff},
|
|
{"mucurrentindicatorothersourceactivate", command_target::vehicle, command_mode::oneoff},
|
|
{"independentbrakeincrease", command_target::vehicle, command_mode::continuous},
|
|
{"independentbrakeincreasefast", command_target::vehicle, command_mode::oneoff},
|
|
{"independentbrakedecrease", command_target::vehicle, command_mode::continuous},
|
|
{"independentbrakedecreasefast", command_target::vehicle, command_mode::oneoff},
|
|
{"independentbrakeset", command_target::vehicle, command_mode::oneoff},
|
|
{"independentbrakebailoff", command_target::vehicle, command_mode::oneoff},
|
|
{"universalbrakebutton1", command_target::vehicle, command_mode::oneoff},
|
|
{"universalbrakebutton2", command_target::vehicle, command_mode::oneoff},
|
|
{"universalbrakebutton3", command_target::vehicle, command_mode::oneoff},
|
|
{"trainbrakeincrease", command_target::vehicle, command_mode::continuous},
|
|
{"trainbrakedecrease", command_target::vehicle, command_mode::continuous},
|
|
{"trainbrakeset", command_target::vehicle, command_mode::oneoff},
|
|
{"trainbrakecharging", command_target::vehicle, command_mode::oneoff},
|
|
{"trainbrakerelease", command_target::vehicle, command_mode::oneoff},
|
|
{"trainbrakefirstservice", command_target::vehicle, command_mode::oneoff},
|
|
{"trainbrakeservice", command_target::vehicle, command_mode::oneoff},
|
|
{"trainbrakefullservice", command_target::vehicle, command_mode::oneoff},
|
|
{"trainbrakehandleoff", command_target::vehicle, command_mode::oneoff},
|
|
{"trainbrakeemergency", command_target::vehicle, command_mode::oneoff},
|
|
{"trainbrakebasepressureincrease", command_target::vehicle, command_mode::oneoff},
|
|
{"trainbrakebasepressuredecrease", command_target::vehicle, command_mode::oneoff},
|
|
{"trainbrakebasepressurereset", command_target::vehicle, command_mode::oneoff},
|
|
{"trainbrakeoperationtoggle", command_target::vehicle, command_mode::oneoff},
|
|
{"manualbrakeincrease", command_target::vehicle, command_mode::oneoff},
|
|
{"manualbrakedecrease", command_target::vehicle, command_mode::oneoff},
|
|
{"alarmchaintoggle", command_target::vehicle, command_mode::oneoff},
|
|
{"alarmchainenable", command_target::vehicle, command_mode::oneoff},
|
|
{"alarmchaindisable", command_target::vehicle, command_mode::oneoff},
|
|
{"wheelspinbrakeactivate", command_target::vehicle, command_mode::oneoff},
|
|
{"sandboxactivate", command_target::vehicle, command_mode::oneoff},
|
|
{"autosandboxtoggle", command_target::vehicle, command_mode::oneoff},
|
|
{"autosandboxactivate", command_target::vehicle, command_mode::oneoff},
|
|
{"autosandboxdeactivate", command_target::vehicle, command_mode::oneoff},
|
|
{"reverserincrease", command_target::vehicle, command_mode::oneoff},
|
|
{"reverserdecrease", command_target::vehicle, command_mode::oneoff},
|
|
{"reverserforwardhigh", command_target::vehicle, command_mode::oneoff},
|
|
{"reverserforward", command_target::vehicle, command_mode::oneoff},
|
|
{"reverserneutral", command_target::vehicle, command_mode::oneoff},
|
|
{"reverserbackward", command_target::vehicle, command_mode::oneoff},
|
|
{"waterpumpbreakertoggle", command_target::vehicle, command_mode::oneoff},
|
|
{"waterpumpbreakerclose", command_target::vehicle, command_mode::oneoff},
|
|
{"waterpumpbreakeropen", command_target::vehicle, command_mode::oneoff},
|
|
{"waterpumptoggle", command_target::vehicle, command_mode::oneoff},
|
|
{"waterpumpenable", command_target::vehicle, command_mode::oneoff},
|
|
{"waterpumpdisable", command_target::vehicle, command_mode::oneoff},
|
|
{"waterheaterbreakertoggle", command_target::vehicle, command_mode::oneoff},
|
|
{"waterheaterbreakerclose", command_target::vehicle, command_mode::oneoff},
|
|
{"waterheaterbreakeropen", command_target::vehicle, command_mode::oneoff},
|
|
{"waterheatertoggle", command_target::vehicle, command_mode::oneoff},
|
|
{"waterheaterenable", command_target::vehicle, command_mode::oneoff},
|
|
{"waterheaterdisable", command_target::vehicle, command_mode::oneoff},
|
|
{"watercircuitslinktoggle", command_target::vehicle, command_mode::oneoff},
|
|
{"watercircuitslinkenable", command_target::vehicle, command_mode::oneoff},
|
|
{"watercircuitslinkdisable", command_target::vehicle, command_mode::oneoff},
|
|
{"fuelpumptoggle", command_target::vehicle, command_mode::oneoff},
|
|
{"fuelpumpenable", command_target::vehicle, command_mode::oneoff},
|
|
{"fuelpumpdisable", command_target::vehicle, command_mode::oneoff},
|
|
{"oilpumptoggle", command_target::vehicle, command_mode::oneoff},
|
|
{"oilpumpenable", command_target::vehicle, command_mode::oneoff},
|
|
{"oilpumpdisable", command_target::vehicle, command_mode::oneoff},
|
|
{"linebreakertoggle", command_target::vehicle, command_mode::oneoff},
|
|
{"linebreakeropen", command_target::vehicle, command_mode::oneoff},
|
|
{"linebreakerclose", command_target::vehicle, command_mode::oneoff},
|
|
{"convertertoggle", command_target::vehicle, command_mode::oneoff},
|
|
{"converterenable", command_target::vehicle, command_mode::oneoff},
|
|
{"converterdisable", command_target::vehicle, command_mode::oneoff},
|
|
{"convertertogglelocal", command_target::vehicle, command_mode::oneoff},
|
|
{"converteroverloadrelayreset", command_target::vehicle, command_mode::oneoff},
|
|
{"compressortoggle", command_target::vehicle, command_mode::oneoff},
|
|
{"compressorenable", command_target::vehicle, command_mode::oneoff},
|
|
{"compressordisable", command_target::vehicle, command_mode::oneoff},
|
|
{"compressortogglelocal", command_target::vehicle, command_mode::oneoff},
|
|
{"compressorpresetactivatenext", command_target::vehicle, command_mode::oneoff},
|
|
{"compressorpresetactivateprevious", command_target::vehicle, command_mode::oneoff},
|
|
{"compressorpresetactivatedefault", command_target::vehicle, command_mode::oneoff},
|
|
{"motoroverloadrelaythresholdtoggle", command_target::vehicle, command_mode::oneoff},
|
|
{"motoroverloadrelaythresholdsetlow", command_target::vehicle, command_mode::oneoff},
|
|
{"motoroverloadrelaythresholdsethigh", command_target::vehicle, command_mode::oneoff},
|
|
{"motoroverloadrelayreset", command_target::vehicle, command_mode::oneoff},
|
|
{"universalrelayreset1", command_target::vehicle, command_mode::oneoff},
|
|
{"universalrelayreset2", command_target::vehicle, command_mode::oneoff},
|
|
{"universalrelayreset3", command_target::vehicle, command_mode::oneoff},
|
|
{"notchingrelaytoggle", command_target::vehicle, command_mode::oneoff},
|
|
{"epbrakecontroltoggle", command_target::vehicle, command_mode::oneoff},
|
|
{"epbrakecontrolenable", command_target::vehicle, command_mode::oneoff},
|
|
{"epbrakecontroldisable", command_target::vehicle, command_mode::oneoff},
|
|
{"trainbrakeoperationmodeincrease", command_target::vehicle, command_mode::oneoff},
|
|
{"trainbrakeoperationmodedecrease", command_target::vehicle, command_mode::oneoff},
|
|
{"brakeactingspeedincrease", command_target::vehicle, command_mode::oneoff},
|
|
{"brakeactingspeeddecrease", command_target::vehicle, command_mode::oneoff},
|
|
{"brakeactingspeedsetcargo", command_target::vehicle, command_mode::oneoff},
|
|
{"brakeactingspeedsetpassenger", command_target::vehicle, command_mode::oneoff},
|
|
{"brakeactingspeedsetrapid", command_target::vehicle, command_mode::oneoff},
|
|
{"brakeloadcompensationincrease", command_target::vehicle, command_mode::oneoff},
|
|
{"brakeloadcompensationdecrease", command_target::vehicle, command_mode::oneoff},
|
|
{"mubrakingindicatortoggle", command_target::vehicle, command_mode::oneoff},
|
|
{"alerteracknowledge", command_target::vehicle, command_mode::oneoff},
|
|
{"cabsignalacknowledge", command_target::vehicle, command_mode::oneoff},
|
|
{"hornlowactivate", command_target::vehicle, command_mode::oneoff},
|
|
{"hornhighactivate", command_target::vehicle, command_mode::oneoff},
|
|
{"whistleactivate", command_target::vehicle, command_mode::oneoff},
|
|
{"radiotoggle", command_target::vehicle, command_mode::oneoff},
|
|
{"radioenable", command_target::vehicle, command_mode::oneoff},
|
|
{"radiodisable", command_target::vehicle, command_mode::oneoff},
|
|
{"radiochannelincrease", command_target::vehicle, command_mode::oneoff},
|
|
{"radiochanneldecrease", command_target::vehicle, command_mode::oneoff},
|
|
{"radiochannelset", command_target::vehicle, command_mode::oneoff},
|
|
{"radiostopsend", command_target::vehicle, command_mode::oneoff},
|
|
{"radiostopenable", command_target::vehicle, command_mode::oneoff},
|
|
{"radiostopdisable", command_target::vehicle, command_mode::oneoff},
|
|
{"radiostoptest", command_target::vehicle, command_mode::oneoff},
|
|
{"radiocall3send", command_target::vehicle, command_mode::oneoff},
|
|
{"radiovolumeincrease", command_target::vehicle, command_mode::oneoff},
|
|
{"radiovolumedecrease", command_target::vehicle, command_mode::oneoff},
|
|
{"radiovolumeset", command_target::vehicle, command_mode::oneoff},
|
|
{"cabchangeforward", command_target::vehicle, command_mode::oneoff},
|
|
{"cabchangebackward", command_target::vehicle, command_mode::oneoff},
|
|
{"modernlightdimmerdecrease", command_target::vehicle, command_mode::oneoff},
|
|
{"modernlightdimmerincrease", command_target::vehicle, command_mode::oneoff},
|
|
{ "viewturn", command_target::entity, command_mode::oneoff },
|
|
{ "movehorizontal", command_target::entity, command_mode::oneoff },
|
|
{ "movehorizontalfast", command_target::entity, command_mode::oneoff },
|
|
{ "movevertical", command_target::entity, command_mode::oneoff },
|
|
{ "moveverticalfast", command_target::entity, command_mode::oneoff },
|
|
{ "moveleft", command_target::entity, command_mode::oneoff },
|
|
{ "moveright", command_target::entity, command_mode::oneoff },
|
|
{ "moveforward", command_target::entity, command_mode::oneoff },
|
|
{ "moveback", command_target::entity, command_mode::oneoff },
|
|
{ "moveup", command_target::entity, command_mode::oneoff },
|
|
{ "movedown", command_target::entity, command_mode::oneoff },
|
|
{ "nearestcarcouplingincrease", command_target::vehicle, command_mode::oneoff },
|
|
{ "nearestcarcouplingdisconnect", command_target::vehicle, command_mode::oneoff },
|
|
{ "nearestcarcoupleradapterattach", command_target::vehicle, command_mode::oneoff },
|
|
{ "nearestcarcoupleradapterremove", command_target::vehicle, command_mode::oneoff },
|
|
{ "occupiedcarcouplingdisconnect", command_target::vehicle, command_mode::oneoff },
|
|
{ "occupiedcarcouplingdisconnectback", command_target::vehicle, command_mode::oneoff },
|
|
{ "doortoggleleft", command_target::vehicle, command_mode::oneoff },
|
|
{ "doortoggleright", command_target::vehicle, command_mode::oneoff },
|
|
{ "doorpermitleft", command_target::vehicle, command_mode::oneoff },
|
|
{ "doorpermitright", command_target::vehicle, command_mode::oneoff },
|
|
{ "doorpermitpresetactivatenext", command_target::vehicle, command_mode::oneoff },
|
|
{ "doorpermitpresetactivateprevious", command_target::vehicle, command_mode::oneoff },
|
|
{ "dooropenleft", command_target::vehicle, command_mode::oneoff },
|
|
{ "dooropenright", command_target::vehicle, command_mode::oneoff },
|
|
{ "dooropenall", command_target::vehicle, command_mode::oneoff },
|
|
{ "doorcloseleft", command_target::vehicle, command_mode::oneoff },
|
|
{ "doorcloseright", command_target::vehicle, command_mode::oneoff },
|
|
{ "doorcloseall", command_target::vehicle, command_mode::oneoff },
|
|
{ "doorsteptoggle", command_target::vehicle, command_mode::oneoff },
|
|
{ "doormodetoggle", command_target::vehicle, command_mode::oneoff },
|
|
{ "mirrorstoggle", command_target::vehicle, command_mode::oneoff },
|
|
{ "departureannounce", command_target::vehicle, command_mode::oneoff },
|
|
{ "doorlocktoggle", command_target::vehicle, command_mode::oneoff },
|
|
{ "pantographcompressorvalvetoggle", command_target::vehicle, command_mode::oneoff },
|
|
{ "pantographcompressorvalveenable", command_target::vehicle, command_mode::oneoff },
|
|
{ "pantographcompressorvalvedisable", command_target::vehicle, command_mode::oneoff },
|
|
{ "pantographcompressoractivate", command_target::vehicle, command_mode::oneoff },
|
|
{ "pantographtogglefront", command_target::vehicle, command_mode::oneoff },
|
|
{ "pantographtogglerear", command_target::vehicle, command_mode::oneoff },
|
|
{ "pantographraisefront", command_target::vehicle, command_mode::oneoff },
|
|
{ "pantographraiserear", command_target::vehicle, command_mode::oneoff },
|
|
{ "pantographlowerfront", command_target::vehicle, command_mode::oneoff },
|
|
{ "pantographlowerrear", command_target::vehicle, command_mode::oneoff },
|
|
{ "pantographlowerall", command_target::vehicle, command_mode::oneoff },
|
|
{ "pantographselectnext", command_target::vehicle, command_mode::oneoff },
|
|
{ "pantographselectprevious", command_target::vehicle, command_mode::oneoff },
|
|
{ "pantographtoggleselected", command_target::vehicle, command_mode::oneoff },
|
|
{ "pantographraiseselected", command_target::vehicle, command_mode::oneoff },
|
|
{ "pantographlowerselected", command_target::vehicle, command_mode::oneoff },
|
|
{ "pantographvalvesupdate", command_target::vehicle, command_mode::oneoff },
|
|
{ "pantographvalvesoff", command_target::vehicle, command_mode::oneoff },
|
|
{ "heatingtoggle", command_target::vehicle, command_mode::oneoff },
|
|
{ "heatingenable", command_target::vehicle, command_mode::oneoff },
|
|
{ "heatingdisable", command_target::vehicle, command_mode::oneoff },
|
|
{ "lightspresetactivatenext", command_target::vehicle, command_mode::oneoff },
|
|
{ "lightspresetactivateprevious", command_target::vehicle, command_mode::oneoff },
|
|
{ "headlighttoggleleft", command_target::vehicle, command_mode::oneoff },
|
|
{ "headlightenableleft", command_target::vehicle, command_mode::oneoff },
|
|
{ "headlightdisableleft", command_target::vehicle, command_mode::oneoff },
|
|
{ "headlighttoggleright", command_target::vehicle, command_mode::oneoff },
|
|
{ "headlightenableright", command_target::vehicle, command_mode::oneoff },
|
|
{ "headlightdisableright", command_target::vehicle, command_mode::oneoff },
|
|
{ "headlighttoggleupper", command_target::vehicle, command_mode::oneoff },
|
|
{ "headlightenableupper", command_target::vehicle, command_mode::oneoff },
|
|
{ "headlightdisableupper", command_target::vehicle, command_mode::oneoff },
|
|
{ "redmarkertoggleleft", command_target::vehicle, command_mode::oneoff },
|
|
{ "redmarkerenableleft", command_target::vehicle, command_mode::oneoff },
|
|
{ "redmarkerdisableleft", command_target::vehicle, command_mode::oneoff },
|
|
{ "redmarkertoggleright", command_target::vehicle, command_mode::oneoff },
|
|
{ "redmarkerenableright", command_target::vehicle, command_mode::oneoff },
|
|
{ "redmarkerdisableright", command_target::vehicle, command_mode::oneoff },
|
|
{ "headlighttogglerearleft", command_target::vehicle, command_mode::oneoff },
|
|
{ "headlightenablerearleft", command_target::vehicle, command_mode::oneoff },
|
|
{ "headlightdisablerearleft", command_target::vehicle, command_mode::oneoff },
|
|
{ "headlighttogglerearright", command_target::vehicle, command_mode::oneoff },
|
|
{ "headlightenablerearright", command_target::vehicle, command_mode::oneoff },
|
|
{ "headlightdisablerearright", command_target::vehicle, command_mode::oneoff },
|
|
{ "headlighttogglerearupper", command_target::vehicle, command_mode::oneoff },
|
|
{ "headlightenablerearupper", command_target::vehicle, command_mode::oneoff },
|
|
{ "headlightdisablerearupper", command_target::vehicle, command_mode::oneoff },
|
|
{ "redmarkertogglerearleft", command_target::vehicle, command_mode::oneoff },
|
|
{ "redmarkerenablerearleft", command_target::vehicle, command_mode::oneoff },
|
|
{ "redmarkerdisablerearleft", command_target::vehicle, command_mode::oneoff },
|
|
{ "redmarkertogglerearright", command_target::vehicle, command_mode::oneoff },
|
|
{ "redmarkerenablerearright", command_target::vehicle, command_mode::oneoff },
|
|
{ "redmarkerdisablerearright", command_target::vehicle, command_mode::oneoff },
|
|
{ "redmarkerstoggle", command_target::vehicle, command_mode::oneoff },
|
|
{ "endsignalstoggle", command_target::vehicle, command_mode::oneoff },
|
|
{ "headlightsdimtoggle", command_target::vehicle, command_mode::oneoff },
|
|
{ "headlightsdimenable", command_target::vehicle, command_mode::oneoff },
|
|
{ "headlightsdimdisable", command_target::vehicle, command_mode::oneoff },
|
|
{ "motorconnectorsopen", command_target::vehicle, command_mode::oneoff },
|
|
{ "motorconnectorsclose", command_target::vehicle, command_mode::oneoff },
|
|
{ "motordisconnect", command_target::vehicle, command_mode::oneoff },
|
|
{ "interiorlighttoggle", command_target::vehicle, command_mode::oneoff },
|
|
{ "interiorlightenable", command_target::vehicle, command_mode::oneoff },
|
|
{ "interiorlightdisable", command_target::vehicle, command_mode::oneoff },
|
|
{ "interiorlightdimtoggle", command_target::vehicle, command_mode::oneoff },
|
|
{ "interiorlightdimenable", command_target::vehicle, command_mode::oneoff },
|
|
{ "interiorlightdimdisable", command_target::vehicle, command_mode::oneoff },
|
|
{ "compartmentlightstoggle", command_target::vehicle, command_mode::oneoff },
|
|
{ "compartmentlightsenable", command_target::vehicle, command_mode::oneoff },
|
|
{ "compartmentlightsdisable", command_target::vehicle, command_mode::oneoff },
|
|
{ "instrumentlighttoggle", command_target::vehicle, command_mode::oneoff },
|
|
{ "instrumentlightenable", command_target::vehicle, command_mode::oneoff },
|
|
{ "instrumentlightdisable", command_target::vehicle, command_mode::oneoff },
|
|
{ "dashboardlighttoggle", command_target::vehicle, command_mode::oneoff },
|
|
{ "dashboardlightenable", command_target::vehicle, command_mode::oneoff },
|
|
{ "dashboardlightdisable", command_target::vehicle, command_mode::oneoff },
|
|
{ "timetablelighttoggle", command_target::vehicle, command_mode::oneoff },
|
|
{ "timetablelightenable", command_target::vehicle, command_mode::oneoff },
|
|
{ "timetablelightdisable", command_target::vehicle, command_mode::oneoff },
|
|
{"generictoggle0", command_target::vehicle, command_mode::oneoff},
|
|
{"generictoggle1", command_target::vehicle, command_mode::oneoff},
|
|
{"generictoggle2", command_target::vehicle, command_mode::oneoff},
|
|
{"generictoggle3", command_target::vehicle, command_mode::oneoff},
|
|
{"generictoggle4", command_target::vehicle, command_mode::oneoff},
|
|
{"generictoggle5", command_target::vehicle, command_mode::oneoff},
|
|
{"generictoggle6", command_target::vehicle, command_mode::oneoff},
|
|
{"generictoggle7", command_target::vehicle, command_mode::oneoff},
|
|
{"generictoggle8", command_target::vehicle, command_mode::oneoff},
|
|
{"generictoggle9", command_target::vehicle, command_mode::oneoff},
|
|
{"generictoggle10", command_target::vehicle, command_mode::oneoff},
|
|
{"generictoggle11", command_target::vehicle, command_mode::oneoff},
|
|
{"generictoggle12", command_target::vehicle, command_mode::oneoff},
|
|
{"generictoggle13", command_target::vehicle, command_mode::oneoff},
|
|
{"generictoggle14", command_target::vehicle, command_mode::oneoff},
|
|
{"generictoggle15", command_target::vehicle, command_mode::oneoff},
|
|
{"generictoggle16", command_target::vehicle, command_mode::oneoff},
|
|
{"generictoggle17", command_target::vehicle, command_mode::oneoff},
|
|
{"generictoggle18", command_target::vehicle, command_mode::oneoff},
|
|
{"generictoggle19", command_target::vehicle, command_mode::oneoff},
|
|
{"generictoggle20", command_target::vehicle, command_mode::oneoff},
|
|
{"generictoggle21", command_target::vehicle, command_mode::oneoff},
|
|
{"generictoggle22", command_target::vehicle, command_mode::oneoff},
|
|
{"generictoggle23", command_target::vehicle, command_mode::oneoff},
|
|
{"generictoggle24", command_target::vehicle, command_mode::oneoff},
|
|
{"generictoggle25", command_target::vehicle, command_mode::oneoff},
|
|
{"generictoggle26", command_target::vehicle, command_mode::oneoff},
|
|
{"generictoggle27", command_target::vehicle, command_mode::oneoff},
|
|
{"generictoggle28", command_target::vehicle, command_mode::oneoff},
|
|
{"generictoggle29", command_target::vehicle, command_mode::oneoff},
|
|
{ "batterytoggle", command_target::vehicle, command_mode::oneoff },
|
|
{ "batteryenable", command_target::vehicle, command_mode::oneoff },
|
|
{ "batterydisable", command_target::vehicle, command_mode::oneoff },
|
|
{ "cabactivationtoggle", command_target::vehicle, command_mode::oneoff },
|
|
{ "cabactivationenable", command_target::vehicle, command_mode::oneoff },
|
|
{ "cabactivationdisable", command_target::vehicle, command_mode::oneoff },
|
|
{ "motorblowerstogglefront", command_target::vehicle, command_mode::oneoff },
|
|
{ "motorblowerstogglerear", command_target::vehicle, command_mode::oneoff },
|
|
{ "motorblowersdisableall", command_target::vehicle, command_mode::oneoff },
|
|
{ "coolingfanstoggle", command_target::vehicle, command_mode::oneoff },
|
|
{ "tempomattoggle", command_target::vehicle, command_mode::oneoff },
|
|
{ "springbraketoggle", command_target::vehicle, command_mode::oneoff },
|
|
{ "springbrakeenable", command_target::vehicle, command_mode::oneoff },
|
|
{ "springbrakedisable", command_target::vehicle, command_mode::oneoff },
|
|
{ "springbrakeshutofftoggle", command_target::vehicle, command_mode::oneoff },
|
|
{ "springbrakeshutoffenable", command_target::vehicle, command_mode::oneoff },
|
|
{ "springbrakeshutoffdisable", command_target::vehicle, command_mode::oneoff },
|
|
{ "springbrakerelease", command_target::vehicle },
|
|
{ "distancecounteractivate", command_target::vehicle, command_mode::oneoff },
|
|
{ "speedcontrolincrease", command_target::vehicle, command_mode::oneoff },
|
|
{ "speedcontroldecrease", command_target::vehicle, command_mode::oneoff },
|
|
{ "speedcontrolpowerincrease", command_target::vehicle, command_mode::oneoff },
|
|
{ "speedcontrolpowerdecrease", command_target::vehicle, command_mode::oneoff },
|
|
{ "speedcontrolbutton0", command_target::vehicle, command_mode::oneoff },
|
|
{ "speedcontrolbutton1", command_target::vehicle, command_mode::oneoff },
|
|
{ "speedcontrolbutton2", command_target::vehicle, command_mode::oneoff },
|
|
{ "speedcontrolbutton3", command_target::vehicle, command_mode::oneoff },
|
|
{ "speedcontrolbutton4", command_target::vehicle, command_mode::oneoff },
|
|
{ "speedcontrolbutton5", command_target::vehicle, command_mode::oneoff },
|
|
{ "speedcontrolbutton6", command_target::vehicle, command_mode::oneoff },
|
|
{ "speedcontrolbutton7", command_target::vehicle, command_mode::oneoff },
|
|
{ "speedcontrolbutton8", command_target::vehicle, command_mode::oneoff },
|
|
{ "speedcontrolbutton9", command_target::vehicle, command_mode::oneoff },
|
|
{ "inverterenable1", command_target::vehicle, command_mode::oneoff },
|
|
{ "inverterenable2", command_target::vehicle, command_mode::oneoff },
|
|
{ "inverterenable3", command_target::vehicle, command_mode::oneoff },
|
|
{ "inverterenable4", command_target::vehicle, command_mode::oneoff },
|
|
{ "inverterenable5", command_target::vehicle, command_mode::oneoff },
|
|
{ "inverterenable6", command_target::vehicle, command_mode::oneoff },
|
|
{ "inverterenable7", command_target::vehicle, command_mode::oneoff },
|
|
{ "inverterenable8", command_target::vehicle, command_mode::oneoff },
|
|
{ "inverterenable9", command_target::vehicle, command_mode::oneoff },
|
|
{ "inverterenable10", command_target::vehicle, command_mode::oneoff },
|
|
{ "inverterenable11", command_target::vehicle, command_mode::oneoff },
|
|
{ "inverterenable12", command_target::vehicle, command_mode::oneoff },
|
|
{ "inverterdisable1", command_target::vehicle, command_mode::oneoff },
|
|
{ "inverterdisable2", command_target::vehicle, command_mode::oneoff },
|
|
{ "inverterdisable3", command_target::vehicle, command_mode::oneoff },
|
|
{ "inverterdisable4", command_target::vehicle, command_mode::oneoff },
|
|
{ "inverterdisable5", command_target::vehicle, command_mode::oneoff },
|
|
{ "inverterdisable6", command_target::vehicle, command_mode::oneoff },
|
|
{ "inverterdisable7", command_target::vehicle, command_mode::oneoff },
|
|
{ "inverterdisable8", command_target::vehicle, command_mode::oneoff },
|
|
{ "inverterdisable9", command_target::vehicle, command_mode::oneoff },
|
|
{ "inverterdisable10", command_target::vehicle, command_mode::oneoff },
|
|
{ "inverterdisable11", command_target::vehicle, command_mode::oneoff },
|
|
{ "inverterdisable12", command_target::vehicle, command_mode::oneoff },
|
|
{ "invertertoggle1", command_target::vehicle, command_mode::oneoff },
|
|
{ "invertertoggle2", command_target::vehicle, command_mode::oneoff },
|
|
{ "invertertoggle3", command_target::vehicle, command_mode::oneoff },
|
|
{ "invertertoggle4", command_target::vehicle, command_mode::oneoff },
|
|
{ "invertertoggle5", command_target::vehicle, command_mode::oneoff },
|
|
{ "invertertoggle6", command_target::vehicle, command_mode::oneoff },
|
|
{ "invertertoggle7", command_target::vehicle, command_mode::oneoff },
|
|
{ "invertertoggle8", command_target::vehicle, command_mode::oneoff },
|
|
{ "invertertoggle9", command_target::vehicle, command_mode::oneoff },
|
|
{ "invertertoggle10", command_target::vehicle, command_mode::oneoff },
|
|
{ "invertertoggle11", command_target::vehicle, command_mode::oneoff },
|
|
{ "invertertoggle12", command_target::vehicle, command_mode::oneoff },
|
|
{ "globalradiostop", command_target::simulation, command_mode::oneoff },
|
|
{ "timejump", command_target::simulation, command_mode::oneoff },
|
|
{ "timejumplarge", command_target::simulation, command_mode::oneoff },
|
|
{ "timejumpsmall", command_target::simulation, command_mode::oneoff },
|
|
{ "setdatetime", command_target::simulation, command_mode::oneoff },
|
|
{ "setweather", command_target::simulation, command_mode::oneoff },
|
|
{ "settemperature", command_target::simulation, command_mode::oneoff },
|
|
{ "vehiclemoveforwards", command_target::vehicle, command_mode::oneoff },
|
|
{ "vehiclemovebackwards", command_target::vehicle, command_mode::oneoff },
|
|
{ "vehicleboost", command_target::vehicle, command_mode::oneoff },
|
|
{ "debugtoggle", command_target::simulation, command_mode::oneoff },
|
|
{ "focuspauseset", command_target::simulation, command_mode::oneoff },
|
|
{ "pausetoggle", command_target::simulation, command_mode::oneoff },
|
|
{ "entervehicle", command_target::simulation, command_mode::oneoff },
|
|
{ "resetconsist", command_target::simulation, command_mode::oneoff },
|
|
{ "fillcompressor", command_target::simulation, command_mode::oneoff },
|
|
{ "consistreleaser", command_target::simulation, command_mode::oneoff },
|
|
{ "queueevent", command_target::simulation, command_mode::oneoff },
|
|
{ "setlight", command_target::simulation, command_mode::oneoff },
|
|
{ "insertmodel", command_target::simulation, command_mode::oneoff },
|
|
{ "deletemodel", command_target::simulation, command_mode::oneoff },
|
|
{ "trainsetmove", command_target::simulation, command_mode::oneoff },
|
|
{ "consistteleport", command_target::simulation, command_mode::oneoff },
|
|
{ "pullalarmchain", command_target::simulation, command_mode::oneoff },
|
|
{ "sendaicommand", command_target::simulation, command_mode::oneoff },
|
|
{ "spawntrainset", command_target::simulation, command_mode::oneoff },
|
|
{ "destroytrainset", command_target::simulation, command_mode::oneoff },
|
|
{ "quitsimulation", command_target::simulation, command_mode::oneoff },
|
|
{"wiperswitchincrease", command_target::vehicle, command_mode::oneoff},
|
|
{"wiperswitchdecrease", command_target::vehicle, command_mode::oneoff},
|
|
{"lightsset", command_target::vehicle, command_mode::oneoff},
|
|
};
|
|
|
|
// Maps of command and coresponding strings
|
|
std::unordered_map<std::string, user_command> commandMap = {
|
|
{"aidriverdisable", user_command::aidriverdisable},
|
|
{"jointcontrollerset", user_command::jointcontrollerset},
|
|
{"mastercontrollerincrease", user_command::mastercontrollerincrease},
|
|
{"mastercontrollerincreasefast", user_command::mastercontrollerincreasefast},
|
|
{"mastercontrollerdecrease", user_command::mastercontrollerdecrease},
|
|
{"mastercontrollerdecreasefast", user_command::mastercontrollerdecreasefast},
|
|
{"mastercontrollerset", user_command::mastercontrollerset},
|
|
{"secondcontrollerincrease", user_command::secondcontrollerincrease},
|
|
{"secondcontrollerincreasefast", user_command::secondcontrollerincreasefast},
|
|
{"secondcontrollerdecrease", user_command::secondcontrollerdecrease},
|
|
{"secondcontrollerdecreasefast", user_command::secondcontrollerdecreasefast},
|
|
{"secondcontrollerset", user_command::secondcontrollerset},
|
|
{"mucurrentindicatorothersourceactivate", user_command::mucurrentindicatorothersourceactivate},
|
|
{"independentbrakeincrease", user_command::independentbrakeincrease},
|
|
{"independentbrakeincreasefast", user_command::independentbrakeincreasefast},
|
|
{"independentbrakedecrease", user_command::independentbrakedecrease},
|
|
{"independentbrakedecreasefast", user_command::independentbrakedecreasefast},
|
|
{"independentbrakeset", user_command::independentbrakeset},
|
|
{"independentbrakebailoff", user_command::independentbrakebailoff},
|
|
{"universalbrakebutton1", user_command::universalbrakebutton1},
|
|
{"universalbrakebutton2", user_command::universalbrakebutton2},
|
|
{"universalbrakebutton3", user_command::universalbrakebutton3},
|
|
{"trainbrakeincrease", user_command::trainbrakeincrease},
|
|
{"trainbrakedecrease", user_command::trainbrakedecrease},
|
|
{"trainbrakeset", user_command::trainbrakeset},
|
|
{"trainbrakecharging", user_command::trainbrakecharging},
|
|
{"trainbrakerelease", user_command::trainbrakerelease},
|
|
{"trainbrakefirstservice", user_command::trainbrakefirstservice},
|
|
{"trainbrakeservice", user_command::trainbrakeservice},
|
|
{"trainbrakefullservice", user_command::trainbrakefullservice},
|
|
{"trainbrakehandleoff", user_command::trainbrakehandleoff},
|
|
{"trainbrakeemergency", user_command::trainbrakeemergency},
|
|
{"trainbrakebasepressureincrease", user_command::trainbrakebasepressureincrease},
|
|
{"trainbrakebasepressuredecrease", user_command::trainbrakebasepressuredecrease},
|
|
{"trainbrakebasepressurereset", user_command::trainbrakebasepressurereset},
|
|
{"trainbrakeoperationtoggle", user_command::trainbrakeoperationtoggle},
|
|
{"manualbrakeincrease", user_command::manualbrakeincrease},
|
|
{"manualbrakedecrease", user_command::manualbrakedecrease},
|
|
{"alarmchaintoggle", user_command::alarmchaintoggle},
|
|
{"alarmchainenable", user_command::alarmchainenable},
|
|
{"alarmchaindisable", user_command::alarmchaindisable},
|
|
{"wheelspinbrakeactivate", user_command::wheelspinbrakeactivate},
|
|
{"sandboxactivate", user_command::sandboxactivate},
|
|
{"autosandboxtoggle", user_command::autosandboxtoggle},
|
|
{"autosandboxactivate", user_command::autosandboxactivate},
|
|
{"autosandboxdeactivate", user_command::autosandboxdeactivate},
|
|
{"reverserincrease", user_command::reverserincrease},
|
|
{"reverserdecrease", user_command::reverserdecrease},
|
|
{"reverserforwardhigh", user_command::reverserforwardhigh},
|
|
{"reverserforward", user_command::reverserforward},
|
|
{"reverserneutral", user_command::reverserneutral},
|
|
{"reverserbackward", user_command::reverserbackward},
|
|
{"waterpumpbreakertoggle", user_command::waterpumpbreakertoggle},
|
|
{"waterpumpbreakerclose", user_command::waterpumpbreakerclose},
|
|
{"waterpumpbreakeropen", user_command::waterpumpbreakeropen},
|
|
{"waterpumptoggle", user_command::waterpumptoggle},
|
|
{"waterpumpenable", user_command::waterpumpenable},
|
|
{"waterpumpdisable", user_command::waterpumpdisable},
|
|
{"waterheaterbreakertoggle", user_command::waterheaterbreakertoggle},
|
|
{"waterheaterbreakerclose", user_command::waterheaterbreakerclose},
|
|
{"waterheaterbreakeropen", user_command::waterheaterbreakeropen},
|
|
{"waterheatertoggle", user_command::waterheatertoggle},
|
|
{"waterheaterenable", user_command::waterheaterenable},
|
|
{"waterheaterdisable", user_command::waterheaterdisable},
|
|
{"watercircuitslinktoggle", user_command::watercircuitslinktoggle},
|
|
{"watercircuitslinkenable", user_command::watercircuitslinkenable},
|
|
{"watercircuitslinkdisable", user_command::watercircuitslinkdisable},
|
|
{"fuelpumptoggle", user_command::fuelpumptoggle},
|
|
{"fuelpumpenable", user_command::fuelpumpenable},
|
|
{"fuelpumpdisable", user_command::fuelpumpdisable},
|
|
{"oilpumptoggle", user_command::oilpumptoggle},
|
|
{"oilpumpenable", user_command::oilpumpenable},
|
|
{"oilpumpdisable", user_command::oilpumpdisable},
|
|
{"linebreakertoggle", user_command::linebreakertoggle},
|
|
{"linebreakeropen", user_command::linebreakeropen},
|
|
{"linebreakerclose", user_command::linebreakerclose},
|
|
{"convertertoggle", user_command::convertertoggle},
|
|
{"converterenable", user_command::converterenable},
|
|
{"converterdisable", user_command::converterdisable},
|
|
{"convertertogglelocal", user_command::convertertogglelocal},
|
|
{"converteroverloadrelayreset", user_command::converteroverloadrelayreset},
|
|
{"compressortoggle", user_command::compressortoggle},
|
|
{"compressorenable", user_command::compressorenable},
|
|
{"compressordisable", user_command::compressordisable},
|
|
{"compressortogglelocal", user_command::compressortogglelocal},
|
|
{"compressorpresetactivatenext", user_command::compressorpresetactivatenext},
|
|
{"compressorpresetactivateprevious", user_command::compressorpresetactivateprevious},
|
|
{"compressorpresetactivatedefault", user_command::compressorpresetactivatedefault},
|
|
{"motoroverloadrelaythresholdtoggle", user_command::motoroverloadrelaythresholdtoggle},
|
|
{"motoroverloadrelaythresholdsetlow", user_command::motoroverloadrelaythresholdsetlow},
|
|
{"motoroverloadrelaythresholdsethigh", user_command::motoroverloadrelaythresholdsethigh},
|
|
{"motoroverloadrelayreset", user_command::motoroverloadrelayreset},
|
|
{"universalrelayreset1", user_command::universalrelayreset1},
|
|
{"universalrelayreset2", user_command::universalrelayreset2},
|
|
{"universalrelayreset3", user_command::universalrelayreset3},
|
|
{"notchingrelaytoggle", user_command::notchingrelaytoggle},
|
|
{"epbrakecontroltoggle", user_command::epbrakecontroltoggle},
|
|
{"epbrakecontrolenable", user_command::epbrakecontrolenable},
|
|
{"epbrakecontroldisable", user_command::epbrakecontroldisable},
|
|
{"trainbrakeoperationmodeincrease", user_command::trainbrakeoperationmodeincrease},
|
|
{"trainbrakeoperationmodedecrease", user_command::trainbrakeoperationmodedecrease},
|
|
{"brakeactingspeedincrease", user_command::brakeactingspeedincrease},
|
|
{"brakeactingspeeddecrease", user_command::brakeactingspeeddecrease},
|
|
{"brakeactingspeedsetcargo", user_command::brakeactingspeedsetcargo},
|
|
{"brakeactingspeedsetpassenger", user_command::brakeactingspeedsetpassenger},
|
|
{"brakeactingspeedsetrapid", user_command::brakeactingspeedsetrapid},
|
|
{"brakeloadcompensationincrease", user_command::brakeloadcompensationincrease},
|
|
{"brakeloadcompensationdecrease", user_command::brakeloadcompensationdecrease},
|
|
{"mubrakingindicatortoggle", user_command::mubrakingindicatortoggle},
|
|
{"alerteracknowledge", user_command::alerteracknowledge},
|
|
{"cabsignalacknowledge", user_command::cabsignalacknowledge},
|
|
{"hornlowactivate", user_command::hornlowactivate},
|
|
{"hornhighactivate", user_command::hornhighactivate},
|
|
{"whistleactivate", user_command::whistleactivate},
|
|
{"radiotoggle", user_command::radiotoggle},
|
|
{"radioenable", user_command::radioenable},
|
|
{"radiodisable", user_command::radiodisable},
|
|
{"radiochannelincrease", user_command::radiochannelincrease},
|
|
{"radiochanneldecrease", user_command::radiochanneldecrease},
|
|
{"radiochannelset", user_command::radiochannelset},
|
|
{"radiostopsend", user_command::radiostopsend},
|
|
{"radiostopenable", user_command::radiostopenable},
|
|
{"radiostopdisable", user_command::radiostopdisable},
|
|
{"radiostoptest", user_command::radiostoptest},
|
|
{"radiocall3send", user_command::radiocall3send},
|
|
{"radiovolumeincrease", user_command::radiovolumeincrease},
|
|
{"radiovolumedecrease", user_command::radiovolumedecrease},
|
|
{"radiovolumeset", user_command::radiovolumeset},
|
|
{"cabchangeforward", user_command::cabchangeforward},
|
|
{"cabchangebackward", user_command::cabchangebackward},
|
|
{"viewturn", user_command::viewturn},
|
|
{"movehorizontal", user_command::movehorizontal},
|
|
{"movehorizontalfast", user_command::movehorizontalfast},
|
|
{"movevertical", user_command::movevertical},
|
|
{"moveverticalfast", user_command::moveverticalfast},
|
|
{"moveleft", user_command::moveleft},
|
|
{"moveright", user_command::moveright},
|
|
{"moveforward", user_command::moveforward},
|
|
{"moveback", user_command::moveback},
|
|
{"moveup", user_command::moveup},
|
|
{"movedown", user_command::movedown},
|
|
{"nearestcarcouplingincrease", user_command::nearestcarcouplingincrease},
|
|
{"nearestcarcouplingdisconnect", user_command::nearestcarcouplingdisconnect},
|
|
{"nearestcarcoupleradapterattach", user_command::nearestcarcoupleradapterattach},
|
|
{"nearestcarcoupleradapterremove", user_command::nearestcarcoupleradapterremove},
|
|
{"occupiedcarcouplingdisconnect", user_command::occupiedcarcouplingdisconnect},
|
|
{"occupiedcarcouplingdisconnectback", user_command::occupiedcarcouplingdisconnectback},
|
|
{"doortoggleleft", user_command::doortoggleleft},
|
|
{"doortoggleright", user_command::doortoggleright},
|
|
{"doorpermitleft", user_command::doorpermitleft},
|
|
{"doorpermitright", user_command::doorpermitright},
|
|
{"doorpermitpresetactivatenext", user_command::doorpermitpresetactivatenext},
|
|
{"doorpermitpresetactivateprevious", user_command::doorpermitpresetactivateprevious},
|
|
{"dooropenleft", user_command::dooropenleft},
|
|
{"dooropenright", user_command::dooropenright},
|
|
{"dooropenall", user_command::dooropenall},
|
|
{"doorcloseleft", user_command::doorcloseleft},
|
|
{"doorcloseright", user_command::doorcloseright},
|
|
{"doorcloseall", user_command::doorcloseall},
|
|
{"doorsteptoggle", user_command::doorsteptoggle},
|
|
{"doormodetoggle", user_command::doormodetoggle},
|
|
{"mirrorstoggle", user_command::mirrorstoggle},
|
|
{"departureannounce", user_command::departureannounce},
|
|
{"doorlocktoggle", user_command::doorlocktoggle},
|
|
{"pantographcompressorvalvetoggle", user_command::pantographcompressorvalvetoggle},
|
|
{"pantographcompressorvalveenable", user_command::pantographcompressorvalveenable},
|
|
{"pantographcompressorvalvedisable", user_command::pantographcompressorvalvedisable},
|
|
{"pantographcompressoractivate", user_command::pantographcompressoractivate},
|
|
{"pantographtogglefront", user_command::pantographtogglefront},
|
|
{"pantographtogglerear", user_command::pantographtogglerear},
|
|
{"pantographraisefront", user_command::pantographraisefront},
|
|
{"pantographraiserear", user_command::pantographraiserear},
|
|
{"pantographlowerfront", user_command::pantographlowerfront},
|
|
{"pantographlowerrear", user_command::pantographlowerrear},
|
|
{"pantographlowerall", user_command::pantographlowerall},
|
|
{"pantographselectnext", user_command::pantographselectnext},
|
|
{"pantographselectprevious", user_command::pantographselectprevious},
|
|
{"pantographtoggleselected", user_command::pantographtoggleselected},
|
|
{"pantographraiseselected", user_command::pantographraiseselected},
|
|
{"pantographlowerselected", user_command::pantographlowerselected},
|
|
{"pantographvalvesupdate", user_command::pantographvalvesupdate},
|
|
{"pantographvalvesoff", user_command::pantographvalvesoff},
|
|
{"heatingtoggle", user_command::heatingtoggle},
|
|
{"heatingenable", user_command::heatingenable},
|
|
{"heatingdisable", user_command::heatingdisable},
|
|
{"lightspresetactivatenext", user_command::lightspresetactivatenext},
|
|
{"lightspresetactivateprevious", user_command::lightspresetactivateprevious},
|
|
{"headlighttoggleleft", user_command::headlighttoggleleft},
|
|
{"headlightenableleft", user_command::headlightenableleft},
|
|
{"headlightdisableleft", user_command::headlightdisableleft},
|
|
{"headlighttoggleright", user_command::headlighttoggleright},
|
|
{"headlightenableright", user_command::headlightenableright},
|
|
{"headlightdisableright", user_command::headlightdisableright},
|
|
{"headlighttoggleupper", user_command::headlighttoggleupper},
|
|
{"headlightenableupper", user_command::headlightenableupper},
|
|
{"headlightdisableupper", user_command::headlightdisableupper},
|
|
{"redmarkertoggleleft", user_command::redmarkertoggleleft},
|
|
{"redmarkerenableleft", user_command::redmarkerenableleft},
|
|
{"redmarkerdisableleft", user_command::redmarkerdisableleft},
|
|
{"redmarkertoggleright", user_command::redmarkertoggleright},
|
|
{"redmarkerenableright", user_command::redmarkerenableright},
|
|
{"redmarkerdisableright", user_command::redmarkerdisableright},
|
|
{"headlighttogglerearleft", user_command::headlighttogglerearleft},
|
|
{"headlightenablerearleft", user_command::headlightenablerearleft},
|
|
{"headlightdisablerearleft", user_command::headlightdisablerearleft},
|
|
{"headlighttogglerearright", user_command::headlighttogglerearright},
|
|
{"headlightenablerearright", user_command::headlightenablerearright},
|
|
{"headlightdisablerearright", user_command::headlightdisablerearright},
|
|
{"headlighttogglerearupper", user_command::headlighttogglerearupper},
|
|
{"headlightenablerearupper", user_command::headlightenablerearupper},
|
|
{"headlightdisablerearupper", user_command::headlightdisablerearupper},
|
|
{"redmarkertogglerearleft", user_command::redmarkertogglerearleft},
|
|
{"redmarkerenablerearleft", user_command::redmarkerenablerearleft},
|
|
{"redmarkerdisablerearleft", user_command::redmarkerdisablerearleft},
|
|
{"redmarkertogglerearright", user_command::redmarkertogglerearright},
|
|
{"redmarkerenablerearright", user_command::redmarkerenablerearright},
|
|
{"redmarkerdisablerearright", user_command::redmarkerdisablerearright},
|
|
{"redmarkerstoggle", user_command::redmarkerstoggle},
|
|
{"endsignalstoggle", user_command::endsignalstoggle},
|
|
{"headlightsdimtoggle", user_command::headlightsdimtoggle},
|
|
{"headlightsdimenable", user_command::headlightsdimenable},
|
|
{"headlightsdimdisable", user_command::headlightsdimdisable},
|
|
{"motorconnectorsopen", user_command::motorconnectorsopen},
|
|
{"motorconnectorsclose", user_command::motorconnectorsclose},
|
|
{"motordisconnect", user_command::motordisconnect},
|
|
{"interiorlighttoggle", user_command::interiorlighttoggle},
|
|
{"interiorlightenable", user_command::interiorlightenable},
|
|
{"interiorlightdisable", user_command::interiorlightdisable},
|
|
{"interiorlightdimtoggle", user_command::interiorlightdimtoggle},
|
|
{"interiorlightdimenable", user_command::interiorlightdimenable},
|
|
{"interiorlightdimdisable", user_command::interiorlightdimdisable},
|
|
{"compartmentlightstoggle", user_command::compartmentlightstoggle},
|
|
{"compartmentlightsenable", user_command::compartmentlightsenable},
|
|
{"compartmentlightsdisable", user_command::compartmentlightsdisable},
|
|
{"instrumentlighttoggle", user_command::instrumentlighttoggle},
|
|
{"instrumentlightenable", user_command::instrumentlightenable},
|
|
{"instrumentlightdisable", user_command::instrumentlightdisable},
|
|
{"dashboardlighttoggle", user_command::dashboardlighttoggle},
|
|
{"dashboardlightenable", user_command::dashboardlightenable},
|
|
{"dashboardlightdisable", user_command::dashboardlightdisable},
|
|
{"timetablelighttoggle", user_command::timetablelighttoggle},
|
|
{"timetablelightenable", user_command::timetablelightenable},
|
|
{"timetablelightdisable", user_command::timetablelightdisable},
|
|
{"generictoggle0", user_command::generictoggle0},
|
|
{"generictoggle1", user_command::generictoggle1},
|
|
{"generictoggle2", user_command::generictoggle2},
|
|
{"generictoggle3", user_command::generictoggle3},
|
|
{"generictoggle4", user_command::generictoggle4},
|
|
{"generictoggle5", user_command::generictoggle5},
|
|
{"generictoggle6", user_command::generictoggle6},
|
|
{"generictoggle7", user_command::generictoggle7},
|
|
{"generictoggle8", user_command::generictoggle8},
|
|
{"generictoggle9", user_command::generictoggle9},
|
|
{"generictoggle10", user_command::generictoggle10},
|
|
{"generictoggle11", user_command::generictoggle11},
|
|
{"generictoggle12", user_command::generictoggle12},
|
|
{"generictoggle13", user_command::generictoggle13},
|
|
{"generictoggle14", user_command::generictoggle14},
|
|
{"generictoggle15", user_command::generictoggle15},
|
|
{"generictoggle16", user_command::generictoggle16},
|
|
{"generictoggle17", user_command::generictoggle17},
|
|
{"generictoggle18", user_command::generictoggle18},
|
|
{"generictoggle19", user_command::generictoggle19},
|
|
{"generictoggle20", user_command::generictoggle20},
|
|
{"generictoggle21", user_command::generictoggle21},
|
|
{"generictoggle22", user_command::generictoggle22},
|
|
{"generictoggle23", user_command::generictoggle23},
|
|
{"generictoggle24", user_command::generictoggle24},
|
|
{"generictoggle25", user_command::generictoggle25},
|
|
{"generictoggle26", user_command::generictoggle26},
|
|
{"generictoggle27", user_command::generictoggle27},
|
|
{"generictoggle28", user_command::generictoggle28},
|
|
{"generictoggle29", user_command::generictoggle29},
|
|
|
|
{"batterytoggle", user_command::batterytoggle},
|
|
{"batteryenable", user_command::batteryenable},
|
|
{"batterydisable", user_command::batterydisable},
|
|
{"cabactivationtoggle", user_command::cabactivationtoggle},
|
|
{"cabactivationenable", user_command::cabactivationenable},
|
|
{"cabactivationdisable", user_command::cabactivationdisable},
|
|
{"motorblowerstogglefront", user_command::motorblowerstogglefront},
|
|
{"motorblowerstogglerear", user_command::motorblowerstogglerear},
|
|
{"motorblowersdisableall", user_command::motorblowersdisableall},
|
|
{"coolingfanstoggle", user_command::coolingfanstoggle},
|
|
{"tempomattoggle", user_command::tempomattoggle},
|
|
{"springbraketoggle", user_command::springbraketoggle},
|
|
{"springbrakeenable", user_command::springbrakeenable},
|
|
{"springbrakedisable", user_command::springbrakedisable},
|
|
{"springbrakeshutofftoggle", user_command::springbrakeshutofftoggle},
|
|
{"springbrakeshutoffenable", user_command::springbrakeshutoffenable},
|
|
{"springbrakeshutoffdisable", user_command::springbrakeshutoffdisable},
|
|
{"springbrakerelease", user_command::springbrakerelease},
|
|
{"distancecounteractivate", user_command::distancecounteractivate},
|
|
{"speedcontrolincrease", user_command::speedcontrolincrease},
|
|
{"speedcontroldecrease", user_command::speedcontroldecrease},
|
|
{"speedcontrolpowerincrease", user_command::speedcontrolpowerincrease},
|
|
{"speedcontrolpowerdecrease", user_command::speedcontrolpowerdecrease},
|
|
{"speedcontrolbutton0", user_command::speedcontrolbutton0},
|
|
{"speedcontrolbutton1", user_command::speedcontrolbutton1},
|
|
{"speedcontrolbutton2", user_command::speedcontrolbutton2},
|
|
{"speedcontrolbutton3", user_command::speedcontrolbutton3},
|
|
{"speedcontrolbutton4", user_command::speedcontrolbutton4},
|
|
{"speedcontrolbutton5", user_command::speedcontrolbutton5},
|
|
{"speedcontrolbutton6", user_command::speedcontrolbutton6},
|
|
{"speedcontrolbutton7", user_command::speedcontrolbutton7},
|
|
{"speedcontrolbutton8", user_command::speedcontrolbutton8},
|
|
{"speedcontrolbutton9", user_command::speedcontrolbutton9},
|
|
{"inverterenable1", user_command::inverterenable1},
|
|
{"inverterenable2", user_command::inverterenable2},
|
|
{"inverterenable3", user_command::inverterenable3},
|
|
{"inverterenable4", user_command::inverterenable4},
|
|
{"inverterenable5", user_command::inverterenable5},
|
|
{"inverterenable6", user_command::inverterenable6},
|
|
{"inverterenable7", user_command::inverterenable7},
|
|
{"inverterenable8", user_command::inverterenable8},
|
|
{"inverterenable9", user_command::inverterenable9},
|
|
{"inverterenable10", user_command::inverterenable10},
|
|
{"inverterenable11", user_command::inverterenable11},
|
|
{"inverterenable12", user_command::inverterenable12},
|
|
{"inverterdisable1", user_command::inverterdisable1},
|
|
{"inverterdisable2", user_command::inverterdisable2},
|
|
{"inverterdisable3", user_command::inverterdisable3},
|
|
{"inverterdisable4", user_command::inverterdisable4},
|
|
{"inverterdisable5", user_command::inverterdisable5},
|
|
{"inverterdisable6", user_command::inverterdisable6},
|
|
{"inverterdisable7", user_command::inverterdisable7},
|
|
{"inverterdisable8", user_command::inverterdisable8},
|
|
{"inverterdisable9", user_command::inverterdisable9},
|
|
{"inverterdisable10", user_command::inverterdisable10},
|
|
{"inverterdisable11", user_command::inverterdisable11},
|
|
{"inverterdisable12", user_command::inverterdisable12},
|
|
{"invertertoggle1", user_command::invertertoggle1},
|
|
{"invertertoggle2", user_command::invertertoggle2},
|
|
{"invertertoggle3", user_command::invertertoggle3},
|
|
{"invertertoggle4", user_command::invertertoggle4},
|
|
{"invertertoggle5", user_command::invertertoggle5},
|
|
{"invertertoggle6", user_command::invertertoggle6},
|
|
{"invertertoggle7", user_command::invertertoggle7},
|
|
{"invertertoggle8", user_command::invertertoggle8},
|
|
{"invertertoggle9", user_command::invertertoggle9},
|
|
{"invertertoggle10", user_command::invertertoggle10},
|
|
{"invertertoggle11", user_command::invertertoggle11},
|
|
{"invertertoggle12", user_command::invertertoggle12},
|
|
{"globalradiostop", user_command::globalradiostop},
|
|
{"timejump", user_command::timejump},
|
|
{"timejumplarge", user_command::timejumplarge},
|
|
{"timejumpsmall", user_command::timejumpsmall},
|
|
{"setdatetime", user_command::setdatetime},
|
|
{"setweather", user_command::setweather},
|
|
{"settemperature", user_command::settemperature},
|
|
{"vehiclemoveforwards", user_command::vehiclemoveforwards},
|
|
{"vehiclemovebackwards", user_command::vehiclemovebackwards},
|
|
{"vehicleboost", user_command::vehicleboost},
|
|
{"debugtoggle", user_command::debugtoggle},
|
|
{"focuspauseset", user_command::focuspauseset},
|
|
{"pausetoggle", user_command::pausetoggle},
|
|
{"entervehicle", user_command::entervehicle},
|
|
{"resetconsist", user_command::resetconsist},
|
|
{"fillcompressor", user_command::fillcompressor},
|
|
{"consistreleaser", user_command::consistreleaser},
|
|
{"queueevent", user_command::queueevent},
|
|
{"setlight", user_command::setlight},
|
|
{"insertmodel", user_command::insertmodel},
|
|
{"deletemodel", user_command::deletemodel},
|
|
{"dynamicmove", user_command::dynamicmove},
|
|
{"consistteleport", user_command::consistteleport},
|
|
{"pullalarmchain", user_command::pullalarmchain},
|
|
{"sendaicommand", user_command::sendaicommand},
|
|
{"spawntrainset", user_command::spawntrainset},
|
|
{"destroytrainset", user_command::destroytrainset},
|
|
{"quitsimulation", user_command::quitsimulation},
|
|
{"wiperswitchincrease", user_command::wiperswitchincrease},
|
|
{"wiperswitchdecrease", user_command::wiperswitchdecrease},
|
|
{"lightsset", user_command::lightsset},
|
|
{"none", user_command::none}};
|
|
|
|
} // namespace simulation
|
|
|
|
void command_queue::update()
|
|
{
|
|
double delta = Timer::GetDeltaTime();
|
|
for (auto c : m_active_continuous)
|
|
{
|
|
command_data data({c.first, GLFW_REPEAT, 0.0, 0.0, delta, false, glm::vec3()}); // todo: improve
|
|
auto lookup = m_commands.emplace( c.second, commanddata_sequence() );
|
|
// recipient stack was either located or created, so we can add to it quite safely
|
|
lookup.first->second.emplace_back( data );
|
|
}
|
|
}
|
|
|
|
// posts specified command for specified recipient
|
|
void
|
|
command_queue::push( command_data const &Command, uint32_t const Recipient ) {
|
|
if (is_network_target(Recipient)) {
|
|
auto lookup = m_intercept_queue.emplace(Recipient, commanddata_sequence());
|
|
lookup.first->second.emplace_back(Command);
|
|
} else {
|
|
push_direct(Command, Recipient);
|
|
}
|
|
}
|
|
|
|
void command_queue::push_direct(const command_data &Command, const uint32_t Recipient) {
|
|
auto const &desc = simulation::Commands_descriptions[ static_cast<std::size_t>( Command.command ) ];
|
|
if (desc.mode == command_mode::continuous)
|
|
{
|
|
if (Command.action == GLFW_PRESS)
|
|
m_active_continuous.emplace(std::make_pair(Command.command, Recipient));
|
|
else if (Command.action == GLFW_RELEASE)
|
|
m_active_continuous.erase(std::make_pair(Command.command, Recipient));
|
|
else if (Command.action == GLFW_REPEAT)
|
|
return;
|
|
}
|
|
|
|
auto lookup = m_commands.emplace( Recipient, commanddata_sequence() );
|
|
// recipient stack was either located or created, so we can add to it quite safely
|
|
lookup.first->second.emplace_back( Command );
|
|
}
|
|
|
|
// retrieves oldest posted command for specified recipient, if any. returns: true on retrieval, false if there's nothing to retrieve
|
|
bool
|
|
command_queue::pop( command_data &Command, uint32_t const Recipient ) {
|
|
|
|
auto lookup = m_commands.find( Recipient );
|
|
if( lookup == m_commands.end() ) {
|
|
// no command stack for this recipient, so no commands
|
|
return false;
|
|
}
|
|
auto &commands = lookup->second;
|
|
if( true == commands.empty() ) {
|
|
|
|
return false;
|
|
}
|
|
// we have command stack with command(s) on it, retrieve and pop the first one
|
|
Command = commands.front();
|
|
commands.pop_front();
|
|
|
|
return true;
|
|
}
|
|
|
|
bool command_queue::is_network_target(uint32_t const Recipient) {
|
|
const command_target target = (command_target)(Recipient & ~0xffff);
|
|
|
|
if (target == command_target::entity)
|
|
return false;
|
|
|
|
return true;
|
|
}
|
|
|
|
command_queue::commands_map command_queue::pop_intercept_queue() {
|
|
commands_map map(m_intercept_queue);
|
|
m_intercept_queue.clear();
|
|
return map;
|
|
}
|
|
|
|
void command_queue::push_commands(const commands_map &commands) {
|
|
for (auto const &kv : commands)
|
|
for (command_data const &data : kv.second)
|
|
push_direct(data, kv.first);
|
|
}
|
|
|
|
void
|
|
command_relay::post(user_command const Command, double const Param1, double const Param2,
|
|
int const Action, uint16_t Recipient, glm::vec3 Position, const std::string *Payload) const {
|
|
|
|
auto const &command = simulation::Commands_descriptions[ static_cast<std::size_t>( Command ) ];
|
|
|
|
if (command.target == command_target::vehicle && Recipient == 0) {
|
|
// default 0 recipient is currently controlled train
|
|
if (simulation::Train == nullptr)
|
|
return;
|
|
Recipient = simulation::Train->id();
|
|
}
|
|
|
|
if( ( command.target == command_target::vehicle )
|
|
&& ( true == FreeFlyModeFlag )
|
|
&& ( ( false == DebugModeFlag )
|
|
&& ( true == Global.RealisticControlMode ) ) ) {
|
|
// in realistic control mode don't pass vehicle commands if the user isn't in one, unless we're in debug mode
|
|
return;
|
|
}
|
|
|
|
if (Position == glm::vec3(0.0f))
|
|
Position = Global.pCamera.Pos;
|
|
|
|
uint32_t combined_recipient = static_cast<uint32_t>( command.target ) | Recipient;
|
|
command_data commanddata({Command, Action, Param1, Param2, Timer::GetDeltaTime(), FreeFlyModeFlag, Position });
|
|
if (Payload)
|
|
commanddata.payload = *Payload;
|
|
|
|
simulation::Commands.push(commanddata, combined_recipient);
|
|
}
|