From b5a746c2eff836e859db606163e89cd321163c0d Mon Sep 17 00:00:00 2001 From: zhaojingkui <1553836110@qq.com> Date: Mon, 7 Apr 2025 21:45:19 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- missions/pPowerManger.moos | 5 +++++ src/pPowerManger/LowerCommManager.cpp | 18 +++++++++--------- src/pPowerManger/PowerManger.cpp | 25 +++++++++++++------------ src/pPowerManger/PowerManger.h | 7 ++++--- 4 files changed, 31 insertions(+), 24 deletions(-) create mode 100644 missions/pPowerManger.moos diff --git a/missions/pPowerManger.moos b/missions/pPowerManger.moos new file mode 100644 index 0000000..3fe4061 --- /dev/null +++ b/missions/pPowerManger.moos @@ -0,0 +1,5 @@ +ProcessConfig = pPowerManger +{ + AppTick = 4 + CommsTick = 4 +} \ No newline at end of file diff --git a/src/pPowerManger/LowerCommManager.cpp b/src/pPowerManger/LowerCommManager.cpp index e32e198..4a69676 100644 --- a/src/pPowerManger/LowerCommManager.cpp +++ b/src/pPowerManger/LowerCommManager.cpp @@ -14,10 +14,10 @@ LowerCommManager::LowerCommManager(PowerManger* pm, long myPort, long ccuPort, c m_udpComm = new udpComm(); m_port = myPort; m_udpComm->ccuHost = cccHost; - if(ccuPort < 0 || ccuPort > 65535) { - throw std::invalid_argument("Invalid CCU port: " + std::to_string(ccuPort)); - } - m_udpComm->ccuPort = static_cast(ccuPort); + m_udpComm->ccuPort = ccuPort; + m_udpComm->udpScoket = new XPCUdpSocket(m_port); + m_udpSocket = new XPCUdpSocket(2000); + } LowerCommManager::~LowerCommManager(){ @@ -33,16 +33,16 @@ LowerCommManager::~LowerCommManager(){ } bool LowerCommManager::initUdpComm(){ //设置UDP监听端口 - XPCUdpSocket* m_udpSocket = new XPCUdpSocket(m_port); - if(m_udpSocket) +// XPCUdpSocket* m_udpSocket = new XPCUdpSocket(m_port); + if(m_udpComm->udpScoket) { try { - m_udpSocket->vBindSocket(); + m_udpComm->udpScoket->vBindSocket(); m_udpComm->ccuHost = m_ccuHost; m_udpComm->ccuPort = m_ccuPort; cout<udpScoket = m_udpSocket; + // m_udpComm->udpScoket = m_udpSocket; } catch(const std::exception& e) { @@ -62,8 +62,8 @@ bool LowerCommManager::initUdpComm(){ void LowerCommManager::processPeriodicTasks() { // sendCcuCommand(m_pm->m_CcuColCmd); // sendDisSysCommand(m_pm->m_targetDisBreakerState); + m_udpSocket->iSendMessageTo((void*) "hello", 5, m_ccuPort, m_ccuHost); int msg = 10; - m_udpComm->udpScoket->iSendMessageTo((void*) msg, 6, m_udpComm->ccuPort, "127.0.0.1"); m_udpComm->clearMsgQueue(); } diff --git a/src/pPowerManger/PowerManger.cpp b/src/pPowerManger/PowerManger.cpp index d4f11a9..7c6ec8a 100644 --- a/src/pPowerManger/PowerManger.cpp +++ b/src/pPowerManger/PowerManger.cpp @@ -73,6 +73,7 @@ PowerManger::PowerManger() //初始化UDP通信 m_lowerCommManager = new LowerCommManager(this,IPORT,CCUPORT,CCUHOST); + m_lowerCommManager->initUdpComm(); // 初始化状态机 @@ -328,19 +329,19 @@ XPCUdpSocket* PowerManger::setUdpScoket(long lPort) bool PowerManger::FsmLoop() { //状态机循环 - while (!m_FsmThread.IsQuitRequested()) - { - // // 检查故障并触发事件 - // if(int error = checkError()) { - // m_fsm.triggerFaultEvent(error); - // } else { - // // 自动状态转换由状态机内部处理 - // MOOSPause(1000); - // } + // while (!m_FsmThread.IsQuitRequested()) + // { + // // // 检查故障并触发事件 + // // if(int error = checkError()) { + // // m_fsm.triggerFaultEvent(error); + // // } else { + // // // 自动状态转换由状态机内部处理 + // // MOOSPause(1000); + // // } - //延时1s - usleep(1000000); - } + // //延时1s + // usleep(1000000); + // } return true; } diff --git a/src/pPowerManger/PowerManger.h b/src/pPowerManger/PowerManger.h index 3c90208..5c148a8 100644 --- a/src/pPowerManger/PowerManger.h +++ b/src/pPowerManger/PowerManger.h @@ -26,7 +26,7 @@ class PowerManagerFsm; #include #include "MOOS/libMOOS/Thirdparty/AppCasting/AppCastingMOOSApp.h" #include "MOOS/libMOOS/Utils/MOOSThread.h" -#include "MOOS/libMOOS/Comms/XPCUdpSocket.h" +// #include "MOOS/libMOOS/Comms/XPCUdpSocket.h" #include "MOOS/libMOOS/Utils/MOOSUtilityFunctions.h" #include "MOOS/libMOOS/Utils/ConsoleColours.h" #include "ccuUdpMsg.h" @@ -158,9 +158,10 @@ class PowerManger : public AppCastingMOOSApp bool getMsCmdFromJson(MSControlCmd &cmd,const string &strJson); private: - CMOOSThread m_ListenThread; - CMOOSThread m_FsmThread; + // CMOOSThread m_ListenThread; + // CMOOSThread m_FsmThread; LowerCommManager* m_lowerCommManager; + XPCUdpSocket* m_udpSocket; // 状态机实例 PowerManagerFsm m_fsm;