#include #include #include "board/board.hpp" // #include "base/config_service.hpp" #include "base/device_info.hpp" #include "board/public_board.hpp" // #include "gflag/gflag.h" #include "idtable/IdMgr.hpp" // #include "protocol_processer_impl/processer.hpp" #include "protocol_processer_mgr/protocol_processer_mgr.hpp" // #include "zsdk/zcanreceiver/zcanreceiver.hpp" #include "zsdk/zsdk.hpp" #define TAG "main" using namespace iflytop; extern void umain(); extern "C" { void StartDefaultTask(void const* argument) { umain(); } } /******************************************************************************* * MAIN * *******************************************************************************/ extern "C" { // void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) { // } } void debug_light_ctrl() { static uint32_t lastcall = 0; static bool light_status = false; if (!gInitErrorFlag) { if (zhas_passedms(lastcall) > 300) { PublicBoard::ins()->toggleDebugLight(); lastcall = zget_ticket(); } } else { if (zhas_passedms(lastcall) > 30) { PublicBoard::ins()->toggleDebugLight(); lastcall = zget_ticket(); } } } void idtable_init() { // 大空间ID初始化 IdMgr::ins().addIdItem({klarge_space_disinfection_machine, kBoardType_LiquidCtrl, kFixBoardId_LiquidCtrl}); IdMgr::ins().addIdItem({klarge_space_disinfection_machine, kBoardType_PowerControl, kFixBoardId_PowerControl}); // 小空间ID初始化 IdMgr::ins().addIdItem({ksmall_space_disinfection_machine, kBoardType_LiquidCtrl, kFixBoardId_LiquidCtrl}); IdMgr::ins().addIdItem({ksmall_space_disinfection_machine, kBoardType_PowerControl, kFixBoardId_PowerControl}); // 管道ID初始化 IdMgr::ins().addIdItem({kpipe_disinfection_machine, kBoardType_LiquidCtrl, kFixBoardId_LiquidCtrl}); IdMgr::ins().addIdItem({kpipe_disinfection_machine, kBoardType_PowerControl, kFixBoardId_PowerControl}); // 拉杆箱ID初始化 IdMgr::ins().addIdItem({kdraw_bar_disinfection_box, kBoardType_LiquidCtrl, kFixBoardId_LiquidCtrl}); IdMgr::ins().addIdItem({kdraw_bar_disinfection_box, kBoardType_PowerControlMiniBoard, kFixBoardId_PowerControl}); // H2O2传感器ID初始化 IdMgr::ins().addIdItem({kh2o2_ext_sensor, kBoardType_H2O2Sensor, kFixBoardId_H2O2SensorStart}); } void umain() { gBoardFlagSetResetFlag(); idtable_init(); deviceInfo_init(); config_init(); PublicBoard::ins()->initialize(); ZLOGI(TAG, "======================= boardinfo ==================== "); ZLOGI(TAG, "project : %s ", PROJECT); ZLOGI(TAG, "version : %d ", SOFTWARE_VERSION); ZLOGI(TAG, "pversion: %d", deviceInfo_getProtocolVersion()); ZLOGI(TAG, "sn : %s", sn_get_str()); ZLOGI(TAG, "boardId : %d", PublicBoard::ins()->getBoardId()); ZLOGI(TAG, "="); switch (PublicBoard::ins()->getBoardTypeId()) { case kBoardType_LiquidCtrl: LiquidCtrlBoard::ins()->initialize(); break; case kBoardType_PowerControl: break; case kBoardType_PowerControlMiniBoard: break; case kBoardType_ExtBallValveCtrl: break; case kBoardType_H2O2Sensor: break; default: gInitErrorFlag = true; break; } ZLOGI(TAG, "======================= init processer ================ "); ProtocolProcesserMgr::ins()->initialize(); ProtocolProcesserMgr::ins()->regProcesser(PublicCmdProcesser::ins()); ProtocolProcesserMgr::ins()->startSchedule(); ZLOGI(TAG, "="); ZLOGI(TAG, "======================= sysinfo ======================= "); SysMgr::ins()->initedFinished(); SysMgr::ins()->dumpSysInfo(); ZLOGI(TAG, "="); while (true) { osDelay(1); debug_light_ctrl(); } }