Browse Source

update

change_pipette_api
zhaohe 2 years ago
parent
commit
87d2bfa20a
  1. 1
      api/module_type_index.hpp
  2. 41
      api/zi_module.hpp

1
api/module_type_index.hpp

@ -10,5 +10,6 @@ typedef enum {
kmini_servo_motor_module = 4, // 舵机
kfan_ctrl_module = 5, // 风扇控制
kcode_scaner = 6, // 风扇控制
kpipette_ctrl_module = 7, // 移液体枪控制
} module_type_t;
}

41
api/zi_module.hpp

@ -33,14 +33,17 @@ using namespace std;
PROCESS_REG(kreg_module_action_ack1, /* */ REG_GET(m_reg.module_action_ack1), ACTION_NONE); \
PROCESS_REG(kreg_module_action_ack2, /* */ REG_GET(m_reg.module_action_ack2), ACTION_NONE);
#define ENABLE_MODULE(name, type, version) module_common_reg_t m_com_reg = {.module_version = version, .module_type = type};
#define ENABLE_MODULE(name, type, version) \
const char *module_name = #name; \
int32_t module_version = version; \
int32_t module_type = type;
#define MODULE_COMMON_PROCESS_REG_CB() \
PROCESS_REG(kreg_module_version, /* */ REG_GET(m_com_reg.module_version), ACTION_NONE); \
PROCESS_REG(kreg_module_type, /* */ REG_GET(m_com_reg.module_type), ACTION_NONE); \
PROCESS_REG(kreg_module_version, /* */ REG_GET(module_version), ACTION_NONE); \
PROCESS_REG(kreg_module_type, /* */ REG_GET(module_type), ACTION_NONE); \
PROCESS_REG(kreg_module_status, /* */ module_get_status(&val), ACTION_NONE); \
PROCESS_REG(kreg_module_errorcode, /* */ REG_GET(m_com_reg.module_errorcode), ACTION_NONE); \
PROCESS_REG(kreg_module_initflag, /* */ module_get_inited_flag(&val), module_set_inited_flag(val)); \
PROCESS_REG(kreg_module_initflag, /* */ module_get_inited_flag(&val), module_set_inited_flag(val)); \
PROCESS_REG(kreg_module_errorbitflag0, /* */ REG_GET(m_com_reg.module_errorbitflag0), ACTION_NONE); \
PROCESS_REG(kreg_module_enableflag, /* */ REG_GET(m_com_reg.module_enable), ACTION_NONE); \
PROCESS_REG(kreg_module_do_action0, /* */ ACTION_NONE, do_action(val)); \
@ -57,8 +60,8 @@ using namespace std;
PROCESS_REG(kreg_module_last_cmd_exec_val4, /* */ REG_GET(m_com_reg.module_last_cmd_exec_val4), ACTION_NONE);
typedef struct {
int32_t module_version;
int32_t module_type;
// int32_t module_version;
// int32_t module_type;
int32_t module_errorcode;
int32_t module_errorbitflag0;
int32_t module_enable;
@ -98,6 +101,9 @@ class ModuleCMDExecStatus {
class ZIModule {
int32_t m_inited_flag = 0;
protected:
module_common_reg_t m_com_reg;
public:
virtual ~ZIModule() {}
@ -115,9 +121,16 @@ class ZIModule {
virtual int32_t module_start() { return err::koperation_not_support; }
virtual int32_t module_get_last_exec_status(int32_t *status) { return err::koperation_not_support; }
virtual int32_t module_get_status(int32_t *status) { return err::koperation_not_support; }
virtual int32_t module_get_error(int32_t *iserror) { return err::koperation_not_support; }
virtual int32_t module_clear_error() { return err::koperation_not_support; }
virtual int32_t module_get_status(int32_t *status) = 0;
virtual int32_t module_get_error(int32_t *iserror) {
*iserror = m_com_reg.module_errorcode;
return 0;
}
virtual int32_t module_clear_error() {
m_com_reg.module_errorcode = 0;
m_com_reg.module_errorbitflag0 = 0;
return 0;
}
virtual int32_t module_enable(int32_t enable) { return err::koperation_not_support; }
@ -175,6 +188,16 @@ class ZIModule {
return 0;
}
virtual int32_t _module_set_exec_status(int32_t status, int32_t val0 = 0, int32_t val1 = 0, int32_t val2 = 0, int32_t val3 = 0, int32_t val4 = 0) {
m_com_reg.module_last_cmd_exec_status = status;
m_com_reg.module_last_cmd_exec_val0 = val0;
m_com_reg.module_last_cmd_exec_val1 = val1;
m_com_reg.module_last_cmd_exec_val2 = val2;
m_com_reg.module_last_cmd_exec_val3 = val3;
m_com_reg.module_last_cmd_exec_val4 = val4;
return 0;
}
public:
virtual int32_t do_action(int32_t actioncode) { return err::kmodule_not_support_action; };
};

Loading…
Cancel
Save