@@ -30,14 +30,16 @@ void loop()
30
30
{
31
31
milli = millis ();
32
32
if ((milli - lastmilli) > 25 ){
33
- if (count != 0 )
33
+ if (count == 255 )
34
34
{
35
35
Serial.println (count);
36
36
printDataRead (data);
37
37
printBadgeNumber (data);
38
-
39
- count = 0 ;
38
+ }
39
+ else {
40
+ // Serial.println('Read Error: Please Re-Scan');
40
41
}
42
+ count = 0 ;
41
43
lastmilli = milli;
42
44
}
43
45
}
@@ -76,8 +78,9 @@ void printBadgeNumber(byte data[]){
76
78
// The position just before the F sentinel:
77
79
int last = 16 ;
78
80
// Store our re-grouped hex values here
79
- byte sets[9 ] = {0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 };
80
-
81
+ byte sets[9 ] = {
82
+ 0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 };
83
+
81
84
// Remove parity bit at end
82
85
sets[8 ] |= data[last] >> 1 & B00000011;
83
86
sets[8 ] |= data[last-1 ] << 2 & B00001100;
@@ -90,28 +93,29 @@ void printBadgeNumber(byte data[]){
90
93
91
94
sets[5 ] |= data[last-4 ] >> 1 & B00000011;
92
95
sets[5 ] |= data[last-5 ] << 2 & B00001100;
93
-
96
+
94
97
sets[4 ] |= data[last-5 ] >> 2 & B00000001;
95
98
sets[4 ] |= data[last-6 ] << 1 & B00001110;
96
-
99
+
97
100
sets[3 ] |= data[last-7 ] & B00000111;
98
101
sets[3 ] |= data[last-8 ] << 3 & B00001000;
99
102
100
103
sets[2 ] |= data[last-8 ] >> 1 & B00000011;
101
104
sets[2 ] |= data[last-9 ] << 2 & B00001100;
102
-
105
+
103
106
sets[1 ] |= data[last-9 ] >> 2 & B00000001;
104
107
sets[1 ] |= data[last-10 ] << 1 & B00001110;
105
-
108
+
106
109
sets[0 ] |= data[last-11 ];
107
-
110
+
108
111
// Serial.print('ALL: ');
109
112
for (int i = 0 ; i < 9 ; i++){
110
113
Serial.print (sets[i], HEX);
111
114
}
112
115
Serial.println ();
113
116
114
117
// Serial.print('Badge Number: ');
115
- int badgenumber = sets[8 ] + 16 * sets[7 ] + 256 * sets[6 ] + 4096 * sets[5 ];
118
+ unsigned int badgenumber = sets[8 ] + 16 * sets[7 ] + 256 * sets[6 ] + 4096 * sets[5 ];
116
119
Serial.println (badgenumber);
117
120
}
121
+
0 commit comments