Hello,
in the latest development version of sumo the following things are implemented:
- you can assign custom numerical values for each traffic-light controlled connection in netedit (inspect connections and set attribute linkIndex)
- multiple connections can share the same numerical value and thus form a group
- traffic light programs can be shortened to the number of used values (button 'cleanup states' in traffic light mode)
- these numerical values can be shown in netedit and sumo-gui (junction settings 'show link tls index')
- the command traci.trafficlight.setLinkState sets the state for the given numerical value
So the only thing that is missing is the capability to assign stringIDs for the numerical group ids. I'm reluctant to add string-aliases to the core data model of a connection because it is somewhat redundant. However, sumo supports key-value maps for storing non-core parameters and abitrary user data. These maps can be read and written via TraCI and are also shown in SUMO-GUI (The only thing currently missing is editing them in netedit).
I think adding a new parameter
<param key="alias" value="K1 K2 K3 K4"/>
that would map the alphanumerical Ids K1 to K4 onto the numerical group IDs 0 to 3 would be fine.
Things that would be needed:
1) in the gui, when selecting show link tls index, the alias should automatically be shown below the index value if it exists
2) in traci.trafficlight.setLlinkState a non-numerical index should automatically be translated into the numerical ID using the alias parameter if it exists
3) in netedit, there should be a way to show and edit <param> values.
Points 1 and 2 should be very easy to do but 3) requires some thinking about UI design to make it fit nicely into the general architecture (many objects besides traffic lights can use <param>s). 3) is on our to-do list anway and would probably be done in the first quarter of 2018.
I guess if you mostly keep your signal plans in separate xml files or you set them via TraCI anyway then 3) is not urgently needed for your use case.
What kind of use do you anticipate?
regards,
Jakob