This commit is contained in:
zjk
2025-04-07 21:45:19 +08:00
parent 7ef9ec5ac0
commit b5a746c2ef
4 changed files with 31 additions and 24 deletions
+9 -9
View File
@@ -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<unsigned short>(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<<MOOS::ConsoleColours::green()<< "UDP set succeed!"<< MOOS::ConsoleColours::reset() << endl;
m_udpComm->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();
}
+13 -12
View File
@@ -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;
}
+4 -3
View File
@@ -26,7 +26,7 @@ class PowerManagerFsm;
#include <queue>
#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;