Browse Source

update

change_pipette_api
zhaohe 1 year ago
parent
commit
8f9d1dfb16
  1. 44
      api/zi_module.cpp
  2. 24
      api/zi_module.hpp

44
api/zi_module.cpp

@ -14,9 +14,49 @@ int32_t ZIModule::getid() {
};
int32_t ZIModule::module_ping() { return 0; };
int32_t ZIModule::module_set_reg(int32_t param_id, int32_t param_value) { return _module_xxx_reg(param_id, false, param_value); }
int32_t ZIModule::module_get_reg(int32_t param_id, int32_t *param_value) { return _module_xxx_reg(param_id, true, *param_value); }
int32_t ZIModule::_module_xxx_reg(int32_t param_id, bool read, int32_t &val) {
if (param_id == kreg_module_version) {
if (read) {
module_get_version(&val);
return 0;
} else {
return 0;
}
}
else if (param_id == kreg_module_type) {
if (read) {
module_get_type(&val);
return 0;
} else {
return 0;
}
}
else if (param_id == kreg_module_status) {
if (read) {
module_get_status(&val);
return 0;
} else {
return 0;
}
}
else if (param_id == kreg_module_errorcode) {
if (read) {
val = creg.module_errorcode;
return 0;
} else {
return 0;
}
}
return module_xxx_reg(param_id, read, val);
}
int32_t ZIModule::module_set_reg(int32_t param_id, int32_t param_value) { return module_xxx_reg(param_id, false, param_value); }
int32_t ZIModule::module_get_reg(int32_t param_id, int32_t *param_value) { return module_xxx_reg(param_id, true, *param_value); }
int32_t ZIModule::_module_set_reg(int32_t regoff, int32_t *regval, int32_t val, int32_t min, int32_t max) {
if (val < min || val > max) {
return err::kparam_out_of_range;

24
api/zi_module.hpp

@ -24,16 +24,18 @@ using namespace std;
} \
} break;
#define ENABLE_MODULE(name, type, version) \
const char *module_name = #name; \
int32_t module_version = version; \
int32_t module_type = type;
#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() \
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(creg.module_errorcode), ACTION_NONE);
#define MODULE_COMMON_PROCESS_REG_CB()
typedef struct {
int32_t module_errorcode;
@ -56,6 +58,9 @@ class ZIModule {
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_version(int32_t *val) = 0;
virtual int32_t module_get_type(int32_t *val) = 0;
/***********************************************************************************************************************
* Óû§ÊµÏÖ *
***********************************************************************************************************************/
@ -68,6 +73,7 @@ class ZIModule {
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:

Loading…
Cancel
Save