From 968c1c815fa7e817d2fc219fb361c6e77b1748c6 Mon Sep 17 00:00:00 2001 From: Willy-JL Date: Tue, 17 Jan 2023 01:19:45 +0000 Subject: [PATCH] Add value_index_int32 --- lib/toolbox/value_index.c | 11 +++++++++++ lib/toolbox/value_index.h | 13 +++++++++++++ 2 files changed, 24 insertions(+) diff --git a/lib/toolbox/value_index.c b/lib/toolbox/value_index.c index e0745e434..87bf990f3 100644 --- a/lib/toolbox/value_index.c +++ b/lib/toolbox/value_index.c @@ -1,5 +1,16 @@ #include "value_index.h" +uint8_t value_index_int32(const int32_t value, const int32_t values[], uint8_t values_count) { + uint8_t index = 0; + for(uint8_t i = 0; i < values_count; i++) { + if(value == values[i]) { + index = i; + break; + } + } + return index; +} + uint8_t value_index_uint32(const uint32_t value, const uint32_t values[], uint8_t values_count) { int64_t last_value = INT64_MIN; uint8_t index = 0; diff --git a/lib/toolbox/value_index.h b/lib/toolbox/value_index.h index 9459292a7..23d53ca21 100644 --- a/lib/toolbox/value_index.h +++ b/lib/toolbox/value_index.h @@ -7,6 +7,19 @@ extern "C" { #endif +/** Get the index of a int32_t array element which is equal to the given value. + * + * Returned index corresponds to the first element found. + * If no suitable elements were found, the function returns 0. + * + * @param value value to be searched. + * @param values pointer to the array to perform the search in. + * @param values_count array size. + * + * @return value's index. + */ +uint8_t value_index_int32(const int32_t value, const int32_t values[], uint8_t values_count); + /** Get the index of a uint32_t array element which is closest to the given value. * * Returned index corresponds to the first element found.