100 lines
3.7 KiB
C
100 lines
3.7 KiB
C
|
|
#define CH1_LEFT_UP 0
|
||
|
|
#define CH1_LEFT_DOWN 1
|
||
|
|
#define CH1_RIGHT_UP 2
|
||
|
|
#define CH1_RIGHT_DOWN 3
|
||
|
|
#define CH1_BREAK 4
|
||
|
|
|
||
|
|
#define CH2_LEFT_UP 5
|
||
|
|
#define CH2_LEFT_DOWN 6
|
||
|
|
#define CH2_RIGHT_UP 7
|
||
|
|
#define CH2_RIGHT_DOWN 8
|
||
|
|
#define CH2_BREAK 9
|
||
|
|
|
||
|
|
#define CH3_LEFT_UP 10
|
||
|
|
#define CH3_LEFT_DOWN 11
|
||
|
|
#define CH3_RIGHT_UP 12
|
||
|
|
#define CH3_RIGHT_DOWN 13
|
||
|
|
#define CH3_BREAK 14
|
||
|
|
|
||
|
|
#define CH4_LEFT_UP 15
|
||
|
|
#define CH4_LEFT_DOWN 16
|
||
|
|
#define CH4_RIGHT_UP 17
|
||
|
|
#define CH4_RIGHT_DOWN 18
|
||
|
|
#define CH4_BREAK 19
|
||
|
|
|
||
|
|
int legoCode(unsigned long value)
|
||
|
|
{
|
||
|
|
// Channel #1
|
||
|
|
|
||
|
|
if ((value == 0x29F9B686) || (value == 0xF741C457) || (value == 0xAAE8B1A9) || (value == 0x29F9B687) || (value == 0x4C088112)
|
||
|
|
|| (value == 0x751C2330) || (value == 0x84D3E822) || (value == 0x327D2380) || (value == 0xCC7485C0) || (value == 0xC93A2FD8)
|
||
|
|
|| (value == 0x5BE3DE61) || (value == 0x84D3E823) || (value == 0x37E1671F) || (value == 0xC93A2FD9) || (value == 0xA8D65F64)
|
||
|
|
|| (value == 0x30FA515) || (value == 0x7C844C29) || (value == 0x72716F7C) || (value == 0x3EDE3EE6) || (value == 0x9B07604D)
|
||
|
|
|| (value == 0xC31CFC39) || (value == 0xF741C456) || (value == 0x5BC3FD7) || (value == 0x490DB9CD) || (value == 0x490DB9CD)
|
||
|
|
|| (value == 0x47B2AE76) || (value == 0x1D57D358) || (value == 0xB3C482C5) || (value == 0x3C9218FB) || (value == 0x6A8C7A18)
|
||
|
|
|| (value == 0x1C813947) || (value == 0xE9347505) || (value == 0xE04907D) || (value == 0x1C813947) || (value == 0xAAE8B1A8)
|
||
|
|
|| (value == 0x2BF1225C) || (value == 0xEBFCA4A) || (value == 0xB62A0F52) || (value == 0x27818B6B) || (value == 0x3FC05E89)
|
||
|
|
|| (value == 0xA4B77066))
|
||
|
|
return CH1_LEFT_UP;
|
||
|
|
|
||
|
|
else if ((value == 0x986F760F) || (value == 0x1A81FCA3) || (value == 0x3F0813BF) || (value == 0x40081550) || (value == 0xE24A5F12)
|
||
|
|
|| (value == 0xE76C0982) || (value == 0xCFE32349) || (value == 0xCAD1526) || (value == 0x2E8F6A70) || (value == 0xE14A5D81)
|
||
|
|
|| (value == 0x6F81D89A) || (value == 0x9FE9FC3D) || (value == 0xDEBA120E) || (value == 0x5FE714A3) || (value == 0xEFFA2F89)
|
||
|
|
|| (value == 0x6F81D89A) || (value == 0x5FE714A3) || (value == 0x56602C4A) || (value == 0x9BC5A1E1) || (value == 0x7D19653E)
|
||
|
|
|| (value == 0xEFFA2F89) || (value == 0x9CBCA36E) || (value == 0x1324C180) || (value == 0xD1F837D7) || (value == 0x1324C180)
|
||
|
|
|| (value == 0xAFCEA13D) || (value == 0x1324C180) || (value == 0xD1F837D7) || (value == 0xEFFA2F89) || (value == 0xE1706B68)
|
||
|
|
|| (value == 0x63CDEB9F) || (value == 0x1324C180) || (value == 0xD1F837D7) || (value == 0x9CBCA36E) || (value == 0x5E3DD06D)
|
||
|
|
|| (value == 0x9CBCA36E) || (value == 0x1324C180))
|
||
|
|
return CH1_LEFT_DOWN;
|
||
|
|
|
||
|
|
else if ((value == 0x9207B09) || (value == 0xCAF24598))
|
||
|
|
return CH1_RIGHT_UP;
|
||
|
|
|
||
|
|
else if ((value == 0x1DDB9529) || (value == 0xD1EF1AD2))
|
||
|
|
return CH1_RIGHT_DOWN;
|
||
|
|
|
||
|
|
else if (( value == 0xBB11886E) || (value == 0x395A9125))
|
||
|
|
return CH1_BREAK;
|
||
|
|
|
||
|
|
// Channel #2
|
||
|
|
|
||
|
|
else if ((value == 0x53FBF187))
|
||
|
|
return CH2_LEFT_UP;
|
||
|
|
else if ((value == 0x77E060CC))
|
||
|
|
return CH2_LEFT_DOWN;
|
||
|
|
else if ((value == 0x620CD0AC))
|
||
|
|
return CH2_RIGHT_UP;
|
||
|
|
else if ((value == 0xDF57EE8C))
|
||
|
|
return CH2_RIGHT_DOWN;
|
||
|
|
else if ((value == 0x25B49957))
|
||
|
|
return CH2_BREAK;
|
||
|
|
|
||
|
|
// Channel #3
|
||
|
|
|
||
|
|
else if ((value == 0x5B91118A))
|
||
|
|
return CH3_LEFT_UP;
|
||
|
|
else if ((value == 0x6538FDC5))
|
||
|
|
return CH3_LEFT_DOWN;
|
||
|
|
else if ((value == 0xE76F5749))
|
||
|
|
return CH3_RIGHT_UP;
|
||
|
|
else if ((value == 0xE6ED0E93))
|
||
|
|
return CH3_RIGHT_DOWN;
|
||
|
|
else if ((value == 0x790D20D8))
|
||
|
|
return CH3_BREAK;
|
||
|
|
|
||
|
|
// Channel #4
|
||
|
|
|
||
|
|
else if ((value == 0x6FDB5CB))
|
||
|
|
return CH4_LEFT_UP;
|
||
|
|
else if ((value == 0x10A5A202))
|
||
|
|
return CH4_LEFT_DOWN;
|
||
|
|
else if ((value == 0x94DBFEAC))
|
||
|
|
return CH4_RIGHT_UP;
|
||
|
|
else if ((value == 0x9059AFAA))
|
||
|
|
return CH4_RIGHT_DOWN;
|
||
|
|
else if ((value == 0xCBA07975))
|
||
|
|
return CH4_BREAK;
|
||
|
|
|
||
|
|
else return -1;
|
||
|
|
}
|