Quick question on Mission Code Manager

Robert704

New member
I have many trains that transit up to twenty towers when going from port to industry. MCM seems to require explicit permissions in each tower a train transits IF it has a mission code. I could delay the mission code in the schedule, but that would require an intermediate stop for each train at a trackmark to set the mission code for the final tower, which processes the main reason for the mission code. At present only an "autopilot - stop at trackmark" is needed to get from the port to the final industry. This works OK for trains without mission codes as they transit the towers using automatic path assignment, but for trains with mission codes, it seems explicit permission in the MCM are required, even if they are acting like trains without mission codes for most of the towers they are simply transiting.

Is there a way for the MCM to release the train back to the EIC for processing if the mission code has no path selections for a tower that is simply being transited? As presently configured, it seems that the train will simply stop and wait if no automatic path through the tower it is transiting is enabled in the mcode. It seems it would be a good option at the tower level for the MCM to ignore the train/tower combination if the mcode has no path(s) in that tower, and simply let the tower handle the train.

There may be a way to do this now. If so, I have not found it yet. :o
 
Last edited:
Hi Robert704

I don't understand why you have to stop the train to set a different mission code. I normally set a generic mission code such as Northbound or Southbound for a train and change it to something more specific on the fly a couple of miles from the destination. This has always worked without any problems for me.

I'm not sure what you mean by releasing the train back to the EIT for processing. You can set a path to manual selection which will then ignore any mission code allocated to it. I regularly use this where I need to delay path selection for any reason. Just use the IT Setpath command to set the path at the point that you need it. A mission code isn't required where there is only one path set up from a particular signal but may be required if there are multiple paths from the signal. Don't forget that you can also allocate priorities to paths to help the EIT with path selection.

Regards

Brian
 
I understand all that.

Regarding your first comment, how do you insert a "SetMissionCode" or "AddMissionCode" command into the drivers command string "on the fly" without a trigger or an intermediate stop at a trackmark somewhere after the last transited tower and the final tower that requires the mcode for the exit from the mainline into the yard? That stop or near-stop is not prototypical, and we do not have anything resembling an "navigate via TM" that is like an Autopilot Command and does not navigate. The EIT System and the MCM do have what are effectively "invisible" triggers if no EITSetpath is used, and what I am suggesting could eliminate a lot of TMs or Triggers, and thus a lot of processing overheads.

Yes, I know I can use a "generic" mission code that sets up all mainline transits, but each time a train must leave the mainline into a yard or spur then the only way I can see to change the mcode is to stop or near-stop at a TM before entry into the track where the "train-specific" code is required. The only other way under the present MCM mcode system is to define paths in ALL of the towers that the train will pass thru, or make the stop at a TM as described above to allow a "SetMissionCode" or "AddMissionCode" command to be inserted in the driver command string.

What I am suggesting is that the MCM simply not further process any train with an mcode that has no paths in the tower that passed control to it, but simply returns the same message to the EIT System that it would have returned for a train with no mcode. That way the mcode would be constrained automatically to only those towers where it has a routing purpose. At present revision, the only other way to do it is to use a stop or near-stop at a TM to permit a "SetMissionCode" or "AddMissionCode" command to be inserted into the driver commands. This essentially means a bunch of TMs and stops or near stops for every train with a specific mcode every time it leave the mainline.
 
Last edited:
Hi Robert.

I am afraid what your are asking for is not possible. When the tower calls MCM to check if MCM will assign a path or not, MCM does only a very short processing which is to check if the current train has one or several mission codes assigned to or not. At that moment it does not look to all the paths eligibility process for the current mission codes as it would be too long to verify that synchronously and this would generates some script timeouts. So when called synchronously by the tower, it only checks the presence of mission codes and if there are some mission codes assigned it answers MCM will do the work and starts then some asynchronous processing in MCM for looking to paths eligibility and assign an adequate path to the current train requesting MCM to do the work.

If you are currently unsatisfied with the possibilities offered by MCM, we can discuss about enhancing MCM to simplify how to configurate it or how we can add to MCM some new default path assignment auto selection processing, but this needs to be done inside MCM and cannot technically be done by reverting to some default EIT processing.

Same thing about adding some mission codes on the fly. we can discuss about adding some new features in MCM so that some mission codes are added or suppressed automatically when a train reaches a trigger (something equivalent to ScheduleAtTrackmark but for mission codes) on the fly, but this will need to be done inside MCM.

So if you have any good ideas about some features to add to MCM, just post your wish on the forum or PM me a message, and I will start evaluating if it can be added or not discussing with you specifications or anything else ...

Regards.
Pierre.
 
Perhaps the driver command 'AutodrivePastSignal' by author pguy might help. By choosing a suitable signal beyond your penultimate EIT, you could then follow that command with a SetMissionCode... and so on.

Having said that, if you were only planning to use mission codes for the final tower, you could instead just issue an ITSetPath command (having configured the EIT for manual path selection) and avoid mission codes altogether. MCM is of most value when allocating paths all along the route or at least across multiple towers.

John

Edit: just saw Pierre's reply - must have come in while I was typing.

Pierre, one enhancement that might help in situations like this would be a driver command of the form 'AutoDriveViaMCPathstop' which would allow for the insertion of further driver commands without stopping the train. Having said that, the AutodrivePastSignal command looks like it would provide equivalent functionality.
 
Last edited:
Hi

I use the above mentioned 'AutodrivePastSignal' and also 'AutoDrivePastJunction', kuid2:131986:1054:1 by author 'atilabarut' (built in TRS19). Using either of these followed by a 'SetMissionCode' command will allow mission code setting on the fly. Yes you will get the slight dip in speed that you get with commands such as drive or navigate via a trackmark but I don't know of any way to get round that as it just seems to be the way that Trainz has always worked.

By using 'AutodrivePastSignal' and 'AutoDrivePastJunction' you can reduce the number of trackmarks needed in any session. For anyone not familiar with 'atilabarut' he created a number of rules and driver commands about 15 years ago most of which still work fine in TRS19. I found it well worth while to spend some time exploring what they do, as some have unique functionality.

Also check out rules and driver commands by 'trev999' as there are some very useful assets among them. Have a look at this website http://www.simtrainz.co.uk/ which also contains additional assets including demo routes and sessions showing how to set things up.

Regards

Brian
 
There may be a way to do this now. If so, I have not found it yet. :o

Thanks guys.

I did have the above caveat on my original post. I was not aware of the 'AutodrivePastSignal' driver command. This command does provide a point to insert a driver command for an mcode into the schedule without the need for a TM or trigger, and so it solves the problem I was describing.

One of the problems we face with the open development model is finding information that is not always documented widely enough. I did see the "Autodriive****" command series on the DLS, but dismissed them due to the word "drive". That word caused me to associate them with the "Driveto" commands, which have some navigation and do not always play well with the EIT system.

 
Last edited:
Back
Top