|
|
|
@@ -14,12 +14,6 @@
|
|
|
|
|
using namespace std;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// bool _ListenCB(void * pParam)
|
|
|
|
|
// {
|
|
|
|
|
// // PowerManger* pMe = (PowerManger* )pParam;
|
|
|
|
|
// // return pMe->ListenLoopUDP();
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
bool _FsmCB(void * pParam)
|
|
|
|
|
{
|
|
|
|
|
PowerManger* pMe = (PowerManger* )pParam;
|
|
|
|
@@ -73,7 +67,6 @@ PowerManger::PowerManger()
|
|
|
|
|
|
|
|
|
|
//初始化UDP通信
|
|
|
|
|
m_lowerCommManager = new LowerCommManager(this,IPORT,CCUPORT,CCUHOST);
|
|
|
|
|
|
|
|
|
|
m_lowerCommManager->initUdpComm();
|
|
|
|
|
|
|
|
|
|
// 初始化状态机
|
|
|
|
@@ -194,6 +187,7 @@ bool PowerManger::Iterate()
|
|
|
|
|
writeDataToDB();
|
|
|
|
|
}
|
|
|
|
|
m_lowerCommManager->processPeriodicTasks();
|
|
|
|
|
|
|
|
|
|
///////////////////////
|
|
|
|
|
// string a = m_driver.getSubDisCmdJson(&m_subDisSysCmd);
|
|
|
|
|
// saveStringToJsonFile(a,"/home/zjk/project/H100/H100PowerManger/data/subDisSysCmd.json");
|
|
|
|
@@ -479,70 +473,6 @@ bool PowerManger::IsSkewed(double dfTimeNow, double * pdfSkew)
|
|
|
|
|
return (dfSkew > SKEW_TOLERANCE) ? true : false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// void PowerManger::ccuOption()
|
|
|
|
|
// {
|
|
|
|
|
// m_db->insertCcuSysCmd(m_CcuColCmd);
|
|
|
|
|
// if(!m_udpComm.sendCcuColCmd(m_CcuColCmd))
|
|
|
|
|
// cout << "send ccu col cmd failed!" << endl;
|
|
|
|
|
// }
|
|
|
|
|
// void PowerManger::disSysOption()
|
|
|
|
|
// {
|
|
|
|
|
|
|
|
|
|
// //根据目标状态进行断路器操作
|
|
|
|
|
// //a. 高压母线的断路器
|
|
|
|
|
// disHighVolBusCmd a;
|
|
|
|
|
// a.fuelCellCircuitBreaker = getBreakerOption(m_targetDisBreakerState.bus1Breaker.fuelCellCircuitBreaker);
|
|
|
|
|
// a.lithiumBatteryGroupInstrumentCircuitBreaker = getBreakerOption(m_targetDisBreakerState.bus1Breaker.lithiumBatteryGroupInstrumentCircuitBreaker);
|
|
|
|
|
// a.dcDc5ModuleCircuitBreaker = getBreakerOption(m_targetDisBreakerState.bus1Breaker.dcDc5ModuleCircuitBreaker);
|
|
|
|
|
// a.powerLithiumBatteryCircuitBreaker = getBreakerOption(m_targetDisBreakerState.bus1Breaker.powerLithiumBatteryCircuitBreaker);
|
|
|
|
|
// a.propulsionMotorCircuitBreaker = getBreakerOption(m_targetDisBreakerState.bus1Breaker.propulsionMotorCircuitBreaker);
|
|
|
|
|
// a.bowHighVoltageDistributionBoxCircuitBreaker = getBreakerOption(m_targetDisBreakerState.bus1Breaker.bowHighVoltageDistributionBoxCircuitBreaker);
|
|
|
|
|
// a.tyzReservedCircuitBreaker = getBreakerOption(m_targetDisBreakerState.bus1Breaker.tyzReservedCircuitBreaker);
|
|
|
|
|
// a.sternFTDevice45CircuitBreaker = getBreakerOption(m_targetDisBreakerState.bus1Breaker.sternFTDevice45CircuitBreaker);
|
|
|
|
|
// a.sternRudderSwitch1CircuitBreaker = getBreakerOption(m_targetDisBreakerState.bus1Breaker.sternRudderSwitch1CircuitBreaker);
|
|
|
|
|
// a.sternRudderSwitch2CircuitBreaker = getBreakerOption(m_targetDisBreakerState.bus1Breaker.sternRudderSwitch2CircuitBreaker);
|
|
|
|
|
// a.reservedCircuitBreaker = getBreakerOption(m_targetDisBreakerState.bus1Breaker.reservedCircuitBreaker);
|
|
|
|
|
// a.fbReservedCircuitBreaker = getBreakerOption(m_targetDisBreakerState.bus1Breaker.fbReservedCircuitBreaker);
|
|
|
|
|
// m_udpComm.sendDisSysCmd(a);
|
|
|
|
|
// //b. 高压汇流排A断路器
|
|
|
|
|
// disHighAVolBusCmd b;
|
|
|
|
|
// b.bowFTDevice123CircuitBreaker = getBreakerOption(m_targetDisBreakerState.bus2Breaker.bowFTDevice123CircuitBreaker);
|
|
|
|
|
// b.actuatorCircuitBreaker = getBreakerOption(m_targetDisBreakerState.bus2Breaker.actuatorCircuitBreaker);
|
|
|
|
|
// b.mastSteeringGearControlBoxCircuitBreaker = getBreakerOption(m_targetDisBreakerState.bus2Breaker.mastSteeringGearControlBoxCircuitBreaker);
|
|
|
|
|
// b.xczCircuitBreaker = getBreakerOption(m_targetDisBreakerState.bus2Breaker.xczCircuitBreaker);
|
|
|
|
|
// b.bowRudderControlBoxCircuitBreaker = getBreakerOption(m_targetDisBreakerState.bus2Breaker.bowRudderControlBoxCircuitBreaker);
|
|
|
|
|
// b.openWaterCoverStartCylinderCircuitBreaker = getBreakerOption(m_targetDisBreakerState.bus2Breaker.openWaterCoverStartCylinderCircuitBreaker);
|
|
|
|
|
// m_udpComm.sendDisSysCmd(b);
|
|
|
|
|
// //c. 高压汇流排B断路器
|
|
|
|
|
// disHighBVolBusCmd c;
|
|
|
|
|
// c.lithiumBatteryGroupInstrumentCircuitBreaker = getBreakerOption(m_targetDisBreakerState.bus3Breaker.lithiumBatteryGroupInstrumentCircuitBreaker);
|
|
|
|
|
// c.bowLowVoltageDistributionBoxCircuitBreaker = getBreakerOption(m_targetDisBreakerState.bus3Breaker.bowLowVoltageDistributionBoxCircuitBreaker);
|
|
|
|
|
// c.unit4InstrumentDC48VCircuitBreaker = getBreakerOption(m_targetDisBreakerState.bus3Breaker.unit4InstrumentDC48VCircuitBreaker);
|
|
|
|
|
// c.dcC1DCDistributionPanelCircuitBreaker = getBreakerOption(m_targetDisBreakerState.bus3Breaker.dcC1DCDistributionPanelCircuitBreaker);
|
|
|
|
|
// c.reservedCircuitBreaker1 = getBreakerOption(m_targetDisBreakerState.bus3Breaker.reservedCircuitBreaker1);
|
|
|
|
|
// c.reservedCircuitBreaker2 = getBreakerOption(m_targetDisBreakerState.bus3Breaker.reservedCircuitBreaker2);
|
|
|
|
|
// c.emergencyLithiumBatteryGroup2CircuitBreaker = getBreakerOption(m_targetDisBreakerState.bus3Breaker.emergencyLithiumBatteryGroup2CircuitBreaker);
|
|
|
|
|
// m_udpComm.sendDisSysCmd(c);
|
|
|
|
|
// //d. 闭合低压汇流排断路器
|
|
|
|
|
// disLowBusCmd d;
|
|
|
|
|
// d.unit1CircuitBreaker = getBreakerOption(m_targetDisBreakerState.bus4Breaker.unit1CircuitBreaker);
|
|
|
|
|
// d.unit2CircuitBreaker = getBreakerOption(m_targetDisBreakerState.bus4Breaker.unit2CircuitBreaker);
|
|
|
|
|
// d.unit3CircuitBreaker = getBreakerOption(m_targetDisBreakerState.bus4Breaker.unit3CircuitBreaker);
|
|
|
|
|
// d.unit5CircuitBreaker = getBreakerOption(m_targetDisBreakerState.bus4Breaker.unit5CircuitBreaker);
|
|
|
|
|
// d.bowPZDeviceCircuitBreaker = getBreakerOption(m_targetDisBreakerState.bus4Breaker.bowPZDeviceCircuitBreaker);
|
|
|
|
|
// d.reservedCircuitBreaker1 = getBreakerOption(m_targetDisBreakerState.bus4Breaker.reservedCircuitBreaker1);
|
|
|
|
|
// d.reservedCircuitBreaker2 = getBreakerOption(m_targetDisBreakerState.bus4Breaker.reservedCircuitBreaker2);
|
|
|
|
|
// d.emergencyLithiumBatteryGroup1CircuitBreaker = getBreakerOption(m_targetDisBreakerState.bus4Breaker.emergencyLithiumBatteryGroup1CircuitBreaker);
|
|
|
|
|
// m_udpComm.sendDisSysCmd(d);
|
|
|
|
|
// //将指令写入数据库
|
|
|
|
|
// m_db->insertDisSysCmd(a);
|
|
|
|
|
// m_db->insertDisSysCmd(b);
|
|
|
|
|
// m_db->insertDisSysCmd(c);
|
|
|
|
|
// m_db->insertDisSysCmd(d);
|
|
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
bool PowerManger::saveStringToJsonFile(const string &strJson, const string &filePath)
|
|
|
|
|
{
|
|
|
|
|
std::ofstream file(filePath, std::ios::trunc);
|
|
|
|
|