使用tinyfsm优化代码
This commit is contained in:
@@ -72,8 +72,11 @@ PowerManger::PowerManger()
|
||||
m_db->createDriversTables(VAR_TO_STR(m_MSDriverCmd));
|
||||
|
||||
// 初始化状态机
|
||||
cout << "init fsm" << endl;
|
||||
m_fsm.init(this);
|
||||
PowerManagerFsm::start();
|
||||
PowerManagerFsm::dispatch(InitEvent());
|
||||
cout << "init fsm ok" << endl;
|
||||
}
|
||||
|
||||
//---------------------------------------------------------
|
||||
@@ -188,12 +191,12 @@ bool PowerManger::Iterate()
|
||||
// saveStringToJsonFile(a,"/home/zjk/project/H100/H100PowerManger/data/subDisSysCmd.json");
|
||||
///////////////////////
|
||||
//4. 写状态信息到数据库
|
||||
m_stateData.state_id = m_pmState.id;
|
||||
m_stateData.state_name = m_pmState.name;
|
||||
m_stateData.event = m_pmEvent;
|
||||
m_stateData.fault_code = m_faultNum;
|
||||
if(!m_db->insertStateData(m_stateData))
|
||||
return false;
|
||||
// m_stateData.state_id = m_pmState.id;
|
||||
// m_stateData.state_name = m_pmState.name;
|
||||
// m_stateData.event = m_pmEvent;
|
||||
// m_stateData.fault_code = m_faultNum;
|
||||
// if(!m_db->insertStateData(m_stateData))
|
||||
// return false;
|
||||
//AppCastingMOOSApp::PostReport();
|
||||
//5. 清空UDP消息队列
|
||||
m_udpComm.clearMsgQueue();
|
||||
@@ -336,13 +339,13 @@ bool PowerManger::FsmLoop()
|
||||
//状态机循环
|
||||
while (!m_FsmThread.IsQuitRequested())
|
||||
{
|
||||
// 检查故障并触发事件
|
||||
if(int error = checkError()) {
|
||||
triggerFaultEvent(error);
|
||||
} else {
|
||||
// 自动状态转换由状态机内部处理
|
||||
MOOSPause(1000);
|
||||
}
|
||||
// // 检查故障并触发事件
|
||||
// if(int error = checkError()) {
|
||||
// m_fsm.triggerFaultEvent(error);
|
||||
// } else {
|
||||
// // 自动状态转换由状态机内部处理
|
||||
// MOOSPause(1000);
|
||||
// }
|
||||
|
||||
//延时1s
|
||||
usleep(1000000);
|
||||
@@ -598,24 +601,24 @@ int PowerManger::checkError()
|
||||
}
|
||||
|
||||
|
||||
void PowerManger::triggerInitEvent()
|
||||
{
|
||||
PowerManagerFsm::dispatch(InitEvent());
|
||||
}
|
||||
// void PowerManger::triggerInitEvent()
|
||||
// {
|
||||
// PowerManagerFsm::dispatch(InitEvent());
|
||||
// }
|
||||
|
||||
void PowerManger::triggerStandbyEvent()
|
||||
{
|
||||
PowerManagerFsm::dispatch(StandbyEvent());
|
||||
}
|
||||
// void PowerManger::triggerStandbyEvent()
|
||||
// {
|
||||
// PowerManagerFsm::dispatch(StandbyEvent());
|
||||
// }
|
||||
|
||||
void PowerManger::triggerFaultEvent(unsigned int faultCode)
|
||||
{
|
||||
PowerManagerFsm::dispatch(FaultEvent(faultCode));
|
||||
}
|
||||
// void PowerManger::triggerFaultEvent(unsigned int faultCode)
|
||||
// {
|
||||
// PowerManagerFsm::dispatch(FaultEvent(faultCode));
|
||||
// }
|
||||
|
||||
void PowerManger::printState(const std::string& stateName, const std::string& desp){
|
||||
cout << MOOS::ConsoleColours::Yellow() << "STATE " << st.id << " [" << st.name << "] " << MOOS::ConsoleColours::reset();
|
||||
cout << MOOS::ConsoleColours::Blue() << " -> " << MOOS::ConsoleColours::reset();
|
||||
cout << MOOS::ConsoleColours::Yellow() << "STATE " << stateName << " " << MOOS::ConsoleColours::reset();
|
||||
cout << MOOS::ConsoleColours::Blue() << " -> " << MOOS::ConsoleColours::reset();
|
||||
// 检查desp是否有“故障”
|
||||
if (desp.find("故障") != string::npos) {
|
||||
cout << MOOS::ConsoleColours::Red() << desp << MOOS::ConsoleColours::reset() << endl;
|
||||
|
||||
Reference in New Issue
Block a user