Revision 883
Wireless for bayboard sort of works. I still left in all my debugging information though, and it doesn't seem to work quite as well as the other two. Some more work is needed.
xbee.c | ||
---|---|---|
476 | 476 |
// check if buffer is empty |
477 | 477 |
if (buffer_last != buffer_first) { |
478 | 478 |
char c = arrival_buf[buffer_first++]; |
479 |
usb_putc(c); |
|
480 |
usb_putc('\n'); |
|
481 | 479 |
if (buffer_first == XBEE_BUFFER_SIZE) { |
482 | 480 |
buffer_first = 0; |
483 | 481 |
} |
... | ... | |
736 | 734 |
buffer_first = 0; |
737 | 735 |
// check if buffer is empty |
738 | 736 |
if (buffer_first == buffer_last) { |
739 |
return 0;
|
|
737 |
return -1;
|
|
740 | 738 |
} |
741 | 739 |
} while (arrival_buf[buffer_first++] != XBEE_FRAME_START); |
742 | 740 |
|
... | ... | |
768 | 766 |
|
769 | 767 |
// check if buffer is empty |
770 | 768 |
if (buffer_first == buffer_last) { |
771 |
return 0;
|
|
769 |
return -1;
|
|
772 | 770 |
} |
773 | 771 |
xbee_buf[currentBufPos++] = arrival_buf[buffer_first++]; |
774 | 772 |
if (buffer_first == XBEE_BUFFER_SIZE) { |
... | ... | |
778 | 776 |
|
779 | 777 |
currentBufPos = 0; |
780 | 778 |
|
779 |
usb_puts("Got packet.\n\r"); |
|
781 | 780 |
if (!xbee_verify_checksum(xbee_buf, len + 4)) |
782 | 781 |
{ |
782 |
usb_puts("Checksum failed.\n\r"); |
|
783 | 783 |
WL_DEBUG_PRINT("XBee checksum failed.\r\n"); |
784 | 784 |
return -1; |
785 | 785 |
} |
786 | 786 |
|
787 | 787 |
//we will take care of the packet |
788 | 788 |
if (xbee_handle_packet(xbee_buf + 3, len) != 0) { |
789 |
return 0; |
|
789 |
usb_puts("We handled a packet.\n\r"); |
|
790 |
return -1; |
|
790 | 791 |
} |
791 | 792 |
|
792 | 793 |
if (dest == NULL) { |
793 |
return 0; |
|
794 |
usb_puts("dest == NULL"); |
|
795 |
return -1; |
|
794 | 796 |
} |
795 | 797 |
|
796 | 798 |
int i; |
Also available in: Unified diff