Browse Source

校准小空间加液桶体积

master
zhaohe 1 year ago
parent
commit
2ec2a5afca
  1. 15
      src/configs/project_setting.hpp
  2. 7
      src/main.cpp
  3. 10
      src/service/device_io_control_service.cpp
  4. 4
      src/service/device_io_control_service.hpp
  5. 25
      src/utils/volume_convertor.hpp
  6. BIN
      储液桶分段体积计算.pdf

15
src/configs/project_setting.hpp

@ -7,4 +7,17 @@
#define REG_REBOOT_FLAG 0x0000 // 重启标识
#define REG_DEVICE_ID 0x0001 // 重启标识
#define REG_EXCEPTION_FLAG 0x0100 // 异常标志位
#define REG_EXCEPTION_FLAG 0x0100 // 异常标志位
// #define PROJECT_TYPE_LARGE_SPACE_DISINFECTION 1 // 大空间
#define PROJECT_TYPE_SMALL_SPACE_DISINFECTION 1 // 小空间
#ifdef PROJECT_TYPE_SMALL_SPACE_DISINFECTION
#define DISINFECTANT_BUCKET_CAPACITY 2300
#define PROJECT_NAME "small_space_disinfection"
#endif
#ifdef PROJECT_TYPE_LARGE_SPACE_DISINFECTION
#define DISINFECTANT_BUCKET_CAPACITY 2300
#define PROJECT_NAME "large_space_disinfection"
#endif

7
src/main.cpp

@ -2,6 +2,7 @@
#include <signal.h>
#include <sqlite3.h>
#include "iflytop/components/uart_printer/uart_printer.hpp"
using namespace iflytop;
using namespace core;
@ -31,7 +32,7 @@ int Main::main(int argc, char *argv[]) {
* @brief
*/
string test_mode = "false";
auto cli = ((required("--test_mode") & value("test_mode", test_mode)).doc("test_mode"));
auto cli = ((required("--test_mode") & value("test_mode", test_mode)).doc("test_mode"));
if (!parse(argc, argv, cli)) {
test_mode = "false";
// cout << make_man_page(cli, argv[0]);
@ -52,12 +53,16 @@ int Main::main(int argc, char *argv[]) {
logger->info("#");
logger->info("# company:{}", "ifytop");
logger->info("# version:{}", VERSION);
logger->info("# project:{}", PROJECT_NAME);
logger->info("#");
logger->info("build {}.....", "Config");
// 构造GConfig
BUILD_AND_REG_SERRVICE(GConfig);
GET_SERVICE(GConfig)->initialize();
BUILD_AND_REG_SERRVICE(UartPrinter);
GET_SERVICE(UartPrinter)->initialize("/dev/ttyS5", "9600");
/**
* @brief
*/

10
src/service/device_io_control_service.cpp

@ -1,4 +1,11 @@
#include "device_io_control_service.hpp"
#include <iconv.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "iflytop/components/uart_printer/uart_printer.hpp"
#include "iflytoplinuxsdk/src/iflytop/components/ziconv.hpp"
using namespace iflytop;
using namespace std;
@ -405,3 +412,6 @@ void DeviceIoControlService::warningLightCtrl(int r, int g, int b, int w) {
lock_guard<recursive_mutex> lock(lock_);
m_zcanHost->warning_light_ctrl_c1002(1, r, g, b, w);
}
void DeviceIoControlService::printerTest() {}
void DeviceIoControlService::printerPrintf(string str) { GET_SERVICE(UartPrinter)->print(ZIconv::utf8_to_gb2312(str)); }

4
src/service/device_io_control_service.hpp

@ -77,6 +77,9 @@ class DeviceIoControlService : public enable_shared_from_this<DeviceIoControlSer
virtual void initialize();
virtual void startScan();
void printerPrintf(string str);
void printerTest();
public:
/*******************************************************************************
* *
@ -162,6 +165,7 @@ class DeviceIoControlService : public enable_shared_from_this<DeviceIoControlSer
virtual bool getAllSensorData(DeviceIoControlService::all_h2o2sensor_data_t& data);
virtual void warningLightCtrl(int r, int g, int b, int w);
private:
void updateDisinfectantVolumeSample(float kpa);
};

25
src/utils/volume_convertor.hpp

@ -2,6 +2,7 @@
#pragma once
#include <stdio.h>
#include "configs/project_setting.hpp"
namespace iflytop {
#define PI 3.14159265358979323846
@ -30,7 +31,29 @@ class VolumeConvertor {
* |rb|
*
*/
#ifdef PROJECT_TYPE_SMALL_SPACE_DISINFECTION
float container_h4 = 1.8569;
float container_ru4 = 0.67;
float container_rb4 = 0.67;
float container_h3 = 0.15;
float container_ru3 = 0.67;
float container_rb3 = 0.52;
float container_h2 = 0.0976;
float container_ru2 = 0.52;
float container_rb2 = 0.52;
float container_h1 = 0.0411;
float container_ru1 = 0.52;
float container_rb1 = 0.05;
float density = 1000; // kg/m^3
#endif
#ifdef PROJECT_TYPE_LARGE_SPACE_DISINFECTION
float container_h4 = 2.2069;
float container_ru4 = 0.82;
float container_rb4 = 0.82;
@ -49,6 +72,8 @@ class VolumeConvertor {
float density = 1000; // kg/m^3
#endif
public:
float pressurePa2VolumeG(float _pa);

BIN
储液桶分段体积计算.pdf

Loading…
Cancel
Save