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.

188 lines
9.4 KiB

2 years ago
2 years ago
  1. #include <stddef.h>
  2. #include <stdio.h>
  3. #include "sdk/os/zos.hpp"
  4. #include "sdk\components\flash\zsimple_flash.hpp"
  5. #include "sdk\components\zcancmder\zcanreceiver.hpp"
  6. #include "sdk\components\zcancmder_module\zcan_basic_order_module.hpp"
  7. #include "sdk\components\zprotocols\zcancmder_v2\protocol_parser.hpp"
  8. //
  9. #include "sdk\components\flash\znvs.hpp"
  10. //
  11. #include "global.hpp"
  12. #include "sdk/components/step_motor_ctrl_module/step_motor_ctrl_module.hpp"
  13. #include "sdk\components\cmdscheduler\cmd_scheduler_v2.hpp"
  14. #include "sdk\components\hardware\uart\zuart_dma_receiver.hpp"
  15. #include "sdk\components\mini_servo_motor\mini_servo_motor_ctrl_module.hpp"
  16. #include "sdk\components\pipette_module\pipette_ctrl_module_v2.hpp"
  17. #include "sdk\components\sensors\m3078\m3078_code_scaner.hpp"
  18. #include "sdk\components\sensors\tmp117\tmp117.hpp"
  19. #include "sdk\components\ti\drv8710.hpp"
  20. #include "sdk\components\tmc\ic\ztmc5130.hpp"
  21. #include "sdk\components\water_cooling_temperature_control_module\pwm_ctrl_module.hpp"
  22. #include "sdk\components\water_cooling_temperature_control_module\water_cooling_temperature_control_module.hpp"
  23. #include "sdk\components\zcancmder\zcan_board_module.hpp"
  24. #include "sdk\components\zcancmder\zcanreceiver_master.hpp"
  25. #include "sdk\components\zprotocol_helper\micro_computer_module_device_script_cmder_paser.hpp"
  26. #include "sdk\components\zprotocols\zcancmder_v2\protocol_proxy.hpp"
  27. #include "sdk\components\zprotocols\zcancmder_v2\zmodule_device_manager.hpp"
  28. // #include "M3078CodeScanner"
  29. #define TAG "main"
  30. using namespace iflytop;
  31. using namespace std;
  32. static ZModuleDeviceManager g_zModuleDeviceManager;
  33. static MicroComputerModuleDeviceScriptCmderPaser g_zModuleDeviceScriptCmderPaser;
  34. static ZIProtocolProxy proxy[255];
  35. void cmdline_version_main() {
  36. chip_cfg_t chipcfg;
  37. chipcfg.us_dleay_tim = &PC_SYS_DELAY_US_TIMER;
  38. chipcfg.tim_irq_scheduler_tim = &PC_SYS_TIM_IRQ_SCHEDULER_TIMER;
  39. chipcfg.huart = &PC_DEBUG_UART;
  40. chipcfg.debuglight = PC_DEBUG_LIGHT_GPIO;
  41. chip_init(&chipcfg);
  42. zos_cfg_t zoscfg;
  43. zos_init(&zoscfg);
  44. ZLOGI(TAG, "boardId:%d", 0);
  45. ZLOGI(TAG, "init can bus");
  46. auto* m_zcanCommnaderMaster_cfg = g_zcanCommnaderMaster.createCFG(); // can��������
  47. g_zcanCommnaderMaster.init(m_zcanCommnaderMaster_cfg); // can����
  48. g_zModuleDeviceManager.initialize(&g_zcanCommnaderMaster);
  49. ZLOGI(TAG, "init can bus end...");
  50. static ZUARTDmaReceiver dmaUartReceiver;
  51. static CmdSchedulerV2 cmder;
  52. ZUARTDmaReceiver::hardware_config_t cfg = {
  53. .huart = &PC_DEBUG_UART,
  54. .dma_rx = &PC_DEBUG_UART_DMA_HANDLER,
  55. .rxbuffersize = PC_DEBUG_UART_RX_BUF_SIZE,
  56. .rxovertime_ms = 10,
  57. };
  58. ZLOGI(TAG, "init cmder");
  59. dmaUartReceiver.initialize(&cfg);
  60. cmder.initialize(&dmaUartReceiver);
  61. ZLOGI(TAG, "init cmder end...");
  62. ZLOGI(TAG, "init module");
  63. g_zModuleDeviceManager.initialize(&g_zcanCommnaderMaster);
  64. g_zModuleDeviceScriptCmderPaser.initialize(&cmder, &g_zModuleDeviceManager);
  65. ZLOGI(TAG, "reg modules");
  66. for (size_t i = 1; i < 255; i++) {
  67. proxy[i].initialize(i, &g_zcanCommnaderMaster);
  68. g_zModuleDeviceManager.registerModule(&proxy[i]);
  69. }
  70. ZLOGI(TAG, "board init ok...");
  71. osDelay(3000);
  72. // 11 ����ת��
  73. // 12 ����1
  74. // 21 ���������
  75. // 22 ����е�ۼ�ȡ
  76. // 31 ����е����ת
  77. // 41 ��Һ��е����ת
  78. // 51 ��Һת��
  79. // 61 �����䶯��1
  80. // 70 IO��
  81. // ����ת��
  82. // g_zModuleDeviceManager.module_set_reg(11, kreg_motor_shaft, 0);
  83. // g_zModuleDeviceManager.module_set_reg(11, kreg_motor_one_circle_pulse, 10000);
  84. // g_zModuleDeviceManager.module_set_reg(11, kreg_motor_one_circle_pulse_denominator, 30);
  85. // g_zModuleDeviceManager.module_set_reg(11, kreg_motor_default_velocity, 150);
  86. // g_zModuleDeviceManager.module_set_reg(11, kreg_motor_default_acc, 25);
  87. // g_zModuleDeviceManager.module_set_reg(11, kreg_motor_default_dec, 10);
  88. // g_zModuleDeviceManager.module_set_reg(11, kreg_stepmotor_ihold, 0);
  89. // g_zModuleDeviceManager.module_set_reg(11, kreg_stepmotor_irun, 31);
  90. // g_zModuleDeviceManager.module_set_reg(11, kreg_stepmotor_iholddelay, 100);
  91. // g_zModuleDeviceManager.module_set_reg(11, kreg_motor_run_to_zero_speed, 120);
  92. // g_zModuleDeviceManager.module_set_reg(11, kreg_motor_run_to_zero_dec, 25);
  93. // g_zModuleDeviceManager.module_set_reg(11, kreg_motor_look_zero_edge_speed, 25);
  94. // g_zModuleDeviceManager.module_set_reg(11, kreg_motor_look_zero_edge_dec, 50);
  95. // g_zModuleDeviceManager.module_active_cfg(11);
  96. // // �ǸǶ���
  97. // g_zModuleDeviceManager.module_set_reg(12, kreg_motor_default_velocity, 150);
  98. // g_zModuleDeviceManager.module_set_reg(12, kreg_motor_default_torque, 1000);
  99. // g_zModuleDeviceManager.module_active_cfg(12);
  100. // // ����
  101. // g_zModuleDeviceManager.module_set_reg(21, kreg_motor_shaft, 0);
  102. // g_zModuleDeviceManager.module_set_reg(21, kreg_motor_one_circle_pulse, 1000);
  103. // g_zModuleDeviceManager.module_set_reg(21, kreg_motor_one_circle_pulse_denominator, 1);
  104. // g_zModuleDeviceManager.module_set_reg(21, kreg_motor_default_velocity, 150);
  105. // g_zModuleDeviceManager.module_set_reg(21, kreg_motor_default_acc, 25);
  106. // g_zModuleDeviceManager.module_set_reg(21, kreg_motor_default_dec, 10);
  107. // g_zModuleDeviceManager.module_set_reg(21, kreg_stepmotor_ihold, 0);
  108. // g_zModuleDeviceManager.module_set_reg(21, kreg_stepmotor_irun, 31);
  109. // g_zModuleDeviceManager.module_set_reg(21, kreg_stepmotor_iholddelay, 100);
  110. // g_zModuleDeviceManager.module_set_reg(21, kreg_motor_run_to_zero_speed, 120);
  111. // g_zModuleDeviceManager.module_set_reg(21, kreg_motor_run_to_zero_dec, 25);
  112. // g_zModuleDeviceManager.module_set_reg(21, kreg_motor_look_zero_edge_speed, 25);
  113. // g_zModuleDeviceManager.module_set_reg(21, kreg_motor_look_zero_edge_dec, 50);
  114. // g_zModuleDeviceManager.module_active_cfg(21);
  115. // // ��צ����
  116. // g_zModuleDeviceManager.module_set_reg(22, kreg_motor_default_velocity, 800);
  117. // g_zModuleDeviceManager.module_set_reg(22, kreg_motor_default_torque, 330);
  118. // g_zModuleDeviceManager.module_active_cfg(22);
  119. // // ��Һ����
  120. // g_zModuleDeviceManager.module_set_reg(61, kreg_motor_shaft, 0);
  121. // g_zModuleDeviceManager.module_set_reg(61, kreg_motor_one_circle_pulse, 10000);
  122. // g_zModuleDeviceManager.module_set_reg(61, kreg_motor_one_circle_pulse_denominator, 1);
  123. // g_zModuleDeviceManager.module_set_reg(61, kreg_motor_default_velocity, 50);
  124. // g_zModuleDeviceManager.module_set_reg(61, kreg_motor_default_acc, 300);
  125. // g_zModuleDeviceManager.module_set_reg(61, kreg_motor_default_dec, 300);
  126. // g_zModuleDeviceManager.module_set_reg(61, kreg_stepmotor_ihold, 0);
  127. // g_zModuleDeviceManager.module_set_reg(61, kreg_stepmotor_irun, 4);
  128. // g_zModuleDeviceManager.module_set_reg(61, kreg_stepmotor_iholddelay, 100);
  129. // g_zModuleDeviceManager.module_active_cfg(61);
  130. // ����ת��
  131. // g_zModuleDeviceManager.module_set_reg(41, kreg_motor_shaft, 0);
  132. // g_zModuleDeviceManager.module_set_reg(41, kreg_motor_one_circle_pulse, 1000);
  133. // g_zModuleDeviceManager.module_set_reg(41, kreg_motor_one_circle_pulse_denominator, 18);
  134. // g_zModuleDeviceManager.module_set_reg(41, kreg_motor_default_velocity, 50);
  135. // g_zModuleDeviceManager.module_set_reg(41, kreg_motor_default_acc, 300);
  136. // g_zModuleDeviceManager.module_set_reg(41, kreg_motor_default_dec, 300);
  137. // g_zModuleDeviceManager.module_set_reg(41, kreg_stepmotor_ihold, 1);
  138. // g_zModuleDeviceManager.module_set_reg(41, kreg_stepmotor_irun, 4);
  139. // g_zModuleDeviceManager.module_set_reg(41, kreg_stepmotor_iholddelay, 100);
  140. // g_zModuleDeviceManager.module_set_reg(41, kreg_motor_run_to_zero_max_d, 36000);
  141. // g_zModuleDeviceManager.module_set_reg(41, kreg_motor_look_zero_edge_max_d, 360);
  142. // g_zModuleDeviceManager.module_set_reg(41, kreg_motor_run_to_zero_speed, 50);
  143. // g_zModuleDeviceManager.module_set_reg(41, kreg_motor_run_to_zero_dec, 300);
  144. // g_zModuleDeviceManager.module_set_reg(41, kreg_motor_look_zero_edge_speed, 50);
  145. // g_zModuleDeviceManager.module_set_reg(41, kreg_motor_look_zero_edge_dec, 600);
  146. // g_zModuleDeviceManager.module_active_cfg(41);
  147. // g_zModuleDeviceManager.module_set_reg(51, kreg_motor_shaft, 0);
  148. // g_zModuleDeviceManager.module_set_reg(51, kreg_motor_one_circle_pulse, 3600);
  149. // g_zModuleDeviceManager.module_set_reg(51, kreg_motor_one_circle_pulse_denominator, 18);
  150. // g_zModuleDeviceManager.module_set_reg(51, kreg_motor_default_velocity, 100);
  151. // g_zModuleDeviceManager.module_set_reg(51, kreg_motor_default_acc, 300);
  152. // g_zModuleDeviceManager.module_set_reg(51, kreg_motor_default_dec, 300);
  153. // g_zModuleDeviceManager.module_set_reg(51, kreg_stepmotor_ihold, 1);
  154. // g_zModuleDeviceManager.module_set_reg(51, kreg_stepmotor_irun, 8);
  155. // g_zModuleDeviceManager.module_set_reg(51, kreg_stepmotor_iholddelay, 100);
  156. // g_zModuleDeviceManager.module_set_reg(51, kreg_motor_run_to_zero_max_d, 36000);
  157. // g_zModuleDeviceManager.module_set_reg(51, kreg_motor_look_zero_edge_max_d, 360);
  158. // g_zModuleDeviceManager.module_set_reg(51, kreg_motor_run_to_zero_speed, 50);
  159. // g_zModuleDeviceManager.module_set_reg(51, kreg_motor_run_to_zero_dec, 300);
  160. // g_zModuleDeviceManager.module_set_reg(51, kreg_motor_look_zero_edge_speed, 50);
  161. // g_zModuleDeviceManager.module_set_reg(51, kreg_motor_look_zero_edge_dec, 600);
  162. // g_zModuleDeviceManager.module_active_cfg(51);
  163. while (true) {
  164. OSDefaultSchduler::getInstance()->loop();
  165. cmder.schedule();
  166. }
  167. };