Browse Source

update

change_pipette_api
zhaohe 2 years ago
parent
commit
87d1a547ef
  1. 22
      api/config_index.hpp
  2. 4
      api/packet_interface.hpp
  3. 7
      api/zi_module.hpp
  4. 3
      cmdid.hpp
  5. 41
      protocol_parser.cpp
  6. 4
      protocol_proxy.cpp
  7. 7
      protocol_proxy.hpp
  8. 5
      zmodule_device_manager.cpp
  9. 42
      zmodule_device_manager.hpp
  10. 8
      zmodule_device_script_cmder_paser.cpp

22
api/config_index.hpp

@ -7,17 +7,21 @@ using namespace std;
#define CONFIG_CODE(type, subconfigindex) (type + subconfigindex)
typedef enum {
kmotorcfg_x_shift = CONFIG_CODE(100, 0), // x偏移
kmotorcfg_y_shift = CONFIG_CODE(100, 1), // y偏移
kmotorcfg_z_shift = CONFIG_CODE(100, 2), // z偏移
kcfg_motor_x_shift = CONFIG_CODE(100, 0), // x偏移
kcfg_motor_y_shift = CONFIG_CODE(100, 1), // y偏移
kcfg_motor_z_shift = CONFIG_CODE(100, 2), // z偏移
kmotorcfg_x_shaft = CONFIG_CODE(100, 3), // x轴是否反转
kmotorcfg_y_shaft = CONFIG_CODE(100, 4), // y轴是否反转
kmotorcfg_z_shaft = CONFIG_CODE(100, 5), // z轴是否反转
kcfg_motor_x_shaft = CONFIG_CODE(100, 3), // x轴是否反转
kcfg_motor_y_shaft = CONFIG_CODE(100, 4), // y轴是否反转
kcfg_motor_z_shaft = CONFIG_CODE(100, 5), // z轴是否反转
kmotorcfg_x_one_circle_pulse = CONFIG_CODE(100, 6), // x轴一圈脉冲数
kmotorcfg_y_one_circle_pulse = CONFIG_CODE(100, 7), // y轴一圈脉冲数
kmotorcfg_z_one_circle_pulse = CONFIG_CODE(100, 8), // z轴一圈脉冲数
kcfg_motor_x_one_circle_pulse = CONFIG_CODE(100, 6), // x轴一圈脉冲数
kcfg_motor_y_one_circle_pulse = CONFIG_CODE(100, 7), // y轴一圈脉冲数
kcfg_motor_z_one_circle_pulse = CONFIG_CODE(100, 8), // z轴一圈脉冲数
k_cfg_stepmotor_ihold = CONFIG_CODE(100, 9),
k_cfg_stepmotor_irun = CONFIG_CODE(100, 10),
k_cfg_stepmotor_iholddelay = CONFIG_CODE(100, 11),
} config_index_t;

4
api/packet_interface.hpp

@ -27,5 +27,5 @@ typedef enum {
#define SUBCMDID(cmdid) (cmdid & 0xff)
#define MODULE_CMDID(cmdid) (cmdid >> 8)
#define ZCAN_CMD_PUBLIC_DEVICE_ID_STEP_MOTOR_BOARD_OFFEST 200
#define ZCAN_CMD_PUBLIC_DEVICE_ID_XY_ROBOT_BOARD_OFFEST 230
#define STEP_MOTOR_ID_OFF 100
#define XY_MOTOR_ID_OFF 200

7
api/zi_module.hpp

@ -38,5 +38,12 @@ class ZIModule {
*flag = m_inited_flag;
return 0;
}
// kmodule_factory_reset = CMDID(1, 14), // para:{}, ack:{}
// kmodule_flush_cfg = CMDID(1, 15), // para:{}, ack:{}
// kmodule_active_cfg = CMDID(1, 16), // para:{}, ack:{}
virtual int32_t module_factory_reset() { return err::koperation_not_support; }
virtual int32_t module_flush_cfg() { return err::koperation_not_support; }
virtual int32_t module_active_cfg() { return err::koperation_not_support; }
};
} // namespace iflytop

3
cmdid.hpp

@ -17,6 +17,9 @@ typedef enum {
kmodule_clear_error = CMDID(1, 11), // para:{}, ack:{}
kmodule_set_inited_flag = CMDID(1, 12), // para:{4}, ack:{}
kmodule_get_inited_flag = CMDID(1, 13), // para:{}, ack:{4}
kmodule_factory_reset = CMDID(1, 14), // para:{}, ack:{}
kmodule_flush_cfg = CMDID(1, 15), // para:{}, ack:{}
kmodule_active_cfg = CMDID(1, 16), // para:{}, ack:{}
kmotor_enable = CMDID(2, 1), // para:{1}, ack:{}
kmotor_rotate = CMDID(2, 2), // para:{1,4}, ack:{}

41
protocol_parser.cpp

@ -88,6 +88,43 @@ void ZIProtocolParser::onRceivePacket(zcr_cmd_header_t* rxcmd, uint8_t* data, in
/*******************************************************************************
* module *
*******************************************************************************/
#if 0
virtual ~ZIModule() {}
virtual int32_t getid(int32_t *id) = 0;
virtual int32_t module_stop() = 0;
virtual int32_t module_break() = 0;
virtual int32_t module_get_last_exec_status(int32_t *status) = 0;
virtual int32_t module_get_status(int32_t *status) = 0;
virtual int32_t module_get_error(int32_t *iserror) = 0;
virtual int32_t module_clear_error() = 0;
virtual int32_t module_set_param(int32_t param_id, int32_t param_value) { return err::koperation_not_support; }
virtual int32_t module_get_param(int32_t param_id, int32_t *param_value) { return err::koperation_not_support; }
virtual int32_t module_readio(int32_t *io) { return err::koperation_not_support; }
virtual int32_t module_writeio(int32_t io) { return err::koperation_not_support; }
virtual int32_t module_read_adc(int32_t adcindex, int32_t *adc) { return err::koperation_not_support; }
virtual int32_t module_set_inited_flag(int32_t flag) {
m_inited_flag = flag;
return 0;
}
virtual int32_t module_get_inited_flag(int32_t *flag) {
*flag = m_inited_flag;
return 0;
}
// kmodule_factory_reset = CMDID(1, 14), // para:{}, ack:{}
// kmodule_flush_cfg = CMDID(1, 15), // para:{}, ack:{}
// kmodule_active_cfg = CMDID(1, 16), // para:{}, ack:{}
virtual int32_t module_factory_reset() { return err::koperation_not_support; }
virtual int32_t module_flush_cfg() { return err::koperation_not_support; }
virtual int32_t module_active_cfg() { return err::koperation_not_support; }
#endif
PROCESS_PACKET_00(kmodule_stop, ZIModule, module_stop);
PROCESS_PACKET_00(kmodule_break, ZIModule, module_break);
PROCESS_PACKET_01(kmodule_get_last_exec_status, ZIModule, module_get_last_exec_status);
@ -101,6 +138,10 @@ void ZIProtocolParser::onRceivePacket(zcr_cmd_header_t* rxcmd, uint8_t* data, in
PROCESS_PACKET_00(kmodule_clear_error, ZIModule, module_clear_error);
PROCESS_PACKET_10(kmodule_set_inited_flag, ZIModule, module_set_inited_flag);
PROCESS_PACKET_01(kmodule_get_inited_flag, ZIModule, module_get_inited_flag);
PROCESS_PACKET_00(kmodule_factory_reset, ZIModule, module_factory_reset);
PROCESS_PACKET_00(kmodule_flush_cfg, ZIModule, module_flush_cfg);
PROCESS_PACKET_00(kmodule_active_cfg, ZIModule, module_active_cfg);
/*******************************************************************************
* motor *
*******************************************************************************/

4
protocol_proxy.cpp

@ -91,6 +91,10 @@ int32_t ZIProtocolProxy::module_clear_error() { PROXY_IMPL_00(kmodule_clear_erro
int32_t ZIProtocolProxy::module_set_inited_flag(int32_t para0) { PROXY_IMPL_10(kmodule_set_inited_flag); };
int32_t ZIProtocolProxy::module_get_inited_flag(int32_t *ack0) { PROXY_IMPL_01(kmodule_get_inited_flag); };
int32_t ZIProtocolProxy::module_factory_reset() { PROXY_IMPL_00(kmodule_factory_reset); }
int32_t ZIProtocolProxy::module_flush_cfg() { PROXY_IMPL_00(kmodule_flush_cfg); }
int32_t ZIProtocolProxy::module_active_cfg() { PROXY_IMPL_00(kmodule_active_cfg); }
/*******************************************************************************
* ZIMotor *
*******************************************************************************/

7
protocol_proxy.hpp

@ -27,6 +27,7 @@ class ZIProtocolProxy : public ZIMotor, //
/*******************************************************************************
* ZIModule *
*******************************************************************************/
virtual int32_t module_stop() override;
virtual int32_t module_break() override;
virtual int32_t module_get_last_exec_status(int32_t *status) override;
@ -46,6 +47,12 @@ class ZIProtocolProxy : public ZIMotor, //
virtual int32_t module_set_inited_flag(int32_t flag) override;
virtual int32_t module_get_inited_flag(int32_t *flag) override;
virtual int32_t module_factory_reset() override;
virtual int32_t module_flush_cfg() override;
virtual int32_t module_active_cfg() override;
/*******************************************************************************
* ZIMotor *
*******************************************************************************/

5
zmodule_device_manager.cpp

@ -20,7 +20,7 @@ void ZModuleDeviceManager::registerModule(ZIModule *module) {
assert(module != nullptr);
int32_t id = 0;
module->getid(&id);
uint16_t id16 = id;
uint16_t id16 = id;
m_modulers[id16] = module;
}
@ -40,6 +40,9 @@ int32_t ZModuleDeviceManager::module_get_error(uint16_t id, int32_t *iserror) {
int32_t ZModuleDeviceManager::module_clear_error(uint16_t id) { PROXY_IMPL(ZIModule, module_clear_error); }
int32_t ZModuleDeviceManager::module_set_inited_flag(uint16_t id, int32_t flag) { PROXY_IMPL(ZIModule, module_set_inited_flag, flag); }
int32_t ZModuleDeviceManager::module_get_inited_flag(uint16_t id, int32_t *flag) { PROXY_IMPL(ZIModule, module_get_inited_flag, flag); }
int32_t ZModuleDeviceManager::module_factory_reset(uint16_t id) { PROXY_IMPL(ZIModule, module_factory_reset); }
int32_t ZModuleDeviceManager::module_flush_cfg(uint16_t id) { PROXY_IMPL(ZIModule, module_flush_cfg); }
int32_t ZModuleDeviceManager::module_active_cfg(uint16_t id) { PROXY_IMPL(ZIModule, module_active_cfg); }
/*******************************************************************************
* ZIMotor *
*******************************************************************************/

42
zmodule_device_manager.hpp

@ -17,6 +17,44 @@ class ZModuleDeviceManager {
/*******************************************************************************
* ZIModule *
*******************************************************************************/
#if 0
virtual ~ZIModule() {}
virtual int32_t getid(int32_t *id) = 0;
virtual int32_t module_stop() = 0;
virtual int32_t module_break() = 0;
virtual int32_t module_get_last_exec_status(int32_t *status) = 0;
virtual int32_t module_get_status(int32_t *status) = 0;
virtual int32_t module_get_error(int32_t *iserror) = 0;
virtual int32_t module_clear_error() = 0;
virtual int32_t module_set_param(int32_t param_id, int32_t param_value) { return err::koperation_not_support; }
virtual int32_t module_get_param(int32_t param_id, int32_t *param_value) { return err::koperation_not_support; }
virtual int32_t module_readio(int32_t *io) { return err::koperation_not_support; }
virtual int32_t module_writeio(int32_t io) { return err::koperation_not_support; }
virtual int32_t module_read_adc(int32_t adcindex, int32_t *adc) { return err::koperation_not_support; }
virtual int32_t module_set_inited_flag(int32_t flag) {
m_inited_flag = flag;
return 0;
}
virtual int32_t module_get_inited_flag(int32_t *flag) {
*flag = m_inited_flag;
return 0;
}
// kmodule_factory_reset = CMDID(1, 14), // para:{}, ack:{}
// kmodule_flush_cfg = CMDID(1, 15), // para:{}, ack:{}
// kmodule_active_cfg = CMDID(1, 16), // para:{}, ack:{}
virtual int32_t module_factory_reset() { return err::koperation_not_support; }
virtual int32_t module_flush_cfg() { return err::koperation_not_support; }
virtual int32_t module_active_cfg() { return err::koperation_not_support; }
#endif
int32_t module_stop(uint16_t id);
int32_t module_break(uint16_t id);
@ -37,6 +75,10 @@ class ZModuleDeviceManager {
int32_t module_set_inited_flag(uint16_t id, int32_t flag);
int32_t module_get_inited_flag(uint16_t id, int32_t *flag);
int32_t module_factory_reset(uint16_t id);
int32_t module_flush_cfg(uint16_t id);
int32_t module_active_cfg(uint16_t id);
/*******************************************************************************
* ZIMotor *
*******************************************************************************/

8
zmodule_device_script_cmder_paser.cpp

@ -68,6 +68,11 @@ void ZModuleDeviceScriptCmderPaser::initialize(ICmdParser* cancmder, ZModuleDevi
int32_t module_set_inited_flag(uint16_t id, int32_t flag);
int32_t module_get_inited_flag(uint16_t id, int32_t *flag);
int32_t module_factory_reset(uint16_t id);
int32_t module_flush_cfg(uint16_t id);
int32_t module_active_cfg(uint16_t id);
/*******************************************************************************
* ZIMotor *
*******************************************************************************/
@ -106,6 +111,9 @@ void ZModuleDeviceScriptCmderPaser::initialize(ICmdParser* cancmder, ZModuleDevi
PROCESS_PACKET_10(module_clear_error, "module_clear_error (mid)");
PROCESS_PACKET_20(module_set_inited_flag, "module_set_inited_flag (mid, flag)");
PROCESS_PACKET_11(module_get_inited_flag, "module_get_inited_flag (mid)");
PROCESS_PACKET_10(module_factory_reset, "module_factory_reset (mid)");
PROCESS_PACKET_10(module_flush_cfg, "module_flush_cfg (mid)");
PROCESS_PACKET_10(module_active_cfg, "module_active_cfg (mid)");
PROCESS_PACKET_20(motor_enable, "motor_enable (mid, enable)");
PROCESS_PACKET_40(motor_rotate, "motor_rotate (mid, direction, motor_velocity, acc)");

Loading…
Cancel
Save