8 changed files with 5 additions and 501 deletions
-
5api/apibasic/cmdid.hpp
-
128api/apibasic/temp_errorcode.hpp
-
20api/apibasic/temp_module_type_index.hpp
-
193api/apibasic/temp_reg_index.hpp
-
46api/temp_zi_a8000_optical_module.hpp
-
28api/temp_zi_event_bus.hpp
-
82api/temp_zi_module.hpp
-
4api/zi_module.hpp
@ -1,128 +0,0 @@ |
|||||
#pragma once
|
|
||||
#include <stdint.h>
|
|
||||
|
|
||||
namespace iflytop { |
|
||||
namespace err { |
|
||||
using namespace std; |
|
||||
|
|
||||
#define ERROR_CODE(errortype, suberrorcode) (errortype + suberrorcode)
|
|
||||
|
|
||||
typedef enum { |
|
||||
ksucc = ERROR_CODE(0, 0), |
|
||||
kfail = ERROR_CODE(0, 1), |
|
||||
kparam_out_of_range = ERROR_CODE(0, 2), // 参数超出范围
|
|
||||
koperation_not_support = ERROR_CODE(0, 3), // 操作不支持
|
|
||||
kdevice_is_busy = ERROR_CODE(0, 4), // 设备忙
|
|
||||
kdevice_is_offline = ERROR_CODE(0, 5), // 设备离线
|
|
||||
kovertime = ERROR_CODE(0, 6), |
|
||||
knoack = ERROR_CODE(0, 7), |
|
||||
kerrorack = ERROR_CODE(0, 8), |
|
||||
kdevice_offline = ERROR_CODE(0, 9), |
|
||||
kparse_json_err = ERROR_CODE(0, 10), |
|
||||
ksubdevice_overtime = ERROR_CODE(0, 11), |
|
||||
kbuffer_not_enough = ERROR_CODE(0, 12), |
|
||||
kcmd_not_found = ERROR_CODE(0, 13), |
|
||||
kcmd_param_num_error = ERROR_CODE(0, 14), |
|
||||
kcheckcode_is_error = ERROR_CODE(0, 15), |
|
||||
kcatch_exception = ERROR_CODE(0, 16), |
|
||||
khwardware_error_fan_error = ERROR_CODE(0, 17), |
|
||||
khwardware_error = ERROR_CODE(0, 18), |
|
||||
|
|
||||
/**
|
|
||||
* @brief 系统错误 |
|
||||
*/ |
|
||||
ksys_error = ERROR_CODE(100, 0), |
|
||||
ksys_create_file_error = ERROR_CODE(100, 1), |
|
||||
ksys_create_dir_error = ERROR_CODE(100, 2), |
|
||||
ksys_open_file_error = ERROR_CODE(100, 3), |
|
||||
ksys_open_dir_error = ERROR_CODE(100, 4), |
|
||||
ksys_read_file_error = ERROR_CODE(100, 5), |
|
||||
ksys_write_file_error = ERROR_CODE(100, 6), |
|
||||
ksys_close_file_error = ERROR_CODE(100, 7), |
|
||||
ksys_close_dir_error = ERROR_CODE(100, 8), |
|
||||
ksys_delete_file_error = ERROR_CODE(100, 9), |
|
||||
ksys_delete_dir_error = ERROR_CODE(100, 10), |
|
||||
ksys_copy_file_error = ERROR_CODE(100, 11), |
|
||||
|
|
||||
/**
|
|
||||
* @brief module error |
|
||||
*/ |
|
||||
kmodule_not_inited = ERROR_CODE(200, 0), |
|
||||
kmodule_not_found = ERROR_CODE(200, 1), |
|
||||
kmodule_opeation_break_by_user = ERROR_CODE(200, 2), // 用户中断
|
|
||||
kmodule_error = ERROR_CODE(200, 3), // 未知错误
|
|
||||
kmodule_not_find_config_index = ERROR_CODE(200, 4), // 未找到配置索引
|
|
||||
kmodule_not_find_state_index = ERROR_CODE(200, 5), // 未找到配置索引
|
|
||||
kmodule_not_support_action = ERROR_CODE(200, 6), // 未找到配置索引
|
|
||||
kmodule_not_find_reg = ERROR_CODE(200, 7), // 未找到配置索引
|
|
||||
|
|
||||
/**
|
|
||||
* @brief motor error |
|
||||
*/ |
|
||||
kmotor_not_found_zero_point = ERROR_CODE(300, 0), // 未找到零点
|
|
||||
kmotor_did_not_go_zero = ERROR_CODE(300, 1), // 设备未归零
|
|
||||
kmotor_over_temperature = ERROR_CODE(300, 2), // 过温
|
|
||||
kmotor_over_voltage = ERROR_CODE(300, 3), // 过压
|
|
||||
kxymotor_not_found_x_zero_point = ERROR_CODE(300, 4), // 未找到零点
|
|
||||
kxymotor_not_found_y_zero_point = ERROR_CODE(300, 5), // 未找到零点
|
|
||||
kxymotor_x_find_zero_edge_fail = ERROR_CODE(300, 6), // 离开零点失败
|
|
||||
kxymotor_y_find_zero_edge_fail = ERROR_CODE(300, 7), // 离开零点失败
|
|
||||
kmotor_run_overtime = ERROR_CODE(300, 8), // 运行超时
|
|
||||
kmotor_not_enable = ERROR_CODE(300, 9), // 电机未使能
|
|
||||
|
|
||||
/**
|
|
||||
* @brief STMP2错误 |
|
||||
*/ |
|
||||
kSMTP2_NoError = ERROR_CODE(400, 0), // 无错误
|
|
||||
kSMTP2_InitFail = ERROR_CODE(400, 1), // 初始化失败
|
|
||||
kSMTP2_InvalidCmd = ERROR_CODE(400, 2), // 无效命令
|
|
||||
kSMTP2_InvalidArg = ERROR_CODE(400, 3), // 无效参数
|
|
||||
kSMTP2_PressureSensorError = ERROR_CODE(400, 4), // 压力传感器故障
|
|
||||
kSMTP2_OverPressure = ERROR_CODE(400, 5), // 超过压力
|
|
||||
kSMTP2_LLDError = ERROR_CODE(400, 6), // LLD 错误
|
|
||||
kSMTP2_DeviceNotInit = ERROR_CODE(400, 7), // 设备未初始化
|
|
||||
kSMTP2_TipPopError = ERROR_CODE(400, 8), // Tip 弹出错误
|
|
||||
kSMTP2_PumpOverload = ERROR_CODE(400, 9), // 泵过载
|
|
||||
kSMTP2_TipDrop = ERROR_CODE(400, 10), // Tip 脱落
|
|
||||
kSMTP2_CanBusError = ERROR_CODE(400, 11), // CAN 总线故障
|
|
||||
kSMTP2_InvalidChecksum = ERROR_CODE(400, 12), // 无效校验和
|
|
||||
kSMTP2_EEPROMError = ERROR_CODE(400, 13), // EEPROM 故障
|
|
||||
kSMTP2_CmdBufferEmpty = ERROR_CODE(400, 14), // 命令缓冲区为空
|
|
||||
kSMTP2_CmdBufferOverflow = ERROR_CODE(400, 15), // 命令溢出
|
|
||||
kSMTP2_TipBlock = ERROR_CODE(400, 16), // Tip 堵塞
|
|
||||
kSMTP2_AirSuction = ERROR_CODE(400, 17), // 吸入空气
|
|
||||
kSMTP2_Bubble = ERROR_CODE(400, 18), // 液体中有气泡/泡沫
|
|
||||
kSMTP2_VolumeError = ERROR_CODE(400, 19), // 吸取/分配量不准确
|
|
||||
kSMTP2_TipAlreadyLoad = ERROR_CODE(400, 20), // Tip已经装载
|
|
||||
kSMTP2_TipLoadFail = ERROR_CODE(400, 21), |
|
||||
|
|
||||
/**
|
|
||||
* @brief 单片机硬件错误 |
|
||||
*/ |
|
||||
kmicro_noErr = ERROR_CODE(500, 0), //
|
|
||||
kmicro_uartSendFail = ERROR_CODE(500, 1), //
|
|
||||
kmicro_uartRecvFail = ERROR_CODE(500, 2), //
|
|
||||
kmicro_adcRecvFail = ERROR_CODE(500, 3), //
|
|
||||
|
|
||||
/**
|
|
||||
* @brief step motor error |
|
||||
*/ |
|
||||
kstep_motor_not_found_zero_point = ERROR_CODE(600, 0), // 未找到零点
|
|
||||
kstep_motor_not_go_zero = ERROR_CODE(600, 1), // 设备未归零
|
|
||||
kstep_motor_over_temperature = ERROR_CODE(600, 2), // 过温
|
|
||||
kstep_motor_over_voltage = ERROR_CODE(600, 3), // 过压
|
|
||||
kstep_motor_run_overtime = ERROR_CODE(600, 4), // 运行超时
|
|
||||
kstep_motor_not_enable = ERROR_CODE(600, 5), // 电机未使能
|
|
||||
kstep_motor_ioindex_out_of_range = ERROR_CODE(600, 6), // IO超出范围
|
|
||||
|
|
||||
/**
|
|
||||
* @brief mini servo error |
|
||||
*/ |
|
||||
kmini_servo_not_enable = ERROR_CODE(700, 0), // 未找到零点
|
|
||||
|
|
||||
} error_t; |
|
||||
|
|
||||
const char* error2str(int32_t code); |
|
||||
|
|
||||
} // namespace err
|
|
||||
} // namespace iflytop
|
|
@ -1,20 +0,0 @@ |
|||||
#pragma once
|
|
||||
#include <stdint.h>
|
|
||||
|
|
||||
namespace iflytop { |
|
||||
typedef enum { |
|
||||
kuniversal_module = 0, // 通用模块
|
|
||||
khbot_module = 1, // hbot模块
|
|
||||
kmotor_module = 2, // 电机控制
|
|
||||
ktemperature_ctrl_module = 3, // 温度控制
|
|
||||
kfan_ctrl_module = 5, // 风扇控制
|
|
||||
kcode_scaner = 6, // 风扇控制
|
|
||||
kpipette_ctrl_module = 7, // 移液体枪控制
|
|
||||
ka8000_optical_module = 8, // a8000光学模组
|
|
||||
klaster_scaner_module = 9, // a8000光学模组
|
|
||||
|
|
||||
ktmc_step_motor = 10, // 步进电机
|
|
||||
kmini_servo_motor_module = 11, // 舵机
|
|
||||
kboard = 12, // 舵机
|
|
||||
} module_type_t; |
|
||||
} |
|
@ -1,193 +0,0 @@ |
|||||
#pragma once
|
|
||||
#include <stdint.h>
|
|
||||
|
|
||||
namespace iflytop { |
|
||||
using namespace std; |
|
||||
|
|
||||
#define REG_INDEX(type, offset, subconfigindex) (type * 100 + offset + subconfigindex)
|
|
||||
typedef enum { |
|
||||
/*******************************************************************************
|
|
||||
* 模块通用配置和状态 * |
|
||||
*******************************************************************************/ |
|
||||
kreg_module_version = REG_INDEX(0, 0, 0), // 模块版本
|
|
||||
kreg_module_type = REG_INDEX(0, 0, 1), // 模块类型
|
|
||||
kreg_module_status = REG_INDEX(0, 0, 2), // 0idle,1busy,2error
|
|
||||
kreg_module_errorcode = REG_INDEX(0, 0, 3), // inited_flag
|
|
||||
/*******************************************************************************
|
|
||||
* SENSOR * |
|
||||
*******************************************************************************/ |
|
||||
kreg_sensor_temperature0 = REG_INDEX(2, 0, 0), // 温度1
|
|
||||
kreg_sensor_temperature1 = REG_INDEX(2, 0, 1), // 温度2
|
|
||||
kreg_sensor_temperature2 = REG_INDEX(2, 0, 2), // 温度3
|
|
||||
kreg_sensor_temperature3 = REG_INDEX(2, 0, 3), // 温度4
|
|
||||
|
|
||||
/*******************************************************************************
|
|
||||
* 机械人通用配置 * |
|
||||
*******************************************************************************/ |
|
||||
|
|
||||
/*******************************************************************************
|
|
||||
* MOTOR_X * |
|
||||
*******************************************************************************/ |
|
||||
|
|
||||
/*******************************************************************************
|
|
||||
* PID控制器(3000->4000) * |
|
||||
*******************************************************************************/ |
|
||||
kreg_pid_target = REG_INDEX(30, 0, 0), // 目标数值
|
|
||||
kreg_pid_nowoutput = REG_INDEX(30, 0, 1), // 当前输出
|
|
||||
kreg_pid_feedbackval = REG_INDEX(30, 0, 2), // 当前输出
|
|
||||
kreg_pid_kp = REG_INDEX(30, 50, 0), // kp
|
|
||||
kreg_pid_ki = REG_INDEX(30, 50, 1), // ki
|
|
||||
kreg_pid_kd = REG_INDEX(30, 50, 2), // kd
|
|
||||
kreg_pid_max_output = REG_INDEX(30, 50, 3), // 最大输出
|
|
||||
kreg_pid_min_output = REG_INDEX(30, 50, 4), // 最小输出
|
|
||||
kreg_pid_max_integral = REG_INDEX(30, 50, 5), // 最大积分
|
|
||||
kreg_pid_min_integral = REG_INDEX(30, 50, 6), // 最小积分
|
|
||||
kreg_error_limit = REG_INDEX(30, 50, 7), // 误差限制
|
|
||||
kreg_compute_interval = REG_INDEX(30, 50, 8), // 计算间隔
|
|
||||
|
|
||||
/*******************************************************************************
|
|
||||
* 风扇控制 * |
|
||||
*******************************************************************************/ |
|
||||
kreg_fan0_ctrl_speed_level = REG_INDEX(31, 0, 0), // 风扇转速0,1,2,3
|
|
||||
kreg_fan1_ctrl_speed_level = REG_INDEX(31, 0, 1), // 风扇转速0,1,2,3
|
|
||||
kreg_fan2_ctrl_speed_level = REG_INDEX(31, 0, 2), // 风扇转速0,1,2,3
|
|
||||
kreg_fan3_ctrl_speed_level = REG_INDEX(31, 0, 3), // 风扇转速0,1,2,3
|
|
||||
kreg_fan4_ctrl_speed_level = REG_INDEX(31, 0, 4), // 风扇转速0,1,2,3
|
|
||||
|
|
||||
kreg_fan0_speed_level = REG_INDEX(31, 10, 0), // 风扇实时转速0,1,2,3
|
|
||||
kreg_fan1_speed_level = REG_INDEX(31, 10, 1), // 风扇实时转速0,1,2,3
|
|
||||
kreg_fan2_speed_level = REG_INDEX(31, 10, 2), // 风扇实时转速0,1,2,3
|
|
||||
kreg_fan3_speed_level = REG_INDEX(31, 10, 3), // 风扇实时转速0,1,2,3
|
|
||||
kreg_fan4_speed_level = REG_INDEX(31, 10, 4), // 风扇实时转速0,1,2,3
|
|
||||
|
|
||||
kreg_pwm_pump0_ctrl_speed_level = REG_INDEX(32, 0, 0), // PWM水泵0,1,2,3
|
|
||||
kreg_pwm_pump1_ctrl_speed_level = REG_INDEX(32, 0, 1), // PWM水泵0,1,2,3
|
|
||||
kreg_pwm_pump2_ctrl_speed_level = REG_INDEX(32, 0, 2), // PWM水泵0,1,2,3
|
|
||||
kreg_pwm_pump3_ctrl_speed_level = REG_INDEX(32, 0, 3), // PWM水泵0,1,2,3
|
|
||||
kreg_pwm_pump4_ctrl_speed_level = REG_INDEX(32, 0, 4), // PWM水泵0,1,2,3
|
|
||||
|
|
||||
kreg_pwm_pump0_speed_level = REG_INDEX(32, 10, 0), // PWM水泵0,1,2,3
|
|
||||
kreg_pwm_pump1_speed_level = REG_INDEX(32, 10, 1), // PWM水泵0,1,2,3
|
|
||||
kreg_pwm_pump2_speed_level = REG_INDEX(32, 10, 2), // PWM水泵0,1,2,3
|
|
||||
kreg_pwm_pump3_speed_level = REG_INDEX(32, 10, 3), // PWM水泵0,1,2,3
|
|
||||
kreg_pwm_pump4_speed_level = REG_INDEX(32, 10, 4), // PWM水泵0,1,2,3
|
|
||||
|
|
||||
/*******************************************************************************
|
|
||||
* 移液枪状态 * |
|
||||
*******************************************************************************/ |
|
||||
kreg_pipette_pos_ul = REG_INDEX(40, 0, 0), // 移液枪位置
|
|
||||
kreg_pipette_capactitance_val = REG_INDEX(40, 0, 1), // 移液枪电容值
|
|
||||
kreg_pipette_tip_state = REG_INDEX(40, 0, 2), // 移动液枪tip状态
|
|
||||
kreg_pipette_limit_ul = REG_INDEX(40, 50, 0), // 移液枪ul限制
|
|
||||
|
|
||||
/*******************************************************************************
|
|
||||
* smartADC * |
|
||||
*******************************************************************************/ |
|
||||
kreg_self_reflecting_laser_sensor_transmitting_power = REG_INDEX(41, 0, 0), // 发射功率
|
|
||||
kreg_self_reflecting_laser_sensor_receiving_tube_gain = REG_INDEX(41, 0, 1), // 接收管放大倍数
|
|
||||
kreg_self_reflecting_laser_sensor_sample_interval_ms = REG_INDEX(41, 0, 2), // 采样率
|
|
||||
kreg_self_reflecting_laser_sensor_num_samples = REG_INDEX(41, 0, 3), // 采样点数
|
|
||||
|
|
||||
// scan action
|
|
||||
kreg_boditech_optical_scan_type = REG_INDEX(42, 0, 0), // 0 t光学,1 f光学
|
|
||||
kreg_boditech_optical_scan_start_pos = REG_INDEX(42, 0, 1), |
|
||||
kreg_boditech_optical_scan_direction = REG_INDEX(42, 0, 2), |
|
||||
kreg_boditech_optical_scan_step_interval = REG_INDEX(42, 0, 3), |
|
||||
kreg_boditech_optical_scan_pointnum = REG_INDEX(42, 0, 4), |
|
||||
kreg_boditech_optical_channel_select_num = REG_INDEX(42, 0, 5), |
|
||||
kreg_boditech_optical_laster_gain = REG_INDEX(42, 0, 6), |
|
||||
kreg_boditech_optical_scan_gain = REG_INDEX(42, 0, 7), |
|
||||
kreg_boditech_optical_trf_uvled_on_duration_us = REG_INDEX(42, 0, 8), |
|
||||
kreg_boditech_optical_trf_uvled_off_duration_us = REG_INDEX(42, 0, 9), |
|
||||
kreg_boditech_optical_trf_scan_delay_us = REG_INDEX(42, 0, 10), |
|
||||
kreg_boditech_optical_trf_scan_duration_us = REG_INDEX(42, 0, 11), |
|
||||
kreg_boditech_optical_scan_gain_adjust_suggestion = REG_INDEX(42, 0, 12), |
|
||||
kreg_boditech_optical_adc_result_overflow = REG_INDEX(42, 0, 13), |
|
||||
kreg_boditech_optical_laster_intensity = REG_INDEX(42, 0, 14), |
|
||||
|
|
||||
//
|
|
||||
kreg_laster_scaner_scan_type = REG_INDEX(43, 0, 0), // 0 t光学,1 f光学
|
|
||||
|
|
||||
kreg_laster_scaner_scan_start_pos = REG_INDEX(43, 0, 1), |
|
||||
kreg_laster_scaner_scan_direction = REG_INDEX(43, 0, 2), |
|
||||
kreg_laster_scaner_scan_step_interval = REG_INDEX(43, 0, 3), |
|
||||
kreg_laster_scaner_scan_pointnum = REG_INDEX(43, 0, 4), |
|
||||
kreg_laster_scaner_laster_gain = REG_INDEX(43, 0, 5), |
|
||||
kreg_laster_scaner_scan_gain = REG_INDEX(43, 0, 6), |
|
||||
|
|
||||
kreg_laster_scaner_scan_gain_adjust_suggestion = REG_INDEX(43, 0, 12), |
|
||||
kreg_laster_scaner_adc_result_overflow = REG_INDEX(43, 0, 13), |
|
||||
kreg_laster_scaner_laster_intensity = REG_INDEX(43, 0, 14), |
|
||||
|
|
||||
/***********************************************************************************************************************
|
|
||||
* XYROBOT * |
|
||||
***********************************************************************************************************************/ |
|
||||
|
|
||||
kreg_xyrobot_default_velocity = REG_INDEX(100, 0, 0), |
|
||||
kreg_xyrobot_default_acc = REG_INDEX(100, 0, 1), |
|
||||
kreg_xyrobot_default_dec = REG_INDEX(100, 0, 2), |
|
||||
kreg_xyrobot_default_break_dec = REG_INDEX(100, 0, 3), |
|
||||
kreg_xyrobot_run_to_zero_speed = REG_INDEX(100, 0, 4), |
|
||||
kreg_xyrobot_run_to_zero_dec = REG_INDEX(100, 0, 5), |
|
||||
kreg_xyrobot_look_zero_edge_speed = REG_INDEX(100, 0, 6), |
|
||||
kreg_xyrobot_look_zero_edge_dec = REG_INDEX(100, 0, 7), |
|
||||
kreg_xyrobot_ihold = REG_INDEX(100, 0, 8), |
|
||||
kreg_xyrobot_irun = REG_INDEX(100, 0, 9), |
|
||||
kreg_xyrobot_iholddelay = REG_INDEX(100, 0, 10), |
|
||||
|
|
||||
kreg_xyrobot_robot_type = REG_INDEX(100, 50, 0), // 机器人类型 0:hbot 1:corexy
|
|
||||
kreg_xyrobot_x_shift = REG_INDEX(100, 50, 1), // x偏移
|
|
||||
kreg_xyrobot_y_shift = REG_INDEX(100, 50, 2), // y偏移
|
|
||||
kreg_xyrobot_x_shaft = REG_INDEX(100, 50, 3), // x轴是否反转
|
|
||||
kreg_xyrobot_y_shaft = REG_INDEX(100, 50, 4), // y轴是否反转
|
|
||||
kreg_xyrobot_x_one_circle_pulse = REG_INDEX(100, 50, 5), // x轴一圈脉冲数
|
|
||||
kreg_xyrobot_y_one_circle_pulse = REG_INDEX(100, 50, 6), // y轴一圈脉冲数
|
|
||||
kreg_xyrobot_run_to_zero_max_x_d = REG_INDEX(100, 50, 7), // x轴回零最大距离
|
|
||||
kreg_xyrobot_run_to_zero_max_y_d = REG_INDEX(100, 50, 8), // y轴回零最大距离
|
|
||||
kreg_xyrobot_look_zero_edge_max_x_d = REG_INDEX(100, 50, 9), // x轴找零边缘最大距离
|
|
||||
kreg_xyrobot_look_zero_edge_max_y_d = REG_INDEX(100, 50, 10), // y轴找零边缘最大距离
|
|
||||
kreg_xyrobot_io_state0 = REG_INDEX(100, 50, 11), // IO状态
|
|
||||
kreg_xyrobot_io_state1 = REG_INDEX(100, 50, 12), // IO状态
|
|
||||
|
|
||||
/***********************************************************************************************************************
|
|
||||
* step_motor * |
|
||||
***********************************************************************************************************************/ |
|
||||
kreg_step_motor_pos = REG_INDEX(101, 0, 1), // 机器人x坐标
|
|
||||
kreg_step_motor_dpos = REG_INDEX(101, 0, 3), // 执行完上一条指令后的相对位移
|
|
||||
|
|
||||
kreg_step_motor_shift = REG_INDEX(101, 50, 0), // x偏移
|
|
||||
kreg_step_motor_shaft = REG_INDEX(101, 50, 1), // x轴是否反转
|
|
||||
kreg_step_motor_one_circle_pulse = REG_INDEX(101, 50, 2), // x轴一圈脉冲数
|
|
||||
kreg_step_motor_one_circle_pulse_denominator = REG_INDEX(101, 50, 3), // 设置一圈脉冲数的分母
|
|
||||
kreg_step_motor_default_velocity = REG_INDEX(101, 50, 4), // 默认速度
|
|
||||
kreg_step_motor_default_acc = REG_INDEX(101, 50, 5), // 默认加速度
|
|
||||
kreg_step_motor_default_dec = REG_INDEX(101, 50, 6), // 默认减速度
|
|
||||
kreg_step_motor_default_break_dec = REG_INDEX(101, 50, 7), // 默认减速度
|
|
||||
kreg_step_motor_ihold = REG_INDEX(101, 50, 8), // 步进电机电流配置
|
|
||||
kreg_step_motor_irun = REG_INDEX(101, 50, 9), // 步进电机电流配置
|
|
||||
kreg_step_motor_iholddelay = REG_INDEX(101, 50, 10), // 步进电机电流配置
|
|
||||
kreg_step_motor_iglobalscaler = REG_INDEX(101, 50, 11), // 步进电机电流配置
|
|
||||
kreg_step_motor_run_to_zero_max_d = REG_INDEX(101, 50, 21), // x轴回零最大距离
|
|
||||
kreg_step_motor_look_zero_edge_max_d = REG_INDEX(101, 50, 22), // x轴找零边缘最大距离
|
|
||||
kreg_step_motor_run_to_zero_speed = REG_INDEX(101, 50, 23), // 回零速度
|
|
||||
kreg_step_motor_run_to_zero_dec = REG_INDEX(101, 50, 24), // 回零减速度
|
|
||||
kreg_step_motor_look_zero_edge_speed = REG_INDEX(101, 50, 25), // 找零边缘速度
|
|
||||
kreg_step_motor_look_zero_edge_dec = REG_INDEX(101, 50, 26), // 找零边缘减速度
|
|
||||
kreg_step_motor_max_d = REG_INDEX(101, 50, 28), // 最大限制距离
|
|
||||
kreg_step_motor_min_d = REG_INDEX(101, 50, 29), // 最小限制距离
|
|
||||
|
|
||||
/***********************************************************************************************************************
|
|
||||
* MINI_STEP_MOTOR * |
|
||||
***********************************************************************************************************************/ |
|
||||
|
|
||||
kreg_mini_servo_pos = REG_INDEX(102, 0, 1), // 位置
|
|
||||
kreg_mini_servo_limit_velocity = REG_INDEX(102, 50, 1), // 限制速度
|
|
||||
kreg_mini_servo_limit_torque = REG_INDEX(102, 50, 2), // 限制扭矩
|
|
||||
kreg_mini_servo_protective_torque = REG_INDEX(102, 50, 3), // 保护扭矩
|
|
||||
|
|
||||
/***********************************************************************************************************************
|
|
||||
* BOARD * |
|
||||
***********************************************************************************************************************/ |
|
||||
} reg_index_t; |
|
||||
|
|
||||
} // namespace iflytop
|
|
@ -1,46 +0,0 @@ |
|||||
#pragma once
|
|
||||
#include <stdint.h>
|
|
||||
|
|
||||
#include <functional>
|
|
||||
|
|
||||
#include "apibasic/basic.hpp"
|
|
||||
|
|
||||
|
|
||||
namespace iflytop { |
|
||||
using namespace std; |
|
||||
class ZIA8000OpticalModule { |
|
||||
public: |
|
||||
typedef enum { |
|
||||
kf_optical = 0, |
|
||||
kt_optical = 1, |
|
||||
ktest_optical = 2, |
|
||||
} optical_type_t; |
|
||||
|
|
||||
public: |
|
||||
virtual ~ZIA8000OpticalModule(){}; |
|
||||
|
|
||||
/*******************************************************************************
|
|
||||
* TEST * |
|
||||
*******************************************************************************/ |
|
||||
/**
|
|
||||
* @概述: |
|
||||
* 1. 下面方法属于单步测试采样的方法,用于调试。一般手动移动光学模组,然后利用下面方法进行测试 |
|
||||
* 2. 正式逻辑不使用下面逻辑 |
|
||||
*/ |
|
||||
virtual int32_t a8000_optical_module_power_ctrl(int32_t state) { return err::kmodule_not_support_action; } |
|
||||
virtual int32_t a8000_optical_open_laser(int32_t type) { return err::kmodule_not_support_action; } |
|
||||
virtual int32_t a8000_optical_close_laser(int32_t type) { return err::kmodule_not_support_action; } |
|
||||
virtual int32_t a8000_optical_set_laster_gain(int32_t type, int32_t gain) { return err::kmodule_not_support_action; } |
|
||||
virtual int32_t a8000_optical_set_scan_amp_gain(int32_t type, int32_t gain) { return err::kmodule_not_support_action; } |
|
||||
virtual int32_t a8000_optical_read_scanner_adc_val(int32_t type, int32_t* adcval) { return err::kmodule_not_support_action; } |
|
||||
virtual int32_t a8000_optical_read_laster_adc_val(int32_t type, int32_t* adcval) { return err::kmodule_not_support_action; } |
|
||||
/**
|
|
||||
* @brief 打开闪光灯读取当前这一点的采样信息 |
|
||||
* |
|
||||
* @param type |
|
||||
* @param adcval |
|
||||
* @return int32_t |
|
||||
*/ |
|
||||
virtual int32_t a8000_optical_scan_current_point_amp_adc_val(int32_t type, int32_t lastergain, int32_t ampgain, int32_t* laster_fb_val, int32_t* adcval) { return err::kmodule_not_support_action; } |
|
||||
}; |
|
||||
} // namespace iflytop
|
|
@ -1,28 +0,0 @@ |
|||||
#pragma once
|
|
||||
#include <stdint.h>
|
|
||||
|
|
||||
#include <functional>
|
|
||||
#include "apibasic/basic.hpp"
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
namespace iflytop { |
|
||||
using namespace std; |
|
||||
|
|
||||
// typedef enum {
|
|
||||
// kreg_change_event = 1,
|
|
||||
// } event_type_t;
|
|
||||
|
|
||||
class ZIEventBusSender { |
|
||||
public: |
|
||||
virtual ~ZIEventBusSender() {} |
|
||||
/**
|
|
||||
* @brief 模块状态发生改变,具体的状态上位机通过查询指令进行确定 |
|
||||
* |
|
||||
* @param moduleid |
|
||||
*/ |
|
||||
virtual void push_reg_state_change_event(int32_t moduleid, int32_t regindex, int32_t oldval, int32_t toval) = 0; |
|
||||
}; |
|
||||
} // namespace iflytop
|
|
@ -1,82 +0,0 @@ |
|||||
#pragma once
|
|
||||
#include <stdint.h>
|
|
||||
|
|
||||
#include <functional>
|
|
||||
|
|
||||
#include "apibasic/basic.hpp"
|
|
||||
|
|
||||
namespace iflytop { |
|
||||
using namespace std; |
|
||||
|
|
||||
#define REG_SET(reg, ...) _module_set_reg(param_id, ®, val, ##__VA_ARGS__)
|
|
||||
#define REG_GET(reg) _module_get_reg(param_id, reg, val)
|
|
||||
|
|
||||
#define REG_SET_FLOAT(reg, precision, ...) _module_set_reg_float(param_id, ®, val, precision, ##__VA_ARGS__)
|
|
||||
#define REG_GET_FLOAT(reg, precision) _module_get_reg_float(param_id, reg, val, precision)
|
|
||||
|
|
||||
#define ACTION_NONE 0
|
|
||||
#define PROCESS_REG(param_id, readaction, writeacton) \
|
|
||||
case param_id: { \ |
|
||||
if (read) { \ |
|
||||
return readaction; \ |
|
||||
} else { \ |
|
||||
return writeacton; \ |
|
||||
} \ |
|
||||
} break; |
|
||||
|
|
||||
#define ENABLE_MODULE(name, type, version) \
|
|
||||
public: \ |
|
||||
virtual int32_t module_get_version(int32_t *val) { \ |
|
||||
*val = version; \ |
|
||||
return 0; \ |
|
||||
} \ |
|
||||
virtual int32_t module_get_type(int32_t *val) { \ |
|
||||
*val = type; \ |
|
||||
return 0; \ |
|
||||
} |
|
||||
|
|
||||
#define MODULE_COMMON_PROCESS_REG_CB()
|
|
||||
|
|
||||
typedef struct { |
|
||||
int32_t module_errorcode; |
|
||||
int32_t module_errorbitflag0; |
|
||||
int32_t m_module_status; |
|
||||
} module_common_reg_t; |
|
||||
|
|
||||
class ZIModule { |
|
||||
int32_t m_inited_flag = 0; |
|
||||
|
|
||||
protected: |
|
||||
module_common_reg_t creg; |
|
||||
|
|
||||
public: |
|
||||
virtual ~ZIModule() {} |
|
||||
|
|
||||
public: |
|
||||
virtual int32_t getid(); |
|
||||
virtual int32_t module_ping(); |
|
||||
virtual int32_t module_get_error(int32_t *iserror); |
|
||||
virtual int32_t module_clear_error(); |
|
||||
virtual int32_t module_set_reg(int32_t param_id, int32_t param_value); |
|
||||
virtual int32_t module_get_reg(int32_t param_id, int32_t *param_value); |
|
||||
virtual int32_t module_get_status(int32_t *status); |
|
||||
virtual int32_t module_get_version(int32_t *val) = 0; |
|
||||
virtual int32_t module_get_type(int32_t *val) = 0; |
|
||||
|
|
||||
/***********************************************************************************************************************
|
|
||||
* 用户实现 * |
|
||||
***********************************************************************************************************************/ |
|
||||
virtual int32_t getid(int32_t *id) = 0; |
|
||||
virtual int32_t module_xxx_reg(int32_t param_id, bool read, int32_t &val) = 0; |
|
||||
|
|
||||
protected: |
|
||||
virtual int32_t _module_set_reg(int32_t regoff, int32_t *regval, int32_t val, int32_t min = INT32_MIN, int32_t max = INT32_MAX); |
|
||||
virtual int32_t _module_get_reg(int32_t regoff, int32_t regval, int32_t &val); |
|
||||
virtual int32_t _module_set_reg_float(int32_t regoff, float *regval, int32_t val, float precision, int32_t min = INT32_MIN, int32_t max = INT32_MAX); |
|
||||
virtual int32_t _module_get_reg_float(int32_t regoff, float regval, int32_t &val, float precision); |
|
||||
virtual int32_t _module_xxx_reg(int32_t param_id, bool read, int32_t &val); |
|
||||
|
|
||||
public: |
|
||||
public: |
|
||||
}; |
|
||||
} // namespace iflytop
|
|
Write
Preview
Loading…
Cancel
Save
Reference in new issue