|
|
@ -60,53 +60,123 @@ void DeviceIoControlService::processReportMsg(uint8_t from, uint8_t *hex, uint32 |
|
|
|
// 加液泵控制
|
|
|
|
#define COMPONENT HardwareComponent::AddLiquidPump
|
|
|
|
void DeviceIoControlService::AddLiquidPump_addLiquid() { |
|
|
|
if (isInPc()) return; |
|
|
|
|
|
|
|
int pumpspeed = GET_SETTING(int, SettingId::drainage_pump_speed); |
|
|
|
CAN_MASTER->pumpRotate(GET_BOARDID(), GET_SUBID(), pumpspeed); |
|
|
|
} |
|
|
|
void DeviceIoControlService::AddLiquidPump_drainLiquid() { |
|
|
|
if (isInPc()) return; |
|
|
|
|
|
|
|
int pumpspeed = GET_SETTING(int, SettingId::drainage_pump_speed); |
|
|
|
CAN_MASTER->pumpRotate(GET_BOARDID(), GET_SUBID(), -pumpspeed); |
|
|
|
} |
|
|
|
void DeviceIoControlService::AddLiquidPump_run(int rpm) { CAN_MASTER->pumpRotate(GET_BOARDID(), GET_SUBID(), rpm); } |
|
|
|
void DeviceIoControlService::AddLiquidPump_run(int rpm) { |
|
|
|
if (isInPc()) return; |
|
|
|
|
|
|
|
CAN_MASTER->pumpRotate(GET_BOARDID(), GET_SUBID(), rpm); |
|
|
|
} |
|
|
|
|
|
|
|
void DeviceIoControlService::AddLiquidPump_stop() { CAN_MASTER->pumpStop(GET_BOARDID(), GET_SUBID()); } |
|
|
|
void DeviceIoControlService::AddLiquidPump_stop() { |
|
|
|
if (isInPc()) return; |
|
|
|
|
|
|
|
CAN_MASTER->pumpStop(GET_BOARDID(), GET_SUBID()); |
|
|
|
} |
|
|
|
#undef COMPONENT
|
|
|
|
|
|
|
|
// 喷雾泵控制
|
|
|
|
#define COMPONENT HardwareComponent::SprayPump
|
|
|
|
void DeviceIoControlService::SprayPump_start(int32_t gpm) { |
|
|
|
if (isInPc()) return; |
|
|
|
|
|
|
|
int pumpspeed_rpm = ProjectPort::ins().gpm2speed(gpm); |
|
|
|
CAN_MASTER->pumpRotate(GET_BOARDID(), GET_SUBID(), pumpspeed_rpm); |
|
|
|
} |
|
|
|
void DeviceIoControlService::SprayPump_stop() { CAN_MASTER->pumpStop(GET_BOARDID(), GET_SUBID()); } |
|
|
|
void DeviceIoControlService::SprayPump_startInRPM(int32_t rpm) { CAN_MASTER->pumpRotate(GET_BOARDID(), GET_SUBID(), rpm); } |
|
|
|
void DeviceIoControlService::SprayPump_stop() { |
|
|
|
if (isInPc()) return; |
|
|
|
|
|
|
|
CAN_MASTER->pumpStop(GET_BOARDID(), GET_SUBID()); |
|
|
|
} |
|
|
|
void DeviceIoControlService::SprayPump_startInRPM(int32_t rpm) { |
|
|
|
if (isInPc()) return; |
|
|
|
|
|
|
|
CAN_MASTER->pumpRotate(GET_BOARDID(), GET_SUBID(), rpm); |
|
|
|
} |
|
|
|
#undef COMPONENT
|
|
|
|
|
|
|
|
// 鼓风机控制
|
|
|
|
#define COMPONENT HardwareComponent::Blower
|
|
|
|
void DeviceIoControlService::Blower_ctrl(int power) { CAN_MASTER->blowerCtrl(GET_BOARDID(), power); } |
|
|
|
void DeviceIoControlService::Blower_close() { CAN_MASTER->blowerCtrl(GET_BOARDID(), 0); } |
|
|
|
float DeviceIoControlService::Blower_readEI() { return CAN_MASTER->blowerReadEI(GET_BOARDID()) / 1000.0; } |
|
|
|
void DeviceIoControlService::Blower_ctrl(int power) { |
|
|
|
if (isInPc()) return; |
|
|
|
|
|
|
|
CAN_MASTER->blowerCtrl(GET_BOARDID(), power); |
|
|
|
} |
|
|
|
void DeviceIoControlService::Blower_close() { |
|
|
|
if (isInPc()) return; |
|
|
|
|
|
|
|
CAN_MASTER->blowerCtrl(GET_BOARDID(), 0); |
|
|
|
} |
|
|
|
float DeviceIoControlService::Blower_readEI() { |
|
|
|
if (isInPc()) return; |
|
|
|
|
|
|
|
return CAN_MASTER->blowerReadEI(GET_BOARDID()) / 1000.0; |
|
|
|
} |
|
|
|
#undef COMPONENT
|
|
|
|
|
|
|
|
// 空压机控制
|
|
|
|
#define COMPONENT HardwareComponent::AirCompressor
|
|
|
|
void DeviceIoControlService::AC_ctrl(int power) { CAN_MASTER->airCompressorCtrl(GET_BOARDID(), power); } |
|
|
|
void DeviceIoControlService::AC_close() { CAN_MASTER->airCompressorCtrl(GET_BOARDID(), 0); } |
|
|
|
float DeviceIoControlService::AC_readEI() { return CAN_MASTER->airCompressorReadEI(GET_BOARDID()) / 1000.0; } |
|
|
|
void DeviceIoControlService::AC_ctrl(int power) { |
|
|
|
if (isInPc()) return; |
|
|
|
|
|
|
|
CAN_MASTER->airCompressorCtrl(GET_BOARDID(), power); |
|
|
|
} |
|
|
|
void DeviceIoControlService::AC_close() { |
|
|
|
if (isInPc()) { |
|
|
|
return; |
|
|
|
} |
|
|
|
CAN_MASTER->airCompressorCtrl(GET_BOARDID(), 0); |
|
|
|
} |
|
|
|
float DeviceIoControlService::AC_readEI() { |
|
|
|
if (isInPc()) { |
|
|
|
return 0; |
|
|
|
} |
|
|
|
return CAN_MASTER->airCompressorReadEI(GET_BOARDID()) / 1000.0; |
|
|
|
} |
|
|
|
#undef COMPONENT
|
|
|
|
|
|
|
|
// 加热器控制
|
|
|
|
#define COMPONENT HardwareComponent::Heater
|
|
|
|
void DeviceIoControlService::Heater_ctrl(int power) { CAN_MASTER->heaterCtrl(GET_BOARDID(), power); } |
|
|
|
void DeviceIoControlService::Heater_close() { CAN_MASTER->heaterCtrl(GET_BOARDID(), 0); } |
|
|
|
float DeviceIoControlService::Heater_readEI() { return CAN_MASTER->heaterReadEI(GET_BOARDID()) / 1000.0; } |
|
|
|
float DeviceIoControlService::Heater_readTemperature() { return CAN_MASTER->heaterReadTemperature(GET_BOARDID()) / 10.0; } |
|
|
|
void DeviceIoControlService::Heater_ctrl(int power) { |
|
|
|
if (isInPc()) { |
|
|
|
return; |
|
|
|
} |
|
|
|
CAN_MASTER->heaterCtrl(GET_BOARDID(), power); |
|
|
|
} |
|
|
|
void DeviceIoControlService::Heater_close() { |
|
|
|
if (isInPc()) { |
|
|
|
return; |
|
|
|
} |
|
|
|
CAN_MASTER->heaterCtrl(GET_BOARDID(), 0); |
|
|
|
} |
|
|
|
float DeviceIoControlService::Heater_readEI() { |
|
|
|
if (isInPc()) { |
|
|
|
return 0; |
|
|
|
} |
|
|
|
return CAN_MASTER->heaterReadEI(GET_BOARDID()) / 1000.0; |
|
|
|
} |
|
|
|
float DeviceIoControlService::Heater_readTemperature() { |
|
|
|
if (isInPc()) { |
|
|
|
return 0; |
|
|
|
} |
|
|
|
return CAN_MASTER->heaterReadTemperature(GET_BOARDID()) / 10.0; |
|
|
|
} |
|
|
|
#undef COMPONENT
|
|
|
|
|
|
|
|
// 三色指示灯控制
|
|
|
|
#define COMPONENT HardwareComponent::WarningLight
|
|
|
|
void DeviceIoControlService::WarningLight_setState(int r, int g, int b, int warning) { //
|
|
|
|
if (isInPc()) return; |
|
|
|
|
|
|
|
CAN_MASTER->warningLightSetState(GET_BOARDID(), r, g, b, warning); |
|
|
|
} |
|
|
|
#undef COMPONENT
|
|
|
@ -118,46 +188,75 @@ void DeviceIoControlService::WarningLight_setState(int r, int g, int b, int warn |
|
|
|
|
|
|
|
#define COMPONENT HardwareComponent::PositivePressureProportional
|
|
|
|
void DeviceIoControlService::PosiPressureProp_setValve(int valveValue) { //
|
|
|
|
if (isInPc()) return; |
|
|
|
|
|
|
|
CAN_MASTER->proportionalSetValve(GET_BOARDID(), GET_SUBID(), valveValue); |
|
|
|
} |
|
|
|
int DeviceIoControlService::PosiPressureProp_readPos() { return CAN_MASTER->proportionalReadPos(GET_BOARDID(), GET_SUBID()); } |
|
|
|
bool DeviceIoControlService::PosiPressureProp_isBusy() { return CAN_MASTER->proportionalIsBusy(GET_BOARDID(), GET_SUBID()); } |
|
|
|
int DeviceIoControlService::PosiPressureProp_readPos() { |
|
|
|
if (isInPc()) return 0; |
|
|
|
return CAN_MASTER->proportionalReadPos(GET_BOARDID(), GET_SUBID()); |
|
|
|
} |
|
|
|
bool DeviceIoControlService::PosiPressureProp_isBusy() { |
|
|
|
if (isInPc()) return false; |
|
|
|
return CAN_MASTER->proportionalIsBusy(GET_BOARDID(), GET_SUBID()); |
|
|
|
} |
|
|
|
#undef COMPONENT
|
|
|
|
|
|
|
|
#define COMPONENT HardwareComponent::NegativePressureProportional
|
|
|
|
void DeviceIoControlService::NegaPressureProp_setValve(int valveValue) { CAN_MASTER->proportionalSetValve(GET_BOARDID(), GET_SUBID(), valveValue); } |
|
|
|
int DeviceIoControlService::NegaPressureProp_readPos() { return CAN_MASTER->proportionalReadPos(GET_BOARDID(), GET_SUBID()); } |
|
|
|
bool DeviceIoControlService::NegaPressureProp_isBusy() { return CAN_MASTER->proportionalIsBusy(GET_BOARDID(), GET_SUBID()); } |
|
|
|
void DeviceIoControlService::NegaPressureProp_setValve(int valveValue) { |
|
|
|
if (isInPc()) return; |
|
|
|
CAN_MASTER->proportionalSetValve(GET_BOARDID(), GET_SUBID(), valveValue); |
|
|
|
} |
|
|
|
int DeviceIoControlService::NegaPressureProp_readPos() { |
|
|
|
if (isInPc()) return 0; |
|
|
|
return CAN_MASTER->proportionalReadPos(GET_BOARDID(), GET_SUBID()); |
|
|
|
} |
|
|
|
bool DeviceIoControlService::NegaPressureProp_isBusy() { |
|
|
|
if (isInPc()) return false; |
|
|
|
return CAN_MASTER->proportionalIsBusy(GET_BOARDID(), GET_SUBID()); |
|
|
|
} |
|
|
|
#undef COMPONENT
|
|
|
|
|
|
|
|
#define COMPONENT HardwareComponent::AirLeakDetectTestChannelCtrl
|
|
|
|
void DeviceIoControlService::AirLeakDetectTestChannelCtrl_cutoffCh() { CAN_MASTER->airLeakDetectTestCloseOffCh(GET_BOARDID()); } |
|
|
|
void DeviceIoControlService::AirLeakDetectTestChannelCtrl_releaseCh() { CAN_MASTER->airLeakDetectTestReleaseCh(GET_BOARDID()); } |
|
|
|
void DeviceIoControlService::AirLeakDetectTestChannelCtrl_cutoffCh() { |
|
|
|
if (isInPc()) return; |
|
|
|
CAN_MASTER->airLeakDetectTestCloseOffCh(GET_BOARDID()); |
|
|
|
} |
|
|
|
void DeviceIoControlService::AirLeakDetectTestChannelCtrl_releaseCh() { |
|
|
|
if (isInPc()) return; |
|
|
|
CAN_MASTER->airLeakDetectTestReleaseCh(GET_BOARDID()); |
|
|
|
} |
|
|
|
#undef COMPONENT
|
|
|
|
|
|
|
|
// ExtChSelector
|
|
|
|
#define COMPONENT HardwareComponent::ExtChSelector
|
|
|
|
void DeviceIoControlService::ExtChSelector_selectCh(int ch) { CAN_MASTER->extChSelectorSetCh(GET_BOARDID(), ch); } |
|
|
|
void DeviceIoControlService::ExtChSelector_selectCh(int ch) { |
|
|
|
if (isInPc()) return; |
|
|
|
CAN_MASTER->extChSelectorSetCh(GET_BOARDID(), ch); |
|
|
|
} |
|
|
|
#undef COMPONENT
|
|
|
|
|
|
|
|
// 水浸传感器
|
|
|
|
|
|
|
|
// 蒸发仓水浸
|
|
|
|
#define COMPONENT HardwareComponent::EvaporationBinWS
|
|
|
|
bool DeviceIoControlService::WaterSensor_readEvaporationBin() { return CAN_MASTER->evaporationTankWSReadState(GET_BOARDID()); } |
|
|
|
bool DeviceIoControlService::WaterSensor_readEvaporationBin() { |
|
|
|
if (isInPc()) return false; |
|
|
|
return CAN_MASTER->evaporationTankWSReadState(GET_BOARDID()); |
|
|
|
} |
|
|
|
#undef COMPONENT
|
|
|
|
|
|
|
|
#define COMPONENT HardwareComponent::DeviceBottomWS
|
|
|
|
bool DeviceIoControlService::WaterSensor_readDeviceBottom() { return CAN_MASTER->bottomWSReadState(GET_BOARDID()); } // 设备底部水浸
|
|
|
|
bool DeviceIoControlService::WaterSensor_readDeviceBottom() { |
|
|
|
if (isInPc()) return false; |
|
|
|
return CAN_MASTER->bottomWSReadState(GET_BOARDID()); |
|
|
|
} // 设备底部水浸
|
|
|
|
#undef COMPONENT
|
|
|
|
|
|
|
|
// ACPostPS_To_Pa
|
|
|
|
// AirLeakDetectPS_To_Pa
|
|
|
|
// LiquidWeightPS_To_Pa
|
|
|
|
// SprayPumpPostPS_To_Pa
|
|
|
|
// AddLiquidPumpPostPS_To_Pa
|
|
|
|
#define COMPONENT HardwareComponent::ACPostPS
|
|
|
|
int DeviceIoControlService::ACPostPS_readPa() { //
|
|
|
|
if (isInPc()) return 0; |
|
|
|
|
|
|
|
int32_t val = CAN_MASTER->psBusReadData(GET_BOARDID(), GET_SUBID()); |
|
|
|
return ProjectPort::ins().ACPostPS_To_Pa(val); |
|
|
|
} |
|
|
@ -165,6 +264,8 @@ int DeviceIoControlService::ACPostPS_readPa() { // |
|
|
|
|
|
|
|
#define COMPONENT HardwareComponent::AirLeakDetectPS
|
|
|
|
int DeviceIoControlService::AirLeakDetectPS_readPa() { //
|
|
|
|
if (isInPc()) return 0; |
|
|
|
|
|
|
|
int32_t val = CAN_MASTER->psBusReadData(GET_BOARDID(), GET_SUBID()); |
|
|
|
return ProjectPort::ins().AirLeakDetectPS_To_Pa(val); |
|
|
|
} |
|
|
@ -172,6 +273,8 @@ int DeviceIoControlService::AirLeakDetectPS_readPa() { // |
|
|
|
|
|
|
|
#define COMPONENT HardwareComponent::LiquidWeightPS
|
|
|
|
int DeviceIoControlService::LiquidWeightPS_readPa() { //
|
|
|
|
if (isInPc()) return 0; |
|
|
|
|
|
|
|
int32_t val = CAN_MASTER->psBusReadData(GET_BOARDID(), GET_SUBID()); |
|
|
|
return ProjectPort::ins().LiquidWeightPS_To_Pa(val); |
|
|
|
} |
|
|
@ -179,6 +282,8 @@ int DeviceIoControlService::LiquidWeightPS_readPa() { // |
|
|
|
|
|
|
|
#define COMPONENT HardwareComponent::SprayPumpPostPS
|
|
|
|
int DeviceIoControlService::SprayPumpPostPS_readPa() { //
|
|
|
|
if (isInPc()) return 0; |
|
|
|
|
|
|
|
int32_t val = CAN_MASTER->psBusReadData(GET_BOARDID(), GET_SUBID()); |
|
|
|
return ProjectPort::ins().SprayPumpPostPS_To_Pa(val); |
|
|
|
} |
|
|
@ -186,12 +291,16 @@ int DeviceIoControlService::SprayPumpPostPS_readPa() { // |
|
|
|
|
|
|
|
#define COMPONENT HardwareComponent::AddLiquidPumpPostPS
|
|
|
|
int DeviceIoControlService::AddLiquidPumpPostPS_readPa() { //
|
|
|
|
if (isInPc()) return 0; |
|
|
|
|
|
|
|
int32_t val = CAN_MASTER->psBusReadData(GET_BOARDID(), GET_SUBID()); |
|
|
|
return ProjectPort::ins().AddLiquidPumpPostPS_To_Pa(val); |
|
|
|
} |
|
|
|
#undef COMPONENT
|
|
|
|
|
|
|
|
int DeviceIoControlService::DisinfectantVolume_readVal() { |
|
|
|
if (isInPc()) return 0; |
|
|
|
|
|
|
|
int pa = LiquidWeightPS_readPa(); |
|
|
|
return ProjectPort::ins().pressurePa2VolumeG(pa); |
|
|
|
|
|
|
|