Fixed:Mcu manager test code bug.
This commit is contained in:
		
							parent
							
								
									049521bad1
								
							
						
					
					
						commit
						7df38a8e2a
					
				| 
						 | 
				
			
			@ -6,7 +6,9 @@ set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
 | 
			
		|||
if(${TARGET_PLATFORM} MATCHES ${DEFINE_LINUX})
 | 
			
		||||
	message("---------------------------Debug mode.-----------------------")
 | 
			
		||||
	SET(CMAKE_BUILD_TYPE "Debug")
 | 
			
		||||
	SET(CMAKE_CXX_FLAGS_DEBUG "$ENV{CXXFLAGS} -O0 -Wall -g2 -ggdb")
 | 
			
		||||
	set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O0 -Wall -g -ggdb")
 | 
			
		||||
	set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O0 -Wall -g -ggdb")
 | 
			
		||||
	SET(CMAKE_CXX_FLAGS_DEBUG "$ENV{CXXFLAGS} -O0 -Wall -g -ggdb")
 | 
			
		||||
	SET(CMAKE_CXX_FLAGS_RELEASE "$ENV{CXXFLAGS} -O3 -Wall")
 | 
			
		||||
	# asan
 | 
			
		||||
	set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=leak -fsanitize=address -fno-omit-frame-pointer -fsanitize=undefined")
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -51,11 +51,28 @@ typedef struct mcu_ask_date_time
 | 
			
		|||
    const unsigned char mMin;
 | 
			
		||||
    const unsigned char mSecond;
 | 
			
		||||
} McuAskDateTime;
 | 
			
		||||
typedef struct mcu_reply_date_time
 | 
			
		||||
{
 | 
			
		||||
    mcu_reply_date_time();
 | 
			
		||||
    unsigned short mYear;
 | 
			
		||||
    unsigned char mMon;
 | 
			
		||||
    unsigned char mDay;
 | 
			
		||||
    unsigned char mHour;
 | 
			
		||||
    unsigned char mMin;
 | 
			
		||||
    unsigned char mSecond;
 | 
			
		||||
} McuReplyDateTime;
 | 
			
		||||
typedef struct mcu_get_interval_start
 | 
			
		||||
{
 | 
			
		||||
    mcu_get_interval_start();
 | 
			
		||||
    unsigned int mIntervalStart;
 | 
			
		||||
    unsigned char mHour;
 | 
			
		||||
    unsigned char mMin;
 | 
			
		||||
    unsigned char mSecond;
 | 
			
		||||
} McuGetIntervalStart;
 | 
			
		||||
typedef struct mcu_get_sensitivity
 | 
			
		||||
{
 | 
			
		||||
    mcu_get_sensitivity();
 | 
			
		||||
    unsigned int mSensitivity;
 | 
			
		||||
} McuGetPirSensitivity;
 | 
			
		||||
/**
 | 
			
		||||
 * @brief The application sends data to the MCU.
 | 
			
		||||
 *
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -19,7 +19,13 @@ mcu_ask_date_time::mcu_ask_date_time(const unsigned short year, const unsigned c
 | 
			
		|||
    : mYear(year), mMon(mon), mDay(day), mHour(hour), mMin(min), mSecond(second)
 | 
			
		||||
{
 | 
			
		||||
}
 | 
			
		||||
mcu_get_interval_start::mcu_get_interval_start() : mIntervalStart(0)
 | 
			
		||||
mcu_reply_date_time::mcu_reply_date_time() : mYear(0), mMon(0), mDay(0), mHour(0), mMin(0), mSecond(0)
 | 
			
		||||
{
 | 
			
		||||
}
 | 
			
		||||
mcu_get_interval_start::mcu_get_interval_start() : mHour(0), mMin(0), mSecond(0)
 | 
			
		||||
{
 | 
			
		||||
}
 | 
			
		||||
mcu_get_sensitivity::mcu_get_sensitivity() : mSensitivity(0)
 | 
			
		||||
{
 | 
			
		||||
}
 | 
			
		||||
VMcuAsk::VMcuAsk() : mSerialNumber(0)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -51,6 +51,7 @@ const StatusCode McuManagerImpl::UnInit(void)
 | 
			
		|||
    McuDevice::UnInit();
 | 
			
		||||
    McuProtocol::UnInit();
 | 
			
		||||
    mMcuAskList.clear();
 | 
			
		||||
    mMonitor.reset();
 | 
			
		||||
    return CreateStatusCode(STATUS_CODE_OK);
 | 
			
		||||
}
 | 
			
		||||
const StatusCode McuManagerImpl::SetMcuMonitor(std::shared_ptr<VMcuMonitor> &monitor)
 | 
			
		||||
| 
						 | 
				
			
			@ -219,8 +220,7 @@ void McuManagerImpl::OtherSideSendGetIntervalStart(const unsigned int &serialNum
 | 
			
		|||
        ~McuRecvGetIntervalStart() = default;
 | 
			
		||||
        void ReplyFinished(const bool result) override
 | 
			
		||||
        {
 | 
			
		||||
            McuRecvImpl::mMcuManager->ReplyOtherSideSendGetIntervalStart(mDataRecvReply.mIntervalStart,
 | 
			
		||||
                                                                         McuRecvImpl::mSerialNumber);
 | 
			
		||||
            McuRecvImpl::mMcuManager->ReplyOtherSideSendGetIntervalStart(mDataRecvReply, McuRecvImpl::mSerialNumber);
 | 
			
		||||
        }
 | 
			
		||||
    };
 | 
			
		||||
    std::shared_ptr<VMcuMonitor> monitor = GetMcuMonitor();
 | 
			
		||||
| 
						 | 
				
			
			@ -238,9 +238,64 @@ void McuManagerImpl::OtherSideSendGetIntervalStart(const unsigned int &serialNum
 | 
			
		|||
}
 | 
			
		||||
void McuManagerImpl::OtherSideSendGetDateTime(const unsigned int &serialNumber)
 | 
			
		||||
{
 | 
			
		||||
    class McuRecvGetDateTime : public McuRecvImpl, public McuRecv<McuReplyDateTime>
 | 
			
		||||
    {
 | 
			
		||||
    public:
 | 
			
		||||
        McuRecvGetDateTime(std::shared_ptr<McuManagerImpl> &mcuManager, const unsigned int &serialNumber,
 | 
			
		||||
                           const OtherSideSendType &sendType)
 | 
			
		||||
            : McuRecvImpl(serialNumber, sendType)
 | 
			
		||||
        {
 | 
			
		||||
            McuRecvImpl::mMcuManager = mcuManager;
 | 
			
		||||
        }
 | 
			
		||||
        ~McuRecvGetDateTime() = default;
 | 
			
		||||
        void ReplyFinished(const bool result) override
 | 
			
		||||
        {
 | 
			
		||||
            McuRecvImpl::mMcuManager->ReplyOtherSideSendGetDateTime(mDataRecvReply, McuRecvImpl::mSerialNumber);
 | 
			
		||||
        }
 | 
			
		||||
    };
 | 
			
		||||
    std::shared_ptr<VMcuMonitor> monitor = GetMcuMonitor();
 | 
			
		||||
    std::shared_ptr<McuManagerImpl> manager = std::dynamic_pointer_cast<McuManagerImpl>(SharedFromThis());
 | 
			
		||||
    std::shared_ptr<VMcuRecv> recv =
 | 
			
		||||
        std::make_shared<McuRecvGetDateTime>(manager, serialNumber, OtherSideSendType::GET_DATE_TIME);
 | 
			
		||||
    if (monitor) {
 | 
			
		||||
        LogInfo("Mcu manager report heart beat to mcu monitor.\n");
 | 
			
		||||
        monitor->RecvMcuHeartBeat(recv);
 | 
			
		||||
    }
 | 
			
		||||
    else {
 | 
			
		||||
        LogWarning("mMonitor is nullptr, AddMcuRecv.\n");
 | 
			
		||||
        AddMcuRecv(recv);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
void McuManagerImpl::OtherSideSendGetPirSensitivity(const unsigned int &serialNumber)
 | 
			
		||||
{
 | 
			
		||||
    class McuRecvGetDateTime : public McuRecvImpl, public McuRecv<McuGetPirSensitivity>
 | 
			
		||||
    {
 | 
			
		||||
    public:
 | 
			
		||||
        McuRecvGetDateTime(std::shared_ptr<McuManagerImpl> &mcuManager, const unsigned int &serialNumber,
 | 
			
		||||
                           const OtherSideSendType &sendType)
 | 
			
		||||
            : McuRecvImpl(serialNumber, sendType)
 | 
			
		||||
        {
 | 
			
		||||
            McuRecvImpl::mMcuManager = mcuManager;
 | 
			
		||||
        }
 | 
			
		||||
        ~McuRecvGetDateTime() = default;
 | 
			
		||||
        void ReplyFinished(const bool result) override
 | 
			
		||||
        {
 | 
			
		||||
            McuRecvImpl::mMcuManager->ReplyOtherSideSendGetPirSensitivity(mDataRecvReply.mSensitivity,
 | 
			
		||||
                                                                          McuRecvImpl::mSerialNumber);
 | 
			
		||||
        }
 | 
			
		||||
    };
 | 
			
		||||
    std::shared_ptr<VMcuMonitor> monitor = GetMcuMonitor();
 | 
			
		||||
    std::shared_ptr<McuManagerImpl> manager = std::dynamic_pointer_cast<McuManagerImpl>(SharedFromThis());
 | 
			
		||||
    std::shared_ptr<VMcuRecv> recv =
 | 
			
		||||
        std::make_shared<McuRecvGetDateTime>(manager, serialNumber, OtherSideSendType::GET_DATE_TIME);
 | 
			
		||||
    if (monitor) {
 | 
			
		||||
        LogInfo("Mcu manager report heart beat to mcu monitor.\n");
 | 
			
		||||
        monitor->RecvMcuHeartBeat(recv);
 | 
			
		||||
    }
 | 
			
		||||
    else {
 | 
			
		||||
        LogWarning("mMonitor is nullptr, AddMcuRecv.\n");
 | 
			
		||||
        AddMcuRecv(recv);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
void McuManagerImpl::ReplyOtherSideSendIpcMission(const ASK_RESULT &result, const unsigned int &serialNumber)
 | 
			
		||||
{
 | 
			
		||||
| 
						 | 
				
			
			@ -252,15 +307,31 @@ void McuManagerImpl::ReplyOtherSideSendHeartBeat(const unsigned int &serialNumbe
 | 
			
		|||
    LogInfo("ReplyOtherSideSendHeartBeat\n");
 | 
			
		||||
    McuProtocol::ReplyOtherSideSendHearBeat(static_cast<ReplyResult>(ASK_RESULT::SUCCEED), serialNumber);
 | 
			
		||||
}
 | 
			
		||||
void McuManagerImpl::ReplyOtherSideSendGetIntervalStart(const unsigned int &interval, const unsigned int &serialNumber)
 | 
			
		||||
void McuManagerImpl::ReplyOtherSideSendGetIntervalStart(const McuGetIntervalStart &interval,
 | 
			
		||||
                                                        const unsigned int &serialNumber)
 | 
			
		||||
{
 | 
			
		||||
    LogInfo("ReplyOtherSideSendGetIntervalStart\n");
 | 
			
		||||
    McuProtocol::ReplyOtherSideSendGetIntervalStart(
 | 
			
		||||
        static_cast<ReplyResult>(ASK_RESULT::SUCCEED), serialNumber, interval.mHour, interval.mMin, interval.mSecond);
 | 
			
		||||
}
 | 
			
		||||
void McuManagerImpl::ReplyOtherSideSendGetDateTime(const McuAskDateTime &time, const unsigned int &serialNumber)
 | 
			
		||||
void McuManagerImpl::ReplyOtherSideSendGetDateTime(const McuReplyDateTime &time, const unsigned int &serialNumber)
 | 
			
		||||
{
 | 
			
		||||
    LogInfo("ReplyOtherSideSendGetDateTime\n");
 | 
			
		||||
    McuProtocol::ReplyOtherSideSendGetDateTime(static_cast<ReplyResult>(ASK_RESULT::SUCCEED),
 | 
			
		||||
                                               serialNumber,
 | 
			
		||||
                                               time.mYear,
 | 
			
		||||
                                               time.mMon,
 | 
			
		||||
                                               time.mDay,
 | 
			
		||||
                                               time.mHour,
 | 
			
		||||
                                               time.mMin,
 | 
			
		||||
                                               time.mSecond);
 | 
			
		||||
}
 | 
			
		||||
void McuManagerImpl::ReplyOtherSideSendGetPirSensitivity(const unsigned int &sensitivity,
 | 
			
		||||
void McuManagerImpl::ReplyOtherSideSendGetPirSensitivity(const unsigned char &sensitivity,
 | 
			
		||||
                                                         const unsigned int &serialNumber)
 | 
			
		||||
{
 | 
			
		||||
    LogInfo("ReplyOtherSideSendGetPirSensitivity\n");
 | 
			
		||||
    McuProtocol::ReplyOtherSideSendGetPirSensitivity(
 | 
			
		||||
        static_cast<ReplyResult>(ASK_RESULT::SUCCEED), serialNumber, sensitivity);
 | 
			
		||||
}
 | 
			
		||||
void McuManagerImpl::AddMcuRecv(std::shared_ptr<VMcuRecv> &recv)
 | 
			
		||||
{
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -68,9 +68,9 @@ private:
 | 
			
		|||
    void OtherSideSendGetPirSensitivity(const unsigned int &serialNumber) override;
 | 
			
		||||
    void ReplyOtherSideSendIpcMission(const ASK_RESULT &result, const unsigned int &serialNumber);
 | 
			
		||||
    void ReplyOtherSideSendHeartBeat(const unsigned int &serialNumber);
 | 
			
		||||
    void ReplyOtherSideSendGetIntervalStart(const unsigned int &interval, const unsigned int &serialNumber);
 | 
			
		||||
    void ReplyOtherSideSendGetDateTime(const McuAskDateTime &time, const unsigned int &serialNumber);
 | 
			
		||||
    void ReplyOtherSideSendGetPirSensitivity(const unsigned int &sensitivity, const unsigned int &serialNumber);
 | 
			
		||||
    void ReplyOtherSideSendGetIntervalStart(const McuGetIntervalStart &interval, const unsigned int &serialNumber);
 | 
			
		||||
    void ReplyOtherSideSendGetDateTime(const McuReplyDateTime &time, const unsigned int &serialNumber);
 | 
			
		||||
    void ReplyOtherSideSendGetPirSensitivity(const unsigned char &sensitivity, const unsigned int &serialNumber);
 | 
			
		||||
 | 
			
		||||
private: // About mMcuAskList
 | 
			
		||||
    void AddMcuRecv(std::shared_ptr<VMcuRecv> &recv);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -83,7 +83,7 @@ TEST_F(McuManagerTest, RH_INTEGRATION_McuManager_AUTO_GetIpcMission)
 | 
			
		|||
    std::this_thread::sleep_for(std::chrono::milliseconds(100));
 | 
			
		||||
}
 | 
			
		||||
// ../output_files/test/bin/McuManagerTest
 | 
			
		||||
// --gtest_filter=McuManagerMockTest.RH_INTEGRATION_McuManager_AUTO_OtherSideSendIpcMission
 | 
			
		||||
// --gtest_filter=McuManagerTest.RH_INTEGRATION_McuManager_AUTO_OtherSideSendIpcMission
 | 
			
		||||
TEST_F(McuManagerTest, RH_INTEGRATION_McuManager_AUTO_OtherSideSendIpcMission)
 | 
			
		||||
{
 | 
			
		||||
    class MonitorTest : public VMcuMonitor
 | 
			
		||||
| 
						 | 
				
			
			@ -99,14 +99,14 @@ TEST_F(McuManagerTest, RH_INTEGRATION_McuManager_AUTO_OtherSideSendIpcMission)
 | 
			
		|||
            recv->ReplyFinished(true);
 | 
			
		||||
        }
 | 
			
		||||
    };
 | 
			
		||||
    IMcuManager::GetInstance()->Init();
 | 
			
		||||
    // IMcuManager::GetInstance()->Init();
 | 
			
		||||
    std::shared_ptr<VMcuMonitor> monitor = std::make_shared<MonitorTest>();
 | 
			
		||||
    IMcuManager::GetInstance()->SetMcuMonitor(monitor);
 | 
			
		||||
    std::this_thread::sleep_for(std::chrono::milliseconds(2000));
 | 
			
		||||
    IMcuManager::GetInstance()->UnInit();
 | 
			
		||||
    // IMcuManager::GetInstance()->UnInit();
 | 
			
		||||
}
 | 
			
		||||
// ../output_files/test/bin/McuManagerTest
 | 
			
		||||
// --gtest_filter=McuManagerMockTest.RH_INTEGRATION_McuManager_AUTO_CutOffPowerSupply
 | 
			
		||||
// --gtest_filter=McuManagerTest.RH_INTEGRATION_McuManager_AUTO_CutOffPowerSupply
 | 
			
		||||
TEST_F(McuManagerTest, RH_INTEGRATION_McuManager_AUTO_CutOffPowerSupply)
 | 
			
		||||
{
 | 
			
		||||
    class McuAskTest : public McuAskBaseTestTool
 | 
			
		||||
| 
						 | 
				
			
			@ -119,17 +119,17 @@ TEST_F(McuManagerTest, RH_INTEGRATION_McuManager_AUTO_CutOffPowerSupply)
 | 
			
		|||
        }
 | 
			
		||||
        virtual ~McuAskTest() = default;
 | 
			
		||||
    };
 | 
			
		||||
    IMcuManager::GetInstance()->Init();
 | 
			
		||||
    // IMcuManager::GetInstance()->Init();
 | 
			
		||||
    std::shared_ptr<VMcuAsk> ask = std::make_shared<McuAskTest>();
 | 
			
		||||
    std::shared_ptr<McuAskBaseTestTool> testTool = std::dynamic_pointer_cast<McuAskBaseTestTool>(ask);
 | 
			
		||||
    testTool->McuAskDefaultFeatures(testTool);
 | 
			
		||||
    StatusCode code = IMcuManager::GetInstance()->CutOffPowerSupply(ask);
 | 
			
		||||
    EXPECT_EQ(code.mStatusCode, STATUS_CODE_OK); // STATUS_CODE_OK means write data to mcu succeed.
 | 
			
		||||
    std::this_thread::sleep_for(std::chrono::milliseconds(2000));
 | 
			
		||||
    IMcuManager::GetInstance()->UnInit();
 | 
			
		||||
    // IMcuManager::GetInstance()->UnInit();
 | 
			
		||||
}
 | 
			
		||||
// ../output_files/test/bin/McuManagerTest
 | 
			
		||||
// --gtest_filter=McuManagerMockTest.RH_INTEGRATION_McuManager_AUTO_SetFeedingCycleForWatchDog
 | 
			
		||||
// --gtest_filter=McuManagerTest.RH_INTEGRATION_McuManager_AUTO_SetFeedingCycleForWatchDog
 | 
			
		||||
TEST_F(McuManagerTest, RH_INTEGRATION_McuManager_AUTO_SetFeedingCycleForWatchDog)
 | 
			
		||||
{
 | 
			
		||||
    class McuAskTest : public McuAsk<ASK_RESULT>, public McuAskBaseTestTool
 | 
			
		||||
| 
						 | 
				
			
			@ -152,17 +152,17 @@ TEST_F(McuManagerTest, RH_INTEGRATION_McuManager_AUTO_SetFeedingCycleForWatchDog
 | 
			
		|||
            }
 | 
			
		||||
        }
 | 
			
		||||
    };
 | 
			
		||||
    IMcuManager::GetInstance()->Init();
 | 
			
		||||
    // IMcuManager::GetInstance()->Init();
 | 
			
		||||
    std::shared_ptr<VMcuAsk> ask = std::make_shared<McuAskTest>();
 | 
			
		||||
    std::shared_ptr<McuAskBaseTestTool> testTool = std::dynamic_pointer_cast<McuAskBaseTestTool>(ask);
 | 
			
		||||
    testTool->McuAskDefaultFeatures(testTool);
 | 
			
		||||
    StatusCode code = IMcuManager::GetInstance()->SetFeedingCycleForWatchDog(ask, 1, 1, 1);
 | 
			
		||||
    EXPECT_EQ(code.mStatusCode, STATUS_CODE_OK); // STATUS_CODE_OK means write data to mcu succeed.
 | 
			
		||||
    std::this_thread::sleep_for(std::chrono::milliseconds(100));
 | 
			
		||||
    IMcuManager::GetInstance()->UnInit();
 | 
			
		||||
    // IMcuManager::GetInstance()->UnInit();
 | 
			
		||||
}
 | 
			
		||||
// ../output_files/test/bin/McuManagerTest
 | 
			
		||||
// --gtest_filter=McuManagerMockTest.RH_INTEGRATION_McuManager_AUTO_FeedWatchDog
 | 
			
		||||
// --gtest_filter=McuManagerTest.RH_INTEGRATION_McuManager_AUTO_FeedWatchDog
 | 
			
		||||
TEST_F(McuManagerTest, RH_INTEGRATION_McuManager_AUTO_FeedWatchDog)
 | 
			
		||||
{
 | 
			
		||||
    class McuAskTest : public McuAskBaseTestTool
 | 
			
		||||
| 
						 | 
				
			
			@ -175,17 +175,17 @@ TEST_F(McuManagerTest, RH_INTEGRATION_McuManager_AUTO_FeedWatchDog)
 | 
			
		|||
        }
 | 
			
		||||
        virtual ~McuAskTest() = default;
 | 
			
		||||
    };
 | 
			
		||||
    IMcuManager::GetInstance()->Init();
 | 
			
		||||
    // IMcuManager::GetInstance()->Init();
 | 
			
		||||
    std::shared_ptr<VMcuAsk> ask = std::make_shared<McuAskTest>();
 | 
			
		||||
    std::shared_ptr<McuAskBaseTestTool> testTool = std::dynamic_pointer_cast<McuAskBaseTestTool>(ask);
 | 
			
		||||
    testTool->McuAskDefaultFeatures(testTool);
 | 
			
		||||
    StatusCode code = IMcuManager::GetInstance()->FeedWatchDog(ask);
 | 
			
		||||
    EXPECT_EQ(code.mStatusCode, STATUS_CODE_OK); // STATUS_CODE_OK means write data to mcu succeed.
 | 
			
		||||
    std::this_thread::sleep_for(std::chrono::milliseconds(2000));
 | 
			
		||||
    IMcuManager::GetInstance()->UnInit();
 | 
			
		||||
    // IMcuManager::GetInstance()->UnInit();
 | 
			
		||||
}
 | 
			
		||||
// ../output_files/test/bin/McuManagerTest
 | 
			
		||||
// --gtest_filter=McuManagerMockTest.RH_INTEGRATION_McuManager_AUTO_SetDataTime
 | 
			
		||||
// --gtest_filter=McuManagerTest.RH_INTEGRATION_McuManager_AUTO_SetDataTime
 | 
			
		||||
TEST_F(McuManagerTest, RH_INTEGRATION_McuManager_AUTO_SetDataTime)
 | 
			
		||||
{
 | 
			
		||||
    class McuAskTest : public McuAsk<ASK_RESULT>, public McuAskBaseTestTool
 | 
			
		||||
| 
						 | 
				
			
			@ -208,7 +208,7 @@ TEST_F(McuManagerTest, RH_INTEGRATION_McuManager_AUTO_SetDataTime)
 | 
			
		|||
            }
 | 
			
		||||
        }
 | 
			
		||||
    };
 | 
			
		||||
    IMcuManager::GetInstance()->Init();
 | 
			
		||||
    // IMcuManager::GetInstance()->Init();
 | 
			
		||||
    std::shared_ptr<VMcuAsk> ask = std::make_shared<McuAskTest>();
 | 
			
		||||
    std::shared_ptr<McuAskBaseTestTool> testTool = std::dynamic_pointer_cast<McuAskBaseTestTool>(ask);
 | 
			
		||||
    testTool->McuAskDefaultFeatures(testTool);
 | 
			
		||||
| 
						 | 
				
			
			@ -216,10 +216,10 @@ TEST_F(McuManagerTest, RH_INTEGRATION_McuManager_AUTO_SetDataTime)
 | 
			
		|||
    StatusCode code = IMcuManager::GetInstance()->SetDateTime(ask, value);
 | 
			
		||||
    EXPECT_EQ(code.mStatusCode, STATUS_CODE_OK); // STATUS_CODE_OK means write data to mcu succeed.
 | 
			
		||||
    std::this_thread::sleep_for(std::chrono::milliseconds(100));
 | 
			
		||||
    IMcuManager::GetInstance()->UnInit();
 | 
			
		||||
    // IMcuManager::GetInstance()->UnInit();
 | 
			
		||||
}
 | 
			
		||||
// ../output_files/test/bin/McuManagerTest
 | 
			
		||||
// --gtest_filter=McuManagerMockTest.RH_INTEGRATION_McuManager_AUTO_SetPirSensitivity
 | 
			
		||||
// --gtest_filter=McuManagerTest.RH_INTEGRATION_McuManager_AUTO_SetPirSensitivity
 | 
			
		||||
TEST_F(McuManagerTest, RH_INTEGRATION_McuManager_AUTO_SetPirSensitivity)
 | 
			
		||||
{
 | 
			
		||||
    class McuAskTest : public McuAsk<ASK_RESULT>, public McuAskBaseTestTool
 | 
			
		||||
| 
						 | 
				
			
			@ -242,13 +242,13 @@ TEST_F(McuManagerTest, RH_INTEGRATION_McuManager_AUTO_SetPirSensitivity)
 | 
			
		|||
            }
 | 
			
		||||
        }
 | 
			
		||||
    };
 | 
			
		||||
    IMcuManager::GetInstance()->Init();
 | 
			
		||||
    // IMcuManager::GetInstance()->Init();
 | 
			
		||||
    std::shared_ptr<VMcuAsk> ask = std::make_shared<McuAskTest>();
 | 
			
		||||
    std::shared_ptr<McuAskBaseTestTool> testTool = std::dynamic_pointer_cast<McuAskBaseTestTool>(ask);
 | 
			
		||||
    testTool->McuAskDefaultFeatures(testTool);
 | 
			
		||||
    StatusCode code = IMcuManager::GetInstance()->SetPirSensitivity(ask, 1);
 | 
			
		||||
    EXPECT_EQ(code.mStatusCode, STATUS_CODE_OK); // STATUS_CODE_OK means write data to mcu succeed.
 | 
			
		||||
    std::this_thread::sleep_for(std::chrono::milliseconds(100));
 | 
			
		||||
    IMcuManager::GetInstance()->UnInit();
 | 
			
		||||
    // IMcuManager::GetInstance()->UnInit();
 | 
			
		||||
}
 | 
			
		||||
} // namespace McuManagerTest
 | 
			
		||||
| 
						 | 
				
			
			@ -161,8 +161,8 @@ TEST_F(McuManagerMockTest, HS_INTEGRATION_McuManager_EXAMPLE_OtherSideSendIpcMis
 | 
			
		|||
        void RecvIpcMissionEvent(std::shared_ptr<VMcuRecv> &recv, const IpcMission &mission) override
 | 
			
		||||
        {
 | 
			
		||||
            LogInfo("RecvIpcMissionEvent\n");
 | 
			
		||||
            std::shared_ptr<McuAsk<ASK_RESULT>> ask = std::dynamic_pointer_cast<McuAsk<ASK_RESULT>>(recv);
 | 
			
		||||
            ask->mDataReply = ASK_RESULT::SUCCEED;
 | 
			
		||||
            // std::shared_ptr<McuAsk<ASK_RESULT>> ask = std::dynamic_pointer_cast<McuAsk<ASK_RESULT>>(recv);
 | 
			
		||||
            // ask->mDataReply = ASK_RESULT::SUCCEED;
 | 
			
		||||
            recv->ReplyFinished(true);
 | 
			
		||||
            // EXPECT_EQ(TEST_SERIAL_NUMBER, recv->mSerialNumber);
 | 
			
		||||
        }
 | 
			
		||||
| 
						 | 
				
			
			@ -191,8 +191,8 @@ TEST_F(McuManagerMockTest, HS_INTEGRATION_McuManager_EXAMPLE_OtherSideSendHeartB
 | 
			
		|||
        void RecvMcuHeartBeat(std::shared_ptr<VMcuRecv> &recv) override
 | 
			
		||||
        {
 | 
			
		||||
            LogInfo("RecvMcuHeartBeat\n");
 | 
			
		||||
            std::shared_ptr<McuAsk<ASK_RESULT>> ask = std::dynamic_pointer_cast<McuAsk<ASK_RESULT>>(recv);
 | 
			
		||||
            ask->mDataReply = ASK_RESULT::SUCCEED;
 | 
			
		||||
            // std::shared_ptr<McuAsk<ASK_RESULT>> ask = std::dynamic_pointer_cast<McuAsk<ASK_RESULT>>(recv);
 | 
			
		||||
            // ask->mDataReply = ASK_RESULT::SUCCEED;
 | 
			
		||||
            recv->ReplyFinished(true);
 | 
			
		||||
            // EXPECT_EQ(TEST_SERIAL_NUMBER, recv->mSerialNumber);
 | 
			
		||||
        }
 | 
			
		||||
| 
						 | 
				
			
			@ -888,8 +888,7 @@ TEST_F(McuManagerMockTest, HS_INTEGRATION_McuManager_AUTO_OtherSideSendIpcMissio
 | 
			
		|||
        void RecvIpcMissionEvent(std::shared_ptr<VMcuRecv> &recv, const IpcMission &mission) override
 | 
			
		||||
        {
 | 
			
		||||
            LogInfo("RecvIpcMissionEvent\n");
 | 
			
		||||
            std::shared_ptr<McuAsk<ASK_RESULT>> ask = std::dynamic_pointer_cast<McuAsk<ASK_RESULT>>(recv);
 | 
			
		||||
            ask->mDataReply = ASK_RESULT::SUCCEED;
 | 
			
		||||
            std::shared_ptr<McuRecv<unsigned char>> recvData = std::dynamic_pointer_cast<McuRecv<unsigned char>>(recv);
 | 
			
		||||
            recv->ReplyFinished(true);
 | 
			
		||||
        }
 | 
			
		||||
    };
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -147,6 +147,15 @@ protected:
 | 
			
		|||
protected:
 | 
			
		||||
    void ReplyOtherSideSendIpcMission(const ReplyResult &result, const unsigned int &serialNumber);
 | 
			
		||||
    void ReplyOtherSideSendHearBeat(const ReplyResult &result, const unsigned int &serialNumber);
 | 
			
		||||
    void ReplyOtherSideSendGetIntervalStart(const ReplyResult &result, const unsigned int &serialNumber,
 | 
			
		||||
                                            const unsigned char &hour, const unsigned char &min,
 | 
			
		||||
                                            const unsigned char &second);
 | 
			
		||||
    void ReplyOtherSideSendGetDateTime(const ReplyResult &result, const unsigned int &serialNumber,
 | 
			
		||||
                                       const unsigned short &year, const unsigned char &mon, const unsigned char &day,
 | 
			
		||||
                                       const unsigned char &hour, const unsigned char &min,
 | 
			
		||||
                                       const unsigned char &second);
 | 
			
		||||
    void ReplyOtherSideSendGetPirSensitivity(const ReplyResult &result, const unsigned int &serialNumber,
 | 
			
		||||
                                             const unsigned char &sensitivity);
 | 
			
		||||
 | 
			
		||||
protected:
 | 
			
		||||
    size_t GetKeyHeadLength(void) override;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -104,9 +104,9 @@ const StatusCode McuProtocol::SetFeedingCycleForWatchDog(const unsigned char &ho
 | 
			
		|||
                                                         const unsigned char &second,
 | 
			
		||||
                                                         std::shared_ptr<VProtocolContext> &context)
 | 
			
		||||
{
 | 
			
		||||
    WatchDogParam watchDogParam(hour, min, second);
 | 
			
		||||
    SetTime watchDogParam(hour, min, second);
 | 
			
		||||
    std::shared_ptr<VProtocolParam> param =
 | 
			
		||||
        std::make_shared<ProtocolParam<WatchDogParam>>(PROTOCOL_COMMAND::ASK_SET_FEEDING_CYCLE, watchDogParam);
 | 
			
		||||
        std::make_shared<ProtocolParam<SetTime>>(PROTOCOL_COMMAND::ASK_SET_FEEDING_CYCLE, watchDogParam);
 | 
			
		||||
    std::shared_ptr<ProtocolHandle> handle = ProtocolHandle::CreateProtocolData(param);
 | 
			
		||||
    return WriteProtocolData(
 | 
			
		||||
        handle->GetProtocolDataBuff(), handle->GetProtocolDataLength(), context, handle->GetSerialNumber());
 | 
			
		||||
| 
						 | 
				
			
			@ -186,6 +186,44 @@ void McuProtocol::ReplyOtherSideSendHearBeat(const ReplyResult &result, const un
 | 
			
		|||
    WriteProtocolData(
 | 
			
		||||
        handle->GetProtocolDataBuff(), handle->GetProtocolDataLength(), NULL_CONTEXT, handle->GetSerialNumber());
 | 
			
		||||
}
 | 
			
		||||
void McuProtocol::ReplyOtherSideSendGetIntervalStart(const ReplyResult &result, const unsigned int &serialNumber,
 | 
			
		||||
                                                     const unsigned char &hour, const unsigned char &min,
 | 
			
		||||
                                                     const unsigned char &second)
 | 
			
		||||
{
 | 
			
		||||
    std::shared_ptr<VProtocolContext> NULL_CONTEXT;
 | 
			
		||||
    SetTime interval(hour, min, second);
 | 
			
		||||
    std::shared_ptr<VProtocolParam> param =
 | 
			
		||||
        std::make_shared<ProtocolParam<SetTime>>(PROTOCOL_COMMAND::REPLY_OTHER_SIDE_ASK_GET_INTERVAL_START, interval);
 | 
			
		||||
    std::shared_ptr<ProtocolHandle> handle = ProtocolHandle::CreateProtocolData(param);
 | 
			
		||||
    param->mSerialNumber = serialNumber;
 | 
			
		||||
    WriteProtocolData(
 | 
			
		||||
        handle->GetProtocolDataBuff(), handle->GetProtocolDataLength(), NULL_CONTEXT, handle->GetSerialNumber());
 | 
			
		||||
}
 | 
			
		||||
void McuProtocol::ReplyOtherSideSendGetDateTime(const ReplyResult &result, const unsigned int &serialNumber,
 | 
			
		||||
                                                const unsigned short &year, const unsigned char &mon,
 | 
			
		||||
                                                const unsigned char &day, const unsigned char &hour,
 | 
			
		||||
                                                const unsigned char &min, const unsigned char &second)
 | 
			
		||||
{
 | 
			
		||||
    std::shared_ptr<VProtocolContext> NULL_CONTEXT;
 | 
			
		||||
    SetDateTime dateTime(year, mon, day, hour, min, second);
 | 
			
		||||
    std::shared_ptr<VProtocolParam> param =
 | 
			
		||||
        std::make_shared<ProtocolParam<SetDateTime>>(PROTOCOL_COMMAND::REPLY_OTHER_SIDE_ASK_GET_DATE_TIME, dateTime);
 | 
			
		||||
    std::shared_ptr<ProtocolHandle> handle = ProtocolHandle::CreateProtocolData(param);
 | 
			
		||||
    param->mSerialNumber = serialNumber;
 | 
			
		||||
    WriteProtocolData(
 | 
			
		||||
        handle->GetProtocolDataBuff(), handle->GetProtocolDataLength(), NULL_CONTEXT, handle->GetSerialNumber());
 | 
			
		||||
}
 | 
			
		||||
void McuProtocol::ReplyOtherSideSendGetPirSensitivity(const ReplyResult &result, const unsigned int &serialNumber,
 | 
			
		||||
                                                      const unsigned char &sensitivity)
 | 
			
		||||
{
 | 
			
		||||
    std::shared_ptr<VProtocolContext> NULL_CONTEXT;
 | 
			
		||||
    std::shared_ptr<VProtocolParam> param = std::make_shared<ProtocolParam<const unsigned char>>(
 | 
			
		||||
        PROTOCOL_COMMAND::REPLY_OTHER_SIDE_ASK_GET_PIR_SENSITIVITY, static_cast<const unsigned char>(sensitivity));
 | 
			
		||||
    param->mSerialNumber = serialNumber;
 | 
			
		||||
    std::shared_ptr<ProtocolHandle> handle = ProtocolHandle::CreateProtocolData(param);
 | 
			
		||||
    WriteProtocolData(
 | 
			
		||||
        handle->GetProtocolDataBuff(), handle->GetProtocolDataLength(), NULL_CONTEXT, handle->GetSerialNumber());
 | 
			
		||||
}
 | 
			
		||||
size_t McuProtocol::GetKeyHeadLength(void)
 | 
			
		||||
{
 | 
			
		||||
    return ProtocolHandle::GetKeyHeadLength();
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -43,6 +43,12 @@ ProtocolHandle::ProtocolHandle(const std::shared_ptr<VProtocolParam> ¶m) : m
 | 
			
		|||
        std::bind(&ProtocolHandle::MakeReplyOtherSideSendIpcMissionPacket, this, _1);
 | 
			
		||||
    mMakePacketFunc[REPLY_OTHER_SIDE_ASK_SEND_HEART_BEAT] =
 | 
			
		||||
        std::bind(&ProtocolHandle::MakeReplyOtherSideSendHeartBeatPacket, this, _1);
 | 
			
		||||
    mMakePacketFunc[REPLY_OTHER_SIDE_ASK_GET_INTERVAL_START] =
 | 
			
		||||
        std::bind(&ProtocolHandle::MakeReplyOtherSideGetIntervalStartPacket, this, _1);
 | 
			
		||||
    mMakePacketFunc[REPLY_OTHER_SIDE_ASK_GET_DATE_TIME] =
 | 
			
		||||
        std::bind(&ProtocolHandle::MakeReplyOtherSideGetDateTimePacket, this, _1);
 | 
			
		||||
    mMakePacketFunc[REPLY_OTHER_SIDE_ASK_GET_PIR_SENSITIVITY] =
 | 
			
		||||
        std::bind(&ProtocolHandle::MakeReplyOtherSideGetPirSensitivityPacket, this, _1);
 | 
			
		||||
}
 | 
			
		||||
ProtocolHandle::ProtocolHandle(const void *data, const size_t &length)
 | 
			
		||||
{
 | 
			
		||||
| 
						 | 
				
			
			@ -154,7 +160,7 @@ void ProtocolHandle::MakeAskFeedWatchDogPacket(const std::shared_ptr<VProtocolPa
 | 
			
		|||
}
 | 
			
		||||
void ProtocolHandle::MakeAskSetFeedingCyclePacket(const std::shared_ptr<VProtocolParam> ¶m)
 | 
			
		||||
{
 | 
			
		||||
    MakeProtocolData<WatchDogParam>(param);
 | 
			
		||||
    MakeProtocolData<SetTime>(param);
 | 
			
		||||
}
 | 
			
		||||
void ProtocolHandle::MakeAskSetDateTimePacket(const std::shared_ptr<VProtocolParam> ¶m)
 | 
			
		||||
{
 | 
			
		||||
| 
						 | 
				
			
			@ -180,6 +186,18 @@ void ProtocolHandle::MakeAskGetPhotosensitivityPacket(const std::shared_ptr<VPro
 | 
			
		|||
{
 | 
			
		||||
    MakeNoUserDataPacket(param);
 | 
			
		||||
}
 | 
			
		||||
void ProtocolHandle::MakeReplyOtherSideGetIntervalStartPacket(const std::shared_ptr<VProtocolParam> ¶m)
 | 
			
		||||
{
 | 
			
		||||
    MakeProtocolData<SetTime>(param);
 | 
			
		||||
}
 | 
			
		||||
void ProtocolHandle::MakeReplyOtherSideGetDateTimePacket(const std::shared_ptr<VProtocolParam> ¶m)
 | 
			
		||||
{
 | 
			
		||||
    MakeProtocolData<SetDateTime>(param);
 | 
			
		||||
}
 | 
			
		||||
void ProtocolHandle::MakeReplyOtherSideGetPirSensitivityPacket(const std::shared_ptr<VProtocolParam> ¶m)
 | 
			
		||||
{
 | 
			
		||||
    MakeProtocolData<const unsigned char>(param);
 | 
			
		||||
}
 | 
			
		||||
void ProtocolHandle::AnalyzeProtocolPacket(void)
 | 
			
		||||
{
 | 
			
		||||
    ProtocolPacket packet = {0};
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -80,7 +80,7 @@ typedef struct watch_dog_param
 | 
			
		|||
    const unsigned char mHour;
 | 
			
		||||
    const unsigned char mMin;
 | 
			
		||||
    const unsigned char mSecond;
 | 
			
		||||
} WatchDogParam;
 | 
			
		||||
} SetTime;
 | 
			
		||||
typedef struct set_date_time
 | 
			
		||||
{
 | 
			
		||||
    set_date_time(const unsigned short &year, const unsigned char &mon, const unsigned char &day,
 | 
			
		||||
| 
						 | 
				
			
			@ -168,6 +168,9 @@ private:
 | 
			
		|||
    void MakeAskGetPhotosensitivityPacket(const std::shared_ptr<VProtocolParam> ¶m);
 | 
			
		||||
    void MakeReplyOtherSideSendIpcMissionPacket(const std::shared_ptr<VProtocolParam> ¶m);
 | 
			
		||||
    void MakeReplyOtherSideSendHeartBeatPacket(const std::shared_ptr<VProtocolParam> ¶m);
 | 
			
		||||
    void MakeReplyOtherSideGetIntervalStartPacket(const std::shared_ptr<VProtocolParam> ¶m);
 | 
			
		||||
    void MakeReplyOtherSideGetDateTimePacket(const std::shared_ptr<VProtocolParam> ¶m);
 | 
			
		||||
    void MakeReplyOtherSideGetPirSensitivityPacket(const std::shared_ptr<VProtocolParam> ¶m);
 | 
			
		||||
    template <typename T>
 | 
			
		||||
    void MakeProtocolData(const std::shared_ptr<VProtocolParam> ¶m)
 | 
			
		||||
    {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue
	
	Block a user