Esempio n. 1
0
TEST(ErrorCheck, CompareChecksum_Data_Process1BytesSize_GoodMatch)
{
  uint8_t buffer[2];
  buffer[0] = 1;
  buffer[1] = 2;
	TEST_ASSERT_NOT_EQUAL(0, CompareChecksum(buffer, 1, 1));
}
Esempio n. 2
0
TEST(ErrorCheck, CompareChecksum_Data_ProcessMultiBytesSize_BadMatch)
{
  uint8_t buffer[2];
  buffer[0] = 1;
  buffer[1] = 2;
	TEST_ASSERT_EQUAL(0, CompareChecksum(buffer, 2, 5));
}
Esempio n. 3
0
uint8_t NazaGPS::CheckData()	{
#ifdef READ_NAZA
	if(Serial1.available())	{
		/*
		 *	Resets the current status pin states.
		 */
		digitalWrite(CHKSUM_ERROR_PIN, LOW);
		digitalWrite(PACKET_OK_PIN, LOW);


		if(buffpos < 2)		{												//	If we dont have the header bytes, we will just read.
			buffer[buffpos] = Serial1.read();
			buffpos ++;
		}else{
			if(buffer[0] == 0x55 && buffer[1] == 0xAA)	{					//	Checks if we have the correct heading
				if(buffpos < 4)	{											//	We need 4 bytes. Head + ID + Size
					buffer[buffpos] = Serial1.read();
					buffpos ++;
				}else{
					payloadsize = buffer[3];								//	Size is the 4th byte
					buffer[buffpos] = Serial1.read();
					buffpos ++;
					if(buffpos == payloadsize+6)	{						//	Ok, so we have all data
						CalcChecksum();										//	Calculate the checksum
						if(CompareChecksum(&buffer[buffpos-2]))		{		// 	Checksum OK
							DecodeMessage(&buffer[4], buffer[2], buffer[3]);//	Decode the message and save the data
							digitalWrite(PACKET_OK_PIN, HIGH);
							buffpos = 0;
							return 1;
						}else{												//	Invalid Checksum. Discard all data.
							buffpos = 0;
							digitalWrite(CHKSUM_ERROR_PIN, HIGH);
						}
					}
				}
			}else{															// Wrong head, lets clean and restart
				buffpos = 0;
				buffer[buffpos] = Serial1.read();
				buffpos++;
			}
		}
	}
#endif
	return 0;
}
Esempio n. 4
0
TEST(ErrorCheck, CompareChecksum_NULL_NonZeroSize_NonZeroCmp)
{
	TEST_ASSERT_EQUAL(0, CompareChecksum(NULL, 10, 0));
}