From e83ffeb82e2b2f43633cad87d8c0d1a3961bdb2a Mon Sep 17 00:00:00 2001 From: rob tillaart Date: Fri, 28 May 2021 13:39:42 +0200 Subject: [PATCH] 0.1.4 MultiMap --- libraries/MultiMap/MultiMap.h | 9 ++++++--- libraries/MultiMap/README.md | 3 +++ .../MultiMap/examples/multimap_NTC/multimap_NTC.ino | 6 ++++++ .../multimap_NTC_int_FAIL/multimap_NTC_int_FAIL.ino | 8 ++++++-- .../examples/multimap_distance/multimap_distance.ino | 5 ++++- .../examples/multimap_functions/multimap_functions.ino | 10 +++++++++- .../examples/multimap_timing/multimap_timing.ino | 4 +++- libraries/MultiMap/library.json | 3 ++- libraries/MultiMap/library.properties | 4 ++-- libraries/MultiMap/test/unit_test_001.cpp | 4 ++++ 10 files changed, 45 insertions(+), 11 deletions(-) diff --git a/libraries/MultiMap/MultiMap.h b/libraries/MultiMap/MultiMap.h index a8b70c41..c5a9ee1d 100644 --- a/libraries/MultiMap/MultiMap.h +++ b/libraries/MultiMap/MultiMap.h @@ -2,7 +2,7 @@ // // FILE: MultiMap.h // AUTHOR: Rob Tillaart -// VERSION: 0.1.3 +// VERSION: 0.1.4 // DATE: 2011-01-26 // PURPOSE: Arduino library for fast non-linear mapping or interpolation of values // URL: https://github.com/RobTillaart/MultiMap @@ -15,9 +15,11 @@ // 0.1.1 2020-04-09 // 0.1.2 2020-06-19 fix library.json // 0.1.3 2021-01-02 add arduino-CI -// +// 0.1.4 2021-05-27 fix arduino-lint + + +#define MULTIMAP_LIB_VERSION (F("0.1.4")) -#define MULTIMAP_LIB_VERSION "0.1.3" #include "Arduino.h" @@ -90,4 +92,5 @@ T multiMap(T val, T* _in, T* _out, uint8_t size) } */ + // -- END OF FILE -- diff --git a/libraries/MultiMap/README.md b/libraries/MultiMap/README.md index c690a0e7..e1b4eec7 100644 --- a/libraries/MultiMap/README.md +++ b/libraries/MultiMap/README.md @@ -7,6 +7,7 @@ Arduino library for fast non-linear mapping or interpolation of values + ## Description In Arduino applications often the value of a sensor is mapped upon a more @@ -35,12 +36,14 @@ points of the output\[\] array. there is no such restriction for the **output\[\]** array. - **Multimap()** automatically constrains the output to the first and last value in the **output\[\]** array. + ## Operation See examples Please note the fail example as this shows that in the intern math overflow can happen. + ## TODO Investigate class implementation for performance. diff --git a/libraries/MultiMap/examples/multimap_NTC/multimap_NTC.ino b/libraries/MultiMap/examples/multimap_NTC/multimap_NTC.ino index f21f024c..836836f0 100644 --- a/libraries/MultiMap/examples/multimap_NTC/multimap_NTC.ino +++ b/libraries/MultiMap/examples/multimap_NTC/multimap_NTC.ino @@ -7,6 +7,7 @@ // (c) : MIT // + #include "MultiMap.h" uint32_t start; @@ -17,6 +18,7 @@ volatile float x, y, z; // Note this is a bit an extreme example, // normally you only make a multimap of the working range + float in[] = { 0, 1, 3, 8, 13, 20, 25, 32, 50, 60, 72, 85, 100, 145, 200, 250, 300, 400, 500, 600, 650, 700, 753, 800, 830, 870, 900, 936, 964, 985, 1000, 1017, 1023 }; @@ -27,6 +29,7 @@ float out[] = { int sz = 33; + void setup() { Serial.begin(115200); @@ -64,10 +67,12 @@ void setup() } + void loop() { } + // NTC formula float val(int sensorValueA1) { @@ -80,4 +85,5 @@ float val(int sensorValueA1) return Temp; } + // -- END OF FILE -- diff --git a/libraries/MultiMap/examples/multimap_NTC_int_FAIL/multimap_NTC_int_FAIL.ino b/libraries/MultiMap/examples/multimap_NTC_int_FAIL/multimap_NTC_int_FAIL.ino index bcba152e..e64d920d 100644 --- a/libraries/MultiMap/examples/multimap_NTC_int_FAIL/multimap_NTC_int_FAIL.ino +++ b/libraries/MultiMap/examples/multimap_NTC_int_FAIL/multimap_NTC_int_FAIL.ino @@ -23,6 +23,7 @@ uint32_t stop; volatile float x, y, z; + int in[] = { 0, 1, 3, 8, 13, 20, 25, 32, 50, 60, 72, 85, 100, 145, 200, 250, 300, 400, 500, 600, 650, 700, 753, 800, 830, 870, 900, 936, 964, 985, 1000, 1017, 1023 }; @@ -33,6 +34,7 @@ int out[] = { int sz = 33; + void setup() { Serial.begin(115200); @@ -67,13 +69,14 @@ void setup() Serial.print(z); Serial.println(); } - } + void loop() { } + // NTC formula float val(int sensorValueA1) { @@ -86,4 +89,5 @@ float val(int sensorValueA1) return Temp; } -// -- END OF FILE -- \ No newline at end of file + +// -- END OF FILE -- diff --git a/libraries/MultiMap/examples/multimap_distance/multimap_distance.ino b/libraries/MultiMap/examples/multimap_distance/multimap_distance.ino index 0a6e8abb..ffc8a5b3 100644 --- a/libraries/MultiMap/examples/multimap_distance/multimap_distance.ino +++ b/libraries/MultiMap/examples/multimap_distance/multimap_distance.ino @@ -1,4 +1,3 @@ - // // FILE: multimap_distance.ino // AUTHOR: Rob Tillaart @@ -7,8 +6,10 @@ // DATE: 2020-04-09 // + #include "MultiMap.h" + void setup() { Serial.begin(115200); @@ -26,6 +27,7 @@ void setup() Serial.println("Done..."); } + void loop() { } @@ -44,4 +46,5 @@ float sharp2cm(int val) return dist; } + // -- END OF FILE -- diff --git a/libraries/MultiMap/examples/multimap_functions/multimap_functions.ino b/libraries/MultiMap/examples/multimap_functions/multimap_functions.ino index 7de5abab..db9e1a13 100644 --- a/libraries/MultiMap/examples/multimap_functions/multimap_functions.ino +++ b/libraries/MultiMap/examples/multimap_functions/multimap_functions.ino @@ -10,6 +10,7 @@ #include "MultiMap.h" + void setup() { Serial.begin(115200); @@ -27,11 +28,12 @@ void setup() Serial.println("\nDone..."); } + void loop() { - } + void test_normal_distribution() { // sort of normal distribution @@ -48,6 +50,7 @@ void test_normal_distribution() } } + void test_sinus() { // one sinus wave, amplitudo 1023 @@ -64,6 +67,7 @@ void test_sinus() } } + void lest_log10() { // log10 * 100 @@ -80,6 +84,7 @@ void lest_log10() } } + void test_exp2() { // 2^x @@ -96,6 +101,7 @@ void test_exp2() } } + void test_exp3() { // 3^x @@ -112,6 +118,7 @@ void test_exp3() } } + void test_sawtooth() { long sawtooth[] = { 0, 1000, 0, -1000, 0, 1000, -1000, 0 }; // size 8 @@ -127,4 +134,5 @@ void test_sawtooth() } } + // -- END OF FILE -- diff --git a/libraries/MultiMap/examples/multimap_timing/multimap_timing.ino b/libraries/MultiMap/examples/multimap_timing/multimap_timing.ino index 9bdc3aaf..f32d6a81 100644 --- a/libraries/MultiMap/examples/multimap_timing/multimap_timing.ino +++ b/libraries/MultiMap/examples/multimap_timing/multimap_timing.ino @@ -19,6 +19,7 @@ float fout[] = {111, 222, 555}; uint32_t start; uint32_t stop; + void setup() { Serial.begin(115200); @@ -40,9 +41,10 @@ void setup() Serial.println(y, 4); } + void loop() { - } + // -- END OF FILE -- diff --git a/libraries/MultiMap/library.json b/libraries/MultiMap/library.json index 5985f331..c1bf0f6d 100644 --- a/libraries/MultiMap/library.json +++ b/libraries/MultiMap/library.json @@ -15,7 +15,8 @@ "type": "git", "url": "https://github.com/RobTillaart/MultiMap.git" }, - "version":"0.1.3", + "version": "0.1.4", + "license": "MIT", "frameworks": "arduino", "platforms": "*" } diff --git a/libraries/MultiMap/library.properties b/libraries/MultiMap/library.properties index 070b6ddf..f751a4ca 100644 --- a/libraries/MultiMap/library.properties +++ b/libraries/MultiMap/library.properties @@ -1,11 +1,11 @@ name=MultiMap -version=0.1.3 +version=0.1.4 author=Rob Tillaart maintainer=Rob Tillaart sentence=Library for fast non-linear interpolation by means of two arrays. paragraph= category=Data Processing -url=https://github.com/RobTillaart/Arduino/MultiMap +url=https://github.com/RobTillaart/MultiMap architectures=* includes=MultiMap.h depends= diff --git a/libraries/MultiMap/test/unit_test_001.cpp b/libraries/MultiMap/test/unit_test_001.cpp index 8120d4ab..62d3b32b 100644 --- a/libraries/MultiMap/test/unit_test_001.cpp +++ b/libraries/MultiMap/test/unit_test_001.cpp @@ -39,6 +39,7 @@ unittest_setup() { } + unittest_teardown() { } @@ -56,6 +57,7 @@ unittest(test_new_operator) } */ + unittest(test_all) { fprintf(stderr, "VERSION: %s\n", MULTIMAP_LIB_VERSION); @@ -75,6 +77,8 @@ unittest(test_all) assertEqualFloat(20.0000, multiMap(600, in, out, 14), 0.001); } + unittest_main() + // --------