mirror of
https://gitee.com/jiuyilian/embedded-framework.git
synced 2025-01-06 10:16:51 -05:00
Fixed:checkcode bug about little endian.
This commit is contained in:
parent
5711ce11eb
commit
b1edd64314
|
@ -220,7 +220,7 @@ void McuDevice::DeviceRecvData(const char *keyHead, const size_t headLength)
|
|||
dataLength - headLength - recvTotalLength,
|
||||
RECV_TIMEOUT_MS);
|
||||
if (recvLength > 0) {
|
||||
PrintHexadecimalData(dataBuf, recvLength, "Recv data:");
|
||||
PrintHexadecimalData(dataBuf + headLength + recvTotalLength, recvLength, "Recv data:");
|
||||
}
|
||||
|
||||
recvTotalLength += recvLength;
|
||||
|
|
|
@ -22,14 +22,16 @@ const unsigned char McuRecvData[] = {
|
|||
0xC1, 0x00, 0x03, 0x08, 0xEC, 0xFA, 0xC1, 0x00, 0x00, 0x00, 0x0A, 0x41, 0x07, 0x00, 0x0C, 0x35, 0x88, 0xFA,
|
||||
0xC1, 0x00, 0x00, 0xFA, 0xC1, 0x00, 0x00, 0x00, 0x0A, 0x03, 0x08, 0xEC, 0xFA, 0xC1, 0x00, 0x00, 0x00, 0x0A,
|
||||
0x41, 0x07, 0x00, 0x0C, 0x35, 0x88, 0xFA, 0xC1, 0x00, 0x00, 0xFA, 0xC1, 0x00, 0x00, 0x00, 0x0A};
|
||||
const unsigned char McuSendData_GetDateTime[] = {
|
||||
0xFA, 0xC1, 0x00, 0x00, 0x00, 0x0A, 0x41, 0x07, 0x00, 0x0C, 0x35, 0x88};
|
||||
namespace McuManager_AbnormalData_Test
|
||||
{
|
||||
/**
|
||||
* @brief Construct a new test f object
|
||||
* ../output_files/test/bin/McuManagerTest
|
||||
* --gtest_filter=McuManagerMockTest.HS_INTEGRATION_McuManager_AUTO_ProtocolLengthIsWrong
|
||||
* --gtest_filter=McuManagerMockTest.HS_INTEGRATION_McuManager_EXAMPLE_ProtocolLengthIsWrong
|
||||
*/
|
||||
TEST_F(McuManagerMockTest, HS_INTEGRATION_McuManager_AUTO_ProtocolLengthIsWrong)
|
||||
TEST_F(McuManagerMockTest, HS_INTEGRATION_McuManager_EXAMPLE_ProtocolLengthIsWrong)
|
||||
{
|
||||
IMcuManager::GetInstance()->Init();
|
||||
std::this_thread::sleep_for(std::chrono::milliseconds(100));
|
||||
|
@ -37,4 +39,17 @@ TEST_F(McuManagerMockTest, HS_INTEGRATION_McuManager_AUTO_ProtocolLengthIsWrong)
|
|||
std::this_thread::sleep_for(std::chrono::milliseconds(1000));
|
||||
IMcuManager::GetInstance()->UnInit();
|
||||
}
|
||||
/**
|
||||
* @brief Construct a new test f object
|
||||
* ../output_files/test/bin/McuManagerTest
|
||||
* --gtest_filter=McuManagerMockTest.HS_INTEGRATION_McuManager_EXAMPLE_OtherSideGetDateTime
|
||||
*/
|
||||
TEST_F(McuManagerMockTest, HS_INTEGRATION_McuManager_EXAMPLE_OtherSideGetDateTime)
|
||||
{
|
||||
IMcuManager::GetInstance()->Init();
|
||||
std::this_thread::sleep_for(std::chrono::milliseconds(100));
|
||||
McuManagerTestTool::MockOtherSideSendData(mLinuxTest, McuSendData_GetDateTime, sizeof(McuSendData_GetDateTime));
|
||||
std::this_thread::sleep_for(std::chrono::milliseconds(1000));
|
||||
IMcuManager::GetInstance()->UnInit();
|
||||
}
|
||||
} // namespace McuManager_AbnormalData_Test
|
|
@ -209,7 +209,9 @@ void McuProtocolTestTool::ChecCRC16Code(const void *buf, const size_t &count)
|
|||
void McuProtocolTestTool::ResetCheckCode(const void *buf, const size_t &count)
|
||||
{
|
||||
short checkCode = calculate_check_sum((unsigned char *)buf, count - PROTOCOL_CHECK_CODE_LENGTH);
|
||||
// checkCode = htons(checkCode);
|
||||
if (ORDER_LITTLE_ENDIAN == ProtocolHandle::GetByteOrder()) {
|
||||
checkCode = ntohs(checkCode);
|
||||
}
|
||||
memcpy((unsigned char *)buf + count - PROTOCOL_CHECK_CODE_LENGTH, &checkCode, PROTOCOL_CHECK_CODE_LENGTH);
|
||||
}
|
||||
void McuProtocolTestTool::SelectInit(std::shared_ptr<LinuxTest> &mock, const int &uartFd)
|
||||
|
|
|
@ -45,10 +45,9 @@ void LittleEndianHandle::HostByteOrderConversion(ProtocolPacket &packet)
|
|||
}
|
||||
bool LittleEndianHandle::CheckoutTheCheckCode(const ProtocolPacket &packet)
|
||||
{
|
||||
ProtocolHandle::PrintHexadecimalData(
|
||||
mProtocolData, mProtocolDataLength - CHECK_CODE_LENGTH, "CheckoutTheCheckCode little endian:");
|
||||
ProtocolHandle::PrintHexadecimalData(&packet.mCheckCode, CHECK_CODE_LENGTH, "CheckoutTheCheckCode little endian:");
|
||||
short code = calculate_check_sum(mProtocolData, mProtocolDataLength - sizeof(short));
|
||||
code = ntohs(code); // TODO:
|
||||
// code = ntohs(code); // TODO:
|
||||
if (code == packet.mCheckCode) {
|
||||
return true;
|
||||
}
|
||||
|
|
|
@ -284,8 +284,7 @@ void ProtocolHandle::AnalyzeOtherSideSendGetPirSensitivity(const ProtocolPacket
|
|||
}
|
||||
bool ProtocolHandle::CheckoutTheCheckCode(const ProtocolPacket &packet)
|
||||
{
|
||||
ProtocolHandle::PrintHexadecimalData(
|
||||
mProtocolData, mProtocolDataLength - CHECK_CODE_LENGTH, "CheckoutTheCheckCode:");
|
||||
ProtocolHandle::PrintHexadecimalData(&packet.mCheckCode, CHECK_CODE_LENGTH, "CheckoutTheCheckCode:");
|
||||
short code = calculate_check_sum(mProtocolData, mProtocolDataLength - CHECK_CODE_LENGTH);
|
||||
if (code == packet.mCheckCode) {
|
||||
return true;
|
||||
|
|
Loading…
Reference in New Issue
Block a user