diff --git a/.gitignore b/.gitignore index 98dcbb02..cb627492 100644 --- a/.gitignore +++ b/.gitignore @@ -312,3 +312,6 @@ test/sanity-check/c++17/cmake_install.cmake test/sanity-check/c++17/CMakeCache.txt test/sanity-check/c++17/libt17.a test/sanity-check/c++17/Makefile +test/vs2019/Debug LLVM +test/vs2019/DebugLLVMNoSTL +test/vs2019/DebugNoSTL diff --git a/README.md b/README.md index 4baa523d..2ca62bd4 100644 --- a/README.md +++ b/README.md @@ -56,3 +56,7 @@ Any help porting the library to work under different platforms and compilers wou I am especially interested in people who are using Keil, IAR, Green Hills, TI Code Composer etc, bare metal or RTOS, and DSPs. See (https://www.etlcpp.com) for up-to-date information. + +**Arduino library:** + +The content of this repo is available as a library in the Arduino IDE (search for the "Embedded Template Library" in the IDE library manager). The Arduino library repository is available at ```https://github.com/ETLCPP/etl-arduino```, see there for more details. diff --git a/arduino/create_arduino_library.py b/arduino/create_arduino_library.py index b74549e1..f7c7c7e9 100644 --- a/arduino/create_arduino_library.py +++ b/arduino/create_arduino_library.py @@ -27,6 +27,10 @@ print('etl_dir = ', etl_dir) include_dir = os.path.join(etl_dir, 'include') print('include_dir = ', include_dir) +# Get the ETL arduino_examples folder +arduino_examples_dir = os.path.join(arduino_dir, 'examples') +print('examples_dir = ', arduino_examples_dir) + # Get the root folder of both repositories common_dir = os.path.dirname(etl_dir) print('common_dir = ', common_dir) @@ -39,6 +43,10 @@ print('etl_arduino_dir = ', etl_arduino_dir) etl_arduino_src_dir = os.path.join(etl_arduino_dir, 'src') print('etl_arduino_src_dir = ', etl_arduino_src_dir) +# Get the ETL Arduino examples repository folder +etl_arduino_examples_dir = os.path.join(etl_arduino_dir, 'examples') +print('etl_arduino_examples_dir = ', etl_arduino_examples_dir) + print('') # Copy the library properties @@ -70,3 +78,13 @@ print('Copy the ETL headers') print(' From :', source) print(' To :', destination) shutil.copytree(source, destination, dirs_exist_ok = True) + +print('') + +# Copy the ETL arduino_examples +source = arduino_examples_dir +destination = etl_arduino_examples_dir +print('Copy the ETL Arduino examples') +print(' From :', source) +print(' To :', destination) +shutil.copytree(source, destination, dirs_exist_ok = True) diff --git a/arduino/examples/Example_0_import_etl/Example_0_import_etl.ino b/arduino/examples/Example_0_import_etl/Example_0_import_etl.ino new file mode 100644 index 00000000..24fa24a4 --- /dev/null +++ b/arduino/examples/Example_0_import_etl/Example_0_import_etl.ino @@ -0,0 +1,12 @@ +#include "Embedded_Template_Library.h" // This is required for any more etl import when using Arduino IDE + +void setup() +{ + +} + + +void loop() +{ + +} diff --git a/arduino/examples/Vector_Examples/Example_Vector_1_simple_use/Example_Vector_1_simple_use.ino b/arduino/examples/Vector_Examples/Example_Vector_1_simple_use/Example_Vector_1_simple_use.ino new file mode 100644 index 00000000..a707ce89 --- /dev/null +++ b/arduino/examples/Vector_Examples/Example_Vector_1_simple_use/Example_Vector_1_simple_use.ino @@ -0,0 +1,43 @@ +#include "Embedded_Template_Library.h" +#include "etl/vector.h" + +template +void print_vector(etl::ivector const & vec_in) +{ + Serial.print(F("print vector content | size ")); Serial.print(vec_in.size()); Serial.print(F(" | capacity ")); Serial.println(vec_in.capacity()); + Serial.print(F("content | ")); + + for (T const & elem : vec_in) + { + Serial.print(elem); + Serial.print(F(" | ")); + } + + Serial.println(); +} + +void setup() +{ + Serial.begin(115200); + delay(100); + Serial.println(F("booted")); + + etl::vector vec_int; + + Serial.println(F("initialized vec_int")); + print_vector(vec_int); + + vec_int.push_back(1); + vec_int.push_back(2); + Serial.println(F("pushed to vec_int")); + print_vector(vec_int); + + vec_int.pop_back(); + Serial.println(F("pop from vec_int; returns no value")); + print_vector(vec_int); +} + +void loop() +{ + +} diff --git a/test/vs2019/etl.vcxproj b/test/vs2019/etl.vcxproj index 102055ea..6c70ddf5 100644 --- a/test/vs2019/etl.vcxproj +++ b/test/vs2019/etl.vcxproj @@ -4982,6 +4982,8 @@ + + diff --git a/test/vs2019/etl.vcxproj.filters b/test/vs2019/etl.vcxproj.filters index 46c2f34d..cd5ef18a 100644 --- a/test/vs2019/etl.vcxproj.filters +++ b/test/vs2019/etl.vcxproj.filters @@ -106,6 +106,18 @@ {562466b5-677d-4448-9e9e-f70805cd71ad} + + {1d6ea286-57ad-4960-9343-9d2376087b24} + + + {5eace791-3e53-4205-a04d-2aba3bac6b47} + + + {2b770849-325e-4ec5-a7f3-9a192cd40dca} + + + {0e4d2126-b9b7-4eef-b5ca-18363b1e01ce} + @@ -2614,6 +2626,12 @@ Source Files\Scripts + + ETL\Arduino\Examples\Example_0_import_etl + + + ETL\Arduino\Examples\Vector_Examples\Example_Vector_1_simple_use +