-
Notifications
You must be signed in to change notification settings - Fork 0
/
EMxDecoder.cpp
36 lines (32 loc) · 976 Bytes
/
EMxDecoder.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include "EMxDecoder.h"
// 868 MHz decoders
EMxDecoder::EMxDecoder () {}
// see also http://fhz4linux.info/tiki-index.php?page=EM+Protocol
char EMxDecoder::decode (word width) {
if (200 <= width && width < 1000) {
byte w = width >= 600;
switch (state) {
case UNKNOWN:
if (w == 0)
++flip;
else if (flip > 20)
state = OK;
else
return -1;
break;
case OK:
if (w == 0)
state = T0;
else
return -1;
break;
case T0:
gotBit(w);
break;
}
} else if (width >= 1500 && pos >= 9)
return 1;
else
return -1;
return 0;
}