Browse Source

update

change_pipette_api
zhaohe 1 year ago
parent
commit
74fa8a3763
  1. 18
      api/apibasic/cmdid.hpp
  2. 4
      api/apibasic/reg_index.hpp
  3. 51
      api/zi_module.cpp
  4. 68
      api/zi_module.hpp

18
api/apibasic/cmdid.hpp

@ -20,8 +20,8 @@ typedef enum {
virtual int32_t module_start() { return err::koperation_not_support; }
#endif
kmodule_ping = CMDID(1, 0), // para:{}, ack:{}
kmodule_stop = CMDID(1, 1), // para:{}, ack:{}
kmodule_break = CMDID(1, 2), // para:{}, ack:{}
// kmodule_stop = CMDID(1, 1), // para:{}, ack:{}
// kmodule_break = CMDID(1, 2), // para:{}, ack:{}
// kmodule_get_last_exec_status = CMDID(1, 3), // para:{}, ack:{4}
kmodule_get_status = CMDID(1, 4), // para:{}, ack:{4}
kmodule_set_reg = CMDID(1, 5), // para:{4,4}, ack:{}
@ -31,13 +31,13 @@ typedef enum {
// kmodule_read_adc = CMDID(1, 9), // para:{4}, ack:{4}
kmodule_get_error = CMDID(1, 10), // para:{}, ack:{1}
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:{}
kmodule_read_raw = CMDID(1, 19), // para:{4,4}, ack:{4}
kmodule_enable = CMDID(1, 20), // para:{4}, 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:{}
// kmodule_read_raw = CMDID(1, 19), // para:{4,4}, ack:{4}
// kmodule_enable = CMDID(1, 20), // para:{4}, ack:{}
// kmodule_start = CMDID(1, 21), // para:{4}, ack:{}
#if 0

4
api/apibasic/reg_index.hpp

@ -13,8 +13,8 @@ typedef enum {
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
kreg_module_raw_sector_size = REG_INDEX(0, 0, 10), // sector_size
kreg_module_raw_sector_num = REG_INDEX(0, 0, 11), //
// kreg_module_raw_sector_size = REG_INDEX(0, 0, 10), // sector_size
// kreg_module_raw_sector_num = REG_INDEX(0, 0, 11), //
/*******************************************************************************
* SENSOR *

51
api/zi_module.cpp

@ -0,0 +1,51 @@
#pragma once
#include "zi_module.hpp"
#include <stdint.h>
#include <functional>
using namespace iflytop;
int32_t ZIModule::getid() {
int32_t id = 0;
getid(&id);
return id;
};
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_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;
}
*regval = val;
return 0;
}
int32_t ZIModule::_module_get_reg(int32_t regoff, int32_t regval, int32_t &val) {
val = regval;
return 0;
}
int32_t ZIModule::_module_set_reg_float(int32_t regoff, float *regval, int32_t val, float precision, int32_t min, int32_t max) {
if (val < min || val > max) {
return err::kparam_out_of_range;
}
*regval = val * precision;
return 0;
}
int32_t ZIModule::_module_get_reg_float(int32_t regoff, float regval, int32_t &val, float precision) {
val = regval / precision;
return 0;
}
int32_t ZIModule::module_get_error(int32_t *iserror) {
*iserror = creg.module_errorcode;
return 0;
}
int32_t ZIModule::module_clear_error() {
creg.module_errorcode = 0;
creg.module_errorbitflag0 = 0;
return 0;
}

68
api/zi_module.hpp

@ -38,7 +38,6 @@ using namespace std;
typedef struct {
int32_t module_errorcode;
int32_t module_errorbitflag0;
int32_t module_enable;
} module_common_reg_t;
class ZIModule {
@ -50,62 +49,27 @@ class ZIModule {
public:
virtual ~ZIModule() {}
virtual int32_t getid(int32_t *id) = 0;
virtual int32_t getid() {
int32_t id = 0;
getid(&id);
return id;
};
virtual int32_t module_ping() { return 0; };
virtual int32_t module_set_reg(int32_t param_id, int32_t param_value) { return module_xxx_reg(param_id, false, param_value); }
virtual int32_t module_get_reg(int32_t param_id, int32_t *param_value) { return module_xxx_reg(param_id, true, *param_value); }
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) {
if (val < min || val > max) {
return err::kparam_out_of_range;
}
*regval = val;
return 0;
}
virtual int32_t _module_get_reg(int32_t regoff, int32_t regval, int32_t &val) {
val = regval;
return 0;
}
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) {
if (val < min || val > max) {
return err::kparam_out_of_range;
}
*regval = val * precision;
return 0;
}
virtual int32_t _module_get_reg_float(int32_t regoff, float regval, int32_t &val, float precision) {
val = regval / precision;
return 0;
}
virtual int32_t module_get_error(int32_t *iserror) {
*iserror = creg.module_errorcode;
return 0;
}
virtual int32_t module_clear_error() {
creg.module_errorcode = 0;
creg.module_errorbitflag0 = 0;
return 0;
}
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) = 0;
virtual int32_t module_stop() { return err::koperation_not_support; }
virtual int32_t module_break() { return module_stop(); }
// virtual int32_t module_start() { return err::koperation_not_support; }
virtual int32_t module_enable(int32_t enable) { return err::koperation_not_support; }
virtual int32_t module_xxx_reg(int32_t param_id, bool read, int32_t &val) { return err::koperation_not_support; }
virtual int32_t module_read_raw(int32_t index, uint8_t *data, int32_t *len) { return err::koperation_not_support; }
virtual int32_t getid(int32_t *id) = 0;
virtual int32_t module_get_status(int32_t *status) = 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);
public:
public:
};
} // namespace iflytop
Loading…
Cancel
Save