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
188 lines
9.4 KiB
#include <stddef.h>
|
|
#include <stdio.h>
|
|
|
|
#include "sdk/os/zos.hpp"
|
|
#include "sdk\components\flash\zsimple_flash.hpp"
|
|
#include "sdk\components\zcancmder\zcanreceiver.hpp"
|
|
#include "sdk\components\zcancmder_module\zcan_basic_order_module.hpp"
|
|
#include "sdk\components\zprotocols\zcancmder_v2\protocol_parser.hpp"
|
|
//
|
|
#include "sdk\components\flash\znvs.hpp"
|
|
//
|
|
#include "global.hpp"
|
|
#include "sdk/components/step_motor_ctrl_module/step_motor_ctrl_module.hpp"
|
|
#include "sdk\components\cmdscheduler\cmd_scheduler_v2.hpp"
|
|
#include "sdk\components\hardware\uart\zuart_dma_receiver.hpp"
|
|
#include "sdk\components\mini_servo_motor\mini_servo_motor_ctrl_module.hpp"
|
|
#include "sdk\components\pipette_module\pipette_ctrl_module_v2.hpp"
|
|
#include "sdk\components\sensors\m3078\m3078_code_scaner.hpp"
|
|
#include "sdk\components\sensors\tmp117\tmp117.hpp"
|
|
#include "sdk\components\ti\drv8710.hpp"
|
|
#include "sdk\components\tmc\ic\ztmc5130.hpp"
|
|
#include "sdk\components\water_cooling_temperature_control_module\pwm_ctrl_module.hpp"
|
|
#include "sdk\components\water_cooling_temperature_control_module\water_cooling_temperature_control_module.hpp"
|
|
#include "sdk\components\zcancmder\zcan_board_module.hpp"
|
|
#include "sdk\components\zcancmder\zcanreceiver_master.hpp"
|
|
#include "sdk\components\zprotocol_helper\micro_computer_module_device_script_cmder_paser.hpp"
|
|
#include "sdk\components\zprotocols\zcancmder_v2\protocol_proxy.hpp"
|
|
#include "sdk\components\zprotocols\zcancmder_v2\zmodule_device_manager.hpp"
|
|
// #include "M3078CodeScanner"
|
|
|
|
#define TAG "main"
|
|
using namespace iflytop;
|
|
using namespace std;
|
|
static ZModuleDeviceManager g_zModuleDeviceManager;
|
|
static MicroComputerModuleDeviceScriptCmderPaser g_zModuleDeviceScriptCmderPaser;
|
|
static ZIProtocolProxy proxy[255];
|
|
|
|
void cmdline_version_main() {
|
|
chip_cfg_t chipcfg;
|
|
chipcfg.us_dleay_tim = &PC_SYS_DELAY_US_TIMER;
|
|
chipcfg.tim_irq_scheduler_tim = &PC_SYS_TIM_IRQ_SCHEDULER_TIMER;
|
|
chipcfg.huart = &PC_DEBUG_UART;
|
|
chipcfg.debuglight = PC_DEBUG_LIGHT_GPIO;
|
|
|
|
chip_init(&chipcfg);
|
|
|
|
zos_cfg_t zoscfg;
|
|
zos_init(&zoscfg);
|
|
|
|
ZLOGI(TAG, "boardId:%d", 0);
|
|
|
|
ZLOGI(TAG, "init can bus");
|
|
auto* m_zcanCommnaderMaster_cfg = g_zcanCommnaderMaster.createCFG(); // can总线配置
|
|
g_zcanCommnaderMaster.init(m_zcanCommnaderMaster_cfg); // can总线
|
|
g_zModuleDeviceManager.initialize(&g_zcanCommnaderMaster);
|
|
ZLOGI(TAG, "init can bus end...");
|
|
|
|
static ZUARTDmaReceiver dmaUartReceiver;
|
|
static CmdSchedulerV2 cmder;
|
|
ZUARTDmaReceiver::hardware_config_t cfg = {
|
|
.huart = &PC_DEBUG_UART,
|
|
.dma_rx = &PC_DEBUG_UART_DMA_HANDLER,
|
|
.rxbuffersize = PC_DEBUG_UART_RX_BUF_SIZE,
|
|
.rxovertime_ms = 10,
|
|
};
|
|
ZLOGI(TAG, "init cmder");
|
|
dmaUartReceiver.initialize(&cfg);
|
|
cmder.initialize(&dmaUartReceiver);
|
|
ZLOGI(TAG, "init cmder end...");
|
|
|
|
ZLOGI(TAG, "init module");
|
|
g_zModuleDeviceManager.initialize(&g_zcanCommnaderMaster);
|
|
g_zModuleDeviceScriptCmderPaser.initialize(&cmder, &g_zModuleDeviceManager);
|
|
ZLOGI(TAG, "reg modules");
|
|
|
|
for (size_t i = 1; i < 255; i++) {
|
|
proxy[i].initialize(i, &g_zcanCommnaderMaster);
|
|
g_zModuleDeviceManager.registerModule(&proxy[i]);
|
|
}
|
|
|
|
ZLOGI(TAG, "board init ok...");
|
|
osDelay(3000);
|
|
|
|
// 11 加热转盘
|
|
// 12 开盖1
|
|
// 21 主机械臂升降
|
|
// 22 主机械臂夹取
|
|
// 31 主机械臂旋转
|
|
// 41 加液机械臂旋转
|
|
// 51 加液转盘
|
|
// 61 加酸蠕动泵1
|
|
// 70 IO板
|
|
|
|
// 加热转盘
|
|
// g_zModuleDeviceManager.module_set_reg(11, kreg_motor_shaft, 0);
|
|
// g_zModuleDeviceManager.module_set_reg(11, kreg_motor_one_circle_pulse, 10000);
|
|
// g_zModuleDeviceManager.module_set_reg(11, kreg_motor_one_circle_pulse_denominator, 30);
|
|
// g_zModuleDeviceManager.module_set_reg(11, kreg_motor_default_velocity, 150);
|
|
// g_zModuleDeviceManager.module_set_reg(11, kreg_motor_default_acc, 25);
|
|
// g_zModuleDeviceManager.module_set_reg(11, kreg_motor_default_dec, 10);
|
|
// g_zModuleDeviceManager.module_set_reg(11, kreg_stepmotor_ihold, 0);
|
|
// g_zModuleDeviceManager.module_set_reg(11, kreg_stepmotor_irun, 31);
|
|
// g_zModuleDeviceManager.module_set_reg(11, kreg_stepmotor_iholddelay, 100);
|
|
// g_zModuleDeviceManager.module_set_reg(11, kreg_motor_run_to_zero_speed, 120);
|
|
// g_zModuleDeviceManager.module_set_reg(11, kreg_motor_run_to_zero_dec, 25);
|
|
// g_zModuleDeviceManager.module_set_reg(11, kreg_motor_look_zero_edge_speed, 25);
|
|
// g_zModuleDeviceManager.module_set_reg(11, kreg_motor_look_zero_edge_dec, 50);
|
|
// g_zModuleDeviceManager.module_active_cfg(11);
|
|
|
|
// // 盖盖舵机
|
|
// g_zModuleDeviceManager.module_set_reg(12, kreg_motor_default_velocity, 150);
|
|
// g_zModuleDeviceManager.module_set_reg(12, kreg_motor_default_torque, 1000);
|
|
// g_zModuleDeviceManager.module_active_cfg(12);
|
|
|
|
// // 升降
|
|
// g_zModuleDeviceManager.module_set_reg(21, kreg_motor_shaft, 0);
|
|
// g_zModuleDeviceManager.module_set_reg(21, kreg_motor_one_circle_pulse, 1000);
|
|
// g_zModuleDeviceManager.module_set_reg(21, kreg_motor_one_circle_pulse_denominator, 1);
|
|
// g_zModuleDeviceManager.module_set_reg(21, kreg_motor_default_velocity, 150);
|
|
// g_zModuleDeviceManager.module_set_reg(21, kreg_motor_default_acc, 25);
|
|
// g_zModuleDeviceManager.module_set_reg(21, kreg_motor_default_dec, 10);
|
|
// g_zModuleDeviceManager.module_set_reg(21, kreg_stepmotor_ihold, 0);
|
|
// g_zModuleDeviceManager.module_set_reg(21, kreg_stepmotor_irun, 31);
|
|
// g_zModuleDeviceManager.module_set_reg(21, kreg_stepmotor_iholddelay, 100);
|
|
// g_zModuleDeviceManager.module_set_reg(21, kreg_motor_run_to_zero_speed, 120);
|
|
// g_zModuleDeviceManager.module_set_reg(21, kreg_motor_run_to_zero_dec, 25);
|
|
// g_zModuleDeviceManager.module_set_reg(21, kreg_motor_look_zero_edge_speed, 25);
|
|
// g_zModuleDeviceManager.module_set_reg(21, kreg_motor_look_zero_edge_dec, 50);
|
|
// g_zModuleDeviceManager.module_active_cfg(21);
|
|
|
|
|
|
// // 夹爪舵机
|
|
// g_zModuleDeviceManager.module_set_reg(22, kreg_motor_default_velocity, 800);
|
|
// g_zModuleDeviceManager.module_set_reg(22, kreg_motor_default_torque, 330);
|
|
// g_zModuleDeviceManager.module_active_cfg(22);
|
|
|
|
// // 加液体泵
|
|
// g_zModuleDeviceManager.module_set_reg(61, kreg_motor_shaft, 0);
|
|
// g_zModuleDeviceManager.module_set_reg(61, kreg_motor_one_circle_pulse, 10000);
|
|
// g_zModuleDeviceManager.module_set_reg(61, kreg_motor_one_circle_pulse_denominator, 1);
|
|
// g_zModuleDeviceManager.module_set_reg(61, kreg_motor_default_velocity, 50);
|
|
// g_zModuleDeviceManager.module_set_reg(61, kreg_motor_default_acc, 300);
|
|
// g_zModuleDeviceManager.module_set_reg(61, kreg_motor_default_dec, 300);
|
|
// g_zModuleDeviceManager.module_set_reg(61, kreg_stepmotor_ihold, 0);
|
|
// g_zModuleDeviceManager.module_set_reg(61, kreg_stepmotor_irun, 4);
|
|
// g_zModuleDeviceManager.module_set_reg(61, kreg_stepmotor_iholddelay, 100);
|
|
// g_zModuleDeviceManager.module_active_cfg(61);
|
|
|
|
// 加热转盘
|
|
// g_zModuleDeviceManager.module_set_reg(41, kreg_motor_shaft, 0);
|
|
// g_zModuleDeviceManager.module_set_reg(41, kreg_motor_one_circle_pulse, 1000);
|
|
// g_zModuleDeviceManager.module_set_reg(41, kreg_motor_one_circle_pulse_denominator, 18);
|
|
// g_zModuleDeviceManager.module_set_reg(41, kreg_motor_default_velocity, 50);
|
|
// g_zModuleDeviceManager.module_set_reg(41, kreg_motor_default_acc, 300);
|
|
// g_zModuleDeviceManager.module_set_reg(41, kreg_motor_default_dec, 300);
|
|
// g_zModuleDeviceManager.module_set_reg(41, kreg_stepmotor_ihold, 1);
|
|
// g_zModuleDeviceManager.module_set_reg(41, kreg_stepmotor_irun, 4);
|
|
// g_zModuleDeviceManager.module_set_reg(41, kreg_stepmotor_iholddelay, 100);
|
|
// g_zModuleDeviceManager.module_set_reg(41, kreg_motor_run_to_zero_max_d, 36000);
|
|
// g_zModuleDeviceManager.module_set_reg(41, kreg_motor_look_zero_edge_max_d, 360);
|
|
// g_zModuleDeviceManager.module_set_reg(41, kreg_motor_run_to_zero_speed, 50);
|
|
// g_zModuleDeviceManager.module_set_reg(41, kreg_motor_run_to_zero_dec, 300);
|
|
// g_zModuleDeviceManager.module_set_reg(41, kreg_motor_look_zero_edge_speed, 50);
|
|
// g_zModuleDeviceManager.module_set_reg(41, kreg_motor_look_zero_edge_dec, 600);
|
|
// g_zModuleDeviceManager.module_active_cfg(41);
|
|
|
|
// g_zModuleDeviceManager.module_set_reg(51, kreg_motor_shaft, 0);
|
|
// g_zModuleDeviceManager.module_set_reg(51, kreg_motor_one_circle_pulse, 3600);
|
|
// g_zModuleDeviceManager.module_set_reg(51, kreg_motor_one_circle_pulse_denominator, 18);
|
|
// g_zModuleDeviceManager.module_set_reg(51, kreg_motor_default_velocity, 100);
|
|
// g_zModuleDeviceManager.module_set_reg(51, kreg_motor_default_acc, 300);
|
|
// g_zModuleDeviceManager.module_set_reg(51, kreg_motor_default_dec, 300);
|
|
// g_zModuleDeviceManager.module_set_reg(51, kreg_stepmotor_ihold, 1);
|
|
// g_zModuleDeviceManager.module_set_reg(51, kreg_stepmotor_irun, 8);
|
|
// g_zModuleDeviceManager.module_set_reg(51, kreg_stepmotor_iholddelay, 100);
|
|
// g_zModuleDeviceManager.module_set_reg(51, kreg_motor_run_to_zero_max_d, 36000);
|
|
// g_zModuleDeviceManager.module_set_reg(51, kreg_motor_look_zero_edge_max_d, 360);
|
|
// g_zModuleDeviceManager.module_set_reg(51, kreg_motor_run_to_zero_speed, 50);
|
|
// g_zModuleDeviceManager.module_set_reg(51, kreg_motor_run_to_zero_dec, 300);
|
|
// g_zModuleDeviceManager.module_set_reg(51, kreg_motor_look_zero_edge_speed, 50);
|
|
// g_zModuleDeviceManager.module_set_reg(51, kreg_motor_look_zero_edge_dec, 600);
|
|
// g_zModuleDeviceManager.module_active_cfg(51);
|
|
|
|
while (true) {
|
|
OSDefaultSchduler::getInstance()->loop();
|
|
cmder.schedule();
|
|
}
|
|
};
|