diff --git a/src/lib/parameters/flashparams/flashparams.cpp b/src/lib/parameters/flashparams/flashparams.cpp index d3271d40d6..c51e73242b 100644 --- a/src/lib/parameters/flashparams/flashparams.cpp +++ b/src/lib/parameters/flashparams/flashparams.cpp @@ -110,7 +110,6 @@ param_export_internal(bool only_unsaved) /* append the appropriate BSON type object */ switch (param_type(s->param)) { - case PARAM_TYPE_INT32: i = s->val.i; @@ -131,18 +130,6 @@ param_export_internal(bool only_unsaved) break; - case PARAM_TYPE_STRUCT ... PARAM_TYPE_STRUCT_MAX: - if (bson_encoder_append_binary(&encoder, - param_name(s->param), - BSON_BIN_BINARY, - param_size(s->param), - param_get_value_ptr_external(s->param))) { - debug("BSON append failed for '%s'", param_name(s->param)); - goto out; - } - - break; - default: debug("unrecognized parameter type"); goto out; diff --git a/src/lib/parameters/param.h b/src/lib/parameters/param.h index 94e969a70c..818300af42 100644 --- a/src/lib/parameters/param.h +++ b/src/lib/parameters/param.h @@ -57,16 +57,12 @@ __BEGIN_DECLS /** * Parameter types. */ -#define PARAM_TYPE_INT32 0 -#define PARAM_TYPE_FLOAT 1 -#define PARAM_TYPE_STRUCT 100 -#define PARAM_TYPE_STRUCT_MAX (16384 + PARAM_TYPE_STRUCT) -#define PARAM_TYPE_UNKNOWN (0xffff) +#define PARAM_TYPE_UNKNOWN 0 +#define PARAM_TYPE_INT32 1 +#define PARAM_TYPE_FLOAT 2 -typedef uint16_t param_type_t; +typedef uint8_t param_type_t; - -#ifdef __PX4_NUTTX // on NuttX use 16 bits to save RAM /** * Parameter handle. * @@ -86,29 +82,6 @@ typedef uint16_t param_t; */ #define PARAM_HASH ((uint16_t)INT16_MAX) -#else // on other platforms use 32 bits for better performance - -/** - * Parameter handle. - * - * Parameters are represented by parameter handles, which can - * be obtained by looking up parameters. They are an offset into a global - * constant parameter array. - */ -typedef uint32_t param_t; - -/** - * Handle returned when a parameter cannot be found. - */ -#define PARAM_INVALID ((uint32_t)0xffffffff) - -/** - * Magic handle for hash check param - */ -#define PARAM_HASH ((uint32_t)INT32_MAX) - -#endif /* __PX4_NUTTX */ - /** * Initialize the param backend. Call this on startup before calling any other methods. diff --git a/src/lib/parameters/parameters.cpp b/src/lib/parameters/parameters.cpp index 9678095f08..5581ce5cfd 100644 --- a/src/lib/parameters/parameters.cpp +++ b/src/lib/parameters/parameters.cpp @@ -515,17 +515,11 @@ size_t param_size(param_t param) { if (handle_in_range(param)) { - switch (param_type(param)) { - case PARAM_TYPE_INT32: case PARAM_TYPE_FLOAT: return 4; - case PARAM_TYPE_STRUCT ... PARAM_TYPE_STRUCT_MAX: - /* decode structure size from type value */ - return param_type(param) - PARAM_TYPE_STRUCT; - default: return 0; } @@ -562,14 +556,7 @@ param_get_value_ptr(param_t param) v = ¶m_info_base[param].val; } - if (param_type(param) >= PARAM_TYPE_STRUCT && - param_type(param) <= PARAM_TYPE_STRUCT_MAX) { - - result = v->p; - - } else { - result = v; - } + result = v; } return result; @@ -718,7 +705,6 @@ param_set_internal(param_t param, const void *val, bool mark_saved, bool notify_ /* update the changed value */ switch (param_type(param)) { - case PARAM_TYPE_INT32: params_changed = params_changed || s->val.i != *(int32_t *)val; s->val.i = *(int32_t *)val; @@ -729,27 +715,6 @@ param_set_internal(param_t param, const void *val, bool mark_saved, bool notify_ s->val.f = *(float *)val; break; - case PARAM_TYPE_STRUCT ... PARAM_TYPE_STRUCT_MAX: - if (s->val.p == nullptr) { - size_t psize = param_size(param); - - if (psize > 0) { - s->val.p = malloc(psize); - - } else { - s->val.p = nullptr; - } - - if (s->val.p == nullptr) { - PX4_ERR("failed to allocate parameter storage"); - goto out; - } - } - - memcpy(s->val.p, val, param_size(param)); - params_changed = true; - break; - default: goto out; } @@ -1121,22 +1086,6 @@ param_export(int fd, bool only_unsaved) } break; - case PARAM_TYPE_STRUCT ... PARAM_TYPE_STRUCT_MAX: { - const void *value_ptr = param_get_value_ptr(s->param); - - /* lock as short as possible */ - if (bson_encoder_append_binary(&encoder, - name, - BSON_BIN_BINARY, - size, - value_ptr)) { - - PX4_ERR("BSON append failed for '%s'", name); - goto out; - } - } - break; - default: PX4_ERR("unrecognized parameter type"); goto out; diff --git a/src/lib/parameters/parameters_shmem.cpp b/src/lib/parameters/parameters_shmem.cpp index 7c9ec47425..8725faee65 100644 --- a/src/lib/parameters/parameters_shmem.cpp +++ b/src/lib/parameters/parameters_shmem.cpp @@ -541,17 +541,11 @@ size_t param_size(param_t param) { if (handle_in_range(param)) { - switch (param_type(param)) { - case PARAM_TYPE_INT32: case PARAM_TYPE_FLOAT: return 4; - case PARAM_TYPE_STRUCT ... PARAM_TYPE_STRUCT_MAX: - /* decode structure size from type value */ - return param_type(param) - PARAM_TYPE_STRUCT; - default: return 0; } @@ -588,14 +582,7 @@ param_get_value_ptr(param_t param) v = ¶m_info_base[param].val; } - if (param_type(param) >= PARAM_TYPE_STRUCT && - param_type(param) <= PARAM_TYPE_STRUCT_MAX) { - - result = v->p; - - } else { - result = v; - } + result = v; } return result; @@ -761,7 +748,6 @@ param_set_internal(param_t param, const void *val, bool mark_saved, bool notify_ /* update the changed value */ switch (param_type(param)) { - case PARAM_TYPE_INT32: params_changed = params_changed || s->val.i != *(int32_t *)val; s->val.i = *(int32_t *)val; @@ -772,27 +758,6 @@ param_set_internal(param_t param, const void *val, bool mark_saved, bool notify_ s->val.f = *(float *)val; break; - case PARAM_TYPE_STRUCT ... PARAM_TYPE_STRUCT_MAX: - if (s->val.p == nullptr) { - size_t psize = param_size(param); - - if (psize > 0) { - s->val.p = malloc(psize); - - } else { - s->val.p = nullptr; - } - - if (s->val.p == nullptr) { - PX4_ERR("failed to allocate parameter storage"); - goto out; - } - } - - memcpy(s->val.p, val, param_size(param)); - params_changed = true; - break; - default: goto out; } @@ -1199,22 +1164,6 @@ param_export(int fd, bool only_unsaved) } break; - case PARAM_TYPE_STRUCT ... PARAM_TYPE_STRUCT_MAX: { - const void *value_ptr = param_get_value_ptr(s->param); - - /* lock as short as possible */ - if (bson_encoder_append_binary(&encoder, - name, - BSON_BIN_BINARY, - size, - value_ptr)) { - - PX4_ERR("BSON append failed for '%s'", name); - goto out; - } - } - break; - default: PX4_ERR("unrecognized parameter type"); goto out; diff --git a/src/systemcmds/param/param.cpp b/src/systemcmds/param/param.cpp index 3d592bd392..e2ddc34dfa 100644 --- a/src/systemcmds/param/param.cpp +++ b/src/systemcmds/param/param.cpp @@ -638,10 +638,6 @@ do_show_print(void *arg, param_t param) break; - case PARAM_TYPE_STRUCT ... PARAM_TYPE_STRUCT_MAX: - PARAM_PRINT("\n", 0 + param_type(param), param_size(param)); - return; - default: PARAM_PRINT("\n", 0 + param_type(param)); return;