diff --git a/README.md b/README.md index b843053..a0e2f09 100644 --- a/README.md +++ b/README.md @@ -18,4 +18,7 @@ v1.0 1. 预热时间数值从配置文件获取 2. 支持打印机 3. 修改加热片等大功率设备,安全继电器打开延迟50ms->500ms + +V1.1 + 1. 添加消毒结果打印 ``` \ No newline at end of file diff --git a/iflytoplinuxsdk b/iflytoplinuxsdk index f4e805b..3da00c6 160000 --- a/iflytoplinuxsdk +++ b/iflytoplinuxsdk @@ -1 +1 @@ -Subproject commit f4e805b65fa639e80318356abf965d92418dcf48 +Subproject commit 3da00c61b924de3e5236f5a450e535c8d32f1ea4 diff --git a/src/main_control_service.cpp b/src/main_control_service.cpp index 39ef9af..56cd1db 100644 --- a/src/main_control_service.cpp +++ b/src/main_control_service.cpp @@ -76,7 +76,7 @@ void MainControlService::initialize() { GET_TO_SERVICE(m_deviceIoControlService); m_deviceIoControlService->startScan(); - m_deviceIoControlService->printerTest(); + // m_deviceIoControlService->printerTest(); BUILD_AND_REG_SERRVICE(DataExportService); GET_SERVICE(DataExportService)->initialize(); diff --git a/src/service/chinese_gb2312.cpp b/src/service/chinese_gb2312.cpp deleted file mode 100644 index e75d809..0000000 --- a/src/service/chinese_gb2312.cpp +++ /dev/null @@ -1,8 +0,0 @@ -#include "chinese_gb2312.hpp" - -using namespace iflytop; -using namespace std; - -string ChineseGb2312::nihaozhongguo() { - return "й"; -} diff --git a/src/service/chinese_gb2312.hpp b/src/service/chinese_gb2312.hpp deleted file mode 100644 index ab90286..0000000 --- a/src/service/chinese_gb2312.hpp +++ /dev/null @@ -1,19 +0,0 @@ -#pragma once -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -namespace iflytop { -using namespace std; -class ChineseGb2312 { - public: - string nihaozhongguo(); -}; - -} // namespace iflytop \ No newline at end of file diff --git a/src/service/device_io_control_service.cpp b/src/service/device_io_control_service.cpp index 56311ef..278d3b7 100644 --- a/src/service/device_io_control_service.cpp +++ b/src/service/device_io_control_service.cpp @@ -5,22 +5,11 @@ #include #include -#include "chinese_gb2312.hpp" #include "iflytop/components/uart_printer/uart_printer.hpp" - +#include "iflytoplinuxsdk/src/iflytop/components/ziconv.hpp" using namespace iflytop; using namespace std; -#if 0 -ģ ӲID ID -ѹ-ȫŷ 3 PC2 0 -ѹ-ͨϵŷ 3 PC3 1 -ķ-ȫŷ 3 PC4 2 --ͨϵŷ 3 PC5 3 -Ƭ-ȫŷ 3 PC6 4 --ͨϵŷ 3 PC7 5 -#endif - #define GPM_TO_SPEED(gpm) (gpm * 10) #define SPEED_TO_GPM(speed) (speed / 10) @@ -249,7 +238,7 @@ static int filter(int data) { if (q.size() > 50) { q.pop_front(); } - // ֵ˲ + // ��ֵ�˲� int datacache[51]; int ndata = 0; for (auto& var : q) { @@ -275,7 +264,7 @@ int DeviceIoControlService::getDisinfectantVolume_g() { float kpa = m_pressure_sensor_data[1].value / 1000.0; int g = 2.11 * kpa * 1000 * 1.3; - if (g < 450) { /**/ + if (g < 450) { /*���*/ return 0; } else { g -= 450; @@ -304,10 +293,10 @@ int DeviceIoControlService::getWaterImmersionSensor2() { DeviceIoControlService::h2o2sensor_data_t DeviceIoControlService::getH2O2SenSorData1() { lock_guard lock(lock_); DeviceIoControlService::h2o2sensor_data_t data; - // int16_t hydrogen_peroxide_volume; // ppm 0x0100 Ũ - // int16_t h2o_h2o2_rs; // %RS * 100 0x0101 ԱͶ - // int16_t temperature1; // C * 100 0x0102 ¶ - // int16_t relative_humidity; // %RH * 100 0x0103 ʪ + // int16_t hydrogen_peroxide_volume; // ppm 0x0100 ��������Ũ�� + // int16_t h2o_h2o2_rs; // %RS * 100 0x0101 ����������Ա��Ͷ� + // int16_t temperature1; // ��C * 100 0x0102 �¶� + // int16_t relative_humidity; // %RH * 100 0x0103 ���ʪ�� data.h2o2 = m_hpp272_data_1.hydrogen_peroxide_volume; data.humid = m_hpp272_data_1.relative_humidity / 100; data.temp = m_hpp272_data_1.temperature1 / 100; @@ -315,7 +304,7 @@ DeviceIoControlService::h2o2sensor_data_t DeviceIoControlService::getH2O2SenSorD /** * @brief - * TODO:δʼʱ¶⣬ȡݶС㣬һ򵥵ĴҪ޸ + * TODO:������δ��ʼ�����ʱ�������¶��⣬��ȡ�������ݶ���С���㣬��������һ���򵥵Ĵ�����������Ҫ�޸� * */ if (data.h2o2 < 0) { @@ -342,7 +331,7 @@ bool DeviceIoControlService::getAllSensorData(DeviceIoControlService::all_h2o2se data.h2o2sensor_status[2] = false; /** - * @brief ҵСĹŨ + * @brief �ҵ���С�Ĺ�������Ũ�� */ data.min_h2o2 = -1; for (size_t i = 0; i < ZARRAYSIZE(data.h2o2sensor_data); i++) { @@ -367,7 +356,7 @@ bool DeviceIoControlService::getAllSensorData(DeviceIoControlService::all_h2o2se } /** - * @brief ҵĹԱͶ + * @brief �ҵ����Ĺ���������Ա��Ͷ� */ data.max_saturation = -1; for (size_t i = 0; i < ZARRAYSIZE(data.h2o2sensor_data); i++) { @@ -381,7 +370,7 @@ bool DeviceIoControlService::getAllSensorData(DeviceIoControlService::all_h2o2se } /** - * @brief ҵʪ + * @brief �ҵ��������ʪ�� */ data.max_humid = -1; @@ -398,14 +387,13 @@ bool DeviceIoControlService::getAllSensorData(DeviceIoControlService::all_h2o2se } void DeviceIoControlService::printerTest() { - printerPrintf("* * * * * * * * * * * * * * * \n"); - printerPrintf("123456789123456789\n"); - printerPrintf("abcdefghijk lmnopqr\n"); - printerPrintf("ABCDEF GHIJ KLMN OPQR\n"); - printerPrintf(fmt::format("{}\n", ChineseGb2312().nihaozhongguo())); - printerPrintf(fmt::format("{}\n", ChineseGb2312().nihaozhongguo())); - printerPrintf(fmt::format("{}\n", ChineseGb2312().nihaozhongguo())); - printerPrintf("\n"); - printerPrintf("\n"); + // printerPrintf("* * * * * * * * * * * * * * * \n"); + // printerPrintf("123456789123456789\n"); + // printerPrintf("abcdefghijk lmnopqr\n"); + // printerPrintf("ABCDEF GHIJ KLMN OPQR\n"); + // printerPrintf("全思美特"); + // printerPrintf("打印测试"); + // printerPrintf("\n"); + // printerPrintf("\n"); } -void DeviceIoControlService::printerPrintf(string str) { GET_SERVICE(UartPrinter)->print(str); } +void DeviceIoControlService::printerPrintf(string str) { GET_SERVICE(UartPrinter)->print(ZIconv::utf8_to_gb2312(str)); } diff --git a/src/service/disinfection_ctl_service.cpp b/src/service/disinfection_ctl_service.cpp index cf706d8..b912806 100644 --- a/src/service/disinfection_ctl_service.cpp +++ b/src/service/disinfection_ctl_service.cpp @@ -1,7 +1,11 @@ #include "disinfection_ctl_service.hpp" +#include +#include + #include "configs/gconfig.hpp" #include "iflytop/components/uart_printer/uart_printer.hpp" +#include "service/device_state_service.hpp" using namespace iflytop; using namespace std; @@ -204,9 +208,11 @@ void DisinfectionCtrlService::initContext(DisinfectionContext& context, m_context.m_state = kpreheat; - m_context.m_starttp = zsteady_clock().now(); + m_context.m_starttp = zsteady_clock().now(); + m_context.m_starttp_str = getTime(); m_zcanHost->warning_light_ctrl_c1002(1, 0, 0, 1, 0); + // usleep(100 * 1000); m_deviceIoControlService->heartingPlate_setPower(true); context.csvlogger = m_disinfectionLogsManager->createNewLogger(context.m_disinfectionID); @@ -339,6 +345,43 @@ void DisinfectionCtrlService::dumpDisinfectionLogs(DisinfectionContext& context) getEstimatedRemainingTimeS()); } +void DisinfectionCtrlService::printfDisinfectionContextResult() { + /** + * @brief + * = = = = = = = = = = = = = = = + * 全思美特 + * 操作人 XXXXX + * 开始时间 2021-03-10 10:00:00 + * 结束时间 2021-03-10 10:00:00 + * 总耗时 01:59 + * 目标LOG 6 + * 实际LOG 6 + * = = = = = = = = = = = = = = = + * + */ + + auto dio = m_deviceIoControlService; + auto ds = GET_SERVICE(DeviceStateService); + m_context.m_endtp_str = getTime(); + int totaltime = zsteady_clock().elapsedTimeS(m_context.m_starttp); + + dio->printerPrintf(fmt::format("= = = = = = = = = = = = = = = \n")); + dio->printerPrintf(fmt::format(" 全思美特\n")); + dio->printerPrintf(fmt::format("操作人 {}\n", ds->getLoginUid())); + dio->printerPrintf(fmt::format("开始时间 {}\n", m_context.m_starttp_str)); + dio->printerPrintf(fmt::format("结束时间 {}\n", m_context.m_endtp_str)); + dio->printerPrintf(fmt::format("总耗时 {}:{}\n", totaltime / 60, totaltime % 60)); + dio->printerPrintf(fmt::format("目标LOG {}\n", (int)m_context.m_targetLoglevel)); + dio->printerPrintf(fmt::format("实际LOG {}\n", (int)m_context.m_nowLoglevel)); + dio->printerPrintf(fmt::format("= = = = = = = = = = = = = = = \n")); + dio->printerPrintf(fmt::format("\n")); + dio->printerPrintf(fmt::format("\n")); + dio->printerPrintf(fmt::format("\n")); + + // getTime + // dio->printerPrintf(fmt::format("开始时间 {}\n", zsteady_clock().formatTime(m_context.m_starttp))); +} + /** * @brief * 消毒中状态处理 @@ -529,6 +572,7 @@ void DisinfectionCtrlService::startDisinfection(int loglevel, // } } + printfDisinfectionContextResult(); // finishDisinfection(m_context); })); diff --git a/src/service/disinfection_ctl_service.hpp b/src/service/disinfection_ctl_service.hpp index 4066b58..a4e076d 100644 --- a/src/service/disinfection_ctl_service.hpp +++ b/src/service/disinfection_ctl_service.hpp @@ -35,6 +35,7 @@ namespace iflytop { using namespace std; using namespace core; + class DisinfectionCtrlService : public enable_shared_from_this { ENABLE_LOGGER(DisinfectionCtrlService); @@ -67,9 +68,12 @@ class DisinfectionCtrlService : public enable_shared_from_this csvlogger; + }; -public: + + public: DisinfectionContext m_context; public: @@ -159,24 +165,27 @@ public: private: float getDisinfectionDValue(float ppm); - void initContext(DisinfectionContext& context, // - int loglevel, // - float injection_pump_speed, // - float stoped_gs, // - float continued_gs, // - float stoped_satur, // - float continued_satur, // - float stoped_humi, // - float continued_humi // - ); - void computeRemainTime(DisinfectionContext& context); + void initContext(DisinfectionContext& context, // + int loglevel, // + float injection_pump_speed, // + float stoped_gs, // + float continued_gs, // + float stoped_satur, // + float continued_satur, // + float stoped_humi, // + float continued_humi // + ); + void computeRemainTime(DisinfectionContext& context); float computeNowLogLevel(DisinfectionContext& context); - void processPreheatState(DisinfectionContext& context); - void processDisinfectionState(DisinfectionContext& context); - void dumpDisinfectionLogs(DisinfectionContext& context); - void dumpDisinfectionLogsToCSV(DisinfectionContext& context); - void finishDisinfection(DisinfectionContext& context); + void processPreheatState(DisinfectionContext& context); + void processDisinfectionState(DisinfectionContext& context); + void dumpDisinfectionLogs(DisinfectionContext& context); + void dumpDisinfectionLogsToCSV(DisinfectionContext& context); + void finishDisinfection(DisinfectionContext& context); void disinfectionLoop(bool& breakflag); + + private: + void printfDisinfectionContextResult(); }; } // namespace iflytop \ No newline at end of file diff --git a/src/version.hpp b/src/version.hpp index 8820105..caa3055 100644 --- a/src/version.hpp +++ b/src/version.hpp @@ -1,2 +1,2 @@ #pragma once -#define VERSION "1.0" \ No newline at end of file +#define VERSION "1.1" \ No newline at end of file