完善了数据库功能,将udp单独编译为一个静态库

This commit is contained in:
zjk
2025-02-13 22:00:15 +08:00
parent 25b4e0d688
commit 6d00ecfbf2
11 changed files with 265 additions and 172 deletions
+23 -9
View File
@@ -122,8 +122,6 @@ bool PowerManger::Iterate()
m_FsmThread.Start();
else
m_FsmThread.Stop();
// 数据库测试
//3. 输出报告
buildPowerSysReport();
//4. 打印错误信息
@@ -138,6 +136,8 @@ bool PowerManger::Iterate()
//AppCastingMOOSApp::PostReport();
//5. 清空UDP消息队列
m_udpComm.clearMsgQueue();
//6. 写入数据库
writeDataToDB();
return(true);
}
@@ -276,7 +276,7 @@ bool PowerManger::FsmLoop()
bool PowerManger::updatePmState()
{
//1. 更新下位机状态
if(!m_udpComm.m_qReceiveCcuStateBuffer.empty())
{
double time;
@@ -802,6 +802,23 @@ bool PowerManger::saveStringToJsonFile(const string &strJson, const string &file
return false;
}
}
bool PowerManger::writeDataToDB()
{
m_stateData.state_id = m_pmState.id;
m_stateData.state_name = m_pmState.name;
m_stateData.event = m_pmEvent;
m_stateData.event_id = 1;
m_stateData.fault_code = m_faultNum;
m_stateData.note = "No fault";
if(!m_db->insertStateData(m_stateData))
return false;
return true;
}
//TODO:配电系统操作函数
bool PowerManger::disSystemOperation(disBreaker optBreaker, disBreakerOpt)
{
@@ -823,14 +840,10 @@ int PowerManger::handleInite_s1(FSM_State &fsm, void* pData)
{
cout << fsm.name << endl;
PowerManger* pm = (PowerManger*)pData;
//1. 检查复合管控器连接
//1. 检查复合管控器连接 如果10S则进入故障状态
double StartTime = pm->GetAppStartTime();
while (!pm->m_connected)
{
// disHighVolBusCmd a;
// a.fuelCellCircuitBreaker = DIS_BREAKER_OFF;
// a.propulsionMotorCircuitBreaker = DIS_BREAKER_OFF;
// pm->m_udpComm.sendDisSysCmd(a);
MOOSPause(1000);
pm->updateTime();
double dft = abs(pm->m_current_time - StartTime);
@@ -862,7 +875,7 @@ int PowerManger::handleInite_s1(FSM_State &fsm, void* pData)
}
//3. 检查当前配电装置状态
//a. 断开高压母线的主要断路器
//TODO 检查并配置当前配电装置状态
//TODO 配置当前配电装置状态
disHighVolBusCmd a;
a.fuelCellCircuitBreaker = DIS_BREAKER_OFF;
a.propulsionMotorCircuitBreaker = DIS_BREAKER_OFF;
@@ -917,6 +930,7 @@ int PowerManger::handleFault_s99(FSM_State &fsm, void* pData)
{
case 1:
pm->printState(fsm,"通信故障");
pm->m_pmEvent = "复合管控连接超时";
break;
default: