From c28aa03e3b0c649948d53224158ce5198b0552bb Mon Sep 17 00:00:00 2001 From: zhaohe Date: Sat, 4 Nov 2023 11:29:19 +0800 Subject: [PATCH] update --- api/zi_module.hpp | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/api/zi_module.hpp b/api/zi_module.hpp index 1c86594..59dddf7 100644 --- a/api/zi_module.hpp +++ b/api/zi_module.hpp @@ -8,15 +8,18 @@ namespace iflytop { using namespace std; -#define ACTION_NONE ; +#define REG_SET(reg, ...) _module_set_reg(param_id, ®, val, ##__VA_ARGS__) +#define REG_GET(reg) _module_get_reg(param_id, reg, val) + +#define ACTION_NONE 0 #define PROCESS_REG(param_id, readaction, writeacton) \ case param_id: { \ if (read) { \ - readaction; \ + return readaction; \ } else { \ - writeacton; \ + return writeacton; \ } \ - } + } break; class ModuleCMDExecStatus { public: @@ -87,5 +90,17 @@ class ZIModule { virtual int32_t module_factory_reset() { return err::koperation_not_support; } virtual int32_t module_flush_cfg() { return err::koperation_not_support; } virtual int32_t module_active_cfg() { return err::koperation_not_support; } + + 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; + } }; } // namespace iflytop