Zoeken
Combinatie templates
Inleiding
Vanaf versie 0.6.0.0 biedt TLCGen de mogelijkheid te werken met ‘Combinatie templates’. Dit zijn templates waarin combinaties van meerdere items gemaakt kunnen worden, die als geheel aan de regeling kunnen worden toegevoegd. Bijvoorbeeld: 2 nalopen, 2 meeaanvragen, 4 drukknoppen en 2 rateltikkers: een complete voetgangersoversteek.
De naamgeving ‘Combinatie templates’ wordt gebruikt om deze templates te onderscheiden van ‘reguliere’ templates voor fasen, dectectie en perioden, zoals hier omschreven.
De beoogde werkwijze voor het werken met deze templates is als volgt:
- De fasen en conflicten zijn reeds in de regeling aanwezig
- Dit is bijvoorbeeld zo direct na starten van een nieuwe regeling middels import van een tab.c of OTTO file
- Vervolgens kunnen middels de combinatie templates vliegensvlug bij de fasen behorende items/configuraties worden toegevoegd
Middels combinatie templates kunnen momenteel de volgende items in een regeling worden toegevoegd:
- Detectoren
- Rateltikkers
- Intersignaalgroep items: nalopen, meeaanvragen, voorstarten, gelijkstarten en late release
- Andere items zijn in de toekomst denkbaar, zoals: richtinggevoelige detectie, OV ingrepen met in- en uitmeldingen, etc.
Combinatie templates gebruiken
Om gebruik te maken van de templates:
- Ga naar het tabblad Tools > Combi templates
- Selecteer de gewenste template in de lijst
- Stel de beschikbare opties in
- Merk op: bij bv. nalopen moeten geen conflicterende richtingen worden opgegeven; dit geeft bij toepassen een foutmelding
- Wanneer items uit de template reeds in de regeling aanwezig zijn verschijnt een melding. Items uit de template die niet in de regeling zitten worden in dit geval wel toegevoegd.
- Let op! TLCGen wordt default geleverd zonder combinatie templates: de lijst zal dus default leeg zijn. Zie hieronder hoe templates gemaakt en opgeslagen kunnen worden.
Hieronder een screenshot van de interface:

Na klikken op toepassen wordt in de statusbalk weergegeven dat het toepassen is doorgevoerd. Wanneer er een fout optreedt, of een item reeds in de regeling aanwezig is, komt een messagebox naar voren.
Combinatie templates ontwerpen
LET OP! Een waarschuwing vooraf: bij het opbouwen van combinatie templates moet secuur te werk worden gegaan. TLCGen voert geen controle uit of een template een integer geheel vormt, dit is de verantwoordelijkheid van de ontwerpen. Bijvoorbeeld: wanneer bij een naloop gebruik wordt gemaakt van een detector, moet deze detector ook altijd in het template worden opgenomen. Anders bestaat de mogelijkheid dat een regeling een detectie afhaneklijke naloop krijgt op basis van een niet in de regeling aanwezige detector. Dit zal compileerfouten opleveren en is niet automatisch te repareren.
Middels de knop “Settings” kan het venster voor instellen van combinatie templates worden geopend.
Gezien vanuit de ruimte verloopt het aanmaken van templates als volgt:
- Stap 1: indien het veld onder ‘Locatie van combinatie templates’ leeg is: selecteer een nieuw bestand om de templates in op te slaan. De rest van de GUI zal nu beschikbaar komen.
- Stap 2: Klik op ‘Template toev.’
- Stap 3: Ontwerp het template naar wens
- Stap 4: Klik op OK en gebruik het template
Een template bestaat in hoofdzaak uit 2 elementen:
- Een lijst met items: dit zijn de elementen die later worden toegevoegd aan de regeling
- Een lijst met opties: dit zijn elementen die de gebruiker later in kan stellen
Opbouwen template items
Open een regeling waar de items in zitten die in het template moeten komen. Dit is belangrijk, want anders moet de JSON van de items met de hand worden ingevoerd.
Maak in het venster met instellingen eerst een nieuwe template aan, of selecteer een bestaande template. Klik nu op “Item toev.” en selecteer vervolgens het nieuwe item.

Geeft het item een naam: dit is voor de duidelijkheid bij het bewerken van de template, de naam wordt verder nergens gebruikt.
Stel nu het type in:

In het tabblad “Import” zijn nu de items te zien van dit type die in de geopende regeling zitten. Selecteer het gewenste item:

Wissel nu naar het tabblad JSON: hier moeten we zorgen dat door de gebruiker in te stellen waarden juist zijn ingevuld. Nemen we als voorbeeld de naloop van 31 naar 32 uit bovenstaand beeld. In de praktijk moeten 31 en 32 hier instelbaar zijn (we kunnen we zorgen dat default 31 en 32 al zijn ingevuld, indien in de regeling aanwezig, zie verderop bij opties). In de JSON moeten we daartoe 31 resp. 32 vervangen door placeholders, bv FC1 en FC2. Wanneer we ook tijden willen kunnen instellen, moeten ook die worden vervangen door een placeholder: bijvoorbeeld de nalooptijd. Hier moet een integer worden gebruikt, bv een (uniek binnen het template!) negatief getal. In dit voorbeeld is dit dan het resultaat:
{ "FaseVan": "FC1", "FaseNaar": "FC2", "Type": 0, "VasteNaloop": false, "InrijdenTijdensGroen": false, "DetectieAfhankelijk": true, "MaximaleVoorstart": null, "Detectoren": [ { "Detector": "kFC11", "Type": 0 } ], "Tijden": [ { "Type": 3, "Waarde": -120 } ] }
In de GUI wordt met een kleurtje naar de tekst JSON aangegeven of de JSON code in orde is:

Op deze wijze moeten alle gewenste items aan het template worden toegevoegd, en waar gewenst worden voorzien van placeholders.
LET OP! De juistheid van placeholders en het aanmaken van de bijbehorende opties is de verantwoordelijkheid van de ontwerper van het template!
MERK OP: in dit voorbeeld betreft het een detectie afhankelijke naloop: we moeten dus in de template ook de betreffende detector toevoegen, om te voorkomen dat het toegepaste template zorgt voor fouten in de regeling!
Opbouwen van opties
Wanneer in een template placeholders worden gebruikt moet de gebruiker daarvoor een waarde in kunnen stellen. Verder gaand met bovenstaand voorbeeld met de naloop: voeg in tabblad Opties een optie toe:

Stel het type in:
- Fase -> de gebruiker van het template kan kiezen uit de in de regeling aanwezige fasen
- Int -> de gebruiker kan een getal instellen
- String -> de gebruiker kan text invoeren
Voer bij “Zoeken” de placeholder tekst in, bv “FC1”. Bij “Vervangen” kunnen we de deault waarde voor de placeholder opgeven, die wordt voor-ingevuld. Geef een goede omschrijving op om de gebruiker van het template op weg te helpen.
In het voorbeeld met de naloop zullen we 4 opties aanmaken: 2 fasen en 2 tijden:

De template is nu klaar voor gebruik.