|
|
@ -4,6 +4,7 @@ |
|
|
|
#include <functional>
|
|
|
|
|
|
|
|
#include "errorcode.hpp"
|
|
|
|
#include "module_type_index.hpp"
|
|
|
|
|
|
|
|
namespace iflytop { |
|
|
|
using namespace std; |
|
|
@ -32,6 +33,52 @@ 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 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_status, /* */ REG_GET(m_com_reg.module_status), REG_SET(m_com_reg.module_status)); \ |
|
|
|
PROCESS_REG(kreg_module_errorcode, /* */ REG_GET(m_com_reg.module_errorcode), REG_SET(m_com_reg.module_errorcode)); \ |
|
|
|
PROCESS_REG(kreg_module_initflag, /* */ REG_GET(m_com_reg.module_initflag), REG_SET(m_com_reg.module_initflag)); \ |
|
|
|
PROCESS_REG(kreg_module_errorbitflag0, /* */ REG_GET(m_com_reg.module_errorbitflag0), REG_SET(m_com_reg.module_errorbitflag0)); \ |
|
|
|
PROCESS_REG(kreg_module_do_action0, /* */ ACTION_NONE, do_action(val)); \ |
|
|
|
PROCESS_REG(kreg_module_action_param1, /* */ REG_GET(m_com_reg.module_action_param1), REG_SET(m_com_reg.module_action_param1)); \ |
|
|
|
PROCESS_REG(kreg_module_action_param2, /* */ REG_GET(m_com_reg.module_action_param2), REG_SET(m_com_reg.module_action_param2)); \ |
|
|
|
PROCESS_REG(kreg_module_action_param3, /* */ REG_GET(m_com_reg.module_action_param3), REG_SET(m_com_reg.module_action_param3)); \ |
|
|
|
PROCESS_REG(kreg_module_action_ack1, /* */ REG_GET(m_com_reg.module_action_ack1), ACTION_NONE); \ |
|
|
|
PROCESS_REG(kreg_module_action_ack2, /* */ REG_GET(m_com_reg.module_action_ack2), ACTION_NONE); \ |
|
|
|
PROCESS_REG(kreg_module_last_cmd_exec_status, /* */ REG_GET(m_com_reg.module_last_cmd_exec_status), ACTION_NONE); \ |
|
|
|
PROCESS_REG(kreg_module_last_cmd_exec_val0, /* */ REG_GET(m_com_reg.module_last_cmd_exec_val0), ACTION_NONE); \ |
|
|
|
PROCESS_REG(kreg_module_last_cmd_exec_val1, /* */ REG_GET(m_com_reg.module_last_cmd_exec_val1), ACTION_NONE); \ |
|
|
|
PROCESS_REG(kreg_module_last_cmd_exec_val2, /* */ REG_GET(m_com_reg.module_last_cmd_exec_val2), ACTION_NONE); \ |
|
|
|
PROCESS_REG(kreg_module_last_cmd_exec_val3, /* */ REG_GET(m_com_reg.module_last_cmd_exec_val3), ACTION_NONE); \ |
|
|
|
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_status; |
|
|
|
int32_t module_errorcode; |
|
|
|
int32_t module_initflag; |
|
|
|
int32_t module_errorbitflag0; |
|
|
|
|
|
|
|
int32_t module_last_cmd_exec_status; |
|
|
|
int32_t module_last_cmd_exec_val0; |
|
|
|
int32_t module_last_cmd_exec_val1; |
|
|
|
int32_t module_last_cmd_exec_val2; |
|
|
|
int32_t module_last_cmd_exec_val3; |
|
|
|
int32_t module_last_cmd_exec_val4; |
|
|
|
|
|
|
|
int32_t module_do_action0; |
|
|
|
int32_t module_action_param1; |
|
|
|
int32_t module_action_param2; |
|
|
|
int32_t module_action_param3; |
|
|
|
int32_t module_action_ack1; |
|
|
|
int32_t module_action_ack2; |
|
|
|
|
|
|
|
} module_common_reg_t; |
|
|
|
|
|
|
|
class ModuleCMDExecStatus { |
|
|
|
public: |
|
|
|
int32_t exec_status = 0; |
|
|
|