b/ loop je het risico, dat een snel optrekkende trein een langzaam optrekkende (goederen)trein inhaalt en dus daar achter op rijdt.
dat het opvolgende blok kan aangeven dat de trein de stopmelder bereikt.
void trackLogic(){ static F_trigger nextBlockFreed ; static R_trigger myBlockCleared ;// wanneer moet sein op rood?// als van het volgende blok een melder op rood staat. if( nextBlock_A || nextBlock_B ) semaphore = red ;// wanneer moet sein op groen?// Als het volgende sein groen of geel is het blok is niet bezet if( !nextBlock_A && !nextBlock_B ) semaphore = green ;// wanneer moet ABC aan?// Een neergaande flank van de stopmelder, EN de trein vertrekt niet EN het volgende blok is BEZET if( stopState == FALLING && (nextBlock_A || nextBlock_B) && departure == false ) { digitalWrite( ABC, HIGH ) ; }// wanneer vertrekt de tein?// Als het volgende blok is vrij gekomen if( nextBlockFreed.trigger( nextBlock_A || nextBlock_B ) ) // falling trigger { departure = true ; // if both sensors of next block become low, departure is allowed digitalWrite( ABC, LOW ) ; // this part seems to work }// wanneer vertrekt de trein niet meer?// Als de stopmelder van het volgende blok opkomt if( myBlockCleared.trigger( nextBlock_B ) ) { departure = false ; }}
...Ik heb ondertussen begrepen dat dat iTrain ontwikkelaar denkt om een specifieke oplossing in de software in te bouwen bij V6, een soort van matrix besturing voor schaduw stations. Of die er komt weet ik ook niet, maar het wordt niet beloofd maar alleen gemeld, ...
per blok heb je nu 2 bezetmelders ?
Zijn van beide de stand ook uit te lezen aan de hand van 2 relais, dus met potentiaalvrije contacten ?