UI--checksum checking functions. Updated to set UI to previous UI on error.
Fork of UI by
Diff: UserInterface.cpp
- Revision:
- 3:19c08e8a552a
- Parent:
- 2:d6595294497c
- Child:
- 4:48d23d12b3a3
--- a/UserInterface.cpp Wed Feb 25 01:41:17 2015 +0000 +++ b/UserInterface.cpp Wed Feb 25 22:00:04 2015 +0000 @@ -117,28 +117,32 @@ void UserInterface::checkUI_XBee() { - int sum = 0; + //int sum = 0; _buttonA_prev = _buttonA; _buttonB_prev = _buttonB; char * idx = strchr(_xbeeBuffer,0x7e); if (idx != NULL) { - _buttonA = (_xbeeBuffer[idx-_xbeeBuffer+21]>>1) & 1; // on DIO1 - _buttonB = (_xbeeBuffer[idx-_xbeeBuffer+21]>>2) & 1; // on DIO2 + int size[3]; find_length(idx, size); printf("Size: %d, Datacount: %d\r\n", size[1], _dataCnt); + _buttonA = (_xbeeBuffer[idx-_xbeeBuffer+21]>>1) & 1; // on DIO1 + _buttonB = (_xbeeBuffer[idx-_xbeeBuffer+21]>>2) & 1; // on DIO2 if(_dataCnt >= size[1]) { - //_buttonA = (_xbeeBuffer[idx-_xbeeBuffer+21]>>1) & 1; // on DIO1 - //_buttonB = (_xbeeBuffer[idx-_xbeeBuffer+21]>>2) & 1; // on DIO2 - if (checksum_check(idx+size[2], size[0])) { printf("Checksums match\r\n"); } else { printf("Checksums don't match\r\n"); + UI = _prev_UI; + return; } _dataCnt = 0; + } else { + UI = _prev_UI; + return; } + if (_buttonA == 0 && _buttonA_prev == 1) {//buton was just pressed _time_pressA.reset(); _time_pressA.start(); @@ -182,6 +186,7 @@ memset(_xbeeBuffer,0xFF,250); _dataCnt = 0; + _prev_UI = UI; } void UserInterface::initializeUI()