diff --git a/.settings/language.settings.xml b/.settings/language.settings.xml
index 10c2faa..99332dc 100644
--- a/.settings/language.settings.xml
+++ b/.settings/language.settings.xml
@@ -5,7 +5,7 @@
-
+
@@ -16,7 +16,7 @@
-
+
diff --git a/usrc/hardware.cpp b/usrc/hardware.cpp
index c002161..2032a75 100644
--- a/usrc/hardware.cpp
+++ b/usrc/hardware.cpp
@@ -131,16 +131,25 @@ void Hardware::initialize(int deviceId) {
triLight_Y.initAsOutput(PD9, ZGPIO::kMode_nopull, true, false);
triLight_BEEP.initAsOutput(PD10, ZGPIO::kMode_nopull, true, false);
-#if 0
+ m_PreportionalValveHost.initialize(&huart2);
+
+#if 1
m_dp600PressureSensor2.initialize(&huart3, 2);
m_dp600PressureSensor3.initialize(&huart3, 3);
m_dp600PressureSensor4.initialize(&huart3, 4);
-
OUT_PD14.initAsOutput(PD14, ZGPIO::kMode_nopull, false, true);
OUT_PD15.initAsOutput(PD15, ZGPIO::kMode_nopull, true, false);
#endif
}
+void air_compressor_ch_select(int32_t val) {
+ if (val == 2) { // 内管路
+ OUT_PD15.setState(1);
+ } else if (val == 1) { // 空气
+ OUT_PD15.setState(0);
+ }
+}
+
void dumpdp600data(DP600PressureSensor::sensor_data_t *data) {
ZLOGI(TAG, "value:%d", data->value);
ZLOGI(TAG, "zero_point:%d", data->zero_point);
@@ -235,15 +244,16 @@ int32_t Hardware::process_rx_packet(from_where_t fromwhere, uint8_t *packet, int
receipt[0] = cmdheader->data[0];
receiptsize = 1;
}
-
if ((cmdheader->cmdid == (uint16_t)kcmd_air_compressor_valve1_set) && (cmdheader->subcmdid == 0)) {
uint32_t val = *(uint32_t *)(&cmdheader->data[0]);
+ ZLOGI(TAG, "kcmd_air_compressor_valve1_set:%d", val);
OUT_PD14.setState(val != 0);
matching = true;
}
if ((cmdheader->cmdid == (uint16_t)kcmd_air_compressor_valve2_set) && (cmdheader->subcmdid == 0)) {
uint32_t val = *(uint32_t *)(&cmdheader->data[0]);
+ ZLOGI(TAG, "kcmd_air_compressor_valve2_set:%d", val);
OUT_PD14.setState(val != 0);
matching = true;
}
@@ -262,6 +272,7 @@ int32_t Hardware::process_rx_packet(from_where_t fromwhere, uint8_t *packet, int
if ((cmdheader->cmdid == (uint16_t)kcmd_set_proportional_valve) && (cmdheader->subcmdid == 0)) {
int32_t para0 = *(int32_t *)(&cmdheader->data[0]);
int32_t para1 = *(int32_t *)(&cmdheader->data[4]);
+
if (para0 == 1) {
matching = true;
m_PreportionalValveHost.setValvePos(1, para1);
@@ -270,6 +281,11 @@ int32_t Hardware::process_rx_packet(from_where_t fromwhere, uint8_t *packet, int
m_PreportionalValveHost.setValvePos(2, para1);
}
}
+
+ if ((cmdheader->cmdid == (uint16_t)kcmd_air_compressor_ch_select) && (cmdheader->subcmdid == 0)) {
+ int32_t para0 = *(int32_t *)(&cmdheader->data[0]);
+ air_compressor_ch_select(para0);
+ }
static DP600PressureSensor::sensor_data_t dp600data;
if ((cmdheader->cmdid == (uint16_t)kcmd_air_compressor_read_pressure) && (cmdheader->subcmdid == 0)) {
matching = true;