正点原子开发板 alientek_develop_board cancmder
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.

125 lines
5.4 KiB

2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
  1. #include "main.hpp"
  2. #include <stddef.h>
  3. #include <stdio.h>
  4. //
  5. #include "sdk/os/zos.hpp"
  6. //
  7. // #include "sdk\components\cmdscheduler\cmd_scheduler.hpp"
  8. #include "sdk\components\eq_20_asb_motor\eq20_servomotor.hpp"
  9. #include "sdk\components\iflytop_can_slave_module_master_end\stepmotor.hpp"
  10. #include "sdk\components\iflytop_can_slave_v1\iflytop_can_master.hpp"
  11. #include "sdk\components\step_motor_45\step_motor_45.hpp"
  12. #include "sdk\components\step_motor_45\step_motor_45_scheduler.hpp"
  13. #include "sdk\components\zcancmder\zcanreceiver_master.hpp"
  14. //
  15. #include "sdk\components\cmdscheduler\cmd_scheduler_v2.hpp"
  16. #include "sdk\components\eq_20_asb_motor\script_cmder_eq20_servomotor.hpp"
  17. #include "sdk\components\mini_servo_motor\mini_servo_motor_ctrl_module.hpp"
  18. #include "sdk\components\mini_servo_motor\scirpt_cmder_mini_servo_motor_ctrl_module.hpp"
  19. #include "sdk\components\step_motor_45\script_cmder_step_motor_45.hpp"
  20. // #include "sdk\components\scriptcmder_module\xy_robot_script_cmder_module.hpp"
  21. // #include "sdk\components\zcancmder_master_module/zcan_master_step_motor_ctrl_module.hpp"
  22. // #include "sdk\components\zcancmder_master_module\zcan_xy_robot_master_module.hpp"
  23. #include "sdk\components\taojingchi_screen\taojingchi_screen_service.hpp"
  24. #include "sdk\components\zprotocol_helper\micro_computer_module_device_script_cmder_paser.hpp"
  25. #include "sdk\components\zprotocols\zcancmder_v2\protocol_proxy.hpp"
  26. #include "sdk\components\zprotocols\zcancmder_v2\zmodule_device_manager.hpp"
  27. #include "sdk\components\zprotocols\zcancmder_v2\zmodule_device_script_cmder_paser.hpp"
  28. //
  29. #define TAG "main"
  30. namespace iflytop {
  31. Main gmain;
  32. };
  33. using namespace iflytop;
  34. using namespace std;
  35. #define CHECK_ARGC(n) \
  36. if (argc != (n + 1)) { \
  37. ZLOGE(TAG, "argc != %d", n); \
  38. context->breakflag = true; \
  39. return; \
  40. }
  41. extern "C" {
  42. void StartDefaultTask(void const* argument) { iflytop::gmain.run(); }
  43. }
  44. /*******************************************************************************
  45. * *
  46. *******************************************************************************/
  47. static chip_cfg_t chipcfg = {
  48. .us_dleay_tim = &DELAY_US_TIMER,
  49. .tim_irq_scheduler_tim = &TIM_IRQ_SCHEDULER_TIMER,
  50. .huart = &DEBUG_UART,
  51. .debuglight = DEBUG_LIGHT_GPIO,
  52. };
  53. namespace iflytop {
  54. /*******************************************************************************
  55. * *
  56. *******************************************************************************/
  57. ZCanCommnaderMaster m_zcanCommnaderMaster; // can����
  58. ModbusBlockHost g_modbusblockhost; // modbus����
  59. CmdSchedulerV2 g_cmdScheduler; // �����ַ���ָ������
  60. MicroComputerModuleDeviceScriptCmderPaser g_zmodule_device_script_cmder_paser; // ���ڽ������е��豸ָ��
  61. ZModuleDeviceManager g_zmodule_device_manager; // �豸������
  62. /*******************************************************************************
  63. * CAN *
  64. *******************************************************************************/
  65. ZIProtocolProxy protocolProxy[30];
  66. } // namespace iflytop
  67. extern "C" {
  68. extern DMA_HandleTypeDef hdma_usart3_rx;
  69. extern DMA_HandleTypeDef hdma_usart3_tx;
  70. }
  71. extern "C" {}
  72. extern DMA_HandleTypeDef hdma_usart2_rx;
  73. extern DMA_HandleTypeDef hdma_usart2_tx;
  74. extern void script_reg_fn();
  75. void regfn() { script_reg_fn(); }
  76. extern void step_motor_cmd_reg();
  77. void Main::run() {
  78. // PB13
  79. /*******************************************************************************
  80. * ϵͳʼ *
  81. *******************************************************************************/
  82. chip_init(&chipcfg);
  83. zos_cfg_t zoscfg;
  84. zos_init(&zoscfg);
  85. /*******************************************************************************
  86. * ߳ʼ *
  87. *******************************************************************************/
  88. auto* cfg = m_zcanCommnaderMaster.createCFG(); // can��������
  89. m_zcanCommnaderMaster.init(cfg); // can����
  90. g_zmodule_device_manager.initialize(&m_zcanCommnaderMaster);
  91. /*******************************************************************************
  92. * ͳʼ *
  93. *******************************************************************************/
  94. for (size_t i = 0; i < ZARRAY_SIZE(protocolProxy); i++) {
  95. protocolProxy[i].initialize(i + 1, &m_zcanCommnaderMaster);
  96. g_zmodule_device_manager.registerModule(&protocolProxy[i]);
  97. }
  98. /*******************************************************************************
  99. * ַָ *
  100. *******************************************************************************/
  101. g_cmdScheduler.initialize(&DEBUG_UART, 1000); //
  102. g_zmodule_device_script_cmder_paser.initialize(&g_cmdScheduler, &g_zmodule_device_manager);
  103. #if 0
  104. step_motor_cmd_reg();
  105. #endif
  106. while (true) {
  107. OSDefaultSchduler::getInstance()->loop();
  108. g_cmdScheduler.schedule();
  109. osDelay(1);
  110. }
  111. }