diff --git a/README.md b/README.md
index 0427881..22473f8 100644
--- a/README.md
+++ b/README.md
@@ -6,7 +6,7 @@ Telit IoT AppZone Sample Apps For Bravo Board - leverage onboard sensors to OneE
This repository contains Telit IoT AppZone C sample apps dedicated for Bravo Board, showing how to access data from sensors and publish them with OneEdge
## Structure
-All samples are inside `Samples` folder, where each one has its own subfolder, containing all the required files. **The minimum firmware version to build the samples is 30.00.xx8**.
+All samples are inside `Samples` folder, where each one has its own subfolder, containing all the required files. **The minimum firmware version to build the samples is 30.00.xx8, but it is suggested to use the latest 30.01.xx0**.
## Usage
diff --git a/Samples/AZX_Docs/html/annotated.html b/Samples/AZX_Docs/html/annotated.html
index 3658861..124beb3 100644
--- a/Samples/AZX_Docs/html/annotated.html
+++ b/Samples/AZX_Docs/html/annotated.html
@@ -34,7 +34,7 @@
 |
AZX (AppZone eXtensions) documentation
- 1.0.8
+ 1.0.9
A set of companion utilities that make AZ development easier
|
diff --git a/Samples/AZX_Docs/html/app__cfg_8h.html b/Samples/AZX_Docs/html/app__cfg_8h.html
index 19e4576..490d4ae 100644
--- a/Samples/AZX_Docs/html/app__cfg_8h.html
+++ b/Samples/AZX_Docs/html/app__cfg_8h.html
@@ -34,7 +34,7 @@
 |
AZX (AppZone eXtensions) documentation
- 1.0.8
+ 1.0.9
A set of companion utilities that make AZ development easier
|
diff --git a/Samples/AZX_Docs/html/app__cfg_8h_source.html b/Samples/AZX_Docs/html/app__cfg_8h_source.html
index 6333f4a..802913d 100644
--- a/Samples/AZX_Docs/html/app__cfg_8h_source.html
+++ b/Samples/AZX_Docs/html/app__cfg_8h_source.html
@@ -34,7 +34,7 @@
 |
AZX (AppZone eXtensions) documentation
- 1.0.8
+ 1.0.9
A set of companion utilities that make AZ development easier
|
diff --git a/Samples/AZX_Docs/html/azx__log_8h.html b/Samples/AZX_Docs/html/azx__log_8h.html
index d0ded4c..c2aa4ef 100644
--- a/Samples/AZX_Docs/html/azx__log_8h.html
+++ b/Samples/AZX_Docs/html/azx__log_8h.html
@@ -34,7 +34,7 @@
 |
AZX (AppZone eXtensions) documentation
- 1.0.8
+ 1.0.9
A set of companion utilities that make AZ development easier
|
diff --git a/Samples/AZX_Docs/html/azx__log_8h_source.html b/Samples/AZX_Docs/html/azx__log_8h_source.html
index 83d7ec3..036dc5c 100644
--- a/Samples/AZX_Docs/html/azx__log_8h_source.html
+++ b/Samples/AZX_Docs/html/azx__log_8h_source.html
@@ -34,7 +34,7 @@
 |
AZX (AppZone eXtensions) documentation
- 1.0.8
+ 1.0.9
A set of companion utilities that make AZ development easier
|
diff --git a/Samples/AZX_Docs/html/azx__tasks_8h.html b/Samples/AZX_Docs/html/azx__tasks_8h.html
index 2da5265..3997fe5 100644
--- a/Samples/AZX_Docs/html/azx__tasks_8h.html
+++ b/Samples/AZX_Docs/html/azx__tasks_8h.html
@@ -34,7 +34,7 @@
 |
AZX (AppZone eXtensions) documentation
- 1.0.8
+ 1.0.9
A set of companion utilities that make AZ development easier
|
diff --git a/Samples/AZX_Docs/html/azx__tasks_8h_source.html b/Samples/AZX_Docs/html/azx__tasks_8h_source.html
index 8a6c162..12f76a5 100644
--- a/Samples/AZX_Docs/html/azx__tasks_8h_source.html
+++ b/Samples/AZX_Docs/html/azx__tasks_8h_source.html
@@ -34,7 +34,7 @@
 |
AZX (AppZone eXtensions) documentation
- 1.0.8
+ 1.0.9
A set of companion utilities that make AZ development easier
|
diff --git a/Samples/AZX_Docs/html/azx__utils_8h.html b/Samples/AZX_Docs/html/azx__utils_8h.html
index a19a3b5..1c568e6 100644
--- a/Samples/AZX_Docs/html/azx__utils_8h.html
+++ b/Samples/AZX_Docs/html/azx__utils_8h.html
@@ -34,7 +34,7 @@
 |
AZX (AppZone eXtensions) documentation
- 1.0.8
+ 1.0.9
A set of companion utilities that make AZ development easier
|
diff --git a/Samples/AZX_Docs/html/azx__utils_8h_source.html b/Samples/AZX_Docs/html/azx__utils_8h_source.html
index 4f1c49e..a91d10b 100644
--- a/Samples/AZX_Docs/html/azx__utils_8h_source.html
+++ b/Samples/AZX_Docs/html/azx__utils_8h_source.html
@@ -34,7 +34,7 @@
 |
AZX (AppZone eXtensions) documentation
- 1.0.8
+ 1.0.9
A set of companion utilities that make AZ development easier
|
diff --git a/Samples/AZX_Docs/html/azx_tasks_example_8c-example.html b/Samples/AZX_Docs/html/azx_tasks_example_8c-example.html
index 5c6ccac..eb4f093 100644
--- a/Samples/AZX_Docs/html/azx_tasks_example_8c-example.html
+++ b/Samples/AZX_Docs/html/azx_tasks_example_8c-example.html
@@ -34,7 +34,7 @@
 |
AZX (AppZone eXtensions) documentation
- 1.0.8
+ 1.0.9
A set of companion utilities that make AZ development easier
|
diff --git a/Samples/AZX_Docs/html/classes.html b/Samples/AZX_Docs/html/classes.html
index d3230c0..b6ad1c9 100644
--- a/Samples/AZX_Docs/html/classes.html
+++ b/Samples/AZX_Docs/html/classes.html
@@ -34,7 +34,7 @@
 |
AZX (AppZone eXtensions) documentation
- 1.0.8
+ 1.0.9
A set of companion utilities that make AZ development easier
|
diff --git a/Samples/AZX_Docs/html/dir_0045f852bf8045b6d5abd9c9eb54a446.html b/Samples/AZX_Docs/html/dir_0045f852bf8045b6d5abd9c9eb54a446.html
index af35b1b..ae66d11 100644
--- a/Samples/AZX_Docs/html/dir_0045f852bf8045b6d5abd9c9eb54a446.html
+++ b/Samples/AZX_Docs/html/dir_0045f852bf8045b6d5abd9c9eb54a446.html
@@ -34,7 +34,7 @@
 |
AZX (AppZone eXtensions) documentation
- 1.0.8
+ 1.0.9
A set of companion utilities that make AZ development easier
|
diff --git a/Samples/AZX_Docs/html/examples.html b/Samples/AZX_Docs/html/examples.html
index 02bd4c5..26841c4 100644
--- a/Samples/AZX_Docs/html/examples.html
+++ b/Samples/AZX_Docs/html/examples.html
@@ -34,7 +34,7 @@
 |
AZX (AppZone eXtensions) documentation
- 1.0.8
+ 1.0.9
A set of companion utilities that make AZ development easier
|
diff --git a/Samples/AZX_Docs/html/files.html b/Samples/AZX_Docs/html/files.html
index 13767a3..d660980 100644
--- a/Samples/AZX_Docs/html/files.html
+++ b/Samples/AZX_Docs/html/files.html
@@ -34,7 +34,7 @@
 |
AZX (AppZone eXtensions) documentation
- 1.0.8
+ 1.0.9
A set of companion utilities that make AZ development easier
|
diff --git a/Samples/AZX_Docs/html/functions.html b/Samples/AZX_Docs/html/functions.html
index aed5d79..8aad905 100644
--- a/Samples/AZX_Docs/html/functions.html
+++ b/Samples/AZX_Docs/html/functions.html
@@ -34,7 +34,7 @@
 |
AZX (AppZone eXtensions) documentation
- 1.0.8
+ 1.0.9
A set of companion utilities that make AZ development easier
|
diff --git a/Samples/AZX_Docs/html/functions_vars.html b/Samples/AZX_Docs/html/functions_vars.html
index a9338ba..1dd8e4c 100644
--- a/Samples/AZX_Docs/html/functions_vars.html
+++ b/Samples/AZX_Docs/html/functions_vars.html
@@ -34,7 +34,7 @@
 |
AZX (AppZone eXtensions) documentation
- 1.0.8
+ 1.0.9
A set of companion utilities that make AZ development easier
|
diff --git a/Samples/AZX_Docs/html/globals.html b/Samples/AZX_Docs/html/globals.html
index 0852d95..f70531e 100644
--- a/Samples/AZX_Docs/html/globals.html
+++ b/Samples/AZX_Docs/html/globals.html
@@ -34,7 +34,7 @@
 |
AZX (AppZone eXtensions) documentation
- 1.0.8
+ 1.0.9
A set of companion utilities that make AZ development easier
|
diff --git a/Samples/AZX_Docs/html/globals_defs.html b/Samples/AZX_Docs/html/globals_defs.html
index 87aee88..d349980 100644
--- a/Samples/AZX_Docs/html/globals_defs.html
+++ b/Samples/AZX_Docs/html/globals_defs.html
@@ -34,7 +34,7 @@
 |
AZX (AppZone eXtensions) documentation
- 1.0.8
+ 1.0.9
A set of companion utilities that make AZ development easier
|
diff --git a/Samples/AZX_Docs/html/globals_enum.html b/Samples/AZX_Docs/html/globals_enum.html
index 04f699c..6050f65 100644
--- a/Samples/AZX_Docs/html/globals_enum.html
+++ b/Samples/AZX_Docs/html/globals_enum.html
@@ -34,7 +34,7 @@
 |
AZX (AppZone eXtensions) documentation
- 1.0.8
+ 1.0.9
A set of companion utilities that make AZ development easier
|
diff --git a/Samples/AZX_Docs/html/globals_eval.html b/Samples/AZX_Docs/html/globals_eval.html
index 0f6d162..b5a4ff9 100644
--- a/Samples/AZX_Docs/html/globals_eval.html
+++ b/Samples/AZX_Docs/html/globals_eval.html
@@ -34,7 +34,7 @@
 |
AZX (AppZone eXtensions) documentation
- 1.0.8
+ 1.0.9
A set of companion utilities that make AZ development easier
|
diff --git a/Samples/AZX_Docs/html/globals_func.html b/Samples/AZX_Docs/html/globals_func.html
index 845c63a..eacb177 100644
--- a/Samples/AZX_Docs/html/globals_func.html
+++ b/Samples/AZX_Docs/html/globals_func.html
@@ -34,7 +34,7 @@
 |
AZX (AppZone eXtensions) documentation
- 1.0.8
+ 1.0.9
A set of companion utilities that make AZ development easier
|
diff --git a/Samples/AZX_Docs/html/globals_type.html b/Samples/AZX_Docs/html/globals_type.html
index d24b2a9..ca6d360 100644
--- a/Samples/AZX_Docs/html/globals_type.html
+++ b/Samples/AZX_Docs/html/globals_type.html
@@ -34,7 +34,7 @@
 |
AZX (AppZone eXtensions) documentation
- 1.0.8
+ 1.0.9
A set of companion utilities that make AZ development easier
|
diff --git a/Samples/AZX_Docs/html/graph_legend.html b/Samples/AZX_Docs/html/graph_legend.html
index 82eba7e..7f82c15 100644
--- a/Samples/AZX_Docs/html/graph_legend.html
+++ b/Samples/AZX_Docs/html/graph_legend.html
@@ -34,7 +34,7 @@
 |
AZX (AppZone eXtensions) documentation
- 1.0.8
+ 1.0.9
A set of companion utilities that make AZ development easier
|
diff --git a/Samples/AZX_Docs/html/group__log_conf.html b/Samples/AZX_Docs/html/group__log_conf.html
index 6322faf..e45414e 100644
--- a/Samples/AZX_Docs/html/group__log_conf.html
+++ b/Samples/AZX_Docs/html/group__log_conf.html
@@ -34,7 +34,7 @@
 |
AZX (AppZone eXtensions) documentation
- 1.0.8
+ 1.0.9
A set of companion utilities that make AZ development easier
|
diff --git a/Samples/AZX_Docs/html/group__log_usage.html b/Samples/AZX_Docs/html/group__log_usage.html
index 2727ba4..5fe27d2 100644
--- a/Samples/AZX_Docs/html/group__log_usage.html
+++ b/Samples/AZX_Docs/html/group__log_usage.html
@@ -34,7 +34,7 @@
 |
AZX (AppZone eXtensions) documentation
- 1.0.8
+ 1.0.9
A set of companion utilities that make AZ development easier
|
diff --git a/Samples/AZX_Docs/html/group__task_usage.html b/Samples/AZX_Docs/html/group__task_usage.html
index c8a18d0..478202c 100644
--- a/Samples/AZX_Docs/html/group__task_usage.html
+++ b/Samples/AZX_Docs/html/group__task_usage.html
@@ -34,7 +34,7 @@
 |
AZX (AppZone eXtensions) documentation
- 1.0.8
+ 1.0.9
A set of companion utilities that make AZ development easier
|
diff --git a/Samples/AZX_Docs/html/index.html b/Samples/AZX_Docs/html/index.html
index f46517d..f31dde8 100644
--- a/Samples/AZX_Docs/html/index.html
+++ b/Samples/AZX_Docs/html/index.html
@@ -34,7 +34,7 @@
 |
AZX (AppZone eXtensions) documentation
- 1.0.8
+ 1.0.9
A set of companion utilities that make AZ development easier
|
diff --git a/Samples/AZX_Docs/html/modules.html b/Samples/AZX_Docs/html/modules.html
index 04505e5..4a79d71 100644
--- a/Samples/AZX_Docs/html/modules.html
+++ b/Samples/AZX_Docs/html/modules.html
@@ -34,7 +34,7 @@
 |
AZX (AppZone eXtensions) documentation
- 1.0.8
+ 1.0.9
A set of companion utilities that make AZ development easier
|
diff --git a/Samples/AZX_Docs/html/struct_a_z_x___l_o_g___c_f_g___t.html b/Samples/AZX_Docs/html/struct_a_z_x___l_o_g___c_f_g___t.html
index 6099f5a..17e73c8 100644
--- a/Samples/AZX_Docs/html/struct_a_z_x___l_o_g___c_f_g___t.html
+++ b/Samples/AZX_Docs/html/struct_a_z_x___l_o_g___c_f_g___t.html
@@ -34,7 +34,7 @@
 |
AZX (AppZone eXtensions) documentation
- 1.0.8
+ 1.0.9
A set of companion utilities that make AZ development easier
|
diff --git a/Samples/AZX_Docs/html/struct_a_z_x___t_a_s_k_s___m_e_s_s_a_g_e___t.html b/Samples/AZX_Docs/html/struct_a_z_x___t_a_s_k_s___m_e_s_s_a_g_e___t.html
index 4bfc27f..558f824 100644
--- a/Samples/AZX_Docs/html/struct_a_z_x___t_a_s_k_s___m_e_s_s_a_g_e___t.html
+++ b/Samples/AZX_Docs/html/struct_a_z_x___t_a_s_k_s___m_e_s_s_a_g_e___t.html
@@ -34,7 +34,7 @@
 |
AZX (AppZone eXtensions) documentation
- 1.0.8
+ 1.0.9
A set of companion utilities that make AZ development easier
|
diff --git a/Samples/BRAVO_Environment_BSEC_Demo/BOSCH/BME680/bsec_serialized_configurations_iaq.c b/Samples/BRAVO_Environment_BSEC_Demo/BOSCH/BME680/bsec_serialized_configurations_iaq.c
index 62fc60e..c61e772 100644
--- a/Samples/BRAVO_Environment_BSEC_Demo/BOSCH/BME680/bsec_serialized_configurations_iaq.c
+++ b/Samples/BRAVO_Environment_BSEC_Demo/BOSCH/BME680/bsec_serialized_configurations_iaq.c
@@ -1,5 +1,5 @@
#include "bsec_serialized_configurations_iaq.h"
const uint8_t bsec_config_iaq[454] =
- {4,7,4,1,61,0,0,0,0,0,0,0,174,1,0,0,48,0,1,0,0,192,168,71,64,49,119,76,0,0,225,68,137,65,0,63,205,204,204,62,0,0,64,63,205,204,204,62,0,0,0,0,216,85,0,100,0,0,0,0,0,0,0,0,28,0,2,0,0,244,1,225,0,25,0,0,128,64,0,0,32,65,144,1,0,0,112,65,0,0,0,63,16,0,3,0,10,215,163,60,10,215,35,59,10,215,35,59,9,0,5,0,0,0,0,0,1,88,0,9,0,7,240,150,61,0,0,0,0,0,0,0,0,28,124,225,61,52,128,215,63,0,0,160,64,0,0,0,0,0,0,0,0,205,204,12,62,103,213,39,62,230,63,76,192,0,0,0,0,0,0,0,0,145,237,60,191,251,58,64,63,177,80,131,64,0,0,0,0,0,0,0,0,93,254,227,62,54,60,133,191,0,0,64,64,12,0,10,0,0,0,0,0,0,0,0,0,229,0,254,0,2,1,5,48,117,100,0,44,1,112,23,151,7,132,3,197,0,92,4,144,1,64,1,64,1,144,1,48,117,48,117,48,117,48,117,100,0,100,0,100,0,48,117,48,117,48,117,100,0,100,0,48,117,48,117,100,0,100,0,100,0,100,0,48,117,48,117,48,117,100,0,100,0,100,0,48,117,48,117,100,0,100,0,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,255,255,255,255,255,255,255,255,220,5,220,5,220,5,255,255,255,255,255,255,220,5,220,5,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,44,1,0,0,0,0,52,233,0,0};
+ {0,8,4,1,61,0,0,0,0,0,0,0,174,1,0,0,48,0,1,0,0,192,168,71,64,49,119,76,0,0,225,68,137,65,0,191,205,204,204,190,0,0,64,191,225,122,148,190,0,0,0,0,216,85,0,100,0,0,0,0,0,0,0,0,28,0,2,0,0,244,1,225,0,25,0,0,128,64,0,0,32,65,144,1,0,0,112,65,0,0,0,63,16,0,3,0,10,215,163,60,10,215,35,59,10,215,35,59,9,0,5,0,0,0,0,0,1,88,0,9,0,7,240,150,61,0,0,0,0,0,0,0,0,28,124,225,61,52,128,215,63,0,0,160,64,0,0,0,0,0,0,0,0,205,204,12,62,103,213,39,62,230,63,76,192,0,0,0,0,0,0,0,0,145,237,60,191,251,58,64,63,177,80,131,64,0,0,0,0,0,0,0,0,93,254,227,62,54,60,133,191,0,0,64,64,12,0,10,0,0,0,0,0,0,0,0,0,229,0,254,0,2,1,5,48,117,100,0,44,1,112,23,151,7,132,3,197,0,92,4,144,1,64,1,64,1,144,1,48,117,48,117,48,117,48,117,100,0,100,0,100,0,48,117,48,117,48,117,100,0,100,0,48,117,48,117,100,0,100,0,100,0,100,0,48,117,48,117,48,117,100,0,100,0,100,0,48,117,48,117,100,0,100,0,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,255,255,255,255,255,255,255,255,220,5,220,5,220,5,255,255,255,255,255,255,220,5,220,5,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,44,1,0,0,0,0,83,141,0,0};
diff --git a/Samples/BRAVO_Environment_BSEC_Demo/BOSCH/BSEC/bsec_datatypes.h b/Samples/BRAVO_Environment_BSEC_Demo/BOSCH/BSEC/bsec_datatypes.h
index 7b45f7f..33d4938 100644
--- a/Samples/BRAVO_Environment_BSEC_Demo/BOSCH/BSEC/bsec_datatypes.h
+++ b/Samples/BRAVO_Environment_BSEC_Demo/BOSCH/BSEC/bsec_datatypes.h
@@ -90,6 +90,7 @@ extern "C"
#define BSEC_MAX_STATE_BLOB_SIZE (139) /*!< Maximum size (in bytes) of the data blobs returned by bsec_get_state()*/
#define BSEC_SAMPLE_RATE_DISABLED (65535.0f) /*!< Sample rate of a disabled sensor */
#define BSEC_SAMPLE_RATE_ULP (0.0033333f) /*!< Sample rate in case of Ultra Low Power Mode */
+#define BSEC_SAMPLE_RATE_HP (1.0f) /*!< Sample rate in case of High Power Mode */
#define BSEC_SAMPLE_RATE_LP (0.33333f) /*!< Sample rate in case of Low Power Mode */
#define BSEC_SAMPLE_RATE_ULP_MEASUREMENT_ON_DEMAND (0.0f) /*!< Input value used to trigger an extra measurment (ULP plus) */
@@ -387,12 +388,12 @@ typedef struct
* Some virtual sensors provide a value in the accuracy field. If this is the case, the meaning of the field is as
* follows:
*
- * | Name | Value | Accuracy description |
- * |----------------------------|-------|-------------------------------------------------------------|
- * | UNRELIABLE | 0 | Sensor data is unreliable, the sensor must be calibrated |
- * | LOW_ACCURACY | 1 | Low accuracy, sensor should be calibrated |
- * | MEDIUM_ACCURACY | 2 | Medium accuracy, sensor calibration may improve performance |
- * | HIGH_ACCURACY | 3 | High accuracy |
+ * | Name | Value | Accuracy description |
+ * |----------------------------|-------|-------------------------------------------------------------------------------------------------------------|
+ * | UNRELIABLE | 0 | Sensor data is unreliable, the sensor must be calibrated |
+ * | LOW_ACCURACY | 1 | Low accuracy, sensor should be calibrated |
+ * | MEDIUM_ACCURACY | 2 | Medium accuracy, sensor calibration may improve performance |
+ * | HIGH_ACCURACY | 3 | High accuracy |
*
* For example:
*
@@ -409,12 +410,12 @@ typedef struct
* performed automatically in the background if the sensor is exposed to clean and polluted air for approximately
* 30 minutes each.
*
- * | Virtual sensor | Value | Accuracy description |
- * |----------------------------|-------|-----------------------------------------------------------------|
- * | IAQ | 0 | The sensor is not yet stabilized or in a run-in status |
- * | | 1 | Calibration required |
- * | | 2 | Calibration on-going |
- * | | 3 | Calibration is done, now IAQ estimate achieves best performance |
+ * | Virtual sensor | Value | Accuracy description |
+ * |----------------------------|-------|---------------------------------------------------------------------------------------------------------------------------------------------------------------|
+ * | IAQ | 0 | Stabilization / run-in ongoing |
+ * | | 1 | Low accuracy,to reach high accuracy(3),please expose sensor once to good air (e.g. outdoor air) and bad air (e.g. box with exhaled breath) for auto-trimming |
+ * | | 2 | Medium accuracy: auto-trimming ongoing |
+ * | | 3 | High accuracy |
*/
uint8_t accuracy;
} bsec_output_t;
diff --git a/Samples/BRAVO_Environment_BSEC_Demo/Makefile.in b/Samples/BRAVO_Environment_BSEC_Demo/Makefile.in
index d9bf071..920da83 100644
--- a/Samples/BRAVO_Environment_BSEC_Demo/Makefile.in
+++ b/Samples/BRAVO_Environment_BSEC_Demo/Makefile.in
@@ -10,12 +10,13 @@ LOGS_LEVEL = DEBUG
# Enable to add ANSI colours to the logs
LOGS_COLOUR = 0
-
+# Connect to the LWM2M server to send data. If 0, a local run will be done with no data publish
+LWM2M = 1
# -------------------------
## ---- do not touch below this line
-SW_VER = 1.0.8
+SW_VER = 1.0.9
CLEAN_BEFORE_BUILD = clean
@@ -43,6 +44,11 @@ ifneq (,$(filter $(TOOLCHAIN),GCC GCC_LINUX GNUEABI))
else
CPPFLAGS += --diag_suppress=111,177,1293
endif
+
+ifeq ($(strip $(LWM2M)),0)
+ CPPFLAGS += -DSKIP_LWM2M
+endif
+
# --------------------------------------------------------------------------
diff --git a/Samples/BRAVO_Environment_BSEC_Demo/README.md b/Samples/BRAVO_Environment_BSEC_Demo/README.md
index a5bb8ee..679e5d3 100644
--- a/Samples/BRAVO_Environment_BSEC_Demo/README.md
+++ b/Samples/BRAVO_Environment_BSEC_Demo/README.md
@@ -16,11 +16,11 @@
This application requires the file **object_26251.xml** (provided) to be stored into module's `/mod/` folder, along with the application binary itself.
-To load it, use
+To load it, use
`AT#M2MWRITE=/mod/object_26251.xml,1971`
-And at prompt, send the file content in raw mode.
+And at prompt, send the file content in raw mode.
#### Prerequisites on the OneEdge Portal
@@ -32,14 +32,33 @@ Now from Developer webpage, go in **Thing Definitions** page from the list on th
Again from the Developer webpage, select **Device Profiles**, `Import` button, `Attach File` and provide `json/bravo_EnvironmentalDemo_device_profile.json`, then press `Import`.
+#### Local run
+
+For testing purposes, it is possible to build the project without the LWM2M functionality. To do so, edit the [Makefile.in](Makefile.in) file at the line
+
+```
+LWM2M = 1
+```
+
+and set the variable to 0
+
+```
+LWM2M = 0
+```
+
+
+
+
**External Libraries**
To build the application it is required to put `libalgobsec.ar` file into the project's BOSCH/BSEC folder. The library can be retrieved at the link
-https://www.bosch-sensortec.com/software-tools/software/bsec/ . Download BSEC 1.4.7.4 version archive, then extract the library `libalgobsec.a` from the ZIP file and rename as `libalgobsec.ar`. It can be found in the directory
-/BSEC_1.4.7.4_Generic_Release/algo/normal_version/bin/gcc/Cortex_A7/
+https://www.bosch-sensortec.com/software-tools/software/bsec/ . Download the BSEC 1.4.8.0 v3 version archive, then extract the library `libalgobsec.a` from the ZIP file and rename as `libalgobsec.ar`. It can be found in the archive directory
+*BSEC_1.4.8.0_Generic_Release_updated_v3/algo/normal_version/bin/gcc/Cortex_A7/without_FPIC*
----
+Please note: all the apps using BSEC library configure the device with the **18v3s_4d** option. If a different version of the library is in use, please replace the BOSCH/BME680/bsec_serialized_configurations_iaq.c file in the project with the one inside `BSEC_x.x.x.x_Generic_Release/config/generic_18v_3s_4d/`
+---
+
diff --git a/Samples/BRAVO_Environment_BSEC_Demo/src/M2MB_main.c b/Samples/BRAVO_Environment_BSEC_Demo/src/M2MB_main.c
index be0660d..7e65bfc 100644
--- a/Samples/BRAVO_Environment_BSEC_Demo/src/M2MB_main.c
+++ b/Samples/BRAVO_Environment_BSEC_Demo/src/M2MB_main.c
@@ -12,7 +12,7 @@
@description
Environment Demo application. Debug prints on MAIN UART
@version
- 1.0.3
+ 1.0.4
@note
Start of Appzone: Entry point
User code entry is in function M2MB_main()
@@ -57,8 +57,10 @@
#include "gpio.h"
#include "i2c.h"
#include "i2c_bme680.h"
-#include "lwm2m.h"
+#ifndef SKIP_LWM2M
+#include "lwm2m.h"
+#endif
/* Local defines ================================================================================*/
@@ -71,8 +73,9 @@
#define BME680_W_SELF_TEST_FAILED 3
+#ifndef SKIP_LWM2M
#define XML_NAME "object_26251.xml"
-
+#endif
#define MIN_TEMPERATURE INT16_C(0) /* 0 degree Celsius */
#define MAX_TEMPERATURE INT16_C(6000) /* 60 degree Celsius */
@@ -189,7 +192,9 @@ static void output_ready( int64_t timestamp, float iaq, uint8_t iaq_accuracy, fl
if( demult++ > 2 )
{
+#ifndef SKIP_LWM2M
update_environment_LWM2MObject( temperature, pressure / 100., humidity, ( INT16 )iaq );
+#endif
demult = 0;
AZX_LOG_INFO( "------>" );
}
@@ -266,9 +271,10 @@ void M2MB_main( int argc, char **argv )
AZX_LOG_INIT();
AZX_LOG_INFO( "Starting Environmental BSEC Demo. This is v%s built on %s %s.\r\n",
VERSION, __DATE__, __TIME__ );
-
+#ifndef SKIP_LWM2M
INT16 instances[] = {0};
LWM2M_OBJ_REG_T obj = {ENVIRONMENT_OBJ_ID, 1, instances };
+#endif
/* Open GPIO */
if( open_LED( LED_INDEX_NUM ) != 0 )
{
@@ -279,7 +285,7 @@ void M2MB_main( int argc, char **argv )
write_LED( M2MB_GPIO_HIGH_VALUE );
azx_sleep_ms( 5000 );
write_LED( M2MB_GPIO_LOW_VALUE );
-
+#ifndef SKIP_LWM2M
/* Copy xml file if not exixting */
if( 0 != check_xml_file( XML_NAME ) )
{
@@ -330,8 +336,9 @@ void M2MB_main( int argc, char **argv )
AZX_LOG_ERROR("Failed enabling LWM2M!\r\n");
return;
}
-
-
+#else
+ AZX_LOG_INFO( "Will run without LWM2M data publishing\r\n");
+#endif
bsec_get_version( &bsec_version );
AZX_LOG_INFO( "BSEC Version %d %d %d %d\r\n", bsec_version.major, bsec_version.minor,
bsec_version.major_bugfix, bsec_version.minor_bugfix );
diff --git a/Samples/BRAVO_LED_Demo/Makefile.in b/Samples/BRAVO_LED_Demo/Makefile.in
index 2fb5199..16650a4 100644
--- a/Samples/BRAVO_LED_Demo/Makefile.in
+++ b/Samples/BRAVO_LED_Demo/Makefile.in
@@ -10,12 +10,13 @@ LOGS_LEVEL = DEBUG
# Enable to add ANSI colours to the logs
LOGS_COLOUR = 0
-
+# Connect to the LWM2M server to send data. If 0, a local run will be done with no data publish
+LWM2M = 1
# -------------------------
## ---- do not touch below this line
-SW_VER = 1.0.8
+SW_VER = 1.0.9
CLEAN_BEFORE_BUILD = clean
@@ -43,6 +44,11 @@ ifneq (,$(filter $(TOOLCHAIN),GCC GCC_LINUX GNUEABI))
else
CPPFLAGS += --diag_suppress=111,177,1293
endif
+
+ifeq ($(strip $(LWM2M)),0)
+ CPPFLAGS += -DSKIP_LWM2M
+endif
+
# --------------------------------------------------------------------------
diff --git a/Samples/BRAVO_MultiSensorsDemo/BOSCH/BME680/bsec_serialized_configurations_iaq.c b/Samples/BRAVO_MultiSensorsDemo/BOSCH/BME680/bsec_serialized_configurations_iaq.c
index 62fc60e..c61e772 100644
--- a/Samples/BRAVO_MultiSensorsDemo/BOSCH/BME680/bsec_serialized_configurations_iaq.c
+++ b/Samples/BRAVO_MultiSensorsDemo/BOSCH/BME680/bsec_serialized_configurations_iaq.c
@@ -1,5 +1,5 @@
#include "bsec_serialized_configurations_iaq.h"
const uint8_t bsec_config_iaq[454] =
- {4,7,4,1,61,0,0,0,0,0,0,0,174,1,0,0,48,0,1,0,0,192,168,71,64,49,119,76,0,0,225,68,137,65,0,63,205,204,204,62,0,0,64,63,205,204,204,62,0,0,0,0,216,85,0,100,0,0,0,0,0,0,0,0,28,0,2,0,0,244,1,225,0,25,0,0,128,64,0,0,32,65,144,1,0,0,112,65,0,0,0,63,16,0,3,0,10,215,163,60,10,215,35,59,10,215,35,59,9,0,5,0,0,0,0,0,1,88,0,9,0,7,240,150,61,0,0,0,0,0,0,0,0,28,124,225,61,52,128,215,63,0,0,160,64,0,0,0,0,0,0,0,0,205,204,12,62,103,213,39,62,230,63,76,192,0,0,0,0,0,0,0,0,145,237,60,191,251,58,64,63,177,80,131,64,0,0,0,0,0,0,0,0,93,254,227,62,54,60,133,191,0,0,64,64,12,0,10,0,0,0,0,0,0,0,0,0,229,0,254,0,2,1,5,48,117,100,0,44,1,112,23,151,7,132,3,197,0,92,4,144,1,64,1,64,1,144,1,48,117,48,117,48,117,48,117,100,0,100,0,100,0,48,117,48,117,48,117,100,0,100,0,48,117,48,117,100,0,100,0,100,0,100,0,48,117,48,117,48,117,100,0,100,0,100,0,48,117,48,117,100,0,100,0,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,255,255,255,255,255,255,255,255,220,5,220,5,220,5,255,255,255,255,255,255,220,5,220,5,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,44,1,0,0,0,0,52,233,0,0};
+ {0,8,4,1,61,0,0,0,0,0,0,0,174,1,0,0,48,0,1,0,0,192,168,71,64,49,119,76,0,0,225,68,137,65,0,191,205,204,204,190,0,0,64,191,225,122,148,190,0,0,0,0,216,85,0,100,0,0,0,0,0,0,0,0,28,0,2,0,0,244,1,225,0,25,0,0,128,64,0,0,32,65,144,1,0,0,112,65,0,0,0,63,16,0,3,0,10,215,163,60,10,215,35,59,10,215,35,59,9,0,5,0,0,0,0,0,1,88,0,9,0,7,240,150,61,0,0,0,0,0,0,0,0,28,124,225,61,52,128,215,63,0,0,160,64,0,0,0,0,0,0,0,0,205,204,12,62,103,213,39,62,230,63,76,192,0,0,0,0,0,0,0,0,145,237,60,191,251,58,64,63,177,80,131,64,0,0,0,0,0,0,0,0,93,254,227,62,54,60,133,191,0,0,64,64,12,0,10,0,0,0,0,0,0,0,0,0,229,0,254,0,2,1,5,48,117,100,0,44,1,112,23,151,7,132,3,197,0,92,4,144,1,64,1,64,1,144,1,48,117,48,117,48,117,48,117,100,0,100,0,100,0,48,117,48,117,48,117,100,0,100,0,48,117,48,117,100,0,100,0,100,0,100,0,48,117,48,117,48,117,100,0,100,0,100,0,48,117,48,117,100,0,100,0,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,255,255,255,255,255,255,255,255,220,5,220,5,220,5,255,255,255,255,255,255,220,5,220,5,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,44,1,0,0,0,0,83,141,0,0};
diff --git a/Samples/BRAVO_MultiSensorsDemo/BOSCH/BSEC/bsec_datatypes.h b/Samples/BRAVO_MultiSensorsDemo/BOSCH/BSEC/bsec_datatypes.h
index 7b45f7f..33d4938 100644
--- a/Samples/BRAVO_MultiSensorsDemo/BOSCH/BSEC/bsec_datatypes.h
+++ b/Samples/BRAVO_MultiSensorsDemo/BOSCH/BSEC/bsec_datatypes.h
@@ -90,6 +90,7 @@ extern "C"
#define BSEC_MAX_STATE_BLOB_SIZE (139) /*!< Maximum size (in bytes) of the data blobs returned by bsec_get_state()*/
#define BSEC_SAMPLE_RATE_DISABLED (65535.0f) /*!< Sample rate of a disabled sensor */
#define BSEC_SAMPLE_RATE_ULP (0.0033333f) /*!< Sample rate in case of Ultra Low Power Mode */
+#define BSEC_SAMPLE_RATE_HP (1.0f) /*!< Sample rate in case of High Power Mode */
#define BSEC_SAMPLE_RATE_LP (0.33333f) /*!< Sample rate in case of Low Power Mode */
#define BSEC_SAMPLE_RATE_ULP_MEASUREMENT_ON_DEMAND (0.0f) /*!< Input value used to trigger an extra measurment (ULP plus) */
@@ -387,12 +388,12 @@ typedef struct
* Some virtual sensors provide a value in the accuracy field. If this is the case, the meaning of the field is as
* follows:
*
- * | Name | Value | Accuracy description |
- * |----------------------------|-------|-------------------------------------------------------------|
- * | UNRELIABLE | 0 | Sensor data is unreliable, the sensor must be calibrated |
- * | LOW_ACCURACY | 1 | Low accuracy, sensor should be calibrated |
- * | MEDIUM_ACCURACY | 2 | Medium accuracy, sensor calibration may improve performance |
- * | HIGH_ACCURACY | 3 | High accuracy |
+ * | Name | Value | Accuracy description |
+ * |----------------------------|-------|-------------------------------------------------------------------------------------------------------------|
+ * | UNRELIABLE | 0 | Sensor data is unreliable, the sensor must be calibrated |
+ * | LOW_ACCURACY | 1 | Low accuracy, sensor should be calibrated |
+ * | MEDIUM_ACCURACY | 2 | Medium accuracy, sensor calibration may improve performance |
+ * | HIGH_ACCURACY | 3 | High accuracy |
*
* For example:
*
@@ -409,12 +410,12 @@ typedef struct
* performed automatically in the background if the sensor is exposed to clean and polluted air for approximately
* 30 minutes each.
*
- * | Virtual sensor | Value | Accuracy description |
- * |----------------------------|-------|-----------------------------------------------------------------|
- * | IAQ | 0 | The sensor is not yet stabilized or in a run-in status |
- * | | 1 | Calibration required |
- * | | 2 | Calibration on-going |
- * | | 3 | Calibration is done, now IAQ estimate achieves best performance |
+ * | Virtual sensor | Value | Accuracy description |
+ * |----------------------------|-------|---------------------------------------------------------------------------------------------------------------------------------------------------------------|
+ * | IAQ | 0 | Stabilization / run-in ongoing |
+ * | | 1 | Low accuracy,to reach high accuracy(3),please expose sensor once to good air (e.g. outdoor air) and bad air (e.g. box with exhaled breath) for auto-trimming |
+ * | | 2 | Medium accuracy: auto-trimming ongoing |
+ * | | 3 | High accuracy |
*/
uint8_t accuracy;
} bsec_output_t;
diff --git a/Samples/BRAVO_MultiSensorsDemo/Makefile.in b/Samples/BRAVO_MultiSensorsDemo/Makefile.in
index d9bf071..920da83 100644
--- a/Samples/BRAVO_MultiSensorsDemo/Makefile.in
+++ b/Samples/BRAVO_MultiSensorsDemo/Makefile.in
@@ -10,12 +10,13 @@ LOGS_LEVEL = DEBUG
# Enable to add ANSI colours to the logs
LOGS_COLOUR = 0
-
+# Connect to the LWM2M server to send data. If 0, a local run will be done with no data publish
+LWM2M = 1
# -------------------------
## ---- do not touch below this line
-SW_VER = 1.0.8
+SW_VER = 1.0.9
CLEAN_BEFORE_BUILD = clean
@@ -43,6 +44,11 @@ ifneq (,$(filter $(TOOLCHAIN),GCC GCC_LINUX GNUEABI))
else
CPPFLAGS += --diag_suppress=111,177,1293
endif
+
+ifeq ($(strip $(LWM2M)),0)
+ CPPFLAGS += -DSKIP_LWM2M
+endif
+
# --------------------------------------------------------------------------
diff --git a/Samples/BRAVO_MultiSensorsDemo/README.md b/Samples/BRAVO_MultiSensorsDemo/README.md
index cac4e05..5147d4b 100644
--- a/Samples/BRAVO_MultiSensorsDemo/README.md
+++ b/Samples/BRAVO_MultiSensorsDemo/README.md
@@ -16,13 +16,13 @@
This application requires the files **object_26242.xml**, **object_26250.xml** and **object_26251.xml** (provided) to be stored into module's `/mod/` folder, along with the application binary itself.
-To load it, use
+To load it, use
`AT#M2MWRITE=/mod/object_26242.xml,1358`
`AT#M2MWRITE=/mod/object_26250.xml,2249`
`AT#M2MWRITE=/mod/object_26251.xml,1971`
-And at each prompt, send the file content in raw mode.
+And at each prompt, send the file content in raw mode.
#### Prerequisites on the OneEdge Portal
@@ -34,14 +34,33 @@ Now from Developer webpage, go in **Thing Definitions** page from the list on th
Again from the Developer webpage, select **Device Profiles**, `Import` button, `Attach File` and provide `json/bravo_MultiSensors_device_profile.json`, then press `Import`.
-** External Libraries **
+#### Local run
+
+For testing purposes, it is possible to build the project without the LWM2M functionality. To do so, edit the [Makefile.in](Makefile.in) file at the line
+
+```
+LWM2M = 1
+```
+
+and set the variable to 0
+
+```
+LWM2M = 0
+```
+
+
+
+
+**External Libraries**
To build the application it is required to put `libalgobsec.ar` file into the project's BOSCH/BSEC folder. The library can be retrieved at the link
-https://www.bosch-sensortec.com/software-tools/software/bsec/ . Download BSEC 1.4.7.4 version archive, then extract the library `libalgobsec.a` from the ZIP file and rename as `libalgobsec.ar`. It can be found in the directory
-/BSEC_1.4.7.4_Generic_Release/algo/normal_version/bin/gcc/Cortex_A7/
+https://www.bosch-sensortec.com/software-tools/software/bsec/ . Download the BSEC 1.4.8.0 v3 version archive, then extract the library `libalgobsec.a` from the ZIP file and rename as `libalgobsec.ar`. It can be found in the archive directory
+*BSEC_1.4.8.0_Generic_Release_updated_v3/algo/normal_version/bin/gcc/Cortex_A7/without_FPIC*
----
+Please note: all the apps using BSEC library configure the device with the **18v3s_4d** option. If a different version of the library is in use, please replace the BOSCH/BME680/bsec_serialized_configurations_iaq.c file in the project with the one inside `BSEC_x.x.x.x_Generic_Release/config/generic_18v_3s_4d/`
+---
+
diff --git a/Samples/BRAVO_MultiSensorsDemo/src/M2MB_main.c b/Samples/BRAVO_MultiSensorsDemo/src/M2MB_main.c
index 9887fd0..0a8c646 100644
--- a/Samples/BRAVO_MultiSensorsDemo/src/M2MB_main.c
+++ b/Samples/BRAVO_MultiSensorsDemo/src/M2MB_main.c
@@ -12,7 +12,7 @@
@description
MultiSensors Demo application. Debug prints on MAIN UART
@version
- 1.0.1
+ 1.0.2
@note
Start of Appzone: Entry point
User code entry is in function M2MB_main()
@@ -78,15 +78,16 @@ static INT32 demoTaskCb(INT32 type, INT32 param1, INT32 param2)
(void) type;
(void) param1;
(void) param2;
+#ifndef SKIP_LWM2M
int reboot_needed = 0;
-
+
INT16 instances[] = {0};
LWM2M_OBJ_REG_T objs[] ={
{TAMPERING_OBJ_ID, 1, instances },
{ROTATION_OBJ_ID, 1, instances },
{ENVIRONMENT_OBJ_ID, 1, instances }
};
-
+#endif
/* Open GPIO */
if( open_LED( LED_INDEX_NUM ) != 0 )
{
@@ -98,6 +99,7 @@ static INT32 demoTaskCb(INT32 type, INT32 param1, INT32 param2)
azx_sleep_ms( 5000 );
write_LED( M2MB_GPIO_LOW_VALUE );
+#ifndef SKIP_LWM2M
/* Copy xml file if not exixting */
if( 0 != check_xml_file( TAMPER_XML_NAME ) )
{
@@ -182,7 +184,7 @@ static INT32 demoTaskCb(INT32 type, INT32 param1, INT32 param2)
}
}
-
+#endif
/* Open I2C */
if( open_I2C() != 0 )
@@ -197,12 +199,15 @@ static INT32 demoTaskCb(INT32 type, INT32 param1, INT32 param2)
AZX_LOG_ERROR( "cannot open gpio channel.\r\n" );
return -1;
}
-
+#ifndef SKIP_LWM2M
if(oneedge_init( objs, 3, NULL ) != 0)
{
AZX_LOG_ERROR("Failed enabling LWM2M!\r\n");
return -1;
}
+#else
+ AZX_LOG_INFO( "Will run without LWM2M data publishing\r\n");
+#endif
AZX_LOG_DEBUG("init sensors...\r\n");
init_sensors();
diff --git a/Samples/BRAVO_MultiSensorsDemo/src/sensors_demo.c b/Samples/BRAVO_MultiSensorsDemo/src/sensors_demo.c
index d4c6531..b315f7e 100644
--- a/Samples/BRAVO_MultiSensorsDemo/src/sensors_demo.c
+++ b/Samples/BRAVO_MultiSensorsDemo/src/sensors_demo.c
@@ -81,8 +81,9 @@
#include "i2c.h"
#include "i2c_bme680.h"
+#ifndef SKIP_LWM2M
#include "lwm2m.h"
-
+#endif
#include "sensors_demo.h"
@@ -294,8 +295,9 @@ static void sensors_tamper_callback( bhy_data_generic_t *sensor_data, bhy_virtua
{
gTAMPER_data.status = status;
gTAMPER_data.timestamp = time_stamp;
-
+#ifndef SKIP_LWM2M
update_tamper_LWM2MObject( (int) status );
+#endif
}
/* activity recognition is not time critical, so let's wait a little bit */
@@ -334,7 +336,9 @@ static void sensors_callback_rotation_vector( bhy_data_generic_t *sensor_data,
if( ( i++ >= 50 ) && is_new_value )
{
+#ifndef SKIP_LWM2M
update_rotation_LWM2MObject( w, x, y, z, sensor_data->data_quaternion.estimated_accuracy );
+#endif
i = 0;
AZX_LOG_INFO( "-------> w=%f, x=%f, y=%f, z=%f; acc=%d\r\n",
w, x, y, z, sensor_data->data_quaternion.estimated_accuracy );
@@ -386,23 +390,27 @@ static void bsec_output_ready( int64_t timestamp, float iaq, uint8_t iaq_accurac
( void ) static_iaq;
( void ) co2_equivalent;
( void ) breath_voc_equivalent;
+
/* =============
Please insert system specific code to further process or display the BSEC outputs
================*/
+#ifndef SKIP_LWM2M
static int demult = 0;
+#endif
gENVIRON_data.temperature = temperature;
gENVIRON_data.humidity = humidity;
gENVIRON_data.pressure = pressure / 100;
gENVIRON_data.airQ = iaq;
+#ifndef SKIP_LWM2M
if( demult++ > 2 )
{
update_environment_LWM2MObject( temperature, pressure / 100., humidity, ( INT16 )iaq );
demult = 0;
AZX_LOG_INFO( "------>" );
}
-
+#endif
AZX_LOG_INFO( "T %f H %f P %f IAQ %f\r\n", temperature, humidity, pressure / 100., iaq );
}
diff --git a/Samples/BRAVO_Rotation_Demo/Makefile.in b/Samples/BRAVO_Rotation_Demo/Makefile.in
index 98ba78d..48ce0e5 100644
--- a/Samples/BRAVO_Rotation_Demo/Makefile.in
+++ b/Samples/BRAVO_Rotation_Demo/Makefile.in
@@ -10,12 +10,13 @@ LOGS_LEVEL = DEBUG
# Enable to add ANSI colours to the logs
LOGS_COLOUR = 0
-
+# Connect to the LWM2M server to send data. If 0, a local run will be done with no data publish
+LWM2M = 1
# -------------------------
## ---- do not touch below this line
-SW_VER = 1.0.8
+SW_VER = 1.0.9
CLEAN_BEFORE_BUILD = clean
@@ -43,6 +44,11 @@ ifneq (,$(filter $(TOOLCHAIN),GCC GCC_LINUX GNUEABI))
else
CPPFLAGS += --diag_suppress=111,177,1293
endif
+
+ifeq ($(strip $(LWM2M)),0)
+ CPPFLAGS += -DSKIP_LWM2M
+endif
+
# --------------------------------------------------------------------------
diff --git a/Samples/BRAVO_Rotation_Demo/README.md b/Samples/BRAVO_Rotation_Demo/README.md
index 1220c2e..b38f484 100644
--- a/Samples/BRAVO_Rotation_Demo/README.md
+++ b/Samples/BRAVO_Rotation_Demo/README.md
@@ -17,11 +17,11 @@
This application requires the file **object_26250.xml** (provided) to be stored into module's `/mod/` folder, along with the application binary itself.
-To load it, use
+To load it, use
`AT#M2MWRITE=/mod/object_26250.xml,2249`
-And at prompt, send the file content in raw mode.
+And at prompt, send the file content in raw mode.
#### Prerequisites on the OneEdge Portal
@@ -33,6 +33,19 @@ Now from Developer webpage, go in **Thing Definitions** page from the list on th
Again from the Developer webpage, select **Device Profiles**, `Import` button, `Attach File` and provide `json/bravo_3D-RotationDemo_device_profile.json`, then press `Import`.
----
+#### Local run
+
+For testing purposes, it is possible to build the project without the LWM2M functionality. To do so, edit the [Makefile.in](Makefile.in) file at the line
+
+```
+LWM2M = 1
+```
+
+and set the variable to 0
+
+```
+LWM2M = 0
+```
+
diff --git a/Samples/BRAVO_Rotation_Demo/src/M2MB_main.c b/Samples/BRAVO_Rotation_Demo/src/M2MB_main.c
index 7475d7c..d648a61 100644
--- a/Samples/BRAVO_Rotation_Demo/src/M2MB_main.c
+++ b/Samples/BRAVO_Rotation_Demo/src/M2MB_main.c
@@ -12,7 +12,7 @@
@description
Rotation Demo application. Debug prints on MAIN UART
@version
- 1.0.3
+ 1.0.4
@note
Start of Appzone: Entry point
User code entry is in function M2MB_main()
@@ -53,8 +53,10 @@
#include "gpio.h"
#include "i2c.h"
-#include "lwm2m.h"
+#ifndef SKIP_LWM2M
+#include "lwm2m.h"
+#endif
/* Local defines ================================================================================*/
@@ -66,8 +68,9 @@
#define SENSOR_AR_TOUT 100 /* 10 = 1 sec */
+#ifndef SKIP_LWM2M
#define XML_NAME "object_26250.xml"
-
+#endif
@@ -127,15 +130,16 @@ static void sensors_callback_rotation_vector( bhy_data_generic_t *sensor_data,
float z = ( float )sensor_data->data_quaternion.z / 16384.0f;
/* emit message only if value is different from previous one and it is new */
-
if( ( i++ >= 50 ) && is_new_value )
{
+#ifndef SKIP_LWM2M
update_rotation_LWM2MObject( w, x, y, z, sensor_data->data_quaternion.estimated_accuracy );
+#endif
i = 0;
AZX_LOG_INFO( "-------> x=%f, y=%f, z=%f, w=%f; acc=%d\r\n",
x, y, z, w, sensor_data->data_quaternion.estimated_accuracy );
}
-
+
old_w = sensor_data->data_quaternion.w;
old_x = sensor_data->data_quaternion.x;
old_y = sensor_data->data_quaternion.y;
@@ -314,8 +318,11 @@ void M2MB_main( int argc, char **argv )
( void )argc;
( void )argv;
+#ifndef SKIP_LWM2M
INT16 instances[] = {0};
LWM2M_OBJ_REG_T obj = {ROTATION_OBJ_ID, 1, instances };
+#endif
+
/* SET output channel */
AZX_LOG_INIT();
AZX_LOG_INFO( "Starting Rotation Demo app. This is v%s built on %s %s.\r\n",
@@ -331,7 +338,8 @@ void M2MB_main( int argc, char **argv )
write_LED( M2MB_GPIO_HIGH_VALUE );
azx_sleep_ms( 5000 );
write_LED( M2MB_GPIO_LOW_VALUE );
-
+
+#ifndef SKIP_LWM2M
/* Copy xml file if not exixting */
if( 0 != check_xml_file( XML_NAME ) )
{
@@ -374,7 +382,7 @@ void M2MB_main( int argc, char **argv )
}
}
}
-
+#endif
/* Open I2C */
if( open_I2C() != 0 )
{
@@ -389,11 +397,15 @@ void M2MB_main( int argc, char **argv )
return;
}
+#ifndef SKIP_LWM2M
if(oneedge_init( &obj, 1, NULL) != 0)
{
AZX_LOG_ERROR("Failed enabling LWM2M!\r\n");
return;
}
-
+#else
+ AZX_LOG_INFO( "Will run without LWM2M data publishing\r\n");
+#endif
+
demo_sensor();
}
diff --git a/Samples/BRAVO_Tampering_Demo/Makefile.in b/Samples/BRAVO_Tampering_Demo/Makefile.in
index 98ba78d..48ce0e5 100644
--- a/Samples/BRAVO_Tampering_Demo/Makefile.in
+++ b/Samples/BRAVO_Tampering_Demo/Makefile.in
@@ -10,12 +10,13 @@ LOGS_LEVEL = DEBUG
# Enable to add ANSI colours to the logs
LOGS_COLOUR = 0
-
+# Connect to the LWM2M server to send data. If 0, a local run will be done with no data publish
+LWM2M = 1
# -------------------------
## ---- do not touch below this line
-SW_VER = 1.0.8
+SW_VER = 1.0.9
CLEAN_BEFORE_BUILD = clean
@@ -43,6 +44,11 @@ ifneq (,$(filter $(TOOLCHAIN),GCC GCC_LINUX GNUEABI))
else
CPPFLAGS += --diag_suppress=111,177,1293
endif
+
+ifeq ($(strip $(LWM2M)),0)
+ CPPFLAGS += -DSKIP_LWM2M
+endif
+
# --------------------------------------------------------------------------
diff --git a/Samples/BRAVO_Tampering_Demo/README.md b/Samples/BRAVO_Tampering_Demo/README.md
index dd2a1a3..f5e6199 100644
--- a/Samples/BRAVO_Tampering_Demo/README.md
+++ b/Samples/BRAVO_Tampering_Demo/README.md
@@ -17,11 +17,11 @@
This application requires the file **object_26242.xml** (provided) to be stored into module's `/mod/` folder, along with the application binary itself.
-To load it, use
+To load it, use
`AT#M2MWRITE=/mod/object_26242.xml,1358`
-And at prompt, send the file content in raw mode.
+And at prompt, send the file content in raw mode.
#### Prerequisites on the OneEdge Portal
@@ -34,6 +34,19 @@ Again from the Developer webpage, select **Device Profiles**, `Import` button, `
Lastly, from the Developer webpage, select **Triggers**, `Actions` menu on the right, `Import` , `Attach File` and provide `json/bravo_TamperDemo_triggers.json`, then press `Import`. Now open the trigger **bravo_TamperDemo_state_trigger** by pressing the View button (the eye icon on the left) and be sure to press the `play` button, and that the trigger status is 'started'.
----
+#### Local run
+
+For testing purposes, it is possible to build the project without the LWM2M functionality. To do so, edit the [Makefile.in](Makefile.in) file at the line
+
+```
+LWM2M = 1
+```
+
+and set the variable to 0
+
+```
+LWM2M = 0
+```
+
diff --git a/Samples/BRAVO_Tampering_Demo/src/M2MB_main.c b/Samples/BRAVO_Tampering_Demo/src/M2MB_main.c
index 2171085..0a56192 100644
--- a/Samples/BRAVO_Tampering_Demo/src/M2MB_main.c
+++ b/Samples/BRAVO_Tampering_Demo/src/M2MB_main.c
@@ -12,7 +12,7 @@
@description
Tampering Demo application. Debug prints on MAIN UART
@version
- 1.0.2
+ 1.0.4
@note
Start of Appzone: Entry point
User code entry is in function M2MB_main()
@@ -51,8 +51,10 @@
#include "gpio.h"
#include "i2c.h"
-#include "lwm2m.h"
+#ifndef SKIP_LWM2M
+#include "lwm2m.h"
+#endif
/* Local defines ================================================================================*/
@@ -81,9 +83,9 @@ typedef enum
#define LED_INDEX_NUM 2 /* GPIO 10 */
#define SENSOR_AR_TOUT 100 /* 10 = 1 sec */
+#ifndef SKIP_LWM2M
#define XML_NAME "object_26242.xml"
-
-
+#endif
#define FIFO_SIZE 300
@@ -223,8 +225,9 @@ static void sensors_tamper_callback( bhy_data_generic_t *sensor_data, bhy_virtua
if(status != STATUS_INVALID)
{
-
+#ifndef SKIP_LWM2M
update_tamper_LWM2MObject( (int) status );
+#endif
}
/* activity recognition is not time critical, so let's wait a little bit */
@@ -380,8 +383,10 @@ void M2MB_main( int argc, char **argv )
( void )argc;
( void )argv;
+#ifndef SKIP_LWM2M
INT16 instances[] = {0};
LWM2M_OBJ_REG_T obj = {TAMPERING_OBJ_ID, 1, instances };
+#endif
/* SET output channel */
AZX_LOG_INIT();
@@ -398,7 +403,7 @@ void M2MB_main( int argc, char **argv )
write_LED( M2MB_GPIO_HIGH_VALUE );
azx_sleep_ms( 5000 );
write_LED( M2MB_GPIO_LOW_VALUE );
-
+#ifndef SKIP_LWM2M
/* Copy xml file if not exixting */
if( 0 != check_xml_file( XML_NAME ) )
{
@@ -442,6 +447,7 @@ void M2MB_main( int argc, char **argv )
}
}
}
+#endif
/* Open I2C */
if( open_I2C() != 0 )
@@ -456,11 +462,15 @@ void M2MB_main( int argc, char **argv )
AZX_LOG_ERROR( "cannot open gpio channel.\r\n" );
return;
}
-
+#ifndef SKIP_LWM2M
if(oneedge_init( &obj, 1, NULL) != 0)
{
AZX_LOG_ERROR("Failed enabling LWM2M!\r\n");
return;
}
+#else
+ AZX_LOG_INFO( "Will run without LWM2M data publishing\r\n");
+#endif
+
demo_sensor();
}
diff --git a/Samples/BRAVO_Time_Series_Demo/BOSCH/BME680/bsec_serialized_configurations_iaq.c b/Samples/BRAVO_Time_Series_Demo/BOSCH/BME680/bsec_serialized_configurations_iaq.c
index 62fc60e..c61e772 100644
--- a/Samples/BRAVO_Time_Series_Demo/BOSCH/BME680/bsec_serialized_configurations_iaq.c
+++ b/Samples/BRAVO_Time_Series_Demo/BOSCH/BME680/bsec_serialized_configurations_iaq.c
@@ -1,5 +1,5 @@
#include "bsec_serialized_configurations_iaq.h"
const uint8_t bsec_config_iaq[454] =
- {4,7,4,1,61,0,0,0,0,0,0,0,174,1,0,0,48,0,1,0,0,192,168,71,64,49,119,76,0,0,225,68,137,65,0,63,205,204,204,62,0,0,64,63,205,204,204,62,0,0,0,0,216,85,0,100,0,0,0,0,0,0,0,0,28,0,2,0,0,244,1,225,0,25,0,0,128,64,0,0,32,65,144,1,0,0,112,65,0,0,0,63,16,0,3,0,10,215,163,60,10,215,35,59,10,215,35,59,9,0,5,0,0,0,0,0,1,88,0,9,0,7,240,150,61,0,0,0,0,0,0,0,0,28,124,225,61,52,128,215,63,0,0,160,64,0,0,0,0,0,0,0,0,205,204,12,62,103,213,39,62,230,63,76,192,0,0,0,0,0,0,0,0,145,237,60,191,251,58,64,63,177,80,131,64,0,0,0,0,0,0,0,0,93,254,227,62,54,60,133,191,0,0,64,64,12,0,10,0,0,0,0,0,0,0,0,0,229,0,254,0,2,1,5,48,117,100,0,44,1,112,23,151,7,132,3,197,0,92,4,144,1,64,1,64,1,144,1,48,117,48,117,48,117,48,117,100,0,100,0,100,0,48,117,48,117,48,117,100,0,100,0,48,117,48,117,100,0,100,0,100,0,100,0,48,117,48,117,48,117,100,0,100,0,100,0,48,117,48,117,100,0,100,0,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,255,255,255,255,255,255,255,255,220,5,220,5,220,5,255,255,255,255,255,255,220,5,220,5,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,44,1,0,0,0,0,52,233,0,0};
+ {0,8,4,1,61,0,0,0,0,0,0,0,174,1,0,0,48,0,1,0,0,192,168,71,64,49,119,76,0,0,225,68,137,65,0,191,205,204,204,190,0,0,64,191,225,122,148,190,0,0,0,0,216,85,0,100,0,0,0,0,0,0,0,0,28,0,2,0,0,244,1,225,0,25,0,0,128,64,0,0,32,65,144,1,0,0,112,65,0,0,0,63,16,0,3,0,10,215,163,60,10,215,35,59,10,215,35,59,9,0,5,0,0,0,0,0,1,88,0,9,0,7,240,150,61,0,0,0,0,0,0,0,0,28,124,225,61,52,128,215,63,0,0,160,64,0,0,0,0,0,0,0,0,205,204,12,62,103,213,39,62,230,63,76,192,0,0,0,0,0,0,0,0,145,237,60,191,251,58,64,63,177,80,131,64,0,0,0,0,0,0,0,0,93,254,227,62,54,60,133,191,0,0,64,64,12,0,10,0,0,0,0,0,0,0,0,0,229,0,254,0,2,1,5,48,117,100,0,44,1,112,23,151,7,132,3,197,0,92,4,144,1,64,1,64,1,144,1,48,117,48,117,48,117,48,117,100,0,100,0,100,0,48,117,48,117,48,117,100,0,100,0,48,117,48,117,100,0,100,0,100,0,100,0,48,117,48,117,48,117,100,0,100,0,100,0,48,117,48,117,100,0,100,0,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,255,255,255,255,255,255,255,255,220,5,220,5,220,5,255,255,255,255,255,255,220,5,220,5,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,44,1,0,0,0,0,83,141,0,0};
diff --git a/Samples/BRAVO_Time_Series_Demo/BOSCH/BSEC/bsec_datatypes.h b/Samples/BRAVO_Time_Series_Demo/BOSCH/BSEC/bsec_datatypes.h
index 7b45f7f..33d4938 100644
--- a/Samples/BRAVO_Time_Series_Demo/BOSCH/BSEC/bsec_datatypes.h
+++ b/Samples/BRAVO_Time_Series_Demo/BOSCH/BSEC/bsec_datatypes.h
@@ -90,6 +90,7 @@ extern "C"
#define BSEC_MAX_STATE_BLOB_SIZE (139) /*!< Maximum size (in bytes) of the data blobs returned by bsec_get_state()*/
#define BSEC_SAMPLE_RATE_DISABLED (65535.0f) /*!< Sample rate of a disabled sensor */
#define BSEC_SAMPLE_RATE_ULP (0.0033333f) /*!< Sample rate in case of Ultra Low Power Mode */
+#define BSEC_SAMPLE_RATE_HP (1.0f) /*!< Sample rate in case of High Power Mode */
#define BSEC_SAMPLE_RATE_LP (0.33333f) /*!< Sample rate in case of Low Power Mode */
#define BSEC_SAMPLE_RATE_ULP_MEASUREMENT_ON_DEMAND (0.0f) /*!< Input value used to trigger an extra measurment (ULP plus) */
@@ -387,12 +388,12 @@ typedef struct
* Some virtual sensors provide a value in the accuracy field. If this is the case, the meaning of the field is as
* follows:
*
- * | Name | Value | Accuracy description |
- * |----------------------------|-------|-------------------------------------------------------------|
- * | UNRELIABLE | 0 | Sensor data is unreliable, the sensor must be calibrated |
- * | LOW_ACCURACY | 1 | Low accuracy, sensor should be calibrated |
- * | MEDIUM_ACCURACY | 2 | Medium accuracy, sensor calibration may improve performance |
- * | HIGH_ACCURACY | 3 | High accuracy |
+ * | Name | Value | Accuracy description |
+ * |----------------------------|-------|-------------------------------------------------------------------------------------------------------------|
+ * | UNRELIABLE | 0 | Sensor data is unreliable, the sensor must be calibrated |
+ * | LOW_ACCURACY | 1 | Low accuracy, sensor should be calibrated |
+ * | MEDIUM_ACCURACY | 2 | Medium accuracy, sensor calibration may improve performance |
+ * | HIGH_ACCURACY | 3 | High accuracy |
*
* For example:
*
@@ -409,12 +410,12 @@ typedef struct
* performed automatically in the background if the sensor is exposed to clean and polluted air for approximately
* 30 minutes each.
*
- * | Virtual sensor | Value | Accuracy description |
- * |----------------------------|-------|-----------------------------------------------------------------|
- * | IAQ | 0 | The sensor is not yet stabilized or in a run-in status |
- * | | 1 | Calibration required |
- * | | 2 | Calibration on-going |
- * | | 3 | Calibration is done, now IAQ estimate achieves best performance |
+ * | Virtual sensor | Value | Accuracy description |
+ * |----------------------------|-------|---------------------------------------------------------------------------------------------------------------------------------------------------------------|
+ * | IAQ | 0 | Stabilization / run-in ongoing |
+ * | | 1 | Low accuracy,to reach high accuracy(3),please expose sensor once to good air (e.g. outdoor air) and bad air (e.g. box with exhaled breath) for auto-trimming |
+ * | | 2 | Medium accuracy: auto-trimming ongoing |
+ * | | 3 | High accuracy |
*/
uint8_t accuracy;
} bsec_output_t;
diff --git a/Samples/BRAVO_Time_Series_Demo/Makefile.in b/Samples/BRAVO_Time_Series_Demo/Makefile.in
index 9fbd9a8..000fa61 100644
--- a/Samples/BRAVO_Time_Series_Demo/Makefile.in
+++ b/Samples/BRAVO_Time_Series_Demo/Makefile.in
@@ -10,12 +10,13 @@ LOGS_LEVEL = DEBUG
# Enable to add ANSI colours to the logs
LOGS_COLOUR = 0
-
+# Connect to the LWM2M server to send data. If 0, a local run will be done with no data publish
+LWM2M = 1
# -------------------------
## ---- do not touch below this line
-SW_VER = 1.0.8
+SW_VER = 1.0.9
CLEAN_BEFORE_BUILD = clean
@@ -43,6 +44,11 @@ ifneq (,$(filter $(TOOLCHAIN),GCC GCC_LINUX GNUEABI))
else
CPPFLAGS += --diag_suppress=111,177,1293
endif
+
+ifeq ($(strip $(LWM2M)),0)
+ CPPFLAGS += -DSKIP_LWM2M
+endif
+
# --------------------------------------------------------------------------
diff --git a/Samples/BRAVO_Time_Series_Demo/README.md b/Samples/BRAVO_Time_Series_Demo/README.md
index 59504a0..bd3c4e4 100644
--- a/Samples/BRAVO_Time_Series_Demo/README.md
+++ b/Samples/BRAVO_Time_Series_Demo/README.md
@@ -1,53 +1,74 @@
-
-### Bravo LwM2M Time Series demo
-
-
-
-**Features**
-
----
-
-- Connect to LWM2M Portal
-- Retrieve environment information with BSEC library sensor, Tampering and 3D vector rotation with BHI library sensors
-- Push data to OneEdge portal as time series using Opaque resources with dedicated objects
-
----
-
-#### Prerequisites on the module
-
-This application requires the files **object_32001.xml** and **object_32002.xml** (provided) to be stored into module's `/XML/` folder, along with the application binary itself.
-
-To load them, use
-
-`AT#M2MWRITE=/XML/object_32001.xml,2272`
-`AT#M2MWRITE=/XML/object_32002.xml,2365`
-
-
-
-And at each prompt, send the file content in raw mode.
-
-#### Prerequisites on the OneEdge Portal
-
-Please refer to the [Time Series App Note](https://github.com/telit/oneedge-projects-resources/blob/main/use-cases/time-series/Docs/80654NT11932A_OneEdge_Use_Case_Time-series_r0.pdf)
-
-
-### Requirements
-
-**External Libraries**
-
-To build the application it is required to put `libalgobsec.ar` file into the project's BOSCH/BSEC folder. The library can be retrieved at the link
-https://www.bosch-sensortec.com/software-tools/software/bsec/ . Download BSEC 1.4.7.4 version archive, then extract the library `libalgobsec.a` from the ZIP file and rename as `libalgobsec.ar`. It can be found in the directory
-/BSEC_1.4.7.4_Generic_Release/algo/normal_version/bin/gcc/Cortex_A7/
-
-#### Simulated data
-To run the code on a generic ME910C1 device, it is possible to build the code disabling the Bosch related functionalities. To do so, please refer to [Makefile.in](Makefile.in) file and edit the BOSCH_BSEC variable as below.
-
-```
-BOSCH_BSEC = 0
-```
-This will disable all Bosch dependencies and build the app with a simplified logic, simulating sensors data.
-
----
-
-
-
+
+### Bravo LwM2M Time Series demo
+
+
+
+**Features**
+
+---
+
+- Connect to LWM2M Portal
+- Retrieve environment information with BSEC library sensor, Tampering and 3D vector rotation with BHI library sensors
+- Push data to OneEdge portal as time series using Opaque resources with dedicated objects
+
+---
+
+#### Prerequisites on the module
+
+This application requires the files **object_32001.xml** and **object_32002.xml** (provided) to be stored into module's `/XML/` folder, along with the application binary itself.
+
+To load them, use
+
+`AT#M2MWRITE=/XML/object_32001.xml,2272`
+`AT#M2MWRITE=/XML/object_32002.xml,2365`
+
+
+
+And at each prompt, send the file content in raw mode.
+
+#### Prerequisites on the OneEdge Portal
+
+Please refer to the [Time Series App Note](https://github.com/telit/oneedge-projects-resources/blob/main/use-cases/time-series/Docs/80654NT11932A_OneEdge_Use_Case_Time-series_r0.pdf)
+
+
+
+#### Simulated data
+To run the code on a generic ME910C1 device, it is possible to build the code disabling the Bosch related functionalities. To do so, please refer to [Makefile.in](Makefile.in) file and edit the BOSCH_BSEC variable as below.
+
+```
+BOSCH_BSEC = 0
+```
+
+This will disable all Bosch dependencies and build the app with a simplified logic, simulating sensors data.
+
+
+#### Local run
+
+For testing purposes, it is possible to build the project without the LWM2M functionality. To do so, edit the [Makefile.in](Makefile.in) file at the line
+
+```
+LWM2M = 1
+```
+
+and set the variable to 0
+
+```
+LWM2M = 0
+```
+
+
+
+
+**External Libraries**
+
+To build the application it is required to put `libalgobsec.ar` file into the project's BOSCH/BSEC folder. The library can be retrieved at the link
+https://www.bosch-sensortec.com/software-tools/software/bsec/ . Download the BSEC 1.4.8.0 v3 version archive, then extract the library `libalgobsec.a` from the ZIP file and rename as `libalgobsec.ar`. It can be found in the archive directory
+*BSEC_1.4.8.0_Generic_Release_updated_v3/algo/normal_version/bin/gcc/Cortex_A7/without_FPIC*
+
+
+Please note: all the apps using BSEC library configure the device with the **18v3s_4d** option. If a different version of the library is in use, please replace the BOSCH/BME680/bsec_serialized_configurations_iaq.c file in the project with the one inside `BSEC_x.x.x.x_Generic_Release/config/generic_18v_3s_4d/`
+
+
+---
+
+
diff --git a/Samples/BRAVO_Time_Series_Demo/src/M2MB_main.c b/Samples/BRAVO_Time_Series_Demo/src/M2MB_main.c
index 6e1f152..ff10dde 100644
--- a/Samples/BRAVO_Time_Series_Demo/src/M2MB_main.c
+++ b/Samples/BRAVO_Time_Series_Demo/src/M2MB_main.c
@@ -12,7 +12,7 @@
@description
MultiSensors Demo application. Debug prints on MAIN UART
@version
- 1.0.1
+ 1.0.2
@note
Start of Appzone: Entry point
User code entry is in function M2MB_main()
@@ -53,8 +53,9 @@
#include "gpio.h"
#include "i2c.h"
+#ifndef SKIP_LWM2M
#include "lwm2m.h"
-
+#endif
#include "sensors_demo.h"
@@ -68,7 +69,12 @@
#define PRINT_PDU_HEX 1
#define PRINT_OPAQUE_HEX 0
-#define ONE_EDGE 1
+#ifndef SKIP_LWM2M
+ #define ONE_EDGE 1
+#else
+ #define ONE_EDGE 0
+#endif
+
#define DEFAULT_SAMPLE_PERIOD 60000 //60000
#define DEFAULT_SENDING_PERIOD 300000 //300000
@@ -107,13 +113,16 @@ static M2MB_OS_EV_HANDLE gBoschInitEvH = NULL;
static UINT32 gSamplingRate = DEFAULT_SAMPLE_PERIOD;
+#if ONE_EDGE
static UINT32 gSendingRate = DEFAULT_SENDING_PERIOD;
static M2MB_LWM2M_OBJ_URI_T _obj_telit_app_data_uri = { .uriLen = 4,
.obj = 33205, .objInst = 0, .resource = 0, .resourceInst = 0 };
+#endif
static DATA_BUFFER_T opaque = {0};
+
/* Local function prototypes ====================================================================*/
static UINT32 get_uptime(void);
@@ -126,9 +135,12 @@ static UINT32 get_uptime(void);
static INT32 demoTaskCb(INT32 type, INT32 param1, INT32 param2);
static INT32 entryToHexBuf(DATA_ENTRY_T *entry, unsigned char *tmp);
+#if ONE_EDGE
static INT32 dataSendTaskCb(INT32 type, INT32 param1, INT32 param2);
-static INT32 dataReadTaskCb(INT32 type, INT32 param1, INT32 param2);
static INT32 lwm2m_monDataTaskCb(INT32 type, INT32 param1, INT32 param2);
+#endif
+
+static INT32 dataReadTaskCb(INT32 type, INT32 param1, INT32 param2);
static INT32 sensorsInitCB(INT32 res, void *arg);
/* Static functions =============================================================================*/
@@ -172,7 +184,7 @@ static INT32 entryToHexBuf(DATA_ENTRY_T *entry, unsigned char *tmp)
return 0;
}
-
+#if ONE_EDGE
static INT32 dataSendTaskCb(INT32 type, INT32 param1, INT32 param2)
{
(void) type;
@@ -219,7 +231,7 @@ static INT32 dataSendTaskCb(INT32 type, INT32 param1, INT32 param2)
m2mb_os_sem_put(opaque.CSSemH);
}
}
-
+#endif
static INT32 dataReadTaskCb(INT32 type, INT32 param1, INT32 param2)
{
@@ -415,6 +427,7 @@ static INT32 dataReadTaskCb(INT32 type, INT32 param1, INT32 param2)
}
}
+#if ONE_EDGE
static INT32 lwm2m_monDataTaskCb(INT32 type, INT32 param1, INT32 param2)
{
(void) param2;
@@ -491,6 +504,7 @@ static INT32 lwm2m_monDataTaskCb(INT32 type, INT32 param1, INT32 param2)
return 0;
}
+#endif
static INT32 sensorsInitCB(INT32 res, void *arg)
{
@@ -511,15 +525,17 @@ static INT32 demoTaskCb(INT32 type, INT32 param1, INT32 param2)
(void) type;
(void) param1;
(void) param2;
- int reboot_needed = 0;
INT32 taskId;
+#if ONE_EDGE
+ int reboot_needed = 0;
INT16 instances[] = {0};
LWM2M_OBJ_REG_T objs[] = {
{TIME_SERIES_METERING_INFO_OBJ_ID, 1, instances },
{TIME_SERIES_METERING_RATES_OBJ_ID, 1, instances }
};
+#endif
/* Open GPIO */
if( open_LED( LED_INDEX_NUM ) != 0 )
@@ -532,6 +548,7 @@ static INT32 demoTaskCb(INT32 type, INT32 param1, INT32 param2)
azx_sleep_ms( 5000 );
write_LED( M2MB_GPIO_LOW_VALUE );
+#if ONE_EDGE
/* Copy xml file if not existing */
if( 0 != check_xml_file( SENDING_OPTS_XML_NAME ) )
{
@@ -598,6 +615,8 @@ static INT32 demoTaskCb(INT32 type, INT32 param1, INT32 param2)
return 0;
}
}
+#endif
+
#if BOSCH_BSEC
@@ -615,6 +634,7 @@ static INT32 demoTaskCb(INT32 type, INT32 param1, INT32 param2)
AZX_LOG_ERROR( "cannot open gpio channel.\r\n" );
return -1;
}
+
#if ONE_EDGE
/*skip the instances creation*/
@@ -691,7 +711,8 @@ static INT32 demoTaskCb(INT32 type, INT32 param1, INT32 param2)
}
}
-
+#else
+ AZX_LOG_INFO( "Will run without LWM2M data publishing\r\n");
#endif
@@ -735,7 +756,7 @@ static INT32 demoTaskCb(INT32 type, INT32 param1, INT32 param2)
{
return -1;
}
-
+#if ONE_EDGE
taskId = azx_tasks_createTask((char*) "read" , AZX_TASKS_STACK_L, 3, AZX_TASKS_MBOX_S, dataSendTaskCb);
if(taskId > 0)
{
@@ -745,7 +766,7 @@ static INT32 demoTaskCb(INT32 type, INT32 param1, INT32 param2)
{
return -1;
}
-
+#endif
#if BOSCH_BSEC
AZX_LOG_DEBUG("Init sensors...\r\n");
diff --git a/Samples/BRAVO_Time_Series_Demo/src/sensors_demo.c b/Samples/BRAVO_Time_Series_Demo/src/sensors_demo.c
index 8aca1bd..2d1826c 100644
--- a/Samples/BRAVO_Time_Series_Demo/src/sensors_demo.c
+++ b/Samples/BRAVO_Time_Series_Demo/src/sensors_demo.c
@@ -88,8 +88,9 @@
#include "i2c.h"
#include "i2c_bme680.h"
+#ifndef SKIP_LWM2M
#include "lwm2m.h"
-
+#endif
#include "sensors_demo.h"
diff --git a/Samples/README.md b/Samples/README.md
index 209f70c..c66757b 100644
--- a/Samples/README.md
+++ b/Samples/README.md
@@ -4,9 +4,9 @@
-Package Version: **1.0.8**
+Package Version: **1.0.9**
-Firmware Version: **30.10.XX9**
+Firmware Version: **30.01.XX0.0**
## Features
@@ -20,7 +20,7 @@ This package goal is to provide sample source code for Bravo EVK kickstart.
To manually deploy the Sample application on the devices perform the following steps:
-1. Have **30.10.XX9** FW version flashed (`AT#SWPKGV` will give you the FW version)
+1. Have **30.01.XX0.0** FW version flashed (`AT#SWPKGV` will give you the FW version)
1. Copy _m2mapz.bin_ to _/mod/_
```
@@ -77,7 +77,7 @@ The applications code follow the structure below:
## Applications
-### Bravo Multi Sensors demo
+### Bravo Environment demo
@@ -86,106 +86,66 @@ The applications code follow the structure below:
---
- Connect to LWM2M Portal
-- Retrieve environment information with BSEC library sensor, Tampering and 3D vector rotation with BHI library sensors
+- Retrieve environment information with BSEC library sensor
---
#### Prerequisites on the module
-This application requires the files **object_26242.xml**, **object_26250.xml** and **object_26251.xml** (provided) to be stored into module's `/mod/` folder, along with the application binary itself.
+This application requires the file **object_26251.xml** (provided) to be stored into module's `/mod/` folder, along with the application binary itself.
-To load it, use
+To load it, use
-`AT#M2MWRITE=/mod/object_26242.xml,1358`
-`AT#M2MWRITE=/mod/object_26250.xml,2249`
`AT#M2MWRITE=/mod/object_26251.xml,1971`
-And at each prompt, send the file content in raw mode.
+And at prompt, send the file content in raw mode.
#### Prerequisites on the OneEdge Portal
-This application requires the **object_26242.xml**, **object_26250.xml** and **object_26251.xml** content to be stored in your OneEdge organization object registry. The latter can be accessed from the link https:///lwm2m/object_registry
+This application requires the **object_26251.xml** content to be stored in your OneEdge organization object registry. The latter can be accessed from the link https:///lwm2m/object_registry
where could be for example `portal-dev.telit.com`. open the xml file in a notepad tool, select all the content and copy it. Then, in the object registry webpage, press "New Object" button on the right and paste the content of the xml file, then press Add button.
-Now from Developer webpage, go in **Thing Definitions** page from the list on the left and press `Import` button on the right. Press `Attach File` and provide `json/bravo_MultiSensorsDemo_thing_def.json` from the project root, then press `Import`.
+Now from Developer webpage, go in **Thing Definitions** page from the list on the left and press `Import` button on the right. Press `Attach File` and provide `json/bravo_EnvironmentalDemo_thing_def.json` from the project root, then press `Import`.
-Again from the Developer webpage, select **Device Profiles**, `Import` button, `Attach File` and provide `json/bravo_MultiSensors_device_profile.json`, then press `Import`.
+Again from the Developer webpage, select **Device Profiles**, `Import` button, `Attach File` and provide `json/bravo_EnvironmentalDemo_device_profile.json`, then press `Import`.
-** External Libraries **
+#### Local run
-To build the application it is required to put `libalgobsec.ar` file into the project's BOSCH/BSEC folder. The library can be retrieved at the link
-https://www.bosch-sensortec.com/software-tools/software/bsec/ . Download BSEC 1.4.7.4 version archive, then extract the library `libalgobsec.a` from the ZIP file and rename as `libalgobsec.ar`. It can be found in the directory
-/BSEC_1.4.7.4_Generic_Release/algo/normal_version/bin/gcc/Cortex_A7/
+For testing purposes, it is possible to build the project without the LWM2M functionality. To do so, edit the [Makefile.in](Makefile.in) file at the line
+```
+LWM2M = 1
+```
----
+and set the variable to 0
+```
+LWM2M = 0
+```
-MultiSensors Demo application. Debug prints on **MAIN UART**
+**External Libraries**
-
-### Bravo LwM2M Time Series demo
-
-
-
-**Features**
-
----
-
-- Connect to LWM2M Portal
-- Retrieve environment information with BSEC library sensor, Tampering and 3D vector rotation with BHI library sensors
-- Push data to OneEdge portal as time series using Opaque resources with dedicated objects
-
----
-
-#### Prerequisites on the module
-
-This application requires the files **object_32001.xml** and **object_32002.xml** (provided) to be stored into module's `/XML/` folder, along with the application binary itself.
-
-To load them, use
-
-`AT#M2MWRITE=/XML/object_32001.xml,2272`
-`AT#M2MWRITE=/XML/object_32002.xml,2365`
-
-
-
-And at each prompt, send the file content in raw mode.
-
-#### Prerequisites on the OneEdge Portal
-
-Please refer to the [Time Series App Note](https://github.com/telit/oneedge-projects-resources/blob/main/use-cases/time-series/Docs/80654NT11932A_OneEdge_Use_Case_Time-series_r0.pdf)
-
-
-### Requirements
-
-**External Libraries**
-
-To build the application it is required to put `libalgobsec.ar` file into the project's BOSCH/BSEC folder. The library can be retrieved at the link
-https://www.bosch-sensortec.com/software-tools/software/bsec/ . Download BSEC 1.4.7.4 version archive, then extract the library `libalgobsec.a` from the ZIP file and rename as `libalgobsec.ar`. It can be found in the directory
-/BSEC_1.4.7.4_Generic_Release/algo/normal_version/bin/gcc/Cortex_A7/
-
-#### Simulated data
-To run the code on a generic ME910C1 device, it is possible to build the code disabling the Bosch related functionalities. To do so, please refer to [Makefile.in](Makefile.in) file and edit the BOSCH_BSEC variable as below.
-
-```
-BOSCH_BSEC = 0
-```
-This will disable all Bosch dependencies and build the app with a simplified logic, simulating sensors data.
-
----
-
-
-
-MultiSensors Demo application. Debug prints on **MAIN UART**
+To build the application it is required to put `libalgobsec.ar` file into the project's BOSCH/BSEC folder. The library can be retrieved at the link
+https://www.bosch-sensortec.com/software-tools/software/bsec/ . Download the BSEC 1.4.8.0 v3 version archive, then extract the library `libalgobsec.a` from the ZIP file and rename as `libalgobsec.ar`. It can be found in the archive directory
+*BSEC_1.4.8.0_Generic_Release_updated_v3/algo/normal_version/bin/gcc/Cortex_A7/without_FPIC*
+Please note: all the apps using BSEC library configure the device with the **18v3s_4d** option. If a different version of the library is in use, please replace the BOSCH/BME680/bsec_serialized_configurations_iaq.c file in the project with the one inside `BSEC_x.x.x.x_Generic_Release/config/generic_18v_3s_4d/`
+
+
+---
+
+
+Environment Demo application. Debug prints on **MAIN UART**
-### Bravo Tampering demo
+
+
+### Bravo Multi Sensors demo
@@ -194,36 +154,63 @@ MultiSensors Demo application. Debug prints on **MAIN UART**
---
- Connect to LWM2M Portal
-- Retrieve movement information from BMI160 sensor
-- Update portal about current status (IDLE, TAMPER, WALKING... )
+- Retrieve environment information with BSEC library sensor, Tampering and 3D vector rotation with BHI library sensors
---
-#### Prerequisites
+#### Prerequisites on the module
-This application requires the file **object_26242.xml** (provided) to be stored into module's `/mod/` folder, along with the application binary itself.
+This application requires the files **object_26242.xml**, **object_26250.xml** and **object_26251.xml** (provided) to be stored into module's `/mod/` folder, along with the application binary itself.
-To load it, use
+To load it, use
`AT#M2MWRITE=/mod/object_26242.xml,1358`
+`AT#M2MWRITE=/mod/object_26250.xml,2249`
+`AT#M2MWRITE=/mod/object_26251.xml,1971`
-And at prompt, send the file content in raw mode.
+And at each prompt, send the file content in raw mode.
#### Prerequisites on the OneEdge Portal
-This application requires the **object_26242.xml** content to be stored in your OneEdge organization object registry. The latter can be accessed from the link https:///lwm2m/object_registry
+This application requires the **object_26242.xml**, **object_26250.xml** and **object_26251.xml** content to be stored in your OneEdge organization object registry. The latter can be accessed from the link https:///lwm2m/object_registry
where could be for example `portal-dev.telit.com`. open the xml file in a notepad tool, select all the content and copy it. Then, in the object registry webpage, press "New Object" button on the right and paste the content of the xml file, then press Add button.
-Now from Developer webpage, go in **Thing Definitions** page from the list on the left and press `Import` button on the right. Press `Attach File` and provide `json/bravo_TamperDemo_thing_def.json` from the project root, then press `Import`.
+Now from Developer webpage, go in **Thing Definitions** page from the list on the left and press `Import` button on the right. Press `Attach File` and provide `json/bravo_MultiSensorsDemo_thing_def.json` from the project root, then press `Import`.
-Again from the Developer webpage, select **Device Profiles**, `Import` button, `Attach File` and provide `json/bravo_TamperDemo_device_profile.json`, then press `Import`.
+Again from the Developer webpage, select **Device Profiles**, `Import` button, `Attach File` and provide `json/bravo_MultiSensors_device_profile.json`, then press `Import`.
+
+
+#### Local run
+
+For testing purposes, it is possible to build the project without the LWM2M functionality. To do so, edit the [Makefile.in](Makefile.in) file at the line
+
+```
+LWM2M = 1
+```
+
+and set the variable to 0
+
+```
+LWM2M = 0
+```
+
+
+
+
+**External Libraries**
+
+To build the application it is required to put `libalgobsec.ar` file into the project's BOSCH/BSEC folder. The library can be retrieved at the link
+https://www.bosch-sensortec.com/software-tools/software/bsec/ . Download the BSEC 1.4.8.0 v3 version archive, then extract the library `libalgobsec.a` from the ZIP file and rename as `libalgobsec.ar`. It can be found in the archive directory
+*BSEC_1.4.8.0_Generic_Release_updated_v3/algo/normal_version/bin/gcc/Cortex_A7/without_FPIC*
+
+
+Please note: all the apps using BSEC library configure the device with the **18v3s_4d** option. If a different version of the library is in use, please replace the BOSCH/BME680/bsec_serialized_configurations_iaq.c file in the project with the one inside `BSEC_x.x.x.x_Generic_Release/config/generic_18v_3s_4d/`
-Lastly, from the Developer webpage, select **Triggers**, `Actions` menu on the right, `Import` , `Attach File` and provide `json/bravo_TamperDemo_triggers.json`, then press `Import`. Now open the trigger **bravo_TamperDemo_state_trigger** by pressing the View button (the eye icon on the left) and be sure to press the `play` button, and that the trigger status is 'started'.
---
-Tampering Demo application. Debug prints on **MAIN UART**
+MultiSensors Demo application. Debug prints on **MAIN UART**
@@ -266,7 +253,7 @@ LED management through IPSO object 3311 Demo application. Debug prints on **MAIN
-### Bravo Environment demo
+### Bravo LwM2M Time Series demo
@@ -275,42 +262,127 @@ LED management through IPSO object 3311 Demo application. Debug prints on **MAIN
---
- Connect to LWM2M Portal
-- Retrieve environment information with BSEC library sensor
+- Retrieve environment information with BSEC library sensor, Tampering and 3D vector rotation with BHI library sensors
+- Push data to OneEdge portal as time series using Opaque resources with dedicated objects
---
#### Prerequisites on the module
-This application requires the file **object_26251.xml** (provided) to be stored into module's `/mod/` folder, along with the application binary itself.
+This application requires the files **object_32001.xml** and **object_32002.xml** (provided) to be stored into module's `/XML/` folder, along with the application binary itself.
-To load it, use
+To load them, use
-`AT#M2MWRITE=/mod/object_26251.xml,1971`
+`AT#M2MWRITE=/XML/object_32001.xml,2272`
+`AT#M2MWRITE=/XML/object_32002.xml,2365`
-And at prompt, send the file content in raw mode.
+
+
+And at each prompt, send the file content in raw mode.
#### Prerequisites on the OneEdge Portal
-This application requires the **object_26251.xml** content to be stored in your OneEdge organization object registry. The latter can be accessed from the link https:///lwm2m/object_registry
-where could be for example `portal-dev.telit.com`. open the xml file in a notepad tool, select all the content and copy it. Then, in the object registry webpage, press "New Object" button on the right and paste the content of the xml file, then press Add button.
+Please refer to the [Time Series App Note](https://github.com/telit/oneedge-projects-resources/blob/main/use-cases/time-series/Docs/80654NT11932A_OneEdge_Use_Case_Time-series_r0.pdf)
+
+
+
+#### Simulated data
+To run the code on a generic ME910C1 device, it is possible to build the code disabling the Bosch related functionalities. To do so, please refer to [Makefile.in](Makefile.in) file and edit the BOSCH_BSEC variable as below.
+
+```
+BOSCH_BSEC = 0
+```
+
+This will disable all Bosch dependencies and build the app with a simplified logic, simulating sensors data.
+
+
+#### Local run
+
+For testing purposes, it is possible to build the project without the LWM2M functionality. To do so, edit the [Makefile.in](Makefile.in) file at the line
+
+```
+LWM2M = 1
+```
+
+and set the variable to 0
+
+```
+LWM2M = 0
+```
-Now from Developer webpage, go in **Thing Definitions** page from the list on the left and press `Import` button on the right. Press `Attach File` and provide `json/bravo_EnvironmentalDemo_thing_def.json` from the project root, then press `Import`.
-Again from the Developer webpage, select **Device Profiles**, `Import` button, `Attach File` and provide `json/bravo_EnvironmentalDemo_device_profile.json`, then press `Import`.
**External Libraries**
To build the application it is required to put `libalgobsec.ar` file into the project's BOSCH/BSEC folder. The library can be retrieved at the link
-https://www.bosch-sensortec.com/software-tools/software/bsec/ . Download BSEC 1.4.7.4 version archive, then extract the library `libalgobsec.a` from the ZIP file and rename as `libalgobsec.ar`. It can be found in the directory
-/BSEC_1.4.7.4_Generic_Release/algo/normal_version/bin/gcc/Cortex_A7/
+https://www.bosch-sensortec.com/software-tools/software/bsec/ . Download the BSEC 1.4.8.0 v3 version archive, then extract the library `libalgobsec.a` from the ZIP file and rename as `libalgobsec.ar`. It can be found in the archive directory
+*BSEC_1.4.8.0_Generic_Release_updated_v3/algo/normal_version/bin/gcc/Cortex_A7/without_FPIC*
+
+
+Please note: all the apps using BSEC library configure the device with the **18v3s_4d** option. If a different version of the library is in use, please replace the BOSCH/BME680/bsec_serialized_configurations_iaq.c file in the project with the one inside `BSEC_x.x.x.x_Generic_Release/config/generic_18v_3s_4d/`
---
+MultiSensors Demo application. Debug prints on **MAIN UART**
-Environment Demo application. Debug prints on **MAIN UART**
+
+
+
+### Bravo Tampering demo
+
+
+
+**Features**
+
+---
+
+- Connect to LWM2M Portal
+- Retrieve movement information from BMI160 sensor
+- Update portal about current status (IDLE, TAMPER, WALKING... )
+
+---
+
+#### Prerequisites
+
+This application requires the file **object_26242.xml** (provided) to be stored into module's `/mod/` folder, along with the application binary itself.
+
+To load it, use
+
+`AT#M2MWRITE=/mod/object_26242.xml,1358`
+
+And at prompt, send the file content in raw mode.
+
+#### Prerequisites on the OneEdge Portal
+
+This application requires the **object_26242.xml** content to be stored in your OneEdge organization object registry. The latter can be accessed from the link https:///lwm2m/object_registry
+where could be for example `portal-dev.telit.com`. open the xml file in a notepad tool, select all the content and copy it. Then, in the object registry webpage, press "New Object" button on the right and paste the content of the xml file, then press Add button.
+
+Now from Developer webpage, go in **Thing Definitions** page from the list on the left and press `Import` button on the right. Press `Attach File` and provide `json/bravo_TamperDemo_thing_def.json` from the project root, then press `Import`.
+
+Again from the Developer webpage, select **Device Profiles**, `Import` button, `Attach File` and provide `json/bravo_TamperDemo_device_profile.json`, then press `Import`.
+
+Lastly, from the Developer webpage, select **Triggers**, `Actions` menu on the right, `Import` , `Attach File` and provide `json/bravo_TamperDemo_triggers.json`, then press `Import`. Now open the trigger **bravo_TamperDemo_state_trigger** by pressing the View button (the eye icon on the left) and be sure to press the `play` button, and that the trigger status is 'started'.
+
+#### Local run
+
+For testing purposes, it is possible to build the project without the LWM2M functionality. To do so, edit the [Makefile.in](Makefile.in) file at the line
+
+```
+LWM2M = 1
+```
+
+and set the variable to 0
+
+```
+LWM2M = 0
+```
+
+
+
+Tampering Demo application. Debug prints on **MAIN UART**
@@ -333,11 +405,11 @@ Environment Demo application. Debug prints on **MAIN UART**
This application requires the file **object_26250.xml** (provided) to be stored into module's `/mod/` folder, along with the application binary itself.
-To load it, use
+To load it, use
`AT#M2MWRITE=/mod/object_26250.xml,2249`
-And at prompt, send the file content in raw mode.
+And at prompt, send the file content in raw mode.
#### Prerequisites on the OneEdge Portal
@@ -349,7 +421,20 @@ Now from Developer webpage, go in **Thing Definitions** page from the list on th
Again from the Developer webpage, select **Device Profiles**, `Import` button, `Attach File` and provide `json/bravo_3D-RotationDemo_device_profile.json`, then press `Import`.
----
+#### Local run
+
+For testing purposes, it is possible to build the project without the LWM2M functionality. To do so, edit the [Makefile.in](Makefile.in) file at the line
+
+```
+LWM2M = 1
+```
+
+and set the variable to 0
+
+```
+LWM2M = 0
+```
+
Rotation Demo application. Debug prints on **MAIN UART**