Browse Source

V103

1.为压力传感器添加重发机制
2.添加开机上报功能
moveToEndTestVersion
zhaohe 12 months ago
parent
commit
94cda459fe
  1. 38
      .cproject
  2. 6
      .gitmodules
  3. 9
      README.md
  4. 1
      app_protocols/transmit_disfection_protocol
  5. 1
      app_protocols/zscanprotocol
  6. 2
      stm32components
  7. 6
      ucomponents/preportional_valve/preportional_valve_ctrl.cpp
  8. 14
      ucomponents/pxx_pressure_sensor_driver/pxx_pressure_sensor_bus.cpp
  9. 4
      ucomponents/pxx_pressure_sensor_driver/pxx_pressure_sensor_bus.hpp
  10. 1
      usrc/app_main.cpp
  11. 6
      usrc/module/h2o2_sensor.cpp
  12. 2
      usrc/project_configs.h

38
.cproject

@ -62,6 +62,7 @@
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/sdk}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/usrc}&quot;"/>
<listOptionValue builtIn="false" value="../Core/ThreadSafe"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/app_protocols}&quot;"/>
</option>
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.languagestandard.249988768" name="Language standard" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.languagestandard" useByScannerDiscovery="true" value="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.languagestandard.value.gnu18" valueType="enumerated"/>
<inputType id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.input.c.330299437" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.input.c"/>
@ -78,6 +79,7 @@
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.option.includepaths.638645730" name="Include paths (-I)" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.option.includepaths" useByScannerDiscovery="false" valueType="includePath">
<listOptionValue builtIn="false" value="../Core/Inc"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/app_protocols}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/app_protocols}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/sdk}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/usrc}&quot;"/>
@ -120,42 +122,6 @@
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.symbolsrec.319958895" name="MCU Output Converter Motorola S-rec with symbols" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.symbolsrec"/>
</toolChain>
</folderInfo>
<folderInfo id="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.debug.1853947771.1314202618" name="/" resourcePath="ucomponents">
<toolChain id="com.st.stm32cube.ide.mcu.gnu.managedbuild.toolchain.exe.debug.514322491" name="MCU ARM GCC" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.toolchain.exe.debug" unusedChildren="">
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_mcu.801178797.1051450583" name="MCU" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_mcu.801178797"/>
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_cpuid.777915677.725907850" name="CPU" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_cpuid.777915677"/>
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_coreid.1126839807.1546163793" name="Core" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_coreid.1126839807"/>
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.fpu.2045742466.1612051433" name="Floating-point unit" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.fpu.2045742466"/>
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.floatabi.2108401733.512286324" name="Floating-point ABI" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.floatabi.2108401733"/>
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_board.1574925555.208881039" name="Board" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_board.1574925555"/>
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.defaults.244221814.1499860580" name="Defaults" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.defaults.244221814"/>
<option id="com.st.stm32cube.ide.mcu.debug.option.cpuclock.764397174.1311796069" name="Cpu clock frequence" superClass="com.st.stm32cube.ide.mcu.debug.option.cpuclock.764397174"/>
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.convertbinary.992660821.523785959" name="Convert to binary file (-O binary)" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.convertbinary.992660821"/>
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.converthex.494792904.1432046374" name="Convert to Intel Hex file (-O ihex)" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.converthex.494792904"/>
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.nanoscanffloat.176411214.78175054" name="Use float with scanf from newlib-nano (-u _scanf_float)" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.nanoscanffloat.176411214"/>
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.nanoprintffloat.164943344.991051087" name="Use float with printf from newlib-nano (-u _printf_float)" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.nanoprintffloat.164943344"/>
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.toolchain.386899990.942830122" name="Toolchain" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.toolchain.386899990"/>
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.431749874" name="MCU GCC Assembler" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.1243726437">
<inputType id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.input.135748842" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.input"/>
</tool>
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.1758491782" name="MCU GCC Compiler" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.782799112">
<inputType id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.input.c.1177760530" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.input.c"/>
</tool>
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.767270138" name="MCU G++ Compiler" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.344817877">
<inputType id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.input.cpp.265796637" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.input.cpp"/>
</tool>
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.linker.1708817961" name="MCU GCC Linker" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.linker.163881313"/>
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.linker.2114400042" name="MCU G++ Linker" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.linker.13625971"/>
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.archiver.1480946659" name="MCU GCC Archiver" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.archiver.251758949"/>
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.size.1873252325" name="MCU Size" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.size.1663377731"/>
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objdump.listfile.1140455353" name="MCU Output Converter list file" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objdump.listfile.1054983767"/>
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.hex.956068253" name="MCU Output Converter Hex" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.hex.959331179"/>
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.binary.1628726805" name="MCU Output Converter Binary" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.binary.673967072"/>
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.verilog.562282749" name="MCU Output Converter Verilog" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.verilog.468761296"/>
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.srec.897884491" name="MCU Output Converter Motorola S-rec" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.srec.1968696221"/>
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.symbolsrec.1566977331" name="MCU Output Converter Motorola S-rec with symbols" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.symbolsrec.319958895"/>
</toolChain>
</folderInfo>
<sourceEntries>
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="Core"/>
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="Drivers"/>

6
.gitmodules

@ -1,6 +1,3 @@
[submodule "transmit_disfection_protocol"]
path = app_protocols/transmit_disfection_protocol
url = zwsd@192.168.1.3:p_transmit_disinfection_v3/transmit_disfection_protocol.git
[submodule "app_protocols/zscanprotocol"]
path = app_protocols/zscanprotocol
url = zwsd@192.168.1.3:zprotocols/zscanprotocol.git
@ -22,3 +19,6 @@ url = zwsd@192.168.1.3:zsdk_stm32_v1/Drivers.git
[submodule "Core"]
path = Core
url = zwsd@192.168.1.3:zsdk_stm32_v1/Core.git
[submodule "app_protocols/transmit_disfection_protocol"]
path = app_protocols/transmit_disfection_protocol
url = zwsd@192.168.1.3:p_transmit_disinfection_v3/transmit_disfection_protocol.git

9
README.md

@ -3,15 +3,8 @@
```
```
V103:增加比例阀超时判定阈值
V2:
完成需求
V3:
1.当控制电机时,会重置电机异常标志位
V4:
1.去掉压力传感器传感器信息自动上报
V5:
添加看门狗
```
```c

1
app_protocols/transmit_disfection_protocol

@ -0,0 +1 @@
Subproject commit 6fb781e6b5fe8f4f44c7046b30cbee47512f5bd9

1
app_protocols/zscanprotocol

@ -0,0 +1 @@
Subproject commit d11d41c1062568f629d5ec2bc6435319b7ea83e3

2
stm32components

@ -1 +1 @@
Subproject commit d387a6d07dd669a43fafc96016635e3b95830a0c
Subproject commit 03d9638ccbc69971524957a68e51842da0960940

6
ucomponents/preportional_valve/preportional_valve_ctrl.cpp

@ -7,14 +7,14 @@ using namespace zscanprotocol;
#define WORK_STATE_REG 0x0000
#define CTRL_STATE_REG 0x0001
#define POS_STATE_REG 0x0013
#define OVERTIME 30
#define OVERTIME 1000
#define TAG "PreportionalValveCtrl"
void PreportionalValveCtrl::initialize(UART_HandleTypeDef* huart) { m_modbusBlockHost.initialize(huart); }
int32_t PreportionalValveCtrl::writeReg06(uint8_t slaveAddr, uint16_t regAddr, uint16_t regVal) {
// 重发三次
for (size_t i = 0; i < 3; i++) {
for (size_t i = 0; i < 5; i++) {
int32_t err = m_modbusBlockHost.writeReg06(slaveAddr, regAddr, regVal, OVERTIME);
if (err == 0) return 0;
}
@ -22,7 +22,7 @@ int32_t PreportionalValveCtrl::writeReg06(uint8_t slaveAddr, uint16_t regAddr, u
}
int32_t PreportionalValveCtrl::readReg03(uint8_t slaveAddr, uint16_t regAddr, uint16_t* regVal) {
// 重发三次
for (size_t i = 0; i < 3; i++) {
for (size_t i = 0; i < 5; i++) {
int32_t err = m_modbusBlockHost.readReg03(slaveAddr, regAddr, regVal, OVERTIME);
if (err == 0) return 0;
}

14
ucomponents/pxx_pressure_sensor_driver/pxx_pressure_sensor_bus.cpp

@ -1,6 +1,5 @@
#include "pxx_pressure_sensor_bus.hpp"
using namespace iflytop;
#define TAG "PxxSensor"
@ -24,7 +23,7 @@ using namespace iflytop;
* 30ms
*/
#define OVERTIME_MS 50
#define OVERTIME_MS 100
static const char* protocolType2Str(PXXPressureSensorBus::protocol_type_t type) {
switch (type) {
@ -167,6 +166,13 @@ void PXXPressureSensorBus::probeSensor() {
ZLOGI(TAG, "end");
initedEnd = true;
}
bool PXXPressureSensorBus::modbusReadReg03(uint8_t slaveAddr, uint16_t regAddr, uint16_t* regVal) { //
for (size_t i = 0; i < 5; i++) {
bool suc = m_modbusBlockHost->readReg03(slaveAddr, regAddr, regVal, OVERTIME_MS);
if (suc) return true;
}
return false;
}
void PXXPressureSensorBus::threadFuncStart() {
/**
@ -187,7 +193,7 @@ void PXXPressureSensorBus::threadFuncStart() {
if (sensors[i].type == kp100_protocol) {
int16_t val = 0;
suc = m_modbusBlockHost->readReg03(i, 0x0004, (uint16_t*)&val, OVERTIME_MS);
suc = modbusReadReg03(i, 0x0004, (uint16_t*)&val);
{
zlock_guard l(m_lock);
if (suc) sensors[i].val = val;
@ -195,7 +201,7 @@ void PXXPressureSensorBus::threadFuncStart() {
}
} else if (sensors[i].type == kdp600_protocol) {
int16_t val = 0;
suc = m_modbusBlockHost->readReg03(i, 0x0000, (uint16_t*)&val, OVERTIME_MS);
suc = modbusReadReg03(i, 0x0000, (uint16_t*)&val);
{
zlock_guard l(m_lock);

4
ucomponents/pxx_pressure_sensor_driver/pxx_pressure_sensor_bus.hpp

@ -55,7 +55,7 @@ class PXXPressureSensorBus {
/***********************************************************************************************************************
* FUNC *
***********************************************************************************************************************/
void init(UART_HandleTypeDef *huart);
void init(UART_HandleTypeDef* huart);
bool readData(int32_t id, int16_t* data);
private:
@ -68,6 +68,8 @@ class PXXPressureSensorBus {
bool tryProbeProtocolP100(int id, sensor_t* sensor);
bool tryProbeProtocolDP600(int id, sensor_t* sensor);
void probeSensor();
bool modbusReadReg03(uint8_t slaveAddr, uint16_t regAddr, uint16_t* regVal);
};
} // namespace iflytop

1
usrc/app_main.cpp

@ -139,6 +139,7 @@ void umain() {
SysMgr::ins()->initedFinished();
SysMgr::ins()->dumpSysInfo();
ZLOGI(TAG, "=");
zcanbus_send_report(kreport_device_reset, NULL, 0, 100);
MX_IWDG_Init();
while (true) {
osDelay(30);

6
usrc/module/h2o2_sensor.cpp

@ -79,9 +79,9 @@ int32_t H2O2Sensor::h2o2_sensor_data(report_h2o2_data_t* readdata) {
}
readdata->h2o2 = h2o2adcToPPM(h2o2adcData);
readdata->h2o2adc = h2o2adcData;
readdata->humid = sensordata.rh;
readdata->rh = sensordata.rh;
readdata->temp = sensordata.temp;
readdata->saturation = 0;
readdata->rs = 0;
ZLOGI(TAG, "ppm:%d(adc:%d), rh:%d, temp:%d, df_ptemp:%d, ah:%d, mr:%d, wbt:%d, eh:%d", //
readdata->h2o2, //
h2o2adcData, //
@ -106,4 +106,4 @@ void H2O2Sensor::onH2O2CaptureThread() {
h2o2_sensor_data(&data);
if (gEnableReportFlag) zcanbus_send_report(kreport_h2o2_sensor_data, (uint8_t*)&data, sizeof(data), 30);
}
}
}

2
usrc/project_configs.h

@ -15,7 +15,7 @@
* @brief
*
*/
#define SOFTWARE_VERSION 102 // 软件版本
#define SOFTWARE_VERSION 103 // 软件版本
#define HARDWARE_VERSION 1 // 硬件版本
#define PROJECT "transmit_disinfection_micro_re" // 工程名称
#define SN_HEADER "SN" // SN号前缀

Loading…
Cancel
Save