Interlocking Towers with AI

Pierre

I am continuing my experimenting with your towers and manager rules and have a question I'm not able to solve. Within the Tower Manager there is an option "set tower path assignment" to ai only. I only see this option when trainz (and tower manager) is running. Is there a way to make "ai only" the default while editing/creating a session?

Thanks

Harold

Hi Harold.

Each tower (either standard IT or EIT) has an option flag for path auto assignment which can either be set to none, ai only, external only, ai then external, or external then ai. This flag drives how the tower will search a path when a train approaches a signal (at 0.5 km from it) : ai designating the internal N3V routine for ai auto path assignment, external designating an external listener rule like Mission Code Management.

The EIT Manager enables to set ou change this flag both under surveyor or in driver mode, but you should take care that external components listeners like MissionCode Manager may need some specific value for this flag and will enforce its value. So you may have set this value under surveyor using the IT Manager, but you may have another value while in driver mode due to some scripted components enforcing the value they need to work.

For me this value is more an option available for scripted listeners rules (or other scripted components) than an option for the end user. It is available in EIT Manager but I have only use it to look at its setting and check the listeners rules have set the correct value. I have never set a specific value under surveyor.
For your information the default value is ai then external, which means that auto path searching is first done using the internal N3V module (that finds path only for DriveTo/NavigateTo driver commands or similar - do not work for autopilot or autodrive driver command) and if no path has been down by external listener rules in the order they are listed in the session rules.

Hope this helps.

Pierre.
 
Hi there,

I'm trying to set up my interlocking towers now the updated Bloodnok signals are out. When trying to apply mission codes to various paths in one tower it returns to a full list of paths in every tower I've set up.

In driver, when in Mission Codes Manager, I click one of the paths in this particular tower and I get the following red error message:

MissionCodeManager : File mcmrulehdl.gs, Line 986, ER_NullReference


function $string@HTMLMissionCodeManagerPropertyHandler::GetMPathDetailsPageArea(), line 890
function $string@HTMLMissionCodeManagerPropertyHandler::GetDisplayPageArea(), line 287
function $string@HTMLMissionCodeManagerPropertyHandler::GetDescriptionHTML(), line 228
function $void@PropertyBrowserExt::Refresh(), line 138
function $void@MissionCodeManager::RefreshBrowerData(), line 1053

Everything seems to be fine and it's only this tower that appears to be letting the side down.

Any ideas?

Thanks,
Paul
 
Solved it.

Whilst it allows me to name paths with use of a forward slash, this is what caused the error. Use of '&' also caused some issues, so opted for a comma instead.

Cheers,
Paul
 
Back again - this time with a problem I can't resolve... Funnily enough, the same tower. I have been able to set an External Object for one of the paths, but when I go to set another I get the following red error message in surveyor:

InterlockingTowerEditHelper : File interlockingtoweredithelper.gs, Line 1628, ER_Timeout


function $string[]@InterlockingTowerEditHelper::GetPropertyElementList(string), line 1565

Any ideas on this one?

Thanks,
Paul
 
Back again - this time with a problem I can't resolve... Funnily enough, the same tower. I have been able to set an External Object for one of the paths, but when I go to set another I get the following red error message in surveyor:

InterlockingTowerEditHelper : File interlockingtoweredithelper.gs, Line 1628, ER_Timeout


function $string[]@InterlockingTowerEditHelper::GetPropertyElementList(string), line 1565

Any ideas on this one?

Thanks,
Paul

Try shortening your path and then set your External object and then set the rest of the path'

Peter
 
I shortened the path then added the external object then set the rest of the path - that does indeed work.

Then the path fails to set - although every junction and signal is set correctly, apart from the first which remains red.

Error message is:

"EnhancedInterlockingTowerPath : File interlockingtowerpath.gs, Line 662, ER_Timeout


function $bool@InterlockingTowerPath::IsObjectInPathDefinition(MapObject,int,bool), line 661
function $MapObject[]@InterlockingTowerEditHelper::RemoveObjectsAlreadyOnPath(InterlockingTowerPath,MapObject[]), line 234
function $string[]@InterlockingTowerEditHelper::GetPropertyElementList(string), line 1610"

In game messages initially say it's "tried to activate object [signal number] with result: true" with exception to the start signal - and the subsequent signals all turn green.

Then another batch of in game messages say it's "tried to activate object [the same signal numbers] with result: false. Failed to set path object [signal number]". This probably reflects the fact that the start signal is still red. The other signals remain green.

This section of my huge route is the first where I've used interlocking towers. I have re-done the towers on numerous occasions hoping to find something that I've done wrong, but I'm struggling. I am using Bloodnok's updated signals but don't believe this is an issue. If I replace them with the standard 'UK 4 Signal' the same errors occur.

Hopefully someone might have an idea what's going on here!

Thanks,
Paul
 
Hi Lamont

'Automatic' means that the IT looks for trains approaching 0.5kms away and then allocates the path according to the priority you have set in the IT
'Manual' means that the approaching train sets the path it wants according to its schedule. Much more reliable when you have a lot of paths in an IT.

I always use manual and I only use AI drivers. No wandering trains :D

Peter
Maybe the default should be 'manual' if it works better? Pierre, are you listening?:)

Mick
 
@paulper

Check that your start signal does not form part of another path in the same IT. As long as it is used only as a start signal for any / all paths, that is OK. However, you cannot have a path that overlaps a start signal. E.g. (junctions omitted for clarity; all paths in the forward direction):

Path A

Sig 1.....Sig 2..... Sig 3

Path B

Sig 1.....Sig 4

Path C

Sig 5.....Sig 6......Sig 1.....Sig 7


Paths A and B both use Sig 1 as the starting signal, which is allowed.
Path C has Sig 1 embedded in the path. This is not allowed if Sig 1 is used as a starting signal elsewhere.

I have fallen foul of that one in the past.

Other thoughts...
Do you get the same error if you do not try to set an external object? If not, perhaps there is an alternative way to realize your objective. For instance, if you are trying to protect a diamond crossing, you could try using the exclusive sets option within EIT.

Regarding the specific ER-Timeout message you are seeing, Pierre (pguy) would be best placed to answer.

John
 
Last edited:
Hi.

EIT relies on standard N3V IT edition capabilities for editing paths and InterlockingTowerEditHelper is the N3V component library called for doing this edition. Very difficult to have any advice about a script timeout in some standard N3V interlocking tower script without looking in details to the tower and path configuration.

But from my experience, just a few suggestions :

- first try your path without any external objects definition. Does it work ? If it works without the external object and it does not work with the external object, the problem comes from the external object.

- external objects that are junctions work fine for me.
- external objects that are signals does not always work fine from my experience. In particular, an entry signal can nether be used as an external object in any other path : this may lead to some target state conflicts that are not correctly managed by standard ITs. EITs should support external objects being entry signal in some other paths and towers, but ... sorry I think this has not been already tested, so may work or there may be some remaining bugs in such configuration ...

Paul, if you do not find ... you can send me a cdp with your route, session, and also dependencies not available on DLS so that I can try to reload your route and session, download DLS dependencies and have a look at your problem. if you want I have a look, just send me a PM and I will send you back my email address.

Regards.
Pierre.
 
@paulper

Check that your start signal does not form part of another path in the same IT. As long as it is used only as a start signal for any / all paths, that is OK. However, you cannot have a path that overlaps a start signal. E.g. (junctions omitted for clarity; all paths in the forward direction):

Path A

Sig 1.....Sig 2..... Sig 3

Path B

Sig 1.....Sig 4

Path C

Sig 5.....Sig 6......Sig 1.....Sig 7


Paths A and B both use Sig 1 as the starting signal, which is allowed.
Path C has Sig 1 embedded in the path. This is not allowed if Sig 1 is used as a starting signal elsewhere.

I have fallen foul of that one in the past.

Other thoughts...
Do you get the same error if you do not try to set an external object? If not, perhaps there is an alternative way to realize your objective. For instance, if you are trying to protect a diamond crossing, you could try using the exclusive sets option within EIT.

Regarding the specific ER-Timeout message you are seeing, Pierre (pguy) would be best placed to answer.

John

Thanks John.

Although I was convinced I didn't have a start signal that formed a non-starting signal within another path, I started from scratch anyway and set up one tower instead of several. No start signal overlapped. Unfortunately, I'm still getting the same issue. I have one path coming from a station to the east (Dartford) and another path coming from a station to the west (Crayford). They form part of a loop line and the paths merge at Crayford Spur Junction. I can activate and run trains along the path from Crayford and the signal on the west side before the merge changes to green. However, the signal on the east line before the merge holds red and I cannot get that part of the path from Dartford to work (it says the train has activated and entered the path but evidently not all of it!). There are no ingame error messages for this issue, but the same error message flash up when in surveyor and trying to add an external object. I'm convinced that whatever is meant by this error is the issue.

Protecting diamond crossings will come later I think!

Any thoughts?

Thanks,
Paul
 
Pierre

I'm back again with a question about using your Tower rule. I have been using the towers and mission code rules quite successfully with several routes/session under TANE SP1. Several weeks ago I tried to create a session after installing SP2. I am using your updated rules. I created several Enhanced Towers at the session level (named IT Tower Essex, IT Tower Belton, IT Tower Blackfoot and IT Tower Cutbank). I had planned on using mission codes to control consist routing. The first few attempts with mission codes were unsuccessful so I thought I'd change the number and location of the Enhanced Towers. What happened is I now have four phantom towers in the basemap? You can use the find command in session editor and it lists each tower name twice. One of these is the actual tower and one appears to be a phantom. When you select the phantom tower name nothing shows up on the basemap. I cannot get rid of the four phantom towers.

I'm not sure if this has something to do with my renaming/relocating the towers, or if it is a problem with the SP2 release. Have you encountered this, and do you have any suggestions.

Thanks in advance for you help

Harold
 
There is a bug in SP2 that has produced phantom consists, so it may well be linked to your phantom towers. I believe the beta testers have reported that the 'soon' to be released hot fix has exorcised the phantoms so you might want to hold off on any major re-work until the hot fix has been released.

John
 
Does the track route leaving the platform share part of the track route arriving at the station? If so I found that any signals on this part would allow a train on a path to move forward to the signal and then block the outgoing train.
Sig 1......A.....B.....Sig 2.....C.....D.....E.....Sig 3 = Inbound
Sig 1......A.....B.....C.....G.....H.....Sig 4 = Outbound ..C.. train diverges
Outbound before Sig 1 Heading for Sig 4 Will stop Inbound From Sig 3 To Sig 1 because the inbound path is set and the out bound can not set its path through C.
Remove Sig 2 allowing the path to control the whole section. Now the inbound will wait at Sig 3 instead of moving to where Sig 2 was allowing the outbound train to set its path.
 
Last edited:
Pierre

I'm back again with a question about using your Tower rule. I have been using the towers and mission code rules quite successfully with several routes/session under TANE SP1. Several weeks ago I tried to create a session after installing SP2. I am using your updated rules. I created several Enhanced Towers at the session level (named IT Tower Essex, IT Tower Belton, IT Tower Blackfoot and IT Tower Cutbank). I had planned on using mission codes to control consist routing. The first few attempts with mission codes were unsuccessful so I thought I'd change the number and location of the Enhanced Towers. What happened is I now have four phantom towers in the basemap? You can use the find command in session editor and it lists each tower name twice. One of these is the actual tower and one appears to be a phantom. When you select the phantom tower name nothing shows up on the basemap. I cannot get rid of the four phantom towers.

I'm not sure if this has something to do with my renaming/relocating the towers, or if it is a problem with the SP2 release. Have you encountered this, and do you have any suggestions.

Thanks in advance for you help

Harold

Hi Harold.

If you have now some phantom towers on your route, it seems that for some unknown reason your route has been corrupted during SP2 migration and the following operations you have done. You did not tell us which SP2 version(s) you have used (initial SP2 beta, public release SP2, beta for SP2 HF1, ... ) . In any case, if you have still a SP1 HF4 backup of your route, it might be better to restart from a copy of this backup and redo the operations under a now more stable version as beta SP2 HF1 88139 that I currently uses and seems much more stable than the previous beta versions. You can also as John suggested wait for the final release of SP2 HF1 to restart the migration process.

There will be soon (in a few days before the end of the month) a new version of EIT that should bring to the IT Manager some added functionalities to detect path object errors and propose when it is possible to fix any errors detected.

Regards.
Pierre.
 
Back
Top