Repeater Switching Logic

From BATC Wiki
Revision as of 18:27, 13 February 2022 by G8GTZ (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
Back to repeater controller main page

The switching logic is the heart of the BATC Repeater Controller. It is configured by the parameters in the config file, and operates according to the following rules:

On boot-up, the command to reset the HDMI switch defined in "outputhdmiresetcode=" is sent. If the status screen is selected, the Input 0 is selected and the status screen is displayed on the controller.

Then the repeater enters the decision loop:

1. If the output overide is selected (by UDP from the Console Menu, or by DTMF), a timer is started, and the demanded output is selected. After "dtmfactiontimeout=" seconds, the overide is deselected and the repeater reverts to normal decision making.

2. If there has been a change in the input switch lines, the "Priority Decision" routine is called:

a. Starting at Input 1, it checks if any active input is set to Priority 1 in "inputxprioritylevel=". The lowest-numbered priority 1 input is selected.

b. It then checks for active Priority 2 inputs, the lowest numbered is displayed, and then similarly for each priority level up to 8.

Priority 1 inputs always overide any other input. If a priority 2 - 8 input becomes active while another Priority 2 - 8 input is being repeated, it will be ignored if "activeinputhold=" is set to yes. If "activeinputhold=" is set to no, then the highest priority input will always be switched to. Priority 9 inputs are ignored.

3. If the status screen is selected (from the ssh console menu or by DTMF), the decision process takes place (and the results updated), but the status screen is always displayed.

4. If there is no active input, the "K" caption is displayed for "kmediaduration=" seconds, and then the carousel starts, with each carousel scene displayed for "carouselxxmediaduration==" seconds. At the end of the carousel, it starts again, with no "K" caption.

5. On boot, the ident timer is started. After "identinterval=" seconds, the ident is displayed for "identmediaduration=" seconds. The ident overrides every other image or input selection. After the ident the previous image or selection is restored, unless a signal has dropped during the ident, in which case the "Priority Decision" process is invoked.