|
|
@ -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; }; |
|
|
|
}; |
|
|
|