+bool testBitRate(uint8_t readRate, uint8_t mod){\r
+ uint8_t expected[8] = {8, 16, 32, 40, 50, 64, 100, 128};\r
+ uint8_t detRate = 0;\r
+ switch( mod ){\r
+ case DEMOD_FSK:\r
+ detRate = GetFskClock("",FALSE, FALSE); \r
+ if (expected[readRate] == detRate) {\r
+ config.bitrate = readRate;\r
+ return TRUE;\r
+ }\r
+ break;\r
+ case DEMOD_FSK1:\r
+ detRate = GetFskClock("",FALSE, FALSE); \r
+ if (expected[readRate] == detRate) {\r
+ config.bitrate = readRate;\r
+ return TRUE;\r
+ }\r
+ break;\r
+ case DEMOD_FSK1a:\r
+ detRate = GetFskClock("",FALSE, FALSE); \r
+ if (expected[readRate] == detRate) {\r
+ config.bitrate = readRate;\r
+ return TRUE;\r
+ }\r
+ break;\r
+ case DEMOD_FSK2:\r
+ detRate = GetFskClock("",FALSE, FALSE); \r
+ if (expected[readRate] == detRate) {\r
+ config.bitrate = readRate;\r
+ return TRUE;\r
+ }\r
+ break;\r
+ case DEMOD_FSK2a:\r
+ detRate = GetFskClock("",FALSE, FALSE); \r
+ if (expected[readRate] == detRate) {\r
+ config.bitrate = readRate;\r
+ return TRUE;\r
+ }\r
+ break;\r
+ case DEMOD_ASK:\r
+ detRate = GetAskClock("",FALSE, FALSE); \r
+ if (expected[readRate] == detRate) {\r
+ config.bitrate = readRate;\r
+ return TRUE;\r
+ }\r
+ break;\r
+ case DEMOD_PSK1:\r
+ detRate = GetPskClock("",FALSE, FALSE); \r
+ if (expected[readRate] == detRate) {\r
+ config.bitrate = readRate;\r
+ return TRUE;\r
+ }\r
+ break;\r
+ case DEMOD_PSK2:\r
+ detRate = GetPskClock("",FALSE, FALSE); \r
+ if (expected[readRate] == detRate) {\r
+ config.bitrate = readRate;\r
+ return TRUE;\r
+ }\r
+ break;\r
+ case DEMOD_PSK3:\r
+ detRate = GetPskClock("",FALSE, FALSE); \r
+ if (expected[readRate] == detRate) {\r
+ config.bitrate = readRate;\r
+ return TRUE;\r
+ }\r
+ break;\r
+ case DEMOD_NRZ:\r
+ detRate = GetNrzClock("",FALSE, FALSE); \r
+ if (expected[readRate] == detRate) {\r
+ config.bitrate = readRate;\r
+ return TRUE;\r
+ }\r
+ break;\r
+ case DEMOD_BI:\r
+ detRate = GetAskClock("",FALSE, FALSE); \r
+ if (expected[readRate] == detRate) {\r
+ config.bitrate = readRate;\r
+ return TRUE;\r
+ }\r
+ break;\r
+ default:\r
+ return FALSE;\r
+ }\r
+ return FALSE;\r
+}\r
+\r
+bool test(uint8_t mode, uint8_t *offset){\r
+\r
+ if ( !DemodBufferLen) return FALSE;\r
+ uint8_t si = 0;\r
+ for (uint8_t idx = 0; idx < 64; idx++){\r
+ si = idx;\r
+ if ( PackBits(si, 32, DemodBuffer) == 0x00 ) continue;\r
+\r
+ uint8_t safer = PackBits(si, 4, DemodBuffer); si += 4; //master key\r
+ uint8_t resv = PackBits(si, 4, DemodBuffer); si += 4; //was 7 & +=7+3 //should be only 4 bits if extended mode\r
+ // 2nibble must be zeroed.\r
+ // moved test to here, since this gets most faults first.\r
+ if ( resv > 0x00) continue;\r