Files
Michael Wesemann 1c10a9bf2f readme
2026-02-12 16:05:43 +01:00

119 lines
5.0 KiB
Perl
Executable File

#!/usr/bin/perl
open(IN,"interlock0/interlock0.ino");
while(<IN>) {
s/\s//g;
if (/{([^,]*),([^,]*),{([^}]*)},([^,]*),{([^}]*)},([^,]*)}/) {
#print " $1|$2| $3|$4|$5|$6\n";
$input=$1;
$led=$2;
@relais=split(',',$3);
$n=$4;
@relaisled=split(',',$5);
$overwrite=$6;
if ($#relais != $#relaisled) {
die "element count error in:\n $_\n";
}
for ($i=0;$i<=$#relais;$i++) {
#print "$relais[$i] $relaisled[$i]\n";
if (!$rlmatch{$relais[$i]}) {
$rlmatch{$relais[$i]}=$relaisled[$i];
}
if ($rlmatch{$relais[$i]} != $relaisled[$i]) {
die "led/relais mismatch: $relais[$i] / $relaisled[$i] \n";
}
}
print "|$input|$led|".join(',',@relais)."|$n|".join(',',@relaisled)."|$overwrite|\n";
}
}
# | input | LED | relais| n | relais LED | overwrite |
# |-------|-----|-------|---|------------|-----------|
# |22|46| | 0| |45|
# |23|42|3 | 1|8 |41|
# |24|43|3 | 1|8 |42|
# |25|44|3 | 1|8 |43|
# |26|33|14 | 1|19 |32|
# |27|34|12,13,15 | 3|21,20,7 |33|
# |28|35|12,13,15 | 3|21,20,7 |34|
# |29|36|12,13,15 | 3|21,20,7 |35|
# |30|37|12,13, | 2|21,20 |36|
# |31|38|11 | 1|22 |37|
# |32|39|3,11 | 2|8,22 |38|
# |33|47|5,6,7,8,9,10,12,13,14 | 9|5,4,3,2,1,15,21,20,19 |46|
# |34|48|5,6,7,8,9,10,12,13 | 8|5,4,3,2,1,15,21,20 |47|
# |35|49|11 | 1|22 |48|
# |36|50|4,5,6,7,8,9,10,11 | 8|6,5,4,3,2,1,15,22 |49|
# |37|29|3,11 | 2|8,22 |28|
# |38|30|2,3,12,13,15 | 5|9,8,21,20,7 |29|
# |39|31|0,1,3,12,13 | 5|11,10,8,21,20 |30|
# |40|32|0,1,3,11 | 4|11,10,8,22 |31|
# |41|23|14,15 | 2|19,7 |23|
# |42|24|12,13 | 2|21,20 |24|
# |43|25|12,13,15 | 3|21,20,7 |25|
# |44|26| | 0| |26|
# |45|27| | 0| |27|
# |46|45|4,5,6,7,8,9,10,12,13,14,15 |11|6,5,8,3,2,1,15,21,20,19,7 |44|
#
# input LED relais n relais LED overwrite
# {22, 46, {}, 0, {}, 45},
# {23, 42, {3}, 1, {8}, 41},
# {24, 43, {3}, 1, {8}, 42},
# {25, 44, {3}, 1, {8}, 43},
# {26, 33, {14}, 1, {19}, 32},
# {27, 34, {12,13,15}, 3, {21,20,7}, 33},
# {28, 35, {12,13,15}, 3, {21,20,7}, 34},
# {29, 36, {12,13,15}, 3, {21,20,7}, 35},
# {30, 37, {12,13}, 2, {21,20}, 36},
# {31, 38, {11}, 1, {22}, 37},
# {32, 39, {3,11}, 2, {8,22}, 38},
# {33, 47, {5,6,7,8,9,10,12,13,14}, 9, {5,4,3,2,1,15,21,20,19}, 46},
# {34, 48, {5,6,7,8,9,10,12,13}, 8, {5,4,3,2,1,15,21,20}, 47},
# {35, 49, {11}, 1, {22}, 48},
# {36, 50, {4,5,6,7,8,9,10,11}, 8, {6,5,4,3,2,1,15,22}, 49},
# {37, 29, {3,11}, 2, {8,22}, 28},
# {38, 30, {2,3,12,13,15}, 5, {9,8,21,20,7}, 29},
# {39, 31, {0,1, 3,12,13}, 5, {11,10,8,21,20}, 30},
# {40, 32, {0,1,3,11}, 4, {11,10,8,22}, 31},
# {41, 23, {14,15}, 2, {19,7}, 23},
# {42, 24, {12,13}, 2, {21,20}, 24},
# {43, 25, {12,13,15}, 3, {21,20, 7}, 25},
# {44, 26, {}, 0, {}, 26},
# {45, 27, {}, 0, {}, 27},
# {46, 45, {4,5,6,7,8,9,10,12,13,14,15}, 11, {6,5,8,3,2,1,15,21,20,19,7}, 44}