mennowo / TLCGen

Application to specify and generate (Dutch) Traffic Light Controller programs
Other
8 stars 8 forks source link

Diverse problemen met name m.b.t. halfstar #49

Closed WillemKinzel closed 5 years ago

WillemKinzel commented 5 years ago

FIXED ###hst.c: 'char volgMaster = TRUE;' staat niet aan het begin van de functie KlokPerioden_halfstar, wat mijn compiler (VC 2010) niet accepteert

FIXED Bij 'OV/HD' - 'In- en uitmeldingen' - 'Overig/wissels' - 'Wissel 1 voorwaarde' staat bij de 'i' twee keer dezelfde voorwaarde ('de detector/ingang moet op zijn')

FIXED ###reg.c: 'int CCOL_SLAVE = 2;' -> 's_int16 CCOL_SLAVE = 2;'

COULD NOT REPRODUCE De parameter 'prmtvgmax' wordt soms ook gegenereerd met de naam 'prmtvgmaxvlog'. Lijkt redelijk willekeurig.

Wellicht heeft dit te maken met genereren met verschillende versies? En/of op verschillende pc's, waar de naam van deze parameter via menu Plugins>CCOLgen>instellingen>naamgeving elementen is gewijzigd?

FIXED (probably; laat het weten indien dit weer voor komt) Het geheugenelement 'mleven' krijgt niet altijd het goede commentaar:

define mperiod 0 / Onthouden actieve periode /

#define mleven       1 /* .................................. */

soms (redelijk willekeurig) wordt het zo gegenereerd:

define mperiod 0 / Onthouden actieve periode /

#define mleven       1 /* Bijhouden actief zijn levensignaal */

TODO > dit is idd niet consistent. vergt een aanpassing, moet die eerst bespreken Bij 'Bitmap' - 'Uitgangen' staat een uitgangssignaal 'rtaltijd'. Dit uitgangssignaal wordt echter niet gegenereerd.

FIXED

ov.c: iXPrio[fc] wordt wel geset, maar nooit gereset:

if (IH[homschtegenh])
{
    for (fc = 0; fc < ovOVMAX; ++fc)
        iXPrio[fc] |= TRUE;
}

FIXED

hst.c:

if (!SCH[schovpriople])
{
    /* OV meetkriterium bij PL bedrijf */
    yv_ov_pl_halfstar(fc02, BIT7, C[cvc02]);
}
'!SCH' moet volgens mij gewijzigd worden in 'SCH'

VERWIJDERD

hst.c: in functie KlokPerioden_halfstar() wordt 'omschakelmag' gedeclareerd, maar nergens gebruikt

FIXED

hst.c:

/* tijdens halfstar bedrijf alleen optie aanvraag voor OV richtingen */
if (IH[hplact])
{
    iPrioriteitsOpties[ovFC02] = SCH[schovpriople] ? 0 : poAanvraag;
}
De '0' en 'poAanvraag' moeten volgens mij omgedraaid worden

FIXED - bij RealisatieAfhandeling_halfstar verwijderd

hst.c: 'RR[fc] &= ~RR_VS_HALFSTAR;' staat er 2x in (Synchronisaties_halfstar() en RealisatieAfhandeling_halfstar())

 Eventuele RR-instructies in Synchronisaties_halfstar_Add() worden daardoor teniet gedaan.

DISCUSSIE - mhand is nu bedoeld om aan te geven dat er "iets" handmatig is gewijzigd. Dat is evenwel voor discussie vatbaar.

hst.c: het geheugenelement 'mhand' (en daardoor ook het uitgangssignaal 'ushand') wordt hieronder volgens mij onterecht waar gemaakt:

/* Toestaan alternatief hoofdrichtingen ook mogelijk met schakelaar */
if (SCH[scharh])
{
    IH[hperarh] = TRUE;
    MM[mhand]   = TRUE;
}

FIXED - merk op dat deze functie verder zou kunnen worden opgeschoond. extra_func.c: in de functie Rateltikkers() gaat iets fout: / Check op continue aansturing / if (hascont > NG) if(!IH[hascont]) IH[has] = FALSE; else IH[has] = FALSE; De 'else' wordt nu gematcht met de 2e 'if' ipv de 1e 'if', waardoor de rateltikker ten onrechte aan blijft na de nalooptimer

TODO - dit klopt; nu voor evt. toek. debugging nog laten staan. als todo gemarkeerd halfstar_ov.c: 'fasevolgorde_wisselen_gewenst' krijgt wel waarde, maar wordt nergens gebruikt halfstar_ov.c: 'fasevolgorde_wisselen_mag' krijgt wel waarde, maar wordt nergens gebruikt

FIXED

tab.c/###sys.h: bij het geheugenelement 'mklok' staat in commentaar 'klokprioden' -> 'klokperioden'

FIXED Als je alleen een instelling van een signaalplan wijzigt, ziet TLCGen dat niet als een wijziging. Bij afsluiten wordt niet gevraagd om op te slaan.

GEEN BUG: stel bij de detectie de rijstroken in, dan gaat dit goed Er wordt alleen een vervangende hiaattijd gegenereerd voor de eerste strook van een signaalgroep.

TODO: op de lijst gezet Er wordt niets gedaan met de parameters prmmwthst## Er wordt niets gedaan met de parameters prmovstp##

TODO op de lijst gezet Als je meer dan 1 klokperiode invoert voor het dimmen van bellen, wordt alleen de eerste gebruikt in de reg-file.

TODO - zoals aangegeven is dit verklaarbaar/verwacht gedrag van de applicatie. In de toekomst wordt dit wellicht verholpen; dit is voorbereid in de applicatie Bij 'Gebruikersopties' - 'Timers' kan ik geen timers toevoegen met bepaalde namen: ik wil de bijvoorbeeld de timer t45_1 toevoegen, dus ik begon met het typen van een '4'. Daarna kon ik echter geen '5' intypen. Met een trucje is het wel gelukt: eerst een 't' intypen, dan de rest van de naam ('45_1') en tenslotte de eerste 't' weer verwijderen.

TODO - op de lijst gezet. Een PR is ook welkom. De bestanden die gegenereerd worden, zijn van het type Unicode met een zogenaamde 'byte order mark' (BOM) aan het begin van het bestand. Er zijn compilers die deze byte order mark niet accepteren (bijvoorbeeld Borland C++ 5.0 for Win32). Als het een kleine moeite is om dit aan te passen, zou dat fijn zijn.

GEEN BUG - zoals aangegeven wordt deze gebruikt in extra_func_ov.c Er wordt niets gedaan met de schakelaar "checkdstype".

TODO - bekende ommissie; wordt de komende maanden opgepakt, Een voorstel voor implementatie is welkom Deelconflicten met voorstart worden alleen gegenereerd voor ML-regelingen, niet voor halfstar.

GEEN BUG - dit is aan de beheerders van TLCGen om hier evt. tijd voor te reserveren Bij het wijzigen van instellingen in ene tabel wordt de rij waar je in staat blauw gekleurd. De cel waar je in staat, krijgt een iets dikker zwart randje. Is het mogelijk om het iets duidelijker te maken in welke cel je staat? Bijvoorbeeld door ook de actieve kolom blauw te maken en de cel waar je in staat juist niet blauw te maken.

De versie van TLCGen die ik heb gebruikt is 0.3.6.0.