Browse Source

update

master
zhaohe 2 years ago
parent
commit
e1a37f371d
  1. 19
      README.md
  2. 2
      iflytoplinuxsdk
  3. 42
      src/main_control_service.cpp
  4. 40
      src/service/device_io_control_service.cpp
  5. 27
      src/service/device_io_control_service.hpp
  6. 20
      src/service/device_io_control_service_test.cpp
  7. 22
      src/service/device_io_control_service_test.hpp
  8. 3
      src/service/disinfection_ctl_service.cpp

19
README.md

@ -9,6 +9,25 @@
"command":"exceCanCmd", "command":"exceCanCmd",
"cancmd":"call 1007 1" "cancmd":"call 1007 1"
} }
{
"command":"exceCanCmd",
"cancmd":"huacheng_pressure_sensor_read_c1005 0"
}
{
"command":"exceCanCmd",
"cancmd":"huacheng_pressure_sensor_read_c1005 1"
}
{
"command":"exceCanCmd",
"cancmd":"huacheng_pressure_sensor_read_c1005 2"
}
{
"command":"exceCanCmd",
"cancmd":"huacheng_pressure_sensor_read_c1005 3"
}
``` ```
# 编译 # 编译

2
iflytoplinuxsdk

@ -1 +1 @@
Subproject commit a838d01d60b3b76ba3a38b6e3d0c1b90c5c9bd2a
Subproject commit 17b5cd5e7e493cc763528ce03d5b4976d2a39bd0

42
src/main_control_service.cpp

@ -748,10 +748,37 @@ void MainControlService::processFrontEndMessage_DeviceIOControlService(weak_ptr<
m_deviceIoControlService->airCompressor_setState(cmd["params"][0]); m_deviceIoControlService->airCompressor_setState(cmd["params"][0]);
return; return;
} }
if (cmdstr == "DeviceIOControlService.airCompressor_channelCtrl") {
m_deviceIoControlService->airCompressor_channelCtrl(cmd["params"][0]);
if (cmdstr == "DeviceIOControlService.airCompressor_channelSelect") {
m_deviceIoControlService->airCompressor_channelSelect(cmd["params"][0]);
return; return;
} }
if (cmdstr == "DeviceIOControlService.airCompressor_setValve1") {
m_deviceIoControlService->airCompressor_setValve1(cmd["params"][0]);
return;
}
if (cmdstr == "DeviceIOControlService.airCompressor_setValve2") {
m_deviceIoControlService->airCompressor_setValve2(cmd["params"][0]);
return;
}
// airCompressor_getValve2
if (cmdstr == "DeviceIOControlService.airCompressor_getPressureDirect") {
receipt["ack"][0] = m_deviceIoControlService->airCompressor_getPressureDirect();
return;
}
if (cmdstr == "DeviceIOControlService.airCompressor_getPressure") {
receipt["ack"][0] = m_deviceIoControlService->airCompressor_getPressure();
return;
}
if (cmdstr == "DeviceIOControlService.airCompressor_getValve1") {
receipt["ack"][0] = m_deviceIoControlService->airCompressor_getValve1();
return;
}
if (cmdstr == "DeviceIOControlService.airCompressor_getValve2") {
receipt["ack"][0] = m_deviceIoControlService->airCompressor_getValve2();
return;
}
// airCompressor_setValve1
// airCompressor_setValve2
if (cmdstr == "DeviceIOControlService.AirInletProportionalValve_setState") { if (cmdstr == "DeviceIOControlService.AirInletProportionalValve_setState") {
m_deviceIoControlService->AirInletProportionalValve_setState(cmd["params"][0]); m_deviceIoControlService->AirInletProportionalValve_setState(cmd["params"][0]);
return; return;
@ -776,10 +803,11 @@ json MainControlService::createSensorDataJson() {
report["AirInletProportionalValve"]["state"] = m_deviceIoControlService->AirInletProportionalValve_getState(); report["AirInletProportionalValve"]["state"] = m_deviceIoControlService->AirInletProportionalValve_getState();
report["AirOutletProportionalValve"]["state"] = m_deviceIoControlService->AirOutletProportionalValve_getState(); report["AirOutletProportionalValve"]["state"] = m_deviceIoControlService->AirOutletProportionalValve_getState();
report["airCompressor"]["channelState"] = m_deviceIoControlService->airCompressor_getChannelState();
report["airCompressor"]["channelIndex"] = m_deviceIoControlService->airCompressor_getChannelIndex();
report["airCompressor"]["io1"] = m_deviceIoControlService->airCompressor_getio1(); report["airCompressor"]["io1"] = m_deviceIoControlService->airCompressor_getio1();
report["airCompressor"]["io2"] = m_deviceIoControlService->airCompressor_getio2(); report["airCompressor"]["io2"] = m_deviceIoControlService->airCompressor_getio2();
report["airCompressor"]["currentVal"] = m_deviceIoControlService->airCompressor_getcurrentValue(); report["airCompressor"]["currentVal"] = m_deviceIoControlService->airCompressor_getcurrentValue();
report["airCompressor"]["pressure"] = m_deviceIoControlService->airCompressor_getPressure();
report["airBlower"]["io1"] = m_deviceIoControlService->airBlower_getio1(); report["airBlower"]["io1"] = m_deviceIoControlService->airBlower_getio1();
report["airBlower"]["io2"] = m_deviceIoControlService->airBlower_getio2(); report["airBlower"]["io2"] = m_deviceIoControlService->airBlower_getio2();
@ -789,10 +817,10 @@ json MainControlService::createSensorDataJson() {
report["heatingStrip"]["io2"] = m_deviceIoControlService->heatingStrip_getio2(); report["heatingStrip"]["io2"] = m_deviceIoControlService->heatingStrip_getio2();
report["heatingStrip"]["currentVal"] = m_deviceIoControlService->heatingStrip_getcurrentValue(); report["heatingStrip"]["currentVal"] = m_deviceIoControlService->heatingStrip_getcurrentValue();
report["pressure"][0] = m_deviceIoControlService->getPressureSensorData(0); // 液位
report["pressure"][1] = m_deviceIoControlService->getPressureSensorData(1); // 空压机压力
report["pressure"][2] = m_deviceIoControlService->getPressureSensorData(2); // 加液泵
report["pressure"][3] = m_deviceIoControlService->getPressureSensorData(3); // 喷射泵
report["pressure"][0] = m_deviceIoControlService->getPressureSensorData(1); // 液位
report["pressure"][1] = m_deviceIoControlService->getPressureSensorData(2); // 空压机压力
report["pressure"][2] = m_deviceIoControlService->getPressureSensorData(3); // 加液泵
report["pressure"][3] = m_deviceIoControlService->getPressureSensorData(4); // 喷射泵
// ds->getPressureSensorData(1); // ds->getPressureSensorData(1);

40
src/service/device_io_control_service.cpp

@ -116,12 +116,35 @@ void DeviceIoControlService::airCompressor_setState(int32_t val) {
int DeviceIoControlService::airCompressor_getio1() { return m_zcanHost->read_writeio_state_cache(0); } int DeviceIoControlService::airCompressor_getio1() { return m_zcanHost->read_writeio_state_cache(0); }
int DeviceIoControlService::airCompressor_getio2() { return m_zcanHost->read_writeio_state_cache(1); } int DeviceIoControlService::airCompressor_getio2() { return m_zcanHost->read_writeio_state_cache(1); }
int DeviceIoControlService::airCompressor_getcurrentValue() { return m_adc_0 * 0.00167 - 1.25; } int DeviceIoControlService::airCompressor_getcurrentValue() { return m_adc_0 * 0.00167 - 1.25; }
int DeviceIoControlService::airCompressor_channelCtrl(int32_t val) {
m_airCompressor_channelState = val;
m_zcanHost->call(kcmd_air_compressor_ch_ctrl, m_airCompressor_channelState > 0 ? 0 : 1);
int DeviceIoControlService::airCompressor_channelSelect(int32_t val) {
m_airCompressor_channelIndex = val;
if (m_airCompressor_channelIndex == 1) {
m_zcanHost->call(kcmd_air_compressor_ch_select, 1);
} else if (m_airCompressor_channelIndex == 2) {
m_zcanHost->call(kcmd_air_compressor_ch_select, 0);
} else {
return err::kfail;
}
return 0; return 0;
} }
bool DeviceIoControlService::airCompressor_getChannelState() { return m_airCompressor_channelState; }
int DeviceIoControlService::airCompressor_setValve1(int32_t val) {
m_airCompressor_valve1State = val;
return m_zcanHost->call(kcmd_air_compressor_valve1_set, val);
}
int DeviceIoControlService::airCompressor_setValve2(int32_t val) {
m_airCompressor_valve2State = val;
return m_zcanHost->call(kcmd_air_compressor_valve2_set, val);
}
int DeviceIoControlService::airCompressor_getValve1() { return m_airCompressor_valve1State; }
int DeviceIoControlService::airCompressor_getValve2() { return m_airCompressor_valve2State; }
int DeviceIoControlService::airCompressor_getChannelIndex() { return m_airCompressor_channelIndex; }
float DeviceIoControlService::airCompressor_getPressure() { return m_pressure_sensor_data[2].value / 10.0; }
float DeviceIoControlService::airCompressor_getPressureDirect() {
int32_t ack = 0;
m_zcanHost->call(kcmd_air_compressor_read_pressure, &ack);
return ack/10.0;
}
void DeviceIoControlService::AirInletProportionalValve_setState(int32_t val) { void DeviceIoControlService::AirInletProportionalValve_setState(int32_t val) {
m_AirInletProportionalValve_state = val; m_AirInletProportionalValve_state = val;
@ -295,7 +318,14 @@ int DeviceIoControlService::getDisinfectantVolume_g() {
} }
int DeviceIoControlService::getPressureSensorData(int index) { int DeviceIoControlService::getPressureSensorData(int index) {
lock_guard<recursive_mutex> lock(lock_); lock_guard<recursive_mutex> lock(lock_);
return m_pressure_sensor_data[index].value;
if (index > 5 || index < 1) {
return -1;
}
if (index == 2) {
return m_pressure_sensor_data[index].value / 10;
} else {
return m_pressure_sensor_data[index].value;
}
} }
int DeviceIoControlService::getWaterImmersionSensor1() { int DeviceIoControlService::getWaterImmersionSensor1() {

27
src/service/device_io_control_service.hpp

@ -62,7 +62,10 @@ class DeviceIoControlService : public enable_shared_from_this<DeviceIoControlSer
int32_t m_AirInletProportionalValve_state = 0; int32_t m_AirInletProportionalValve_state = 0;
int32_t m_AirOutletProportionalValve_state = 0; int32_t m_AirOutletProportionalValve_state = 0;
int32_t m_airCompressor_channelState = 0;
public:
int32_t m_airCompressor_channelIndex = 0;
int32_t m_airCompressor_valve1State = 0;
int32_t m_airCompressor_valve2State = 0;
public: public:
DeviceIoControlService(); DeviceIoControlService();
@ -91,13 +94,19 @@ class DeviceIoControlService : public enable_shared_from_this<DeviceIoControlSer
/******************************************************************************* /*******************************************************************************
* * * *
*******************************************************************************/ *******************************************************************************/
virtual void airCompressor_setState(int32_t val);
virtual int airCompressor_channelCtrl(int32_t val);
virtual bool airCompressor_getChannelState();
virtual int airCompressor_getio1();
virtual int airCompressor_getio2();
virtual int airCompressor_getstate();
virtual int airCompressor_getcurrentValue();
virtual void airCompressor_setState(int32_t val);
virtual int airCompressor_channelSelect(int32_t val);
virtual int airCompressor_getChannelIndex();
virtual int airCompressor_getio1();
virtual int airCompressor_getio2();
virtual int airCompressor_getstate();
virtual int airCompressor_getcurrentValue();
virtual int airCompressor_setValve1(int32_t val);//0关闭通道 1打开通道
virtual int airCompressor_setValve2(int32_t val);//0关闭通道 1打开通道
virtual int airCompressor_getValve1();
virtual int airCompressor_getValve2();
virtual float airCompressor_getPressure();
virtual float airCompressor_getPressureDirect();
/******************************************************************************* /*******************************************************************************
* * * *
@ -141,7 +150,7 @@ class DeviceIoControlService : public enable_shared_from_this<DeviceIoControlSer
virtual int getWaterImmersionSensor2(); virtual int getWaterImmersionSensor2();
virtual int getDisinfectantVolume_g(); // g virtual int getDisinfectantVolume_g(); // g
virtual int getPressureSensorData(int index); // pa
virtual int getPressureSensorData(int index); // kpa
typedef struct { typedef struct {
int h2o2; // ppm int h2o2; // ppm

20
src/service/device_io_control_service_test.cpp

@ -42,15 +42,27 @@ int DeviceIoControlServiceTest::airCompressor_getstate() {
return 0; return 0;
} }
int DeviceIoControlServiceTest::airCompressor_channelCtrl(int32_t chOpen) {
m_airCompressor_channelState = chOpen;
int DeviceIoControlServiceTest::airCompressor_channelSelect(int32_t chOpen) {
m_airCompressor_channelIndex = chOpen;
return 0; return 0;
} }
bool DeviceIoControlServiceTest::airCompressor_getChannelState() { return m_airCompressor_channelState; }
int DeviceIoControlServiceTest::airCompressor_setValve1(int32_t val) {
m_airCompressor_valve1State = val;
return 0;
}
int DeviceIoControlServiceTest::airCompressor_setValve2(int32_t val) {
m_airCompressor_valve2State = val;
return 0;
}
int DeviceIoControlServiceTest::airCompressor_getValve1() { return m_airCompressor_valve1State; }
int DeviceIoControlServiceTest::airCompressor_getValve2() { return m_airCompressor_valve2State; }
int DeviceIoControlServiceTest::airCompressor_getChannelIndex() { return m_airCompressor_channelIndex; }
float DeviceIoControlServiceTest::airCompressor_getPressure() { return 0; }
float DeviceIoControlServiceTest::airCompressor_getPressureDirect() { return 0; }
int DeviceIoControlServiceTest::airBlower_setState(bool val) { int DeviceIoControlServiceTest::airBlower_setState(bool val) {
logger->info("airBlower_setState:{}", val); logger->info("airBlower_setState:{}", val);
m_airBlower_State = val; m_airBlower_State = val;
return 0; return 0;
} }
int DeviceIoControlServiceTest::airBlower_getio1() { int DeviceIoControlServiceTest::airBlower_getio1() {

22
src/service/device_io_control_service_test.hpp

@ -48,7 +48,7 @@ class DeviceIoControlServiceTest : public DeviceIoControlService {
int32_t m_AirInletProportionalValve_state = 0; int32_t m_AirInletProportionalValve_state = 0;
int32_t m_AirOutletProportionalValve_state = 0; int32_t m_AirOutletProportionalValve_state = 0;
int32_t m_airCompressor_channelState = 0;
int32_t m_airCompressor_channelIndex = 0;
public: public:
virtual void initialize(); virtual void initialize();
@ -76,13 +76,19 @@ class DeviceIoControlServiceTest : public DeviceIoControlService {
/******************************************************************************* /*******************************************************************************
* * * *
*******************************************************************************/ *******************************************************************************/
virtual void airCompressor_setState(int32_t val) override;
virtual int airCompressor_getio1() override;
virtual int airCompressor_getio2() override;
virtual int airCompressor_getstate() override;
virtual int airCompressor_getcurrentValue() override;
virtual int airCompressor_channelCtrl(int32_t chOpen) override;
virtual bool airCompressor_getChannelState() override;
virtual void airCompressor_setState(int32_t val) override;
virtual int airCompressor_getio1() override;
virtual int airCompressor_getio2() override;
virtual int airCompressor_getstate() override;
virtual int airCompressor_getcurrentValue() override;
virtual int airCompressor_channelSelect(int32_t chOpen) override;
virtual int airCompressor_getChannelIndex() override;
virtual int airCompressor_setValve1(int32_t val) override;
virtual int airCompressor_setValve2(int32_t val) override;
virtual int airCompressor_getValve1() override;
virtual int airCompressor_getValve2() override;
virtual float airCompressor_getPressureDirect() override;
virtual float airCompressor_getPressure() override;
/******************************************************************************* /*******************************************************************************
* * * *

3
src/service/disinfection_ctl_service.cpp

@ -294,6 +294,9 @@ void DisinfectionCtrlService::processPreheatState(DisinfectionContext& context)
logger->info("preheat finished {}", context.m_disinfectionID); logger->info("preheat finished {}", context.m_disinfectionID);
// blower_setPower(true); // blower_setPower(true);
m_deviceIoControlService->airBlower_setState(true); m_deviceIoControlService->airBlower_setState(true);
m_deviceIoControlService->airCompressor_channelSelect(1);
m_deviceIoControlService->airCompressor_setValve1(1);
m_deviceIoControlService->airCompressor_setValve2(1);
usleep(1000 * 1000); usleep(1000 * 1000);
// airCompressor(true); // airCompressor(true);
m_deviceIoControlService->airCompressor_setState(true); m_deviceIoControlService->airCompressor_setState(true);

Loading…
Cancel
Save