|
|
#include <stddef.h>
#include <stdio.h>
#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({kLargeSpaceDMLiquidCtrlBoard, klarge_space_disinfection_machine, kFixBoardId_LiquidCtrl}); IdMgr::ins().addIdItem({kLargeSpaceDMPowerCtrlBoard, klarge_space_disinfection_machine, kFixBoardId_PowerControl});
// 小空间ID初始化
IdMgr::ins().addIdItem({kSmallSpaceDMLiquidCtrlBoard, ksmall_space_disinfection_machine, kFixBoardId_LiquidCtrl}); IdMgr::ins().addIdItem({kSmallSpaceDMPowerCtrlBoard, ksmall_space_disinfection_machine, kFixBoardId_PowerControl});
// 管道ID初始化
IdMgr::ins().addIdItem({kPipeDMLiquidCtrlBoard, kpipe_disinfection_machine, kFixBoardId_LiquidCtrl}); IdMgr::ins().addIdItem({kPipeDMPowerCtrlBoard, kpipe_disinfection_machine, kFixBoardId_PowerControl});
// 拉杆箱ID初始化
IdMgr::ins().addIdItem({kDrawBarDMLiquidCtrlBoard, kdraw_bar_disinfection_box, kFixBoardId_LiquidCtrl}); IdMgr::ins().addIdItem({kDrawBarDMPowerCtrlBoard, kdraw_bar_disinfection_box, kFixBoardId_PowerControl});
// H2O2传感器ID初始化
IdMgr::ins().addIdItem({kH2O2SensorBoard, kh2o2_ext_sensor, 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, "boardTypeId : %s(%d)", BoardTypeId2Str(PublicBoard::ins()->getBoardTypeId()), PublicBoard::ins()->getBoardTypeId()); ZLOGI(TAG, "boardId : %d", PublicBoard::ins()->getBoardId()); ZLOGI(TAG, "=");
ProtocolProcesserMgr::ins()->initialize(); ProtocolProcesserMgr::ins()->regProcesser(PublicCmdProcesser::ins());
switch (PublicBoard::ins()->getBoardTypeId()) { case kLargeSpaceDMLiquidCtrlBoard: case kSmallSpaceDMLiquidCtrlBoard: LiquidCtrlBoard::ins()->initialize(); ProtocolProcesserMgr::ins()->regProcesser(LiquidCtrlBoardCmdProcesser::ins()); break; case kLargeSpaceDMPowerCtrlBoard: case kSmallSpaceDMPowerCtrlBoard: LargeSpaceDmPowerCtrlBoard::ins()->initialize(); ProtocolProcesserMgr::ins()->regProcesser(LargeSpaceDmPowerCtrlBoardPP::ins()); break; case kPipeDMLiquidCtrlBoard: break; case kPipeDMPowerCtrlBoard: break; case kDrawBarDMLiquidCtrlBoard: break; case kDrawBarDMPowerCtrlBoard: break; case kDrawBarDMExtBallValveCtrl: break; case kH2O2SensorBoard: break; default: gInitErrorFlag = true; break; }
ZLOGI(TAG, "======================= init processer ================ ");
ProtocolProcesserMgr::ins()->startSchedule(); ZLOGI(TAG, "=");
ZLOGI(TAG, "======================= sysinfo ======================= "); SysMgr::ins()->initedFinished(); SysMgr::ins()->dumpSysInfo(); ZLOGI(TAG, "="); while (true) { osDelay(1); debug_light_ctrl(); } }
|