96 bitset<12> n_1234_888 = ( b_adr14_8 & b_adr24_8 & b_adr34_8 );
97 bitset<12> n_1234_889 = ( b_adr14_8 & b_adr24_8 & b_adr34_9 );
98 bitset<12> n_1234_880 = ( b_adr14_8 & b_adr24_8 & b_adr34_0 );
99 bitset<12> n_1234_881 = ( b_adr14_8 & b_adr24_8 & b_adr34_1 );
100 bitset<12> n_1234_898 = ( b_adr14_8 & b_adr24_9 & b_adr34_8 );
101 bitset<12> n_1234_899 = ( b_adr14_8 & b_adr24_9 & b_adr34_9 );
102 bitset<12> n_1234_890 = ( b_adr14_8 & b_adr24_9 & b_adr34_0 );
103 bitset<12> n_1234_891 = ( b_adr14_8 & b_adr24_9 & b_adr34_1 );
104 bitset<12> n_1234_800 = ( b_adr14_8 & b_adr24_0 & b_adr34_0 );
105 bitset<12> n_1234_801 = ( b_adr14_8 & b_adr24_0 & b_adr34_1 );
106 bitset<12> n_1234_810 = ( b_adr14_8 & b_adr24_1 & b_adr34_0 );
107 bitset<12> n_1234_811 = ( b_adr14_8 & b_adr24_1 & b_adr34_1 );
109 bitset<12> n_1234_988 = ( b_adr14_9 & b_adr24_8 & b_adr34_8 );
110 bitset<12> n_1234_989 = ( b_adr14_9 & b_adr24_8 & b_adr34_9 );
111 bitset<12> n_1234_980 = ( b_adr14_9 & b_adr24_8 & b_adr34_0 );
112 bitset<12> n_1234_981 = ( b_adr14_9 & b_adr24_8 & b_adr34_1 );
113 bitset<12> n_1234_998 = ( b_adr14_9 & b_adr24_9 & b_adr34_8 );
114 bitset<12> n_1234_999 = ( b_adr14_9 & b_adr24_9 & b_adr34_9 );
115 bitset<12> n_1234_990 = ( b_adr14_9 & b_adr24_9 & b_adr34_0 );
116 bitset<12> n_1234_991 = ( b_adr14_9 & b_adr24_9 & b_adr34_1 );
117 bitset<12> n_1234_900 = ( b_adr14_9 & b_adr24_0 & b_adr34_0 );
118 bitset<12> n_1234_901 = ( b_adr14_9 & b_adr24_0 & b_adr34_1 );
119 bitset<12> n_1234_910 = ( b_adr14_9 & b_adr24_1 & b_adr34_0 );
120 bitset<12> n_1234_911 = ( b_adr14_9 & b_adr24_1 & b_adr34_1 );
122 bitset<12> n_123_88 = ( b_adr13_8 & b_adr23_8 );
123 bitset<12> n_123_89 = ( b_adr13_8 & b_adr23_9 );
124 bitset<12> n_123_80 = ( b_adr13_8 & b_adr23_0 );
125 bitset<12> n_123_81 = ( b_adr13_8 & b_adr23_1 );
127 bitset<12> n_123_98 = ( b_adr13_9 & b_adr23_8 );
128 bitset<12> n_123_99 = ( b_adr13_9 & b_adr23_9 );
129 bitset<12> n_123_90 = ( b_adr13_9 & b_adr23_0 );
130 bitset<12> n_123_91 = ( b_adr13_9 & b_adr23_1 );
132 bitset<12> n_124_88 = ( b_adr14_8 & b_adr24_8 );
133 bitset<12> n_124_89 = ( b_adr14_8 & b_adr24_9 );
134 bitset<12> n_124_80 = ( b_adr14_8 & b_adr24_0 );
135 bitset<12> n_124_81 = ( b_adr14_8 & b_adr24_1 );
137 bitset<12> n_124_98 = ( b_adr14_9 & b_adr24_8 );
138 bitset<12> n_124_99 = ( b_adr14_9 & b_adr24_9 );
139 bitset<12> n_124_90 = ( b_adr14_9 & b_adr24_0 );
140 bitset<12> n_124_91 = ( b_adr14_9 & b_adr24_1 );
142 bitset<12> n_134_88 = ( b_adr14_8 & b_adr34_8 );
143 bitset<12> n_134_89 = ( b_adr14_8 & b_adr34_9 );
144 bitset<12> n_134_80 = ( b_adr14_8 & b_adr34_0 );
145 bitset<12> n_134_81 = ( b_adr14_8 & b_adr34_1 );
147 bitset<12> n_134_98 = ( b_adr14_9 & b_adr34_8 );
148 bitset<12> n_134_99 = ( b_adr14_9 & b_adr34_9 );
149 bitset<12> n_134_90 = ( b_adr14_9 & b_adr34_0 );
150 bitset<12> n_134_91 = ( b_adr14_9 & b_adr34_1 );
152 bitset<12> n_234_88 = ( b_adr24_8 & b_adr34_8 );
153 bitset<12> n_234_89 = ( b_adr24_8 & b_adr34_9 );
154 bitset<12> n_234_80 = ( b_adr24_8 & b_adr34_0 );
155 bitset<12> n_234_81 = ( b_adr24_8 & b_adr34_1 );
157 bitset<12> n_234_98 = ( b_adr24_9 & b_adr34_8 );
158 bitset<12> n_234_99 = ( b_adr24_9 & b_adr34_9 );
159 bitset<12> n_234_90 = ( b_adr24_9 & b_adr34_0 );
160 bitset<12> n_234_91 = ( b_adr24_9 & b_adr34_1 );
162 bitset<12> n_12_8 = b_adr12_8;
163 bitset<12> n_12_9 = b_adr12_9;
165 bitset<12> n_13_8 = b_adr13_8;
166 bitset<12> n_13_9 = b_adr13_9;
168 bitset<12> n_14_8 = b_adr14_8;
169 bitset<12> n_14_9 = b_adr14_9;
171 bitset<12> n_23_8 = b_adr23_8;
172 bitset<12> n_23_9 = b_adr23_9;
174 bitset<12> n_24_8 = b_adr24_8;
175 bitset<12> n_24_9 = b_adr24_9;
177 bitset<12> n_34_8 = b_adr34_8;
178 bitset<12> n_34_9 = b_adr34_9;
285 m_thePriorityTable1[67] = ( b_adr12_8[0] & b_adr13_8[0] & b_adr23_8[0] & n_1234_888.any() );
286 m_thePriorityTable1[66] = ( b_adr12_8[0] & b_adr13_8[1] & b_adr23_8[1] & n_1234_889.any() );
287 m_thePriorityTable1[65] = ( b_adr12_8[0] & b_adr13_8[2] & b_adr23_8[2] & n_1234_880.any() );
288 m_thePriorityTable1[64] = ( b_adr12_8[0] & b_adr13_8[3] & b_adr23_8[3] & n_1234_881.any() );
289 m_thePriorityTable1[63] = ( b_adr12_8[1] & b_adr13_8[0] & b_adr23_9[0] & n_1234_898.any() );
290 m_thePriorityTable1[62] = ( b_adr12_8[1] & b_adr13_8[1] & b_adr23_9[1] & n_1234_899.any() );
291 m_thePriorityTable1[61] = ( b_adr12_8[1] & b_adr13_8[2] & b_adr23_9[2] & n_1234_890.any() );
292 m_thePriorityTable1[60] = ( b_adr12_8[1] & b_adr13_8[3] & b_adr23_9[3] & n_1234_891.any() );
293 m_thePriorityTable1[59] = ( b_adr12_8[2] & b_adr13_8[2] & b_adr23_0[2] & n_1234_800.any() );
294 m_thePriorityTable1[58] = ( b_adr12_8[2] & b_adr13_8[3] & b_adr23_0[3] & n_1234_801.any() );
295 m_thePriorityTable1[57] = ( b_adr12_8[3] & b_adr13_8[2] & b_adr23_1[2] & n_1234_810.any() );
296 m_thePriorityTable1[56] = ( b_adr12_8[3] & b_adr13_8[3] & b_adr23_1[3] & n_1234_811.any() );
298 m_thePriorityTable1[55] = ( b_adr12_9[0] & b_adr13_9[0] & b_adr23_8[0] & n_1234_988.any() );
299 m_thePriorityTable1[54] = ( b_adr12_9[0] & b_adr13_9[1] & b_adr23_8[1] & n_1234_989.any() );
300 m_thePriorityTable1[53] = ( b_adr12_9[0] & b_adr13_9[2] & b_adr23_8[2] & n_1234_980.any() );
301 m_thePriorityTable1[52] = ( b_adr12_9[0] & b_adr13_9[3] & b_adr23_8[3] & n_1234_981.any() );
302 m_thePriorityTable1[51] = ( b_adr12_9[1] & b_adr13_9[0] & b_adr23_9[0] & n_1234_998.any() );
303 m_thePriorityTable1[50] = ( b_adr12_9[1] & b_adr13_9[1] & b_adr23_9[1] & n_1234_999.any() );
304 m_thePriorityTable1[49] = ( b_adr12_9[1] & b_adr13_9[2] & b_adr23_9[2] & n_1234_990.any() );
305 m_thePriorityTable1[48] = ( b_adr12_9[1] & b_adr13_9[3] & b_adr23_9[3] & n_1234_991.any() );
306 m_thePriorityTable1[47] = ( b_adr12_9[2] & b_adr13_9[2] & b_adr23_0[2] & n_1234_900.any() );
307 m_thePriorityTable1[46] = ( b_adr12_9[2] & b_adr13_9[3] & b_adr23_0[3] & n_1234_901.any() );
308 m_thePriorityTable1[45] = ( b_adr12_9[3] & b_adr13_9[2] & b_adr23_1[2] & n_1234_910.any() );
309 m_thePriorityTable1[44] = ( b_adr12_9[3] & b_adr13_9[3] & b_adr23_1[3] & n_1234_911.any() );
374 unsigned int global1 = 0;
375 unsigned int group1 = 0;
383 for (
int i = 0;
i < 56;
i++ ) {
391 unsigned int global2 = 0;
392 unsigned int group2 = 0;
428 if ( ( s2_2 == 15 && s3_2 == 15 && s4_2 == 15 ) ||
429 ( s1_2 == 15 && s3_2 == 15 && s4_2 == 15 ) ||
430 ( s1_2 == 15 && s2_2 == 15 && s4_2 == 15 ) ||
431 ( s1_2 == 15 && s2_2 == 15 && s3_2 == 15 ) ) {
480 cout <<
"Track Assembler : " << endl;
544 if ( global == 31 ) {
577 case 21 : { group = prio1234a; priority = 56 + group;
break; }
578 case 20 : { group = prio1234b; priority = 44 + group;
break; }
579 case 19 : { group = prio123a; priority = 40 + group;
break; }
580 case 18 : { group = prio123b; priority = 36 + group;
break; }
581 case 17 : { group = prio124a; priority = 32 + group;
break; }
582 case 16 : { group = prio124b; priority = 28 + group;
break; }
583 case 15 : { group = prio134a; priority = 24 + group;
break; }
584 case 14 : { group = prio134b; priority = 20 + group;
break; }
585 case 13 : { group = prio234a; priority = 16 + group;
break; }
586 case 12 : { group = prio234b; priority = 12 + group;
break; }
587 default : { group = 15; priority = global;
break; }
640 if ( global == 31 ) {
671 case 20 : { group = prio1234b; priority = 44 + group;
break; }
672 case 19 : { group = prio123a; priority = 40 + group;
break; }
673 case 18 : { group = prio123b; priority = 36 + group;
break; }
674 case 17 : { group = prio124a; priority = 32 + group;
break; }
675 case 16 : { group = prio124b; priority = 28 + group;
break; }
676 case 15 : { group = prio134a; priority = 24 + group;
break; }
677 case 14 : { group = prio134b; priority = 20 + group;
break; }
678 case 13 : { group = prio234a; priority = 16 + group;
break; }
679 case 12 : { group = prio234b; priority = 12 + group;
break; }
680 default : { group = 15; priority = global;
break; }
694 case 21 : { tc =
T1234;
711 case 20 : { tc =
T1234;
728 case 19 : { tc =
T123;
737 case 18 : { tc =
T123;
746 case 17 : { tc =
T124;
755 case 16 : { tc =
T124;
764 case 15 : { tc =
T134;
773 case 14 : { tc =
T134;
782 case 13 : { tc =
T234;
791 case 12 : { tc =
T234;
829 case 20 : { tc =
T1234;
846 case 19 : { tc =
T123;
855 case 18 : { tc =
T123;
864 case 17 : { tc =
T124;
873 case 16 : { tc =
T124;
882 case 15 : { tc =
T134;
891 case 14 : { tc =
T134;
900 case 13 : { tc =
T234;
909 case 12 : { tc =
T234;
946 for (
int i = 0;
i < 12;
i++ ) {
947 if ( input.test(
i) ) result =
i;
962 for (
int i = 0;
i < 4;
i++ ) {
963 if ( input.test(
i) ) result =
i;
978 for (
int i = 0;
i < 22;
i++ ) {
979 if ( input.test(
i) ) result =
i;
994 for (
int i = 0;
i < 21;
i++ ) {
995 if ( input.test(
i) ) result =
i;
1010 unsigned int result = 15;
1012 for (
int i = 0;
i < 12;
i++ ) {
1013 if ( input.test(
i) ) {
1031 unsigned int result = 15;
1033 for (
int i = 0;
i < 11;
i += 2 ) {
1034 if ( input.test(
i) || input.test(
i+1) ) {
1035 if ( input.test(
i) ) result =
i;
1036 if ( input.test(
i+1) ) result =
i+1;
1050 bitset<68>
s(input);
1052 for (
int i = pos+length;
i < 68;
i++ ) s.reset(
i);
1056 return s.to_ulong();
1066 bitset<56>
s(input);
1068 for (
int i = pos+length;
i < 56;
i++ ) s.reset(
i);
1072 return s.to_ulong();
1087 case 67 : { bitset<56>
b(
string(
"00000111111100000111000001110000011100000111010101010101"));
return b;
break; }
1088 case 66 : { bitset<56>
b(
string(
"00001011111100000111000001110000101100001011010101010110"));
return b;
break; }
1089 case 65 : { bitset<56>
b(
string(
"00001101010100000111000001110000110100001101010101010111"));
return b;
break; }
1090 case 64 : { bitset<56>
b(
string(
"00001110101000000111000001110000111000001110010101010111"));
return b;
break; }
1091 case 63 : { bitset<56>
b(
string(
"01110000111100001011000010110000011101110000010101101001"));
return b;
break; }
1092 case 62 : { bitset<56>
b(
string(
"10110000111100001011000010110000101110110000010101101010"));
return b;
break; }
1093 case 61 : { bitset<56>
b(
string(
"11010000111100001011000010110000110111010000010101101011"));
return b;
break; }
1094 case 60 : { bitset<56>
b(
string(
"11100000111100001011000010110000111011100000010101101011"));
return b;
break; }
1095 case 59 : { bitset<56>
b(
string(
"11011101000100001101000011010000110111011101010101111111"));
return b;
break; }
1096 case 58 : { bitset<56>
b(
string(
"11101110001000001101000011010000111011101110010101111111"));
return b;
break; }
1097 case 57 : { bitset<56>
b(
string(
"11011101010000001110000011100000110111011101010101111111"));
return b;
break; }
1098 case 56 : { bitset<56>
b(
string(
"11101110100000001110000011100000111011101110010101111111"));
return b;
break; }
1100 case 55 : { bitset<56>
b(
string(
"00000000000001110000011100000111000000000111101010010101"));
return b;
break; }
1101 case 54 : { bitset<56>
b(
string(
"00000000000001110000011100001011000000001011101010010110"));
return b;
break; }
1102 case 53 : { bitset<56>
b(
string(
"00000000000001110000011100001101000000001101101010010111"));
return b;
break; }
1103 case 52 : { bitset<56>
b(
string(
"00000000000001110000011100001110000000001110101010010111"));
return b;
break; }
1104 case 51 : { bitset<56>
b(
string(
"00000000000010110000101100000111000001110000101010101001"));
return b;
break; }
1105 case 50 : { bitset<56>
b(
string(
"00000000000010110000101100001011000010110000101010101010"));
return b;
break; }
1106 case 49 : { bitset<56>
b(
string(
"00000000000010110000101100001101000011010000101010101011"));
return b;
break; }
1107 case 48 : { bitset<56>
b(
string(
"00000000000010110000101100001110000011100000101010101011"));
return b;
break; }
1108 case 47 : { bitset<56>
b(
string(
"00000000000011010000110100001101000011011101101010111111"));
return b;
break; }
1109 case 46 : { bitset<56>
b(
string(
"00000000000011010000110100001110000011101110101010111111"));
return b;
break; }
1110 case 45 : { bitset<56>
b(
string(
"00000000000011100000111000001101000011011101101010111111"));
return b;
break; }
1111 case 44 : { bitset<56>
b(
string(
"00000000000011100000111000001110000011101110101010111111"));
return b;
break; }
1113 case 43 : { bitset<56>
b(
string(
"00000000000000000111000001110000111100001111010101010111"));
return b;
break; }
1114 case 42 : { bitset<56>
b(
string(
"00000000000000001011000010110000111111110000010101101011"));
return b;
break; }
1115 case 41 : { bitset<56>
b(
string(
"00000000000000001101000011010000111111111111010101111111"));
return b;
break; }
1116 case 40 : { bitset<56>
b(
string(
"00000000000000001110000011100000111111111111010101111111"));
return b;
break; }
1118 case 39 : { bitset<56>
b(
string(
"00000000000000000000011100001111000000001111101010010111"));
return b;
break; }
1119 case 38 : { bitset<56>
b(
string(
"00000000000000000000101100001111000011110000101010101011"));
return b;
break; }
1120 case 37 : { bitset<56>
b(
string(
"00000000000000000000110100001111000011111111101010111111"));
return b;
break; }
1121 case 36 : { bitset<56>
b(
string(
"00000000000000000000111000001111000011111111101010111111"));
return b;
break; }
1123 case 35 : { bitset<56>
b(
string(
"00000000000000000000000001110000111100001111010101010111"));
return b;
break; }
1124 case 34 : { bitset<56>
b(
string(
"00000000000000000000000010110000111111110000010101101011"));
return b;
break; }
1125 case 33 : { bitset<56>
b(
string(
"00000000000000000000000011010000111111111111010101111111"));
return b;
break; }
1126 case 32 : { bitset<56>
b(
string(
"00000000000000000000000011100000111111111111010101111111"));
return b;
break; }
1128 case 31 : { bitset<56>
b(
string(
"00000000000000000000011100001111000000001111101010010111"));
return b;
break; }
1129 case 30 : { bitset<56>
b(
string(
"00000000000000000000101100001111000011110000101010101011"));
return b;
break; }
1130 case 29 : { bitset<56>
b(
string(
"00000000000000000000110100001111000011111111101010111111"));
return b;
break; }
1131 case 28 : { bitset<56>
b(
string(
"00000000000000000000111000001111000011111111101010111111"));
return b;
break; }
1133 case 27 : { bitset<56>
b(
string(
"00000000000000000000000000000000011101110111010101111101"));
return b;
break; }
1134 case 26 : { bitset<56>
b(
string(
"00000000000000000000000000000000101110111011010101111110"));
return b;
break; }
1135 case 25 : { bitset<56>
b(
string(
"00000000000000000000000000000000110111011101010101111111"));
return b;
break; }
1136 case 24 : { bitset<56>
b(
string(
"00000000000000000000000000000000111011101110010101111111"));
return b;
break; }
1138 case 23 : { bitset<56>
b(
string(
"00000000000000000000000000000000000001110111101010111101"));
return b;
break; }
1139 case 22 : { bitset<56>
b(
string(
"00000000000000000000000000000000000010111011101010111110"));
return b;
break; }
1140 case 21 : { bitset<56>
b(
string(
"00000000000000000000000000000000000011011101101010111111"));
return b;
break; }
1141 case 20 : { bitset<56>
b(
string(
"00000000000000000000000000000000000011101110101010111111"));
return b;
break; }
1143 case 19 : { bitset<56>
b(
string(
"00000000000000000000000000000000000000000111111111010101"));
return b;
break; }
1144 case 18 : { bitset<56>
b(
string(
"00000000000000000000000000000000000000001011111111010110"));
return b;
break; }
1145 case 17 : { bitset<56>
b(
string(
"00000000000000000000000000000000000000001101111111010111"));
return b;
break; }
1146 case 16 : { bitset<56>
b(
string(
"00000000000000000000000000000000000000001110111111010111"));
return b;
break; }
1148 case 15 : { bitset<56>
b(
string(
"00000000000000000000000000000000000000000000111111101001"));
return b;
break; }
1149 case 14 : { bitset<56>
b(
string(
"00000000000000000000000000000000000000000000111111101010"));
return b;
break; }
1150 case 13 : { bitset<56>
b(
string(
"00000000000000000000000000000000000000000000111111101011"));
return b;
break; }
1151 case 12 : { bitset<56>
b(
string(
"00000000000000000000000000000000000000000000111111101011"));
return b;
break; }
1153 case 11 : { bitset<56>
b(
string(
"00000000000000000000000000000000000000000000010101111111"));
return b;
break; }
1154 case 10 : { bitset<56>
b(
string(
"00000000000000000000000000000000000000000000001010111111"));
return b;
break; }
1156 case 9 : { bitset<56>
b(
string(
"00000000000000000000000000000000000000000000000101111111"));
return b;
break; }
1157 case 8 : { bitset<56>
b(
string(
"00000000000000000000000000000000000000000000000010111111"));
return b;
break; }
1159 case 7 : { bitset<56>
b(
string(
"00000000000000000000000000000000000000000000000001111111"));
return b;
break; }
1160 case 6 : { bitset<56>
b(
string(
"00000000000000000000000000000000000000000000000000111111"));
return b;
break; }
1162 case 5 : { bitset<56>
b(
string(
"00000000000000000000000000000000000000000000000000010111"));
return b;
break; }
1163 case 4 : { bitset<56>
b(
string(
"00000000000000000000000000000000000000000000000000001011"));
return b;
break; }
1165 case 3 : { bitset<56>
b(
string(
"00000000000000000000000000000000000000000000000000000111"));
return b;
break; }
1166 case 2 : { bitset<56>
b(
string(
"00000000000000000000000000000000000000000000000000000011"));
return b;
break; }
1168 case 1 : { bitset<56>
b(
string(
"00000000000000000000000000000000000000000000000000000001"));
return b;
break; }
1169 case 0 : { bitset<56>
b(
string(
"00000000000000000000000000000000000000000000000000000000"));
return b;
break; }
1170 default : { bitset<56>
b;
return b;
break; }
static unsigned int addressEncoder12(const std::bitset< 12 > &input)
12 bit address encoder
void reset()
reset address array
static unsigned int addressEncoder12s(const std::bitset< 12 > &input)
special 12 bit address encoder
void runAddressAssignment1(int global, int group)
run the first Address Assignment Sub-Unit
void print() const
print result of Track Assembler
L1MuDTAddressArray m_theAddresses[2]
static unsigned int priorityEncoder12(const std::bitset< 12 > &input)
12 bit priority encoder
const unsigned int tc2bitmap(const TrackClass tc)
unsigned int m_theLastAddress[68]
static unsigned int priorityEncoder22(const std::bitset< 22 > &input)
22 bit priority encoder
L1MuDTTrackAssembler(const L1MuDTSectorProcessor &)
constructor
const L1MuDTSectorProcessor & m_sp
void runEncoderSubUnit2(unsigned &global, unsigned &group, unsigned &priority)
run the second Priority Encoder Sub-Unit
virtual void run()
run Track Assembler
virtual void reset()
reset Track Assembler
virtual ~L1MuDTTrackAssembler()
destructor
std::bitset< 4 > m_theBitMaps[2]
static std::bitset< 56 > getCancelationTable(unsigned int)
cancel Out Table
static unsigned int priorityEncoder21(const std::bitset< 21 > &input)
21 bit priority encoder
void setStations(int adr1, int adr2, int adr3, int adr4)
set addresses of all four stations
std::bitset< 68 > m_thePriorityTable1
unsigned int m_theLastAddressI[12]
static unsigned int priorityEncoder4(const std::bitset< 4 > &input)
4 bit priority encoder
void runAddressAssignment2(int global, int group)
run the second Address Assignment Sub-Unit
void setStation(int stat, int adr)
set address of a given station [1-4]
static unsigned long subBitset56(const std::bitset< 56 > &input, int pos, int length)
get sub-bitmap of a 56-bit word
void runEncoderSubUnit1(unsigned &global, unsigned &group, unsigned &priority)
run the first Priority Encoder Sub-Unit
std::bitset< 56 > m_thePriorityTable2
const L1MuDTExtrapolationUnit * EU() const
return pointer to Extrapolation Unit
static unsigned long subBitset68(const std::bitset< 68 > &input, int pos, int length)
get sub-bitmap of a 68-bit word
unsigned short station(int stat) const
get address of a given station [1-4]