全司美特-单片机程序
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

148 lines
5.0 KiB

2 years ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
2 years ago
1 year ago
2 years ago
1 year ago
2 years ago
1 year ago
2 years ago
2 years ago
2 years ago
1 year ago
2 years ago
2 years ago
1 year ago
1 year ago
1 year ago
2 years ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
2 years ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
2 years ago
1 year ago
1 year ago
2 years ago
2 years ago
  1. #include <stddef.h>
  2. #include <stdio.h>
  3. //
  4. #include "base/appdep.hpp"
  5. //
  6. #include "board/large_space_dm_liquid_ctrl_board.hpp"
  7. #include "board/large_space_dm_power_ctrl_board.hpp"
  8. #include "board/pipe_dm_liquid_ctrl_board.hpp"
  9. #include "board/pipe_dm_power_ctrl_board.hpp"
  10. #include "board/public_board.hpp"
  11. //
  12. #include "base/protocol_processer_mgr.hpp"
  13. #include "protocol_processer_impl/large_space_dm_liquid_ctrl_board_pp.hpp"
  14. #include "protocol_processer_impl/large_space_dm_power_ctrl_board_pp.hpp"
  15. #include "protocol_processer_impl/pipe_dm_liquid_ctrl_board_pp.hpp"
  16. #include "protocol_processer_impl/pipe_dm_power_ctrl_board_pp.hpp"
  17. #include "protocol_processer_impl/public_cmd_processer.hpp"
  18. //
  19. #include "zsdk/zcanreceiver/zcanreceiver.hpp"
  20. #include "zsdk/zsdk.hpp"
  21. //
  22. #define TAG "main"
  23. using namespace iflytop;
  24. extern void umain();
  25. extern "C" {
  26. void StartDefaultTask(void const* argument) { umain(); }
  27. }
  28. /*******************************************************************************
  29. * MAIN *
  30. *******************************************************************************/
  31. extern "C" {
  32. // void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) {
  33. // }
  34. }
  35. void debug_light_ctrl() {
  36. static uint32_t lastcall = 0;
  37. static bool light_status = false;
  38. if (!gInitErrorFlag) {
  39. if (zhas_passedms(lastcall) > 300) {
  40. PublicBoard::ins()->toggleDebugLight();
  41. lastcall = zget_ticket();
  42. }
  43. } else {
  44. if (zhas_passedms(lastcall) > 30) {
  45. PublicBoard::ins()->toggleDebugLight();
  46. lastcall = zget_ticket();
  47. }
  48. }
  49. }
  50. void idtable_init() {
  51. // 大空间ID初始化
  52. IdMgr::ins().addIdItem({kLargeSpaceDMLiquidCtrlBoard, klarge_space_disinfection_machine, kFixBoardId_LiquidCtrl});
  53. IdMgr::ins().addIdItem({kLargeSpaceDMPowerCtrlBoard, klarge_space_disinfection_machine, kFixBoardId_PowerControl});
  54. // 小空间ID初始化
  55. IdMgr::ins().addIdItem({kSmallSpaceDMLiquidCtrlBoard, ksmall_space_disinfection_machine, kFixBoardId_LiquidCtrl});
  56. IdMgr::ins().addIdItem({kSmallSpaceDMPowerCtrlBoard, ksmall_space_disinfection_machine, kFixBoardId_PowerControl});
  57. // 管道ID初始化
  58. IdMgr::ins().addIdItem({kPipeDMLiquidCtrlBoard, kpipe_disinfection_machine, kFixBoardId_LiquidCtrl});
  59. IdMgr::ins().addIdItem({kPipeDMPowerCtrlBoard, kpipe_disinfection_machine, kFixBoardId_PowerControl});
  60. // 拉杆箱ID初始化
  61. IdMgr::ins().addIdItem({kDrawBarDMLiquidCtrlBoard, kdraw_bar_disinfection_box, kFixBoardId_LiquidCtrl});
  62. IdMgr::ins().addIdItem({kDrawBarDMPowerCtrlBoard, kdraw_bar_disinfection_box, kFixBoardId_PowerControl});
  63. // H2O2传感器ID初始化
  64. IdMgr::ins().addIdItem({kH2O2SensorBoard, kh2o2_ext_sensor, kFixBoardId_H2O2SensorStart});
  65. }
  66. #define REG_PROCESSER(processer) ProtocolProcesserMgr::ins()->regProcesser(processer);
  67. void umain() {
  68. gBoardFlagSetResetFlag();
  69. idtable_init();
  70. deviceInfo_init();
  71. config_init();
  72. AppPeriodTaskMgr::ins()->initialize();
  73. PublicBoard::ins()->initialize();
  74. ZLOGI(TAG, "======================= boardinfo ==================== ");
  75. ZLOGI(TAG, "project : %s ", PROJECT);
  76. ZLOGI(TAG, "version : %d ", SOFTWARE_VERSION);
  77. ZLOGI(TAG, "pversion : %d", deviceInfo_getProtocolVersion());
  78. ZLOGI(TAG, "sn : %s", sn_get_str());
  79. ZLOGI(TAG, "boardTypeId : %s(%d)", BoardTypeId2Str(PublicBoard::ins()->getBoardTypeId()), PublicBoard::ins()->getBoardTypeId());
  80. ZLOGI(TAG, "boardId : %d", PublicBoard::ins()->getBoardId());
  81. ZLOGI(TAG, "=");
  82. ProtocolProcesserMgr::ins()->initialize();
  83. REG_PROCESSER(PublicCmdProcesser::ins());
  84. switch (PublicBoard::ins()->getBoardTypeId()) {
  85. case kLargeSpaceDMLiquidCtrlBoard:
  86. case kSmallSpaceDMLiquidCtrlBoard:
  87. LargeSpaceDmLiquidCtrlBoard::ins()->initialize();
  88. REG_PROCESSER(LargeSpaceDmLiquidCtrlBoardPP::ins());
  89. break;
  90. case kLargeSpaceDMPowerCtrlBoard:
  91. case kSmallSpaceDMPowerCtrlBoard:
  92. LargeSpaceDmPowerCtrlBoard::ins()->initialize();
  93. REG_PROCESSER(LargeSpaceDmPowerCtrlBoardPP::ins());
  94. break;
  95. case kPipeDMLiquidCtrlBoard:
  96. PipeDMLiquidCtrlBoard::ins()->initialize();
  97. REG_PROCESSER(PipeDMLiquidCtrlBoardPP::ins());
  98. break;
  99. case kPipeDMPowerCtrlBoard:
  100. PipeDMPowerCtrlBoard::ins()->initialize();
  101. REG_PROCESSER(PipeDMPowerCtrlBoardPP::ins());
  102. break;
  103. case kDrawBarDMLiquidCtrlBoard:
  104. break;
  105. case kDrawBarDMPowerCtrlBoard:
  106. break;
  107. case kDrawBarDMExtBallValveCtrl:
  108. break;
  109. case kH2O2SensorBoard:
  110. break;
  111. default:
  112. gInitErrorFlag = true;
  113. break;
  114. }
  115. ZLOGI(TAG, "======================= init processer ================ ");
  116. ProtocolProcesserMgr::ins()->startSchedule(PublicBoard::ins()->getBoardId());
  117. ZLOGI(TAG, "=");
  118. AppPeriodTaskMgr::ins()->startScheduler();
  119. ZLOGI(TAG, "======================= sysinfo ======================= ");
  120. SysMgr::ins()->initedFinished();
  121. SysMgr::ins()->dumpSysInfo();
  122. ZLOGI(TAG, "=");
  123. while (true) {
  124. osDelay(1);
  125. debug_light_ctrl();
  126. }
  127. }