全司美特-单片机程序
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.

120 lines
3.7 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
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
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
2 years ago
1 year ago
1 year ago
2 years ago
2 years ago
  1. #include <stddef.h>
  2. #include <stdio.h>
  3. #include "board/board.hpp"
  4. //
  5. #include "base/config_service.hpp"
  6. #include "base/device_info.hpp"
  7. #include "board/public_board.hpp"
  8. //
  9. #include "gflag/gflag.h"
  10. #include "idtable/IdMgr.hpp"
  11. //
  12. #include "protocol_processer_impl/processer.hpp"
  13. #include "protocol_processer_mgr/protocol_processer_mgr.hpp"
  14. //
  15. #include "zsdk/zcanreceiver/zcanreceiver.hpp"
  16. #include "zsdk/zsdk.hpp"
  17. #define TAG "main"
  18. using namespace iflytop;
  19. extern void umain();
  20. extern "C" {
  21. void StartDefaultTask(void const* argument) { umain(); }
  22. }
  23. /*******************************************************************************
  24. * MAIN *
  25. *******************************************************************************/
  26. extern "C" {
  27. // void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) {
  28. // }
  29. }
  30. void debug_light_ctrl() {
  31. static uint32_t lastcall = 0;
  32. static bool light_status = false;
  33. if (!gInitErrorFlag) {
  34. if (zhas_passedms(lastcall) > 300) {
  35. PublicBoard::ins()->toggleDebugLight();
  36. lastcall = zget_ticket();
  37. }
  38. } else {
  39. if (zhas_passedms(lastcall) > 30) {
  40. PublicBoard::ins()->toggleDebugLight();
  41. lastcall = zget_ticket();
  42. }
  43. }
  44. }
  45. void idtable_init() {
  46. // 大空间ID初始化
  47. IdMgr::ins().addIdItem({klarge_space_disinfection_machine, kBoardType_LiquidCtrl, kFixBoardId_LiquidCtrl});
  48. IdMgr::ins().addIdItem({klarge_space_disinfection_machine, kBoardType_PowerControl, kFixBoardId_PowerControl});
  49. // 小空间ID初始化
  50. IdMgr::ins().addIdItem({ksmall_space_disinfection_machine, kBoardType_LiquidCtrl, kFixBoardId_LiquidCtrl});
  51. IdMgr::ins().addIdItem({ksmall_space_disinfection_machine, kBoardType_PowerControl, kFixBoardId_PowerControl});
  52. // 管道ID初始化
  53. IdMgr::ins().addIdItem({kpipe_disinfection_machine, kBoardType_LiquidCtrl, kFixBoardId_LiquidCtrl});
  54. IdMgr::ins().addIdItem({kpipe_disinfection_machine, kBoardType_PowerControl, kFixBoardId_PowerControl});
  55. // 拉杆箱ID初始化
  56. IdMgr::ins().addIdItem({kdraw_bar_disinfection_box, kBoardType_LiquidCtrl, kFixBoardId_LiquidCtrl});
  57. IdMgr::ins().addIdItem({kdraw_bar_disinfection_box, kBoardType_PowerControlMiniBoard, kFixBoardId_PowerControl});
  58. // H2O2传感器ID初始化
  59. IdMgr::ins().addIdItem({kh2o2_ext_sensor, kBoardType_H2O2Sensor, kFixBoardId_H2O2SensorStart});
  60. }
  61. void umain() {
  62. gBoardFlagSetResetFlag();
  63. idtable_init();
  64. deviceInfo_init();
  65. config_init();
  66. PublicBoard::ins()->initialize();
  67. ZLOGI(TAG, "======================= boardinfo ==================== ");
  68. ZLOGI(TAG, "project : %s ", PROJECT);
  69. ZLOGI(TAG, "version : %d ", SOFTWARE_VERSION);
  70. ZLOGI(TAG, "pversion: %d", deviceInfo_getProtocolVersion());
  71. ZLOGI(TAG, "sn : %s", sn_get_str());
  72. ZLOGI(TAG, "boardId : %d", PublicBoard::ins()->getBoardId());
  73. ZLOGI(TAG, "=");
  74. switch (PublicBoard::ins()->getBoardTypeId()) {
  75. case kBoardType_LiquidCtrl:
  76. LiquidCtrlBoard::ins()->initialize();
  77. break;
  78. case kBoardType_PowerControl:
  79. break;
  80. case kBoardType_PowerControlMiniBoard:
  81. break;
  82. case kBoardType_ExtBallValveCtrl:
  83. break;
  84. case kBoardType_H2O2Sensor:
  85. break;
  86. default:
  87. gInitErrorFlag = true;
  88. break;
  89. }
  90. ZLOGI(TAG, "======================= init processer ================ ");
  91. ProtocolProcesserMgr::ins()->initialize();
  92. ProtocolProcesserMgr::ins()->regProcesser(PublicCmdProcesser::ins());
  93. ProtocolProcesserMgr::ins()->startSchedule();
  94. ZLOGI(TAG, "=");
  95. ZLOGI(TAG, "======================= sysinfo ======================= ");
  96. SysMgr::ins()->initedFinished();
  97. SysMgr::ins()->dumpSysInfo();
  98. ZLOGI(TAG, "=");
  99. while (true) {
  100. osDelay(1);
  101. debug_light_ctrl();
  102. }
  103. }