Browse Source

update

master
zhaohe 1 year ago
parent
commit
e66a40b850
  1. 46
      components/zcancmder/zimodule_impl_v2.cpp
  2. 86
      components/zcancmder/zimodule_impl_v2.hpp
  3. 2
      components/zprotocols/zcancmder_v2/api/reg_index.hpp
  4. 3
      components/zprotocols/zcancmder_v2/api/zi_module.hpp
  5. 2
      components/zprotocols/zcancmder_v2/protocol_parser.cpp

46
components/zcancmder/zimodule_impl_v2.cpp

@ -0,0 +1,46 @@
#include "zimodule_impl_v2.hpp"
#include <stdint.h>
#include <functional>
#include "sdk\components\zprotocols\zcancmder_v2\api\reg_index.hpp"
#include "sdk\components\zprotocols\zcancmder_v2\api\zi_module.hpp"
using namespace iflytop;
ZIModuleImplV2::ZIModuleImplV2(int32_t id) { m_id = id; }
int32_t ZIModuleImplV2::getid(int32_t *id) {
*id = m_id;
return 0;
}
int32_t ZIModuleImplV2::getid() { return m_id; }
int32_t ZIModuleImplV2::module_ping() { return 0; }
int32_t ZIModuleImplV2::module_get_status(int32_t *status) { return module_get_reg(kreg_module_status, status); }
int32_t ZIModuleImplV2::module_get_error(int32_t *iserror) { return module_get_reg(kreg_module_errorcode, iserror); }
int32_t ZIModuleImplV2::module_clear_error() { return module_set_reg(kreg_module_errorcode, 0); }
int32_t ZIModuleImplV2::module_enable(int32_t enable) { return module_set_reg(kreg_module_enableflag, enable); }
// int32_t ZIModuleImplV2::module_readio(int32_t *io) { return module_get_reg(kreg_module_input_state, io); }
// int32_t ZIModuleImplV2::module_writeio(int32_t idindex, int32_t io) { return module_set_reg(kreg_module_output_state, io); }
int32_t ZIModuleImplV2::module_factory_reset() { return 0; }
int32_t ZIModuleImplV2::module_flush_cfg() { return 0; }
int32_t ZIModuleImplV2::module_active_cfg() { return 0; }
int32_t ZIModuleImplV2::module_set_reg(int32_t param_id, int32_t param_value) {
int32_t retVal = 0;
// if (m_reg_change_listener) {
// m_reg_change_listener(param_id, param_value);
// }
return 0;
}
int32_t ZIModuleImplV2::module_get_reg(int32_t param_id, int32_t *param_value) {
}
int32_t ZIModuleImplV2::module_get_regbit(int32_t param_id, int32_t bitoffset, int32_t *param_value) {}
int32_t ZIModuleImplV2::module_set_regbit(int32_t param_id, int32_t bitoffset, int32_t bitval) {}
void ZIModuleImplV2::_regRegChangeListener(reg_change_listener_t onregchange) { //
m_reg_change_listener = onregchange;
}
void ZIModuleImplV2::_allocRegTable(int32_t regNum) {}

86
components/zcancmder/zimodule_impl_v2.hpp

@ -0,0 +1,86 @@
#pragma once
#include <stdint.h>
#include <functional>
#include "sdk\components\zprotocols\zcancmder_v2\api\zi_module.hpp"
namespace iflytop {
using namespace std;
class ZIModuleImplV2 : public ZIModule {
public:
private:
/*******************************************************************************
* *
*******************************************************************************/
typedef struct {
int32_t index;
int32_t value;
// limit
bool enablelimit;
int32_t minval;
int32_t maxval;
} reg_iterm_t;
typedef enum {
kon_reg_write,
kon_reg_read,
} reg_change_event_t;
typedef function<int32_t(reg_change_event_t event, int32_t index, int32_t &regval)> reg_change_listener_t;
private:
/*******************************************************************************
* *
*******************************************************************************/
int32_t m_id = 0;
reg_iterm_t *m_regtable = NULL;
int32_t m_regNum = 0;
reg_iterm_t *m_internal_regtable = NULL;
int32_t m_internal_regNum = 0;
reg_change_listener_t m_reg_change_listener;
public:
virtual ~ZIModuleImplV2() {}
ZIModuleImplV2(int32_t id);
/*******************************************************************************
* ZIModuleImpl *
*******************************************************************************/
virtual int32_t getid(int32_t *id) override final;
virtual int32_t getid() override final;
virtual int32_t module_ping() override final;
virtual int32_t module_get_status(int32_t *status) override final;
virtual int32_t module_get_error(int32_t *iserror) override final;
virtual int32_t module_clear_error() override final;
virtual int32_t module_enable(int32_t enable) override final;
virtual int32_t module_set_reg(int32_t param_id, int32_t param_value) override final;
virtual int32_t module_set_regbit(int32_t param_id, int32_t bitoffset, int32_t bitval) final;
virtual int32_t module_get_reg(int32_t param_id, int32_t *param_value) final;
virtual int32_t module_get_regbit(int32_t param_id, int32_t bitoffset, int32_t *param_value) final;
virtual int32_t module_factory_reset() override final;
virtual int32_t module_flush_cfg() override final;
virtual int32_t module_active_cfg() override final;
// virtual int32_t module_stop() = 0;
// virtual int32_t module_break() = 0;
// virtual int32_t module_start() = 0;
// virtual int32_t module_read_raw(int32_t index, uint8_t *data, int32_t *len) override final;
/*******************************************************************************
* *
*******************************************************************************/
void _regRegChangeListener(reg_change_listener_t onregchange);
void _allocRegTable(int32_t regNum);
public:
};
} // namespace iflytop

2
components/zprotocols/zcancmder_v2/api/reg_index.hpp

@ -14,7 +14,7 @@ typedef enum {
kreg_module_status = REG_INDEX(0, 0, 2), // 0idle,1busy,2error
kreg_module_errorcode = REG_INDEX(0, 0, 3), // inited_flag
kreg_module_initflag = REG_INDEX(0, 0, 4), // inited_flag
kreg_module_enableflag = REG_INDEX(0, 0, 5), // 0idle,1busy,2error
kreg_module_enableflag = REG_INDEX(0, 0, 5), //
kreg_module_errorbitflag0 = REG_INDEX(0, 0, 6), // 模块异常标志,bit,每个模块自定义
kreg_module_errorbitflag1 = REG_INDEX(0, 0, 7), //
kreg_module_input_state = REG_INDEX(0, 0, 8), //

3
components/zprotocols/zcancmder_v2/api/zi_module.hpp

@ -29,9 +29,6 @@ class ZIModule {
virtual int32_t module_writeio(int32_t idindex, int32_t io) = 0;
virtual int32_t module_read_adc(int32_t adcindex, int32_t *adc) = 0;
virtual int32_t module_read_raw(int32_t index, uint8_t *data, int32_t *len) = 0;
virtual int32_t module_set_inited_flag(int32_t flag) = 0;
virtual int32_t module_get_inited_flag(int32_t *flag) = 0;
virtual int32_t module_get_inited_flag() = 0;
virtual int32_t module_factory_reset() = 0;
virtual int32_t module_flush_cfg() = 0;
virtual int32_t module_active_cfg() = 0;

2
components/zprotocols/zcancmder_v2/protocol_parser.cpp

@ -124,8 +124,6 @@ void ZIProtocolParser::onRceivePacket(zcr_cmd_header_t* rxcmd, uint8_t* data, in
PROCESS_PACKET_11(kmodule_read_adc, ZIModule, module_read_adc);
PROCESS_PACKET_01(kmodule_get_error, ZIModule, module_get_error);
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);

Loading…
Cancel
Save