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.

173 lines
5.3 KiB

2 years ago
2 months 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
2 years ago
1 year ago
11 months 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
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
2 years ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
2 years ago
2 years ago
  1. #include <stddef.h>
  2. #include <stdio.h>
  3. #include "version.h"
  4. #include "configs/device_id_mgr.hpp"
  5. #include "public_service/public_service.hpp"
  6. #include "sdk/chip/chip.hpp"
  7. #include "sdk/os/zos.hpp"
  8. #include "sysmgr/sys_mgr.hpp"
  9. //
  10. #include "subboards/subboard100_idcard_reader/subboard100_id_card_reader.hpp"
  11. #include "subboards/subboard100_idcard_reader/subboard100_id_card_reader_board.h"
  12. #include "subboards/subboard10_hbot_v2/subboard10_hbot_board_v2.h"
  13. #include "subboards/subboard10_hbot_v2/subboard10_hbot_v2.hpp"
  14. #include "subboards/subboard200_ext_tmc5160/subboard200_ext_tmc5160.hpp"
  15. #include "subboards/subboard200_ext_tmc5160/subboard200_ext_tmc5160_board.h"
  16. #include "subboards/subboard20_plate_clamp_case/subboard20_plate_clamp_case.hpp"
  17. #include "subboards/subboard20_plate_clamp_case/subboard20_plate_clamp_case_board.h"
  18. #include "subboards/subboard30_shake_module/subboard30_shake_module.hpp"
  19. #include "subboards/subboard30_shake_module/subboard30_shake_module_board.h"
  20. #include "subboards/subboard40_and_50_temperature_ctrl/subboard40_and_50_temperature_ctrl.hpp"
  21. #include "subboards/subboard40_and_50_temperature_ctrl/subboard40_and_50_temperature_ctrl_board.h"
  22. #include "subboards/subboard60_inlet_and_outlet_module/subboard60_inlet_and_outlet_module.hpp"
  23. #include "subboards/subboard60_inlet_and_outlet_module/subboard60_inlet_and_outlet_module_board.h"
  24. #include "subboards/subboard70_incubation_turntable/subboard70_incubation_turntable.hpp"
  25. #include "subboards/subboard70_incubation_turntable/subboard70_incubation_turntable_board.h"
  26. #include "subboards/subboard80_cliptip/subboard80_cliptip.hpp"
  27. #include "subboards/subboard80_cliptip/subboard80_cliptip_board.h"
  28. #include "subboards/subboard90_optical_module/subboard90_optical_module.hpp"
  29. #include "subboards/subboard90_optical_module/subboard90_optical_module_board.h"
  30. //
  31. #define TAG "main"
  32. using namespace std;
  33. using namespace iflytop;
  34. extern void umain();
  35. extern "C" {
  36. void StartDefaultTask(void const* argument) { umain(); }
  37. }
  38. int32_t deviceId = 0;
  39. static void board_init() {
  40. switch (deviceId) {
  41. case 10:
  42. subboard10v2_hbot_board_init();
  43. break;
  44. case 20: // 板夹仓
  45. subboard20_plate_clamp_case_board_init();
  46. break;
  47. case 30: // 摇匀模组
  48. subboard30_shake_module_board_init();
  49. break;
  50. case 40: // 温度控制板40
  51. case 50: // 温度控制板50
  52. subboard40_and_50_temperature_ctrl_board_init();
  53. break;
  54. case 60: // 进出料模组
  55. subboard60_inlet_and_outlet_module_board_init();
  56. break;
  57. case 70: // 孵化转盘
  58. subboard70_incubation_turntable_board_init();
  59. break;
  60. case 80:
  61. subboard80_cliptip_board_init();
  62. break;
  63. case 90:
  64. subboard90_optical_module_board_init();
  65. break;
  66. case 100:
  67. subboard100_id_card_reader_board_init();
  68. break;
  69. case 200:
  70. subboard200_ext_tmc5160_board_init();
  71. break;
  72. default:
  73. common_hardware_init();
  74. break;
  75. }
  76. }
  77. static void board_post_init() {
  78. GService::inst()->initialize();
  79. switch (deviceId) {
  80. case 10:
  81. Subboard10HbotV2::ins()->initialize();
  82. break;
  83. case 20:
  84. Subboard20PlateClampCase::ins()->initialize();
  85. break;
  86. case 30: // 摇匀模组
  87. Subboard30ShakeModule::ins()->initialize();
  88. break;
  89. case 40: // 温度控制板40
  90. case 50: // 温度控制板50
  91. Subboard40And50TemperatureCtrl::ins()->initialize();
  92. break;
  93. case 60: // 进出料模组
  94. Subboard60InjectAndOutletModule::ins()->initialize();
  95. break;
  96. case 70: // 孵化转盘
  97. Subboard70IncubationTurntable::ins()->initialize();
  98. break;
  99. case 80:
  100. Subboard80Cliptip::ins()->initialize();
  101. break;
  102. case 100:
  103. Subboard100IdCardReader::ins()->initialize();
  104. break;
  105. case 200:
  106. Subboard200ExtTmc5160::ins()->initialize();
  107. break;
  108. case 90:
  109. Subboard90OpticalModule::ins()->initialize();
  110. break;
  111. default:
  112. break;
  113. }
  114. }
  115. void umain() {
  116. deviceId = zdevice_id_mgr_get_device_id();
  117. board_init();
  118. Pin_t debugLight = PC_DEBUG_LIGHT_GPIO;
  119. if (deviceId == 20 || deviceId == 90) {
  120. debugLight = PC_SUBBOARD_20_70_LIGHT_GPIO;
  121. }
  122. zos_cfg_t zoscfg = {0};
  123. chip_cfg_t chipcfg = {};
  124. chipcfg.us_dleay_tim = &PC_SYS_DELAY_US_TIMER;
  125. chipcfg.tim_irq_scheduler_tim = &PC_SYS_TIM_IRQ_SCHEDULER_TIMER;
  126. chipcfg.huart = &PC_DEBUG_UART;
  127. chipcfg.debuglight = debugLight;
  128. chip_init(&chipcfg);
  129. zos_init(&zoscfg);
  130. zdevice_id_mgr_init();
  131. ZEARLY_LOGI("SYS", "chip init ok");
  132. ZEARLY_LOGI("SYS", "= manufacturer : %s", PC_MANUFACTURER);
  133. ZEARLY_LOGI("SYS", "= project name : %s", PC_PROJECT_NAME);
  134. ZEARLY_LOGI("SYS", "= version : %d", get_app_version());
  135. ZEARLY_LOGI("SYS", "= freq : %d", HAL_RCC_GetSysClockFreq());
  136. ZEARLY_LOGI("SYS", "= build time : %s", __DATE__ " " __TIME__);
  137. ZEARLY_LOGI("SYS", "= device id : %d", deviceId);
  138. if (deviceId <= 0) {
  139. chip_set_error();
  140. ZEARLY_LOGE("SYS", "device id is not set");
  141. while (true) {
  142. zos_delay(1);
  143. }
  144. }
  145. board_post_init();
  146. ZLOGI(TAG, "======================= sysinfo ======================= ");
  147. SysMgr::ins()->initedFinished();
  148. SysMgr::ins()->dumpSysInfo();
  149. ZLOGI(TAG, "=");
  150. while (true) {
  151. GService::inst()->getZCanReceiver()->loop();
  152. zos_delay(1);
  153. }
  154. }