SSI OpComms 3 CM TX
Dependencies: mbed
Fork of Optical3cmTXnucleo by
Diff: main.cpp
- Revision:
- 8:b6b645caf4ef
- Parent:
- 7:4fafb1b60eab
--- a/main.cpp Mon Nov 16 00:08:50 2015 +0000 +++ b/main.cpp Sun Nov 15 18:51:38 2015 -0800 @@ -77,6 +77,21 @@ return sum; } +//http://stackoverflow.com/questions/8845178/c-programming-tcp-checksum +char checkSum(char *buffer, int size) +{ + unsigned long cksum=0; + while(size) + { + cksum+=*buffer++; + size--; + } + + cksum = (cksum >> 16) + (cksum & 0xffff); + cksum += (cksum >>16); + return (char)(~cksum); +} + int main() { pc.printf("3 CM Link Board - Transmit\r\n"); @@ -117,10 +132,11 @@ // idx++; // buffer[idx] = '\n'; // idx++; - // add the checksum + // add the checksums + char cksum2 = checkSum(buffer, PACKET_LENGTH); buffer[idx] = checksum(buffer, idx); idx++; - + buffer[idx] = cksum2; //Transmits packet blink_packet(buffer, idx); idx = 0;