#include #include #include #include #include #include //#include #include #include #include #include #include "defines.h" #include "lcd.h" #include "spi.h" #include "rf24.h" #include "Hamming.h" int main (void); void setup (void); void loop (void); void lcdprint( char* ptr); void debughex (uint8_t* ptr,uint8_t len); int decode_radioin (uint8_t * buffer){ uint8_t err=0, errcpt=0, plen, cpt, incrc,crc; uint8_t* in = buffer; uint8_t* out, *end; // Decode first 2 bytes err = HammingCorrect2416(in,in+1,*(in+2)); if(err >2) { lcdprint("RXH1"); return 0; } errcpt+=err; in+=3; // len plen = buffer[0] & 0x0F; if(plen>32) return 0; // Hamming cpt = plen + (plen&1); // even cpt = (cpt/2)*3; end = buffer + cpt; // Correct while(in2){ lcdprint("RXH"); return 0; } errcpt+=err; in+=3; } // Shift (strip parity) in = buffer+3; out = buffer+2; while(in>4; c &= 0x0F; lcd_write(ch>9?ch+'A'-10:ch+'0'); lcd_write(c>9?c+'A'-10:c+'0'); } }