增加了次级配电状态,设备状态表,设备上电指令的订阅\解析\发布等功能
This commit is contained in:
@@ -1,47 +1,47 @@
|
|||||||
{
|
{
|
||||||
"HVABFTDev123Cur_uint16": 65491,
|
"HVABFTDev123Cur_uint16": 0,
|
||||||
"HVABactCur_uint16": 65368,
|
"HVABactCur_uint16": 0,
|
||||||
"HVABbowRudCur_uint16": 0,
|
"HVABbowRudCur_uint16": 0,
|
||||||
"HVABbusBCur_uint16": 46080,
|
"HVABbusBCur_uint16": 0,
|
||||||
"HVABbusBVol_uint16": 127,
|
"HVABbusBVol_uint16": 0,
|
||||||
"HVABmastSteGeaCur_uint16": 127,
|
"HVABmastSteGeaCur_uint16": 0,
|
||||||
"HVABopenWaterCur_uint16": 0,
|
"HVABopenWaterCur_uint16": 0,
|
||||||
"HVABxczCur_uint16": 1792,
|
"HVABxczCur_uint16": 0,
|
||||||
"HVBBCCUCur_uint16": 65492,
|
"HVBBCCUCur_uint16": 0,
|
||||||
"HVBBFCSSecurSysCur_uint16": 65368,
|
"HVBBFCSSecurSysCur_uint16": 0,
|
||||||
"HVBBbatInsCur_uint16": 24700,
|
"HVBBbatInsCur_uint16": 0,
|
||||||
"HVBBbowLowVolDisBoxCur_uint16": 25073,
|
"HVBBbowLowVolDisBoxCur_uint16": 0,
|
||||||
"HVBBdcC1InsCur_uint16": 19436,
|
"HVBBdcC1InsCur_uint16": 0,
|
||||||
"HVBBemer2BusVol_uint16": 32768,
|
"HVBBemer2BusVol_uint16": 0,
|
||||||
"HVBBemerBatCur_uint16": 0,
|
"HVBBemerBatCur_uint16": 0,
|
||||||
"HVBBinsBusVol_uint16": 18176,
|
"HVBBinsBusVol_uint16": 0,
|
||||||
"HVBBplcCur_uint16": 127,
|
"HVBBplcCur_uint16": 0,
|
||||||
"HVBBreservedCur1_uint16": 127,
|
"HVBBreservedCur1_uint16": 0,
|
||||||
"HVBBreservedCur2_uint16": 127,
|
"HVBBreservedCur2_uint16": 0,
|
||||||
"HVBBunit4Cur_uint16": 19436,
|
"HVBBunit4Cur_uint16": 0,
|
||||||
"HVBFTDev45Cur_uint16": 0,
|
"HVBFTDev45Cur_uint16": 0,
|
||||||
"HVBbatGroupCur_uint16": 37,
|
"HVBbatGroupCur_uint16": 0,
|
||||||
"HVBbowHVolDisBoxCur_uint16": 0,
|
"HVBbowHVolDisBoxCur_uint16": 0,
|
||||||
"HVBbusACur_uint16": 0,
|
"HVBbusACur_uint16": 0,
|
||||||
"HVBbusAVol_uint16": 60617,
|
"HVBbusAVol_uint16": 0,
|
||||||
"HVBdcDc5Cur_uint16": 0,
|
"HVBdcDc5Cur_uint16": 0,
|
||||||
"HVBfbCur_uint16": 47824,
|
"HVBfbCur_uint16": 0,
|
||||||
"HVBmotorCur_uint16": 32587,
|
"HVBmotorCur_uint16": 0,
|
||||||
"HVBpowerBusCur_uint16": 8394,
|
"HVBpowerBusCur_uint16": 0,
|
||||||
"HVBpowerBusVol_uint16": 32767,
|
"HVBpowerBusVol_uint16": 0,
|
||||||
"HVBreservedCur1_uint16": 60616,
|
"HVBreservedCur1_uint16": 0,
|
||||||
"HVBreservedCur2_uint16": 0,
|
"HVBreservedCur2_uint16": 0,
|
||||||
"HVBreservedCur3_uint16": 60619,
|
"HVBreservedCur3_uint16": 0,
|
||||||
"HVBsternRud1Cur_uint16": 39104,
|
"HVBsternRud1Cur_uint16": 0,
|
||||||
"HVBsternRud2Cur_uint16": 32587,
|
"HVBsternRud2Cur_uint16": 0,
|
||||||
"HVBtyzCur_uint16": 0,
|
"HVBtyzCur_uint16": 0,
|
||||||
"LVBBbowPZDevCur_uint16": 127,
|
"LVBBbowPZDevCur_uint16": 0,
|
||||||
"LVBBemerBatCur_uint16": 1792,
|
"LVBBemerBatCur_uint16": 0,
|
||||||
"LVBBemerBusVol_uint16": 0,
|
"LVBBemerBusVol_uint16": 0,
|
||||||
"LVBBinsBusCur_uint16": 0,
|
"LVBBinsBusCur_uint16": 0,
|
||||||
"LVBBunit1Cur_uint16": 0,
|
"LVBBunit1Cur_uint16": 0,
|
||||||
"LVBBunit2Cur_uint16": 28672,
|
"LVBBunit2Cur_uint16": 0,
|
||||||
"LVBBunit3Cur_uint16": 41536,
|
"LVBBunit3Cur_uint16": 0,
|
||||||
"LVBBunit5Cur_uint16": 19436,
|
"LVBBunit5Cur_uint16": 0,
|
||||||
"LVBinsBusVol_uint16": 193
|
"LVBinsBusVol_uint16": 0
|
||||||
}
|
}
|
||||||
@@ -1,30 +1,30 @@
|
|||||||
{
|
{
|
||||||
"backpressure1_fp32": -261504.0,
|
"backpressure1_fp32": 0.0,
|
||||||
"backpressure2_fp32": 1.1690343649017501e-38,
|
"backpressure2_fp32": 0.0,
|
||||||
"ch4oConcent1_fp32": -641600.0,
|
"ch4oConcent1_fp32": 0.0,
|
||||||
"ch4oConcent2_fp32": 1.1690343649017501e-38,
|
"ch4oConcent2_fp32": 0.0,
|
||||||
"ch4o_fp32": 0.0,
|
"ch4o_fp32": 0.0,
|
||||||
"excTemp_fp32": 3.4331812375958018e-43,
|
"excTemp_fp32": 0.0,
|
||||||
"faultCode1_uint16": 1649,
|
"faultCode1_uint16": 0,
|
||||||
"faultCode2_uint16": 38944,
|
"faultCode2_uint16": 0,
|
||||||
"faultCode3_uint16": 0,
|
"faultCode3_uint16": 0,
|
||||||
"fcuCurIns_fp32": null,
|
"fcuCurIns_fp32": 0.0,
|
||||||
"fcuCurPower_fp32": 1.1754708090080869e-38,
|
"fcuCurPower_fp32": 0.0,
|
||||||
"fcuCur_fp32": -282240.0,
|
"fcuCur_fp32": 0.0,
|
||||||
"fcuFaultLeve_uint8": 201,
|
"fcuFaultLeve_uint8": 0,
|
||||||
"fcuOutIns_fp32": 1.1690343649017501e-38,
|
"fcuOutIns_fp32": 0.0,
|
||||||
"fcuOutPower_fp32": 6.9238340671194006e+19,
|
"fcuOutPower_fp32": 0.0,
|
||||||
"fcuState_uint8": 32,
|
"fcuState_uint8": 0,
|
||||||
"fcuVolIns_fp32": 7.2147666030475346e+19,
|
"fcuVolIns_fp32": 0.0,
|
||||||
"fcuVolPower_fp32": 1.1690343649017501e-38,
|
"fcuVolPower_fp32": 0.0,
|
||||||
"fcuVol_fp32": 1.1690343649017501e-38,
|
"fcuVol_fp32": 0.0,
|
||||||
"flameDet_uint8": 0,
|
"flameDet_uint8": 0,
|
||||||
"h2Concent1_fp32": -658592.0,
|
"h2Concent1_fp32": 0.0,
|
||||||
"h2Concent2_fp32": 1.1690343649017501e-38,
|
"h2Concent2_fp32": 0.0,
|
||||||
"o2Concent1_fp32": 8.602403116674333e-40,
|
"o2Concent1_fp32": 0.0,
|
||||||
"o2Concent2_fp32": 0.0,
|
"o2Concent2_fp32": 0.0,
|
||||||
"o2Level_fp32": 1.1690343649017501e-38,
|
"o2Level_fp32": 0.0,
|
||||||
"o2_fp32": -641600.0,
|
"o2_fp32": 0.0,
|
||||||
"powLimit_fp32": 1.1690343649017501e-38,
|
"powLimit_fp32": 0.0,
|
||||||
"powerGen_fp32": 1.8108811898653892e-39
|
"powerGen_fp32": 0.0
|
||||||
}
|
}
|
||||||
@@ -1,38 +1,38 @@
|
|||||||
{
|
{
|
||||||
"fcuCurToInsLimit1_uint8": 127,
|
"fcuCurToInsLimit1_uint8": 0,
|
||||||
"fcuCurToinsLimit2_uint8": 0,
|
"fcuCurToinsLimit2_uint8": 0,
|
||||||
"insBatCurElect_uint16": 32587,
|
"insBatCurElect_uint16": 0,
|
||||||
"insBatLimit_uint16": 60544,
|
"insBatLimit_uint16": 0,
|
||||||
"insBatSoc_uint8": 0,
|
"insBatSoc_uint8": 0,
|
||||||
"insBatTotalElect_uint16": 36880,
|
"insBatTotalElect_uint16": 0,
|
||||||
"insChargeState_uint8": 116,
|
"insChargeState_uint8": 0,
|
||||||
"insCurSocHold1_uint8": 201,
|
"insCurSocHold1_uint8": 0,
|
||||||
"insCurSocHold2_uint8": 236,
|
"insCurSocHold2_uint8": 0,
|
||||||
"insCurSocHold3_uint8": 75,
|
"insCurSocHold3_uint8": 0,
|
||||||
"insCurrent_uint16": 0,
|
"insCurrent_uint16": 0,
|
||||||
"insLinkVol_uint16": 22783,
|
"insLinkVol_uint16": 0,
|
||||||
"insNegRelayState_uint8": 0,
|
"insNegRelayState_uint8": 0,
|
||||||
"insNegRes_uint16": 60617,
|
"insNegRes_uint16": 0,
|
||||||
"insPackVol_uint16": 32767,
|
"insPackVol_uint16": 0,
|
||||||
"insPosRelayState_uint8": 0,
|
"insPosRelayState_uint8": 0,
|
||||||
"insPosRes_uint16": 8394,
|
"insPosRes_uint16": 0,
|
||||||
"insfaultCode_uint8": 164,
|
"insfaultCode_uint8": 0,
|
||||||
"powBatCurElect_uint16": 0,
|
"powBatCurElect_uint16": 0,
|
||||||
"powBatSoc_uint8": 0,
|
"powBatSoc_uint8": 0,
|
||||||
"powBatTotalElect_uint16": 60544,
|
"powBatTotalElect_uint16": 0,
|
||||||
"powChargeState_uint8": 211,
|
"powChargeState_uint8": 0,
|
||||||
"powCurSocHold1_uint8": 0,
|
"powCurSocHold1_uint8": 0,
|
||||||
"powCurSocHold2_uint8": 208,
|
"powCurSocHold2_uint8": 0,
|
||||||
"powCurSocHold3_uint8": 186,
|
"powCurSocHold3_uint8": 0,
|
||||||
"powCurToInsLimit1_uint8": 203,
|
"powCurToInsLimit1_uint8": 0,
|
||||||
"powCurToinsLimit2_uint8": 236,
|
"powCurToinsLimit2_uint8": 0,
|
||||||
"powCur_uint16": 3590,
|
"powCur_uint16": 0,
|
||||||
"powLinkVol_uint16": 32587,
|
"powLinkVol_uint16": 0,
|
||||||
"powNegRelayState_uint8": 103,
|
"powNegRelayState_uint8": 0,
|
||||||
"powNegRes_uint16": 0,
|
"powNegRes_uint16": 0,
|
||||||
"powPosRelayState_uint8": 208,
|
"powPosRelayState_uint8": 0,
|
||||||
"powPosRes_uint16": 0,
|
"powPosRes_uint16": 0,
|
||||||
"powerBatLimit_uint16": 32587,
|
"powerBatLimit_uint16": 0,
|
||||||
"powerPackVol_uint16": 0,
|
"powerPackVol_uint16": 0,
|
||||||
"powfaultCode_uint8": 28
|
"powfaultCode_uint8": 0
|
||||||
}
|
}
|
||||||
@@ -50,6 +50,13 @@ PowerManger::PowerManger()
|
|||||||
|
|
||||||
connectState = 0;
|
connectState = 0;
|
||||||
|
|
||||||
|
m_pmCurrentState = {};
|
||||||
|
m_currentDisBreakerState = {};
|
||||||
|
m_targetDisBreakerState = {};
|
||||||
|
m_currentDriverState = {};
|
||||||
|
m_MSDriverCmd = {};
|
||||||
|
m_subDisSysCmd = {};
|
||||||
|
m_subDisSysState = {};
|
||||||
//初始化断路器状态
|
//初始化断路器状态
|
||||||
initControlCmd();
|
initControlCmd();
|
||||||
|
|
||||||
@@ -59,6 +66,10 @@ PowerManger::PowerManger()
|
|||||||
m_db->createPowerDataTables();
|
m_db->createPowerDataTables();
|
||||||
m_db->createStateTables();
|
m_db->createStateTables();
|
||||||
m_db->createDisCcuSysTables();
|
m_db->createDisCcuSysTables();
|
||||||
|
m_db->createDriversTables(VAR_TO_STR(m_currentDriverState));
|
||||||
|
m_db->createDriversTables(VAR_TO_STR(m_subDisSysState));
|
||||||
|
m_db->createDriversTables(VAR_TO_STR(m_subDisSysCmd));
|
||||||
|
m_db->createDriversTables(VAR_TO_STR(m_MSDriverCmd));
|
||||||
|
|
||||||
//注册状态机
|
//注册状态机
|
||||||
m_fsm.RegisterState("Init", 1, m_Inite_s1);
|
m_fsm.RegisterState("Init", 1, m_Inite_s1);
|
||||||
@@ -98,11 +109,11 @@ bool PowerManger::OnNewMail(MOOSMSG_LIST &NewMail)
|
|||||||
{
|
{
|
||||||
if(getMsCmdFromJson(m_msCmd,strJson))
|
if(getMsCmdFromJson(m_msCmd,strJson))
|
||||||
{
|
{
|
||||||
cout << "get ms cmd:" << strJson << endl;
|
cout << "get ms cmd:" << strJson << endl;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
cout << "get ms cmd error:" << strJson << endl;
|
cout << MOOS::ConsoleColours::Red << "get ms cmd error:" << strJson << MOOS::ConsoleColours::reset << endl;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//处理设备上电指令
|
//处理设备上电指令
|
||||||
@@ -110,7 +121,7 @@ bool PowerManger::OnNewMail(MOOSMSG_LIST &NewMail)
|
|||||||
{
|
{
|
||||||
if(m_driver.loadDriverTableFromJson(strJson,m_subDisSysCmd) < 0)
|
if(m_driver.loadDriverTableFromJson(strJson,m_subDisSysCmd) < 0)
|
||||||
{
|
{
|
||||||
cout << "get sub dis cmd error:" << strJson << endl;
|
cout << MOOS::ConsoleColours::Red << "get sub dis cmd error:" << strJson << MOOS::ConsoleColours::reset << endl;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//处理设备状态反馈
|
//处理设备状态反馈
|
||||||
@@ -118,7 +129,7 @@ bool PowerManger::OnNewMail(MOOSMSG_LIST &NewMail)
|
|||||||
{
|
{
|
||||||
if(m_driver.loadDriverTableFromJson(strJson,m_subDisSysState) < 0)
|
if(m_driver.loadDriverTableFromJson(strJson,m_subDisSysState) < 0)
|
||||||
{
|
{
|
||||||
cout << "get sub dis state error:" << strJson << endl;
|
cout << MOOS::ConsoleColours::Red << "get sub dis state error:" << strJson << MOOS::ConsoleColours::reset << endl;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -175,25 +186,25 @@ bool PowerManger::Iterate()
|
|||||||
ccuOption();
|
ccuOption();
|
||||||
//c. 上位机反馈
|
//c. 上位机反馈
|
||||||
buildPowerSysReport();
|
buildPowerSysReport();
|
||||||
|
Notify(PM_TO_DB_SUBDISCMD,m_driver.saveDriverTableToJson(&m_subDisSysCmd));
|
||||||
|
Notify(PM_TO_DB_EQUIPMENTSTATE,m_driver.saveDriverTableToJson(&m_currentDriverState));
|
||||||
|
//d.保存到数据库
|
||||||
|
writeDataToDB();
|
||||||
}
|
}
|
||||||
///////////////////////
|
///////////////////////
|
||||||
string a = m_driver.getSubDisCmdJson(&m_subDisSysCmd);
|
// string a = m_driver.getSubDisCmdJson(&m_subDisSysCmd);
|
||||||
saveStringToJsonFile(a,"/home/zjk/project/H100/H100PowerManger/data/subDisSysCmd.json");
|
// saveStringToJsonFile(a,"/home/zjk/project/H100/H100PowerManger/data/subDisSysCmd.json");
|
||||||
///////////////////////
|
///////////////////////
|
||||||
//4. 打印错误信息
|
//4. 写状态信息到数据库
|
||||||
if(!m_udpComm.sError.empty())
|
m_stateData.state_id = m_pmState.id;
|
||||||
{
|
m_stateData.state_name = m_pmState.name;
|
||||||
for(int i=0;i<m_udpComm.sError.size();i++)
|
m_stateData.event = m_pmEvent;
|
||||||
{
|
m_stateData.fault_code = m_faultNum;
|
||||||
cout<<MOOS::ConsoleColours::red() << m_udpComm.sError[i] << MOOS::ConsoleColours::reset() << endl;
|
if(!m_db->insertStateData(m_stateData))
|
||||||
}
|
return false;
|
||||||
m_udpComm.sError.clear();
|
|
||||||
}
|
|
||||||
//AppCastingMOOSApp::PostReport();
|
//AppCastingMOOSApp::PostReport();
|
||||||
//5. 清空UDP消息队列
|
//5. 清空UDP消息队列
|
||||||
m_udpComm.clearMsgQueue();
|
m_udpComm.clearMsgQueue();
|
||||||
//6. 写入数据库
|
|
||||||
writeDataToDB();
|
|
||||||
return(true);
|
return(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -315,18 +326,27 @@ bool PowerManger::ListenLoopUDP()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// updatePmState();
|
// 打印通信错误信息
|
||||||
|
if(!m_udpComm.sError.empty())
|
||||||
|
{
|
||||||
|
for(int i=0;i<m_udpComm.sError.size();i++)
|
||||||
|
{
|
||||||
|
cout<<MOOS::ConsoleColours::red() << m_udpComm.sError[i] << MOOS::ConsoleColours::reset() << endl;
|
||||||
|
}
|
||||||
|
m_udpComm.sError.clear();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool PowerManger::FsmLoop()
|
bool PowerManger::FsmLoop()
|
||||||
{
|
{
|
||||||
|
//状态机循环
|
||||||
while (!m_FsmThread.IsQuitRequested())
|
while (!m_FsmThread.IsQuitRequested())
|
||||||
{
|
{
|
||||||
m_fsm.run(m_pmState,this);
|
m_fsm.run(m_pmState,this);
|
||||||
//延时200ms
|
//延时1s
|
||||||
usleep(200000);
|
usleep(1000000);
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@@ -336,20 +356,20 @@ bool PowerManger::updateConnectState()
|
|||||||
double seck = 0;
|
double seck = 0;
|
||||||
updateTime();
|
updateTime();
|
||||||
connectState = 0;
|
connectState = 0;
|
||||||
IsSkewed(msg_CcuStateFbMsg_Update_time,&seck);
|
if(!IsSkewed(msg_CcuStateFbMsg_Update_time,&seck))
|
||||||
connectState++;
|
connectState++;
|
||||||
// cout << "seck:" << seck << endl;
|
// cout << "seck:" << seck << endl;
|
||||||
IsSkewed(msg_disHighVolBusFbMsg_Update_time,&seck);
|
if(!IsSkewed(msg_disHighVolBusFbMsg_Update_time,&seck))
|
||||||
connectState++;
|
connectState++;
|
||||||
// cout << "seck:" << seck << endl;
|
// cout << "seck:" << seck << endl;
|
||||||
IsSkewed(msg_disHighAVolBusFbMsg_Update_time,&seck);
|
if(!IsSkewed(msg_disHighAVolBusFbMsg_Update_time,&seck))
|
||||||
connectState++;
|
connectState++;
|
||||||
// cout << "seck:" << seck << endl;
|
// cout << "seck:" << seck << endl;
|
||||||
IsSkewed(msg_disHighBVolBusFbMsg_Update_time,&seck);
|
if(!IsSkewed(msg_disHighBVolBusFbMsg_Update_time,&seck))
|
||||||
connectState++;
|
connectState++;
|
||||||
// cout << "seck:" << seck << endl;
|
// cout << "seck:" << seck << endl;
|
||||||
IsSkewed(msg_disLowBusFbMsg_Update_time,&seck);
|
if(!IsSkewed(msg_disLowBusFbMsg_Update_time,&seck))
|
||||||
connectState++;
|
connectState++;
|
||||||
// cout << "seck:" << seck << endl;
|
// cout << "seck:" << seck << endl;
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
@@ -546,17 +566,20 @@ bool PowerManger::saveStringToJsonFile(const string &strJson, const string &file
|
|||||||
|
|
||||||
bool PowerManger::writeDataToDB()
|
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;
|
|
||||||
// //写入配电系统状态
|
// //写入配电系统状态
|
||||||
// if(!m_db->insertDisCcuData(m_pmCurrentState))
|
// if(!m_db->insertDisCcuData(m_pmCurrentState))
|
||||||
// return false;
|
// return false;
|
||||||
|
//写入设备状态
|
||||||
|
if(!m_db->insertDriverTables(m_currentDriverState,VAR_TO_STR(m_currentDriverState)))
|
||||||
|
return false;
|
||||||
|
if(!m_db->insertDriverTables(m_subDisSysState,VAR_TO_STR(m_subDisSysState)))
|
||||||
|
return false;
|
||||||
|
if(!m_db->insertDriverTables(m_subDisSysCmd,VAR_TO_STR(m_subDisSysCmd)))
|
||||||
|
return false;
|
||||||
|
if(!m_db->insertDriverTables(m_MSDriverCmd,VAR_TO_STR(m_MSDriverCmd)))
|
||||||
|
return false;
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -577,9 +600,10 @@ void PowerManger::printState(FSM_State st, string desp){
|
|||||||
int PowerManger::handleInite_s1(FSM_State &fsm, void* pData)
|
int PowerManger::handleInite_s1(FSM_State &fsm, void* pData)
|
||||||
{
|
{
|
||||||
PowerManger* pm = (PowerManger*)pData;
|
PowerManger* pm = (PowerManger*)pData;
|
||||||
|
bool ok = true;
|
||||||
//1. 检查通信是否正常 如果超时则进入故障状态
|
//1. 检查通信是否正常 如果超时则进入故障状态
|
||||||
double StartTime = pm->GetAppStartTime();
|
double StartTime = pm->GetAppStartTime();
|
||||||
while (!pm->connectState == 5)
|
while (pm->connectState < 5)
|
||||||
{
|
{
|
||||||
MOOSPause(1000);
|
MOOSPause(1000);
|
||||||
pm->updateTime();
|
pm->updateTime();
|
||||||
@@ -587,14 +611,14 @@ int PowerManger::handleInite_s1(FSM_State &fsm, void* pData)
|
|||||||
if(dft > 10)
|
if(dft > 10)
|
||||||
{
|
{
|
||||||
pm->m_pmState = pm->m_Fault_s99;
|
pm->m_pmState = pm->m_Fault_s99;
|
||||||
pm->m_faultNum = 1;
|
pm->m_faultNum = 1; //通信故障
|
||||||
|
ok = false;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
string desp = "等待复合管控消息 : " + to_string(10-dft);
|
string desp = "等待复合管控消息 : " + to_string(10-dft);
|
||||||
pm->printState(fsm,desp);
|
pm->printState(fsm,desp);
|
||||||
}
|
}
|
||||||
//2. 检查复合管控器是否上报故障 如果故障则进入故障状态
|
//2. 检查复合管控器是否上报故障 如果故障则进入故障状态
|
||||||
bool ok = true;
|
|
||||||
if(pm->m_pmCurrentState.ccustate.fcuGZ_1H != 0 ||
|
if(pm->m_pmCurrentState.ccustate.fcuGZ_1H != 0 ||
|
||||||
pm->m_pmCurrentState.ccustate.fcuGZ_1L != 0 ||
|
pm->m_pmCurrentState.ccustate.fcuGZ_1L != 0 ||
|
||||||
pm->m_pmCurrentState.ccustate.fcuGZ_2H != 0 ||
|
pm->m_pmCurrentState.ccustate.fcuGZ_2H != 0 ||
|
||||||
@@ -604,13 +628,15 @@ int PowerManger::handleInite_s1(FSM_State &fsm, void* pData)
|
|||||||
pm->m_pmCurrentState.ccustate.insEmergencyStatusWord != 0)
|
pm->m_pmCurrentState.ccustate.insEmergencyStatusWord != 0)
|
||||||
{
|
{
|
||||||
ok = false;
|
ok = false;
|
||||||
|
pm->m_faultNum = 2; //能源故障
|
||||||
}
|
}
|
||||||
|
//3. 初始化系统为待机状态
|
||||||
|
pm->initControlCmd();
|
||||||
|
//4.判断关键断路器是否闭合
|
||||||
if(!ok)
|
if(!ok)
|
||||||
{
|
{
|
||||||
pm->m_pmState = pm->m_Fault_s99;
|
pm->m_pmState = pm->m_Fault_s99;
|
||||||
}
|
}
|
||||||
//3. 初始化系统为待机状态
|
|
||||||
pm->initControlCmd();
|
|
||||||
pm->m_pmState = pm->m_Standby_s2;
|
pm->m_pmState = pm->m_Standby_s2;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -701,6 +727,9 @@ void PowerManger::initControlCmd()
|
|||||||
m_msCmd.modCMD = 0;
|
m_msCmd.modCMD = 0;
|
||||||
m_msCmd.powerCMD = 0;
|
m_msCmd.powerCMD = 0;
|
||||||
m_msCmd.workCMD = 0;
|
m_msCmd.workCMD = 0;
|
||||||
|
|
||||||
|
//================初始化设备驱动指令========================
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
char PowerManger::getBreakerOption(char cmd)
|
char PowerManger::getBreakerOption(char cmd)
|
||||||
|
|||||||
@@ -17,6 +17,75 @@ bool SQLiteDB::bindParameters(sqlite3_stmt* stmt, const T& data) {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template<>
|
||||||
|
bool SQLiteDB::bindParameters<DriverTable>(sqlite3_stmt* stmt, const DriverTable& data)
|
||||||
|
{
|
||||||
|
int index = 1;
|
||||||
|
sqlite3_bind_int(stmt, index++, data.depth1);
|
||||||
|
sqlite3_bind_int(stmt, index++, data.depth2);
|
||||||
|
sqlite3_bind_int(stmt, index++, data.depth3);
|
||||||
|
sqlite3_bind_int(stmt, index++, data.overDeep1);
|
||||||
|
sqlite3_bind_int(stmt, index++, data.overDeep2);
|
||||||
|
sqlite3_bind_int(stmt, index++, data.ctd1);
|
||||||
|
sqlite3_bind_int(stmt, index++, data.ctd2);
|
||||||
|
sqlite3_bind_int(stmt, index++, data.soundVeloc);
|
||||||
|
sqlite3_bind_int(stmt, index++, data.commMast);
|
||||||
|
sqlite3_bind_int(stmt, index++, data.ins);
|
||||||
|
sqlite3_bind_int(stmt, index++, data.ntp);
|
||||||
|
sqlite3_bind_int(stmt, index++, data.inputWaterSensor1);
|
||||||
|
sqlite3_bind_int(stmt, index++, data.inputWaterSensor2);
|
||||||
|
sqlite3_bind_int(stmt, index++, data.inputWaterSensor3);
|
||||||
|
sqlite3_bind_int(stmt, index++, data.singleBeamSonar1);
|
||||||
|
sqlite3_bind_int(stmt, index++, data.singleBeamSonar2);
|
||||||
|
sqlite3_bind_int(stmt, index++, data.singleBeamSonar3);
|
||||||
|
sqlite3_bind_int(stmt, index++, data.singleBeamSonar4);
|
||||||
|
sqlite3_bind_int(stmt, index++, data.singleBeamSonar5);
|
||||||
|
sqlite3_bind_int(stmt, index++, data.singleBeamSonar6);
|
||||||
|
sqlite3_bind_int(stmt, index++, data.singleBeamSonar7);
|
||||||
|
sqlite3_bind_int(stmt, index++, data.singleBeamSonar8);
|
||||||
|
sqlite3_bind_int(stmt, index++, data.forwardSonar);
|
||||||
|
sqlite3_bind_int(stmt, index++, data.DVL);
|
||||||
|
sqlite3_bind_int(stmt, index++, data.lowFreqSonar);
|
||||||
|
sqlite3_bind_int(stmt, index++, data.USBL);
|
||||||
|
sqlite3_bind_int(stmt, index++, data.bowWaterlnet1);
|
||||||
|
sqlite3_bind_int(stmt, index++, data.bowWaterlnet2);
|
||||||
|
sqlite3_bind_int(stmt, index++, data.bowWaterlnet3);
|
||||||
|
sqlite3_bind_int(stmt, index++, data.bowWaterlnet4);
|
||||||
|
sqlite3_bind_int(stmt, index++, data.bowWaterlnet5);
|
||||||
|
sqlite3_bind_int(stmt, index++, data.bowWaterlnet6);
|
||||||
|
sqlite3_bind_int(stmt, index++, data.bowWaterlnet7);
|
||||||
|
sqlite3_bind_int(stmt, index++, data.bowWaterlnet8);
|
||||||
|
sqlite3_bind_int(stmt, index++, data.bowRudderDeploy);
|
||||||
|
sqlite3_bind_int(stmt, index++, data.bowRudderServo1);
|
||||||
|
sqlite3_bind_int(stmt, index++, data.bowRudderServo2);
|
||||||
|
sqlite3_bind_int(stmt, index++, data.bowCover1);
|
||||||
|
sqlite3_bind_int(stmt, index++, data.bowCover2);
|
||||||
|
sqlite3_bind_int(stmt, index++, data.bowCover3);
|
||||||
|
sqlite3_bind_int(stmt, index++, data.bowCover4);
|
||||||
|
sqlite3_bind_int(stmt, index++, data.bowCover5);
|
||||||
|
sqlite3_bind_int(stmt, index++, data.bowCover6);
|
||||||
|
sqlite3_bind_int(stmt, index++, data.waterInject);
|
||||||
|
sqlite3_bind_int(stmt, index++, data.mastLiftingServo);
|
||||||
|
sqlite3_bind_int(stmt, index++, data.buoyancyAdjust1);
|
||||||
|
sqlite3_bind_int(stmt, index++, data.buoyancyAdjust2);
|
||||||
|
sqlite3_bind_int(stmt, index++, data.buoyancyAdjust3);
|
||||||
|
sqlite3_bind_int(stmt, index++, data.buoyancyAdjust4);
|
||||||
|
sqlite3_bind_int(stmt, index++, data.buoyancyAdjust5);
|
||||||
|
sqlite3_bind_int(stmt, index++, data.sternRudderServo1);
|
||||||
|
sqlite3_bind_int(stmt, index++, data.sternRudderServo2);
|
||||||
|
sqlite3_bind_int(stmt, index++, data.sternRudderServo3);
|
||||||
|
sqlite3_bind_int(stmt, index++, data.sternRudderServo4);
|
||||||
|
sqlite3_bind_int(stmt, index++, data.thruster);
|
||||||
|
sqlite3_bind_int(stmt, index++, data.bowThrow);
|
||||||
|
sqlite3_bind_int(stmt, index++, data.sternThrow);
|
||||||
|
sqlite3_bind_int(stmt, index++, data.photoSensor);
|
||||||
|
sqlite3_bind_int(stmt, index++, data.electSensor);
|
||||||
|
sqlite3_bind_int(stmt, index++, data.launchControler);
|
||||||
|
sqlite3_bind_int(stmt, index++, data.sideSonar);
|
||||||
|
sqlite3_bind_int(stmt, index++, data.buoyage);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
// 为ccuState特化实现
|
// 为ccuState特化实现
|
||||||
template<>
|
template<>
|
||||||
bool SQLiteDB::bindParameters<ccuState>(sqlite3_stmt* stmt, const ccuState& data) {
|
bool SQLiteDB::bindParameters<ccuState>(sqlite3_stmt* stmt, const ccuState& data) {
|
||||||
@@ -317,6 +386,84 @@ bool SQLiteDB::createPowerDataTables() {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool SQLiteDB::createDriversTables(string tableName)
|
||||||
|
{
|
||||||
|
if (!m_db) return false;
|
||||||
|
|
||||||
|
string createTableSQL = "CREATE TABLE IF NOT EXISTS " + tableName + " ("
|
||||||
|
"timestamp DATETIME DEFAULT (strftime('%Y-%m-%d %H:%M:%f', 'now')), "
|
||||||
|
"DVL INTEGER DEFAULT 0, "
|
||||||
|
"USBL INTEGER DEFAULT 0, "
|
||||||
|
"bowCover1 INTEGER DEFAULT 0, "
|
||||||
|
"bowCover2 INTEGER DEFAULT 0, "
|
||||||
|
"bowCover3 INTEGER DEFAULT 0, "
|
||||||
|
"bowCover4 INTEGER DEFAULT 0, "
|
||||||
|
"bowCover5 INTEGER DEFAULT 0, "
|
||||||
|
"bowCover6 INTEGER DEFAULT 0, "
|
||||||
|
"bowRudderDeploy INTEGER DEFAULT 0, "
|
||||||
|
"bowRudderServo1 INTEGER DEFAULT 0, "
|
||||||
|
"bowRudderServo2 INTEGER DEFAULT 0, "
|
||||||
|
"bowThrow INTEGER DEFAULT 0, "
|
||||||
|
"bowWaterlnet1 INTEGER DEFAULT 0, "
|
||||||
|
"bowWaterlnet2 INTEGER DEFAULT 0, "
|
||||||
|
"bowWaterlnet3 INTEGER DEFAULT 0, "
|
||||||
|
"bowWaterlnet4 INTEGER DEFAULT 0, "
|
||||||
|
"bowWaterlnet5 INTEGER DEFAULT 0, "
|
||||||
|
"bowWaterlnet6 INTEGER DEFAULT 0, "
|
||||||
|
"bowWaterlnet7 INTEGER DEFAULT 0, "
|
||||||
|
"bowWaterlnet8 INTEGER DEFAULT 0, "
|
||||||
|
"buoyage INTEGER DEFAULT 0, "
|
||||||
|
"buoyancyAdjust1 INTEGER DEFAULT 0, "
|
||||||
|
"buoyancyAdjust2 INTEGER DEFAULT 0, "
|
||||||
|
"buoyancyAdjust3 INTEGER DEFAULT 0, "
|
||||||
|
"buoyancyAdjust4 INTEGER DEFAULT 0, "
|
||||||
|
"buoyancyAdjust5 INTEGER DEFAULT 0, "
|
||||||
|
"commMast INTEGER DEFAULT 0, "
|
||||||
|
"ctd1 INTEGER DEFAULT 0, "
|
||||||
|
"ctd2 INTEGER DEFAULT 0, "
|
||||||
|
"depth1 INTEGER DEFAULT 0, "
|
||||||
|
"depth2 INTEGER DEFAULT 0, "
|
||||||
|
"depth3 INTEGER DEFAULT 0, "
|
||||||
|
"electSensor INTEGER DEFAULT 0, "
|
||||||
|
"forwardSonar INTEGER DEFAULT 0, "
|
||||||
|
"inputWaterSensor1 INTEGER DEFAULT 0, "
|
||||||
|
"inputWaterSensor2 INTEGER DEFAULT 0, "
|
||||||
|
"inputWaterSensor3 INTEGER DEFAULT 0, "
|
||||||
|
"ins INTEGER DEFAULT 0, "
|
||||||
|
"launchControler INTEGER DEFAULT 0, "
|
||||||
|
"lowFreqSonar INTEGER DEFAULT 0, "
|
||||||
|
"mastLiftingServo INTEGER DEFAULT 0, "
|
||||||
|
"ntp INTEGER DEFAULT 0, "
|
||||||
|
"overDeep1 INTEGER DEFAULT 0, "
|
||||||
|
"overDeep2 INTEGER DEFAULT 0, "
|
||||||
|
"photoSensor INTEGER DEFAULT 0, "
|
||||||
|
"sideSonar INTEGER DEFAULT 0, "
|
||||||
|
"singleBeamSonar1 INTEGER DEFAULT 0, "
|
||||||
|
"singleBeamSonar2 INTEGER DEFAULT 0, "
|
||||||
|
"singleBeamSonar3 INTEGER DEFAULT 0, "
|
||||||
|
"singleBeamSonar4 INTEGER DEFAULT 0, "
|
||||||
|
"singleBeamSonar5 INTEGER DEFAULT 0, "
|
||||||
|
"singleBeamSonar6 INTEGER DEFAULT 0, "
|
||||||
|
"singleBeamSonar7 INTEGER DEFAULT 0, "
|
||||||
|
"singleBeamSonar8 INTEGER DEFAULT 0, "
|
||||||
|
"soundVeloc INTEGER DEFAULT 0, "
|
||||||
|
"sternRudderServo1 INTEGER DEFAULT 0, "
|
||||||
|
"sternRudderServo2 INTEGER DEFAULT 0, "
|
||||||
|
"sternRudderServo3 INTEGER DEFAULT 0, "
|
||||||
|
"sternRudderServo4 INTEGER DEFAULT 0, "
|
||||||
|
"sternThrow INTEGER DEFAULT 0, "
|
||||||
|
"thruster INTEGER DEFAULT 0, "
|
||||||
|
"waterInject INTEGER DEFAULT 0"
|
||||||
|
");";
|
||||||
|
char* errMsg = nullptr;
|
||||||
|
if (sqlite3_exec(m_db, createTableSQL.c_str(), nullptr, nullptr, &errMsg) != SQLITE_OK) {
|
||||||
|
std::cerr << "SQL error: " << errMsg << std::endl;
|
||||||
|
sqlite3_free(errMsg);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
bool SQLiteDB::createStateTables() {
|
bool SQLiteDB::createStateTables() {
|
||||||
if (!m_db) return false;
|
if (!m_db) return false;
|
||||||
|
|
||||||
@@ -482,6 +629,8 @@ bool SQLiteDB::clearStateData() {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
bool SQLiteDB::insertDisCcuData(pmState s, bool filter) {
|
bool SQLiteDB::insertDisCcuData(pmState s, bool filter) {
|
||||||
if (!m_db) return false;
|
if (!m_db) return false;
|
||||||
|
|
||||||
@@ -774,6 +923,32 @@ bool SQLiteDB::insertDisLowBusData(disLowBusState s)
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool SQLiteDB::insertDriverTables(DriverTable driverTable,string tableName)
|
||||||
|
{
|
||||||
|
if (!m_db) return false;
|
||||||
|
|
||||||
|
// 构建插入语句
|
||||||
|
std::string insertSql = "INSERT INTO " + tableName + " ("
|
||||||
|
"depth1, depth2, depth3, overDeep1, overDeep2, ctd1, ctd2, soundVeloc, commMast, ins, ntp, "
|
||||||
|
"inputWaterSensor1, inputWaterSensor2, inputWaterSensor3, "
|
||||||
|
"singleBeamSonar1, singleBeamSonar2, singleBeamSonar3, singleBeamSonar4, singleBeamSonar5, "
|
||||||
|
"singleBeamSonar6, singleBeamSonar7, singleBeamSonar8, forwardSonar, DVL, lowFreqSonar, USBL, "
|
||||||
|
"bowWaterlnet1, bowWaterlnet2, bowWaterlnet3, bowWaterlnet4, bowWaterlnet5, bowWaterlnet6, "
|
||||||
|
"bowWaterlnet7, bowWaterlnet8, bowRudderDeploy, bowRudderServo1, bowRudderServo2, "
|
||||||
|
"bowCover1, bowCover2, bowCover3, bowCover4, bowCover5, bowCover6, waterInject, "
|
||||||
|
"mastLiftingServo, buoyancyAdjust1, buoyancyAdjust2, buoyancyAdjust3, buoyancyAdjust4, "
|
||||||
|
"buoyancyAdjust5, sternRudderServo1, sternRudderServo2, sternRudderServo3, sternRudderServo4, "
|
||||||
|
"thruster, bowThrow, sternThrow, "
|
||||||
|
"photoSensor, electSensor, launchControler, sideSonar, buoyage) "
|
||||||
|
"VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, "
|
||||||
|
"?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, "
|
||||||
|
"?, ?, ?, ?, ?, ?, ?, ?);";
|
||||||
|
|
||||||
|
// 执行插入操作
|
||||||
|
bool result = executeInsert(insertSql.c_str(), driverTable);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
template<typename T>
|
template<typename T>
|
||||||
bool SQLiteDB::executeInsert(const char* sql, const T& data) {
|
bool SQLiteDB::executeInsert(const char* sql, const T& data) {
|
||||||
sqlite3_stmt* stmt;
|
sqlite3_stmt* stmt;
|
||||||
@@ -799,7 +974,6 @@ bool SQLiteDB::executeInsert(const char* sql, const T& data) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
bool SQLiteDB::createDisCcuSysTables() {
|
bool SQLiteDB::createDisCcuSysTables() {
|
||||||
if (!m_db) return false;
|
if (!m_db) return false;
|
||||||
|
|
||||||
|
|||||||
@@ -7,6 +7,7 @@
|
|||||||
#include "json/json.h"
|
#include "json/json.h"
|
||||||
#include "ccuUdpMsg.h"
|
#include "ccuUdpMsg.h"
|
||||||
#include "pmSysvariable.h"
|
#include "pmSysvariable.h"
|
||||||
|
#include "driver.h"
|
||||||
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
struct PowerData {
|
struct PowerData {
|
||||||
@@ -26,11 +27,11 @@ struct StateData {
|
|||||||
};
|
};
|
||||||
|
|
||||||
// 前向声明
|
// 前向声明
|
||||||
struct ccuState;
|
// struct ccuState;
|
||||||
struct disHighVolBusState;
|
// struct disHighVolBusState;
|
||||||
struct disHighAVolBusState;
|
// struct disHighAVolBusState;
|
||||||
struct disHighBVolBusState;
|
// struct disHighBVolBusState;
|
||||||
struct disLowBusState;
|
// struct disLowBusState;
|
||||||
|
|
||||||
class SQLiteDB {
|
class SQLiteDB {
|
||||||
public:
|
public:
|
||||||
@@ -47,6 +48,7 @@ public:
|
|||||||
bool createPowerDataTables();
|
bool createPowerDataTables();
|
||||||
bool createStateTables();
|
bool createStateTables();
|
||||||
bool createDisCcuSysTables();
|
bool createDisCcuSysTables();
|
||||||
|
bool createDriversTables(string tableName);
|
||||||
|
|
||||||
bool clearPowerData();
|
bool clearPowerData();
|
||||||
bool clearStateData();
|
bool clearStateData();
|
||||||
@@ -55,6 +57,7 @@ public:
|
|||||||
bool insertPowerData(const PowerData& powerData);
|
bool insertPowerData(const PowerData& powerData);
|
||||||
bool insertStateData(StateData stateData,bool filter=true);
|
bool insertStateData(StateData stateData,bool filter=true);
|
||||||
|
|
||||||
|
|
||||||
bool insertCcuData(ccuState s);
|
bool insertCcuData(ccuState s);
|
||||||
bool insertDisHighVolBusData(disHighVolBusState s);
|
bool insertDisHighVolBusData(disHighVolBusState s);
|
||||||
bool insertDisHighAVolBusData(disHighAVolBusState s);
|
bool insertDisHighAVolBusData(disHighAVolBusState s);
|
||||||
@@ -67,6 +70,8 @@ public:
|
|||||||
bool insertDisSysCmd(disHighBVolBusCmd cmd);
|
bool insertDisSysCmd(disHighBVolBusCmd cmd);
|
||||||
bool insertDisSysCmd(disLowBusCmd cmd);
|
bool insertDisSysCmd(disLowBusCmd cmd);
|
||||||
|
|
||||||
|
bool insertDriverTables(DriverTable driverTable,string tableName);
|
||||||
|
|
||||||
bool insertDisCcuData(pmState s,bool filter=true);//由于信息同步原因,暂时不使用该函数
|
bool insertDisCcuData(pmState s,bool filter=true);//由于信息同步原因,暂时不使用该函数
|
||||||
|
|
||||||
// 获取最新的状态数据
|
// 获取最新的状态数据
|
||||||
|
|||||||
+14
-1
@@ -1,12 +1,16 @@
|
|||||||
#include "catch2/catch.hpp"
|
#include "catch2/catch.hpp"
|
||||||
#include "../src/pPowerManger/SQLiteDB.h"
|
#include "../src/pPowerManger/SQLiteDB.h"
|
||||||
|
#include "../src/pPowerManger/driver.h"
|
||||||
|
|
||||||
TEST_CASE("SQLiteDB Test", "[SQLiteDB]") {
|
TEST_CASE("SQLiteDB Test", "[SQLiteDB]") {
|
||||||
SQLiteDB db("test.db");
|
SQLiteDB db("test.db");
|
||||||
|
|
||||||
SECTION("Create Tables") {
|
SECTION("Create Tables") {
|
||||||
REQUIRE(db.createPowerDataTables() == true);
|
REQUIRE(db.createPowerDataTables() == true);
|
||||||
REQUIRE(db.createStateTables() == true);
|
// REQUIRE(db.createStateTables() == true);
|
||||||
|
REQUIRE(db.createDisCcuSysTables() == true);
|
||||||
|
REQUIRE(db.createDriversTables("test") == true);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
SECTION("Test isDatabaseConnected") {
|
SECTION("Test isDatabaseConnected") {
|
||||||
@@ -37,5 +41,14 @@ TEST_CASE("SQLiteDB Test", "[SQLiteDB]") {
|
|||||||
//REQUIRE(db.clearPowerData(stateDataForGet) == true);
|
//REQUIRE(db.clearPowerData(stateDataForGet) == true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
SECTION("Test insertStateData") {
|
||||||
|
|
||||||
|
for(int i = 0; i < 100; i++)
|
||||||
|
{ DriverTable driver;
|
||||||
|
REQUIRE(db.insertDriverTables(driver,"test") == true);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user