From 2fd7be8e2848b42842732f57eb0c5f8d1cbf61a3 Mon Sep 17 00:00:00 2001 From: Kirk Benell Date: Thu, 3 Oct 2024 14:25:47 -0600 Subject: [PATCH 01/38] refactor to make use of bus object - compiles - unclear if it works --- .../Example_01_BasicReadings.ino | 32 +-- src/SparkFun_BMV080_Arduino_Library.h | 11 +- src/combridge.cpp | 240 ---------------- src/combridge.h | 136 --------- src/sfeBmv080.cpp | 267 ++++++++++-------- src/sfeBmv080.h | 36 +-- 6 files changed, 182 insertions(+), 540 deletions(-) delete mode 100644 src/combridge.cpp delete mode 100644 src/combridge.h diff --git a/examples/Example_01_BasicReadings/Example_01_BasicReadings.ino b/examples/Example_01_BasicReadings/Example_01_BasicReadings.ino index c9d7214..051d3b6 100644 --- a/examples/Example_01_BasicReadings/Example_01_BasicReadings.ino +++ b/examples/Example_01_BasicReadings/Example_01_BasicReadings.ino @@ -10,7 +10,7 @@ SparkFun Electronics Date: September, 2024 SparkFun code, firmware, and software is released under the MIT License. - Please see LICENSE.md for further details. + Please see LICENSE.md for further details. Hardware Connections: IoT RedBoard --> BMV080 @@ -24,19 +24,18 @@ https://www.sparkfun.com/products/????? */ -#include #include "SparkFun_BMV080_Arduino_Library.h" // CTRL+Click here to get the library: http://librarymanager/All#SparkFun_BMV080 +#include -Bmv080 bmv080; // Create an instance of the BMV080 class -#define BMV080_ADDR 0x57 // SparkFun BMV080 Breakout defaults to 0x57 - -i2c_device_t i2c_device = {}; // I2C device struct instance for Bosch API +Bmv080 bmv080; // Create an instance of the BMV080 class +#define BMV080_ADDR 0x57 // SparkFun BMV080 Breakout defaults to 0x57 void setup() { Serial.begin(115200); - while(!Serial) delay(10); // Wait for Serial to become available. + while (!Serial) + delay(10); // Wait for Serial to become available. // Necessary for boards with native USB (like the SAMD51 Thing+). // For a final version of a project that does not need serial debug (or a USB cable plugged in), // Comment out this while loop, or it will prevent the remaining code from running. @@ -46,23 +45,22 @@ void setup() Wire.begin(); - if (bmv080.begin(BMV080_ADDR, Wire) == false) { - Serial.println("BMV080 not detected at default I2C address. Check your jumpers and the hookup guide. Freezing..."); + if (bmv080.begin(BMV080_ADDR, Wire) == false) + { + Serial.println( + "BMV080 not detected at default I2C address. Check your jumpers and the hookup guide. Freezing..."); while (1) - ; + ; } Serial.println("BMV080 found!"); // Wire.setClock(400000); //Increase I2C data rate to 400kHz - /* Communication interface initialization */ - i2c_init(&i2c_device); - /* Initialize the Sensor (read driver, open, reset, id etc.)*/ - bmv080.init(&i2c_device); + bmv080.init(); /* Set the sensor mode to continuous mode */ - if(bmv080.setMode(SFE_BMV080_MODE_CONTINUOUS) == true) + if (bmv080.setMode(SFE_BMV080_MODE_CONTINUOUS) == true) { Serial.println("BMV080 set to continuous mode"); } @@ -74,13 +72,13 @@ void setup() void loop() { - if(bmv080.dataAvailable()) + if (bmv080.dataAvailable()) { float pm25 = bmv080.getPM25(); Serial.print(pm25); - if(bmv080.getIsObstructed() == true) + if (bmv080.getIsObstructed() == true) { Serial.print("\tObstructed"); } diff --git a/src/SparkFun_BMV080_Arduino_Library.h b/src/SparkFun_BMV080_Arduino_Library.h index 23bd364..eb9fd42 100644 --- a/src/SparkFun_BMV080_Arduino_Library.h +++ b/src/SparkFun_BMV080_Arduino_Library.h @@ -30,13 +30,10 @@ #include // #include "Arduino.h" -#include -#include -#include "combridge.h" // The BMV080 Bosch API requires a larger than usual stack size // In particular, bmv080_serve_interrupt is the culprit. -SET_LOOP_TASK_STACK_SIZE(60 * 1024); // 60KB +SET_LOOP_TASK_STACK_SIZE(60 * 1024); // 60KB class Bmv080 : public sfeBmv080 { @@ -51,14 +48,16 @@ class Bmv080 : public sfeBmv080 _theI2CBus.init(wirePort, address); // Begin the sensor - return sfeBmv080::begin(&_theI2CBus) == kSTkErrOk; + sfeTkError_t rc = sfeBmv080::begin(&_theI2CBus); + + return rc == kSTkErrOk ? isConnected() : false; } /// @brief Checks if the Device is connected /// @return True if the sensor is connected, false otherwise bool isConnected() { - return sfeBmv080::isConnected() == kSTkErrOk; + return _theI2CBus.ping() == kSTkErrOk; } private: diff --git a/src/combridge.cpp b/src/combridge.cpp deleted file mode 100644 index 704aef2..0000000 --- a/src/combridge.cpp +++ /dev/null @@ -1,240 +0,0 @@ -/** - * Copyright (C) Bosch Sensortec GmbH. All Rights Reserved. Confidential. - * - * Disclaimer - * - * Common: - * Bosch Sensortec products are developed for the consumer goods industry. They may only be used - * within the parameters of the respective valid product data sheet. Bosch Sensortec products are - * provided with the express understanding that there is no warranty of fitness for a particular purpose. - * They are not fit for use in life-sustaining, safety or security sensitive systems or any system or device - * that may lead to bodily harm or property damage if the system or device malfunctions. In addition, - * Bosch Sensortec products are not fit for use in products which interact with motor vehicle systems. - * The resale and/or use of products are at the purchaser's own risk and his own responsibility. The - * examination of fitness for the intended use is the sole responsibility of the Purchaser. - * - * The purchaser shall indemnify Bosch Sensortec from all third party claims, including any claims for - * incidental, or consequential damages, arising from any product use not covered by the parameters of - * the respective valid product data sheet or not approved by Bosch Sensortec and reimburse Bosch - * Sensortec for all costs in connection with such claims. - * - * The purchaser must monitor the market for the purchased products, particularly with regard to - * product safety and inform Bosch Sensortec without delay of all security relevant incidents. - * - * Engineering Samples are marked with an asterisk (*) or (e). Samples may vary from the valid - * technical specifications of the product series. They are therefore not intended or fit for resale to third - * parties or for use in end products. Their sole purpose is internal client testing. The testing of an - * engineering sample may in no way replace the testing of a product series. Bosch Sensortec - * assumes no liability for the use of engineering samples. By accepting the engineering samples, the - * Purchaser agrees to indemnify Bosch Sensortec from all claims arising from the use of engineering - * samples. - * - * Special: - * This software module (hereinafter called "Software") and any information on application-sheets - * (hereinafter called "Information") is provided free of charge for the sole purpose to support your - * application work. The Software and Information is subject to the following terms and conditions: - * - * The Software is specifically designed for the exclusive use for Bosch Sensortec products by - * personnel who have special experience and training. Do not use this Software if you do not have the - * proper experience or training. - * - * This Software package is provided `` as is `` and without any expressed or implied warranties, - * including without limitation, the implied warranties of merchantability and fitness for a particular - * purpose. - * - * Bosch Sensortec and their representatives and agents deny any liability for the functional impairment - * of this Software in terms of fitness, performance and safety. Bosch Sensortec and their - * representatives and agents shall not be liable for any direct or indirect damages or injury, except as - * otherwise stipulated in mandatory applicable law. - * - * The Information provided is believed to be accurate and reliable. Bosch Sensortec assumes no - * responsibility for the consequences of use of such Information nor for any infringement of patents or - * other rights of third parties which may result from its use. No license is granted by implication or - * otherwise under any patent or patent rights of Bosch. Specifications mentioned in the Information are - * subject to change without notice. - * - * It is not allowed to deliver the source code of the Software to any third party without permission of - * Bosch Sensortec. - * - * @file combridge.cpp - * - * @brief This file contains the serial communication interface (e.g. SPI and I2C) functions. - * Messages can be read and written. In addition, there is a waiting mechanism that waits for a defined time. - */ - - -/* Includes ------------------------------------------------------------------*/ -#include -#include "combridge.h" - -/* Private define ------------------------------------------------------------*/ -#define SPI_CLK_FREQ ((uint32_t)(1e6)) - -#define I2C_CLK_FREQ ((uint32_t)(100e3)) - -/* BMV080 I2C address - * note that the BMV080 pins are connected such that I2C Address Bit 0 = 0 and I2C Address Bit 1 = 0 - */ -#define BMV080_I2C_ADDRESS 0x57 - - -/* Exported functions --------------------------------------------------------*/ -void spi_init(spi_device_t *spi_device) -{ - SPISettings spi_settings(SPI_CLK_FREQ, MSBFIRST, SPI_MODE0); - spi_device->instance = &SPI; - spi_device->settings = spi_settings; - - pinMode(SS, OUTPUT); - pinMode(MOSI, OUTPUT); - pinMode(SCK, OUTPUT); - pinMode(MISO, INPUT); - digitalWrite(SS, HIGH); - spi_device->instance->begin(); -} - - -void i2c_init(i2c_device_t *i2c_device) -{ - i2c_device->instance = &Wire; - i2c_device->instance->begin(); - i2c_device->instance->setClock(I2C_CLK_FREQ); - i2c_device->instance->setBufferSize(512); -} - - -int8_t combridge_spi_read_16bit(bmv080_sercom_handle_t handle, uint16_t header, uint16_t *payload, uint16_t payload_length) -{ - int8_t return_value = E_COMBRIDGE_OK; - spi_device_t *spi_device = (spi_device_t *)handle; - - digitalWrite(SS, LOW); - spi_device->instance->beginTransaction(spi_device->settings); - spi_device->instance->transfer16(header); - - uint16_t payload_index = 0; - for (; payload_index < payload_length; payload_index++) - { - payload[payload_index] = spi_device->instance->transfer16(0); - } - spi_device->instance->endTransaction(); - digitalWrite(SS, HIGH); - - return return_value; -} - - -int8_t combridge_spi_write_16bit(bmv080_sercom_handle_t handle, uint16_t header, const uint16_t *payload, uint16_t payload_length) -{ - int8_t return_value = E_COMBRIDGE_OK; - spi_device_t *spi_device = (spi_device_t *)handle; - - digitalWrite(SS, LOW); - spi_device->instance->beginTransaction(spi_device->settings); - spi_device->instance->transfer16(header); - - uint16_t payload_index = 0; - for (; payload_index < payload_length; payload_index++) - { - spi_device->instance->transfer16(payload[payload_index]); - } - spi_device->instance->endTransaction(); - digitalWrite(SS, HIGH); - - return E_COMBRIDGE_OK; -} - - -int8_t combridge_i2c_read_16bit(bmv080_sercom_handle_t handle, uint16_t header, uint16_t *payload, uint16_t payload_length) -{ - int8_t return_value = E_COMBRIDGE_OK; - i2c_device_t *i2c_device = (i2c_device_t *)handle; - uint8_t * payload_byte = (uint8_t*)payload; - - /* 16-bit header left shifted by 1, since the R/W bit (most significant bit) is passed along with the 7-bit device address */ - uint16_t header_adjusted = header << 1; - - i2c_device->instance->beginTransmission(BMV080_I2C_ADDRESS); - i2c_device->instance->write((header_adjusted >> 8) & 0xFF); - i2c_device->instance->write(header_adjusted & 0xFF); - - if(i2c_device->instance->endTransmission(true) != 0) - { - return_value = E_COMBRIDGE_ERROR_WRITE_HEADER; - return return_value; - } - - i2c_device->instance->requestFrom(BMV080_I2C_ADDRESS, payload_length * 2); - - uint16_t payload_index = 0; - while(i2c_device->instance->available() && (payload_index < (payload_length * 2) )) - { - payload_byte[payload_index++] = i2c_device->instance->read(); - //Serial.print("."); - } - //Serial.print("payload_length"); - //Serial.println(payload_length); - - if(payload_index != (payload_length * 2)) - { - return_value = E_COMBRIDGE_ERROR_READ; - } - - /* Conversion of payload from big endian to little endian */ - for (payload_index = 0; payload_index < payload_length; payload_index++) - { - uint16_t swapped_word = ((payload[payload_index] << 8) | (payload[payload_index] >> 8)) & 0xffff; - payload[payload_index] = swapped_word; - } - - return return_value; -} - - -int8_t combridge_i2c_write_16bit(bmv080_sercom_handle_t handle, uint16_t header, const uint16_t *payload, uint16_t payload_length) -{ - int8_t return_value = E_COMBRIDGE_OK; - - i2c_device_t *i2c_device = (i2c_device_t *)handle; - uint8_t * payload_byte = (uint8_t*)payload; - - /* 16-bit header left shifted by 1, since the R/W bit (most significant bit) is passed along with the 7-bit device address */ - uint16_t header_adjusted = header << 1; - - /* Conversion of payload from little endian to big endian (dynamic allocation is used) */ - uint16_t *payload_swapped = (uint16_t *)calloc(payload_length, sizeof(uint16_t)); - if(payload_swapped) - { - for (uint16_t payload_index = 0; payload_index < payload_length; payload_index++) - { - payload_swapped[payload_index] = ((payload[payload_index] << 8) | (payload[payload_index] >> 8)) & 0xffff; - } - } - else - { - return_value = E_COMBRIDGE_ERROR_WRITE_HEADER; - return return_value; - } - - i2c_device->instance->beginTransmission(BMV080_I2C_ADDRESS); - i2c_device->instance->write((header_adjusted >> 8) & 0xFF); - i2c_device->instance->write(header_adjusted & 0xFF); - i2c_device->instance->write((uint8_t *)payload_swapped, payload_length * 2); - - if(i2c_device->instance->endTransmission(true) != 0) - { - return_value = E_COMBRIDGE_ERROR_WRITE; - } - - free(payload_swapped); - - return return_value; -} - - -int8_t combridge_delay(uint32_t period) -{ - delay(period); - - return E_COMBRIDGE_OK; -} diff --git a/src/combridge.h b/src/combridge.h deleted file mode 100644 index 318b28a..0000000 --- a/src/combridge.h +++ /dev/null @@ -1,136 +0,0 @@ -/** - * Copyright (C) Bosch Sensortec GmbH. All Rights Reserved. Confidential. - * - * Disclaimer - * - * Common: - * Bosch Sensortec products are developed for the consumer goods industry. They may only be used - * within the parameters of the respective valid product data sheet. Bosch Sensortec products are - * provided with the express understanding that there is no warranty of fitness for a particular purpose. - * They are not fit for use in life-sustaining, safety or security sensitive systems or any system or device - * that may lead to bodily harm or property damage if the system or device malfunctions. In addition, - * Bosch Sensortec products are not fit for use in products which interact with motor vehicle systems. - * The resale and/or use of products are at the purchaser's own risk and his own responsibility. The - * examination of fitness for the intended use is the sole responsibility of the Purchaser. - * - * The purchaser shall indemnify Bosch Sensortec from all third party claims, including any claims for - * incidental, or consequential damages, arising from any product use not covered by the parameters of - * the respective valid product data sheet or not approved by Bosch Sensortec and reimburse Bosch - * Sensortec for all costs in connection with such claims. - * - * The purchaser must monitor the market for the purchased products, particularly with regard to - * product safety and inform Bosch Sensortec without delay of all security relevant incidents. - * - * Engineering Samples are marked with an asterisk (*) or (e). Samples may vary from the valid - * technical specifications of the product series. They are therefore not intended or fit for resale to third - * parties or for use in end products. Their sole purpose is internal client testing. The testing of an - * engineering sample may in no way replace the testing of a product series. Bosch Sensortec - * assumes no liability for the use of engineering samples. By accepting the engineering samples, the - * Purchaser agrees to indemnify Bosch Sensortec from all claims arising from the use of engineering - * samples. - * - * Special: - * This software module (hereinafter called "Software") and any information on application-sheets - * (hereinafter called "Information") is provided free of charge for the sole purpose to support your - * application work. The Software and Information is subject to the following terms and conditions: - * - * The Software is specifically designed for the exclusive use for Bosch Sensortec products by - * personnel who have special experience and training. Do not use this Software if you do not have the - * proper experience or training. - * - * This Software package is provided `` as is `` and without any expressed or implied warranties, - * including without limitation, the implied warranties of merchantability and fitness for a particular - * purpose. - * - * Bosch Sensortec and their representatives and agents deny any liability for the functional impairment - * of this Software in terms of fitness, performance and safety. Bosch Sensortec and their - * representatives and agents shall not be liable for any direct or indirect damages or injury, except as - * otherwise stipulated in mandatory applicable law. - * - * The Information provided is believed to be accurate and reliable. Bosch Sensortec assumes no - * responsibility for the consequences of use of such Information nor for any infringement of patents or - * other rights of third parties which may result from its use. No license is granted by implication or - * otherwise under any patent or patent rights of Bosch. Specifications mentioned in the Information are - * subject to change without notice. - * - * It is not allowed to deliver the source code of the Software to any third party without permission of - * Bosch Sensortec. - * - * @file combridge.h - * - * @brief Header for the serial communication interface functions in combridge.c. - */ - -#ifndef COMBRIDGE_H_ -#define COMBRIDGE_H_ - -/* Includes ------------------------------------------------------------------*/ -#include "bmv080.h" -#include -#include -#include - - -#ifdef __cplusplus -extern "C" { -#endif /* __cplusplus */ - -/* Exported types ------------------------------------------------------------*/ - -/*! -* @brief SPI device structure -*/ -typedef struct -{ - /*! Instance of arduino SPI protocol instance */ - SPIClass *instance; - /*! Instance of arduino SPI settings to be applied before every transmission */ - SPISettings settings; -} spi_device_t; - -/*! -* @brief I2C device structure -*/ -typedef struct -{ - /*! Instance of arduino I2C protocol instance */ - TwoWire *instance; -} i2c_device_t; - -/* Exported constants --------------------------------------------------------*/ -/*! 0: Status codes returned when there is no warning or error */ -#define E_COMBRIDGE_OK ((int8_t)0) -/*! -1: Status codes returned when memory allocation fails */ -#define E_COMBRIDGE_ERROR_MEMORY_ALLOCATION ((int8_t)-1) -/*! -2: Status codes returned when the read operation fails */ -#define E_COMBRIDGE_ERROR_READ ((int8_t)-2) -/*! -3: Status codes returned when the write operation fails */ -#define E_COMBRIDGE_ERROR_WRITE ((int8_t)-3) -/*! -4: Status codes returned when writing the header fails */ -#define E_COMBRIDGE_ERROR_WRITE_HEADER ((int8_t)-4) -/*! -5: Status codes returned when a reference is null */ -#define E_COMBRIDGE_ERROR_NULLPTR ((int8_t)-5) - -/* Exported functions prototypes ---------------------------------------------*/ - -/* Initialization functions */ -void spi_init(spi_device_t *spi_device); -void i2c_init(i2c_device_t *i2c_device); - -/* SPI read and write functions */ -int8_t combridge_spi_read_16bit(bmv080_sercom_handle_t handle, uint16_t header, uint16_t *payload, uint16_t payload_length); -int8_t combridge_spi_write_16bit(bmv080_sercom_handle_t handle, uint16_t header, const uint16_t *payload, uint16_t payload_length); - -/* I2C read and write functions */ -int8_t combridge_i2c_read_16bit(bmv080_sercom_handle_t handle, uint16_t header, uint16_t *payload, uint16_t payload_length); -int8_t combridge_i2c_write_16bit(bmv080_sercom_handle_t handle, uint16_t header, const uint16_t *payload, uint16_t payload_length); - -/* Delay function */ -int8_t combridge_delay(uint32_t period); - - -#ifdef __cplusplus -} -#endif - -#endif /* COMBRIDGE_H_ */ diff --git a/src/sfeBmv080.cpp b/src/sfeBmv080.cpp index 9f6cd3e..470dd19 100644 --- a/src/sfeBmv080.cpp +++ b/src/sfeBmv080.cpp @@ -22,55 +22,126 @@ ******************************************************************************/ #include "sfeBmv080.h" -#include "bmv080_defs.h" #include "bmv080.h" +#include "bmv080_defs.h" + +// Some communication functions used with the system + +#define E_COMBRIDGE_OK ((int8_t)0) +/*! -1: Status codes returned when memory allocation fails */ +#define E_COMBRIDGE_ERROR_MEMORY_ALLOCATION ((int8_t) - 1) +/*! -2: Status codes returned when the read operation fails */ +#define E_COMBRIDGE_ERROR_READ ((int8_t) - 2) +/*! -3: Status codes returned when the write operation fails */ +#define E_COMBRIDGE_ERROR_WRITE ((int8_t) - 3) +/*! -4: Status codes returned when writing the header fails */ +#define E_COMBRIDGE_ERROR_WRITE_HEADER ((int8_t) - 4) +/*! -5: Status codes returned when a reference is null */ +#define E_COMBRIDGE_ERROR_NULLPTR ((int8_t) - 5) + +/* Exported functions prototypes ---------------------------------------------*/ #ifdef __cplusplus -extern "C" { +extern "C" +{ #endif /* __cplusplus */ -void bmv080_service_routine(const bmv080_handle_t handle, void* callback_parameters); -void use_sensor_output(bmv080_output_t bmv080_output, void* callback_parameters); + /* Our bus read and write functions */ + // -------------------------------------------------------------------------------------------- + // + static int8_t device_read_16bit_CB(bmv080_sercom_handle_t handle, uint16_t header, uint16_t *payload, + uint16_t payload_length) + { + if (handle == nullptr) + return E_COMBRIDGE_ERROR_NULLPTR; -/* Custom function for consuming sensor readings */ -void use_sensor_output(bmv080_output_t bmv080_output, void* callback_parameters) -{ - //data_ready_callback_count += 1; - //print_function_t print = (print_function_t)callback_parameters; + sfeTkIBus *theBus = (sfeTkIBus *)handle; + uint8_t *payload_byte = (uint8_t *)payload; + /* 16-bit header left shifted by 1, since the R/W bit (most significant bit) is passed along with the 7-bit + * device address */ + uint16_t header_adjusted = header << 1; - ((sfeBmv080*)callback_parameters)->setSensorValue(bmv080_output); - - //Serial.println(bmv080_output.pm2_5); - - //Serial.println("u"); + size_t nRead = 0; - //sfeBmv080::_sensorValue.pm2_5 = bmv080_output.pm2_5; // update the class variable with the new PM2.5 value - //setSensorValue(bmv080_output.pm2_5); - //sensorValue.pm2_5 = bmv080_output.pm2_5; - // print("Runtime: %.2f s, PM2.5: %.0f ug/m^3, obstructed: %s, outside detection limits: %s\r\n", - // bmv080_output.runtime_in_sec, bmv080_output.pm2_5, (bmv080_output.is_obstructed ? "yes" : "no"), (bmv080_output.is_outside_detection_limits ? "yes" : "no")); -} + sfeTkError_t rc = theBus->readRegister16Region(header_adjusted, (uint8_t *)payload, payload_length * 2, nRead); + return rc == kSTkErrOk ? E_COMBRIDGE_OK : E_COMBRIDGE_ERROR_READ; + } -void bmv080_service_routine(const bmv080_handle_t handle, void* callback_parameters) -{ - /* The interrupt is served by the BMV080 sensor driver */ - bmv080_status_code_t bmv080_current_status = bmv080_serve_interrupt(handle, (bmv080_callback_data_ready_t)use_sensor_output, callback_parameters); - if (bmv080_current_status != E_BMV080_OK) + // -------------------------------------------------------------------------------------------- + // + static int8_t device_write_16bit_CB(bmv080_sercom_handle_t handle, uint16_t header, const uint16_t *payload, + uint16_t payload_length) { - printf("Fetching measurement data failed with BMV080 status %d\r\n", (int32_t)bmv080_current_status); + if (handle == nullptr) + return E_COMBRIDGE_ERROR_NULLPTR; + + sfeTkIBus *theBus = (sfeTkIBus *)handle; + + uint16_t header_adjusted = header << 1; + + // Need to reverse the byte order + uint16_t payload_swapped[payload_length]; + + for (uint16_t i = 0; i < payload_length; i++) + payload_swapped[i] = ((payload[i] << 8) | (payload[i] >> 8)) & 0xffff; + + sfeTkError_t rc = + theBus->writeRegister16Region(header_adjusted, (uint8_t *)payload_swapped, payload_length * 2); + + return rc == kSTkErrOk ? E_COMBRIDGE_OK : E_COMBRIDGE_ERROR_WRITE; } -} + // -------------------------------------------------------------------------------------------- + // + static int8_t device_delay_CB(uint32_t period) + { + delay(period); + + return E_COMBRIDGE_OK; + } + + // static void bmv080_service_routine(const bmv080_handle_t handle, void *callback_parameters); + // static void use_sensor_output(bmv080_output_t bmv080_output, void *callback_parameters); + + /* Custom function for consuming sensor readings */ + static void use_sensor_output(bmv080_output_t bmv080_output, void *callback_parameters) + { + // data_ready_callback_count += 1; + // print_function_t print = (print_function_t)callback_parameters; + + ((sfeBmv080 *)callback_parameters)->setSensorValue(bmv080_output); + + // Serial.println(bmv080_output.pm2_5); + + // Serial.println("u"); + + // sfeBmv080::_sensorValue.pm2_5 = bmv080_output.pm2_5; // update the class variable with the new PM2.5 value + // setSensorValue(bmv080_output.pm2_5); + // sensorValue.pm2_5 = bmv080_output.pm2_5; + // print("Runtime: %.2f s, PM2.5: %.0f ug/m^3, obstructed: %s, outside detection limits: %s\r\n", + // bmv080_output.runtime_in_sec, bmv080_output.pm2_5, (bmv080_output.is_obstructed ? "yes" : "no"), + // (bmv080_output.is_outside_detection_limits ? "yes" : "no")); + } + + static void bmv080_service_routine(const bmv080_handle_t handle, void *callback_parameters) + { + /* The interrupt is served by the BMV080 sensor driver */ + bmv080_status_code_t bmv080_current_status = + bmv080_serve_interrupt(handle, (bmv080_callback_data_ready_t)use_sensor_output, callback_parameters); + if (bmv080_current_status != E_BMV080_OK) + { + printf("Fetching measurement data failed with BMV080 status %d\r\n", (int32_t)bmv080_current_status); + } + } #ifdef __cplusplus } #endif - -sfeTkError_t sfeBmv080::begin(sfeTkII2C *theBus) +sfeTkError_t sfeBmv080::begin(sfeTkIBus *theBus) { // Nullptr check if (theBus == nullptr) @@ -79,22 +150,9 @@ sfeTkError_t sfeBmv080::begin(sfeTkII2C *theBus) // Set bus pointer _theBus = theBus; - sfeTkError_t err; - err = isConnected(); - // Check whether the ping was successful - if (err != kSTkErrOk) - return err; - - // Done! return kSTkErrOk; } -sfeTkError_t sfeBmv080::isConnected() -{ - // Just ping the device address - return _theBus->ping(); -} - float sfeBmv080::getPM25() { return _sensorValue.pm2_5; @@ -118,14 +176,15 @@ bool sfeBmv080::setMode(uint8_t mode) { bmv080_status_code_t bmv080_current_status; // return status from the Bosch API function - if(mode == SFE_BMV080_MODE_CONTINUOUS) + if (mode == SFE_BMV080_MODE_CONTINUOUS) { bmv080_current_status = bmv080_start_continuous_measurement(bmv080_handle_class); } - else if(mode == SFE_BMV080_MODE_DUTY_CYCLE) + else if (mode == SFE_BMV080_MODE_DUTY_CYCLE) { bmv080_duty_cycling_mode_t duty_cycling_mode = E_BMV080_DUTY_CYCLING_MODE_0; - bmv080_current_status = bmv080_start_duty_cycling_measurement(bmv080_handle_class, (bmv080_callback_tick_t)millis, duty_cycling_mode); + bmv080_current_status = bmv080_start_duty_cycling_measurement( + bmv080_handle_class, (bmv080_callback_tick_t)millis, duty_cycling_mode); } // check if the mode was set correctly @@ -142,7 +201,7 @@ bool sfeBmv080::setMode(uint8_t mode) bool sfeBmv080::dataAvailable() { bmv080_service_routine(bmv080_handle_class, this); - if(_dataAvailable == true) + if (_dataAvailable == true) { _dataAvailable = false; return true; @@ -151,85 +210,51 @@ bool sfeBmv080::dataAvailable() return false; } -bool sfeBmv080::init(i2c_device_t *i2c_device) +// bool sfeBmv080::init(i2c_device_t *i2c_device) +bool sfeBmv080::init(void) { - if(getDriverVersion() == false) - { + if (_theBus == nullptr) return false; - } - if(open(i2c_device) == false) + if (getDriverVersion() == false) { return false; } - if(reset() == false) + if (open() == false) { return false; } - if(getID() == false) + if (reset() == false) { return false; } - return true; -} - -bool sfeBmv080::open(i2c_device_t *i2c_device) -{ - bmv080_sercom_handle_t sercom_handle = (bmv080_sercom_handle_t)i2c_device; - bmv080_callback_read_t read = (const bmv080_callback_read_t)combridge_i2c_read_16bit; - bmv080_callback_write_t write = (const bmv080_callback_write_t)combridge_i2c_write_16bit; - bmv080_callback_delay_t delay_ms = (const bmv080_callback_delay_t)combridge_delay; - - bmv080_status_code_t bmv080_current_status = bmv080_open(&bmv080_handle_class, sercom_handle, read, write, delay_ms); - - if (bmv080_current_status != E_BMV080_OK) + if (getID() == false) { - Serial.println("BMV080 open failed"); return false; } - else - { - Serial.println("BMV080 open successfully"); - return true; - } + + return true; } -bool sfeBmv080::initSPI(spi_device_t *spi_device) +bool sfeBmv080::open() { - if(getDriverVersion() == false) - { + if (_theBus == nullptr) return false; - } - - if(openSPI(spi_device) == false) - { - return false; - } - - if(reset() == false) - { - return false; - } - if(getID() == false) - { - return false; - } + // bmv080_sercom_handle_t sercom_handle = (bmv080_sercom_handle_t)i2c_device; + // bmv080_callback_read_t read = (const bmv080_callback_read_t)combridge_i2c_read_16bit; + // bmv080_callback_write_t write = (const bmv080_callback_write_t)combridge_i2c_write_16bit; + // bmv080_callback_delay_t delay_ms = (const bmv080_callback_delay_t)combridge_delay; - return true; -} + // bmv080_status_code_t bmv080_current_status = + // bmv080_open(&bmv080_handle_class, sercom_handle, read, write, delay_ms); -bool sfeBmv080::openSPI(spi_device_t *spi_device) -{ - bmv080_sercom_handle_t sercom_handle = (bmv080_sercom_handle_t)spi_device; - bmv080_callback_read_t read = (const bmv080_callback_read_t)combridge_spi_read_16bit; - bmv080_callback_write_t write = (const bmv080_callback_write_t)combridge_spi_write_16bit; - bmv080_callback_delay_t delay_ms = (const bmv080_callback_delay_t)combridge_delay; - - bmv080_status_code_t bmv080_current_status = bmv080_open(&bmv080_handle_class, sercom_handle, read, write, delay_ms); + bmv080_status_code_t bmv080_current_status = + bmv080_open(&bmv080_handle_class, (bmv080_sercom_handle_t)_theBus, (bmv080_callback_read_t)device_read_16bit_CB, + (bmv080_callback_write_t)device_write_16bit_CB, (bmv080_callback_delay_t)device_delay_CB); if (bmv080_current_status != E_BMV080_OK) { @@ -267,14 +292,15 @@ bool sfeBmv080::getDriverVersion() char git_hash[12]; int32_t commits_ahead = 0; - bmv080_status_code_t bmv080_current_status = bmv080_get_driver_version(&major, &minor, &patch, git_hash, &commits_ahead); + bmv080_status_code_t bmv080_current_status = + bmv080_get_driver_version(&major, &minor, &patch, git_hash, &commits_ahead); if (bmv080_current_status != E_BMV080_OK) { printf("Error getting BMV080 driver version: %d\n", bmv080_current_status); return false; } - + printf("BMV080 driver version: %d.%d.%d\n", major, minor, patch); return true; } @@ -300,7 +326,8 @@ bool sfeBmv080::getID() uint16_t sfeBmv080::getDutyCyclingPeriod() { uint16_t duty_cycling_period = 0; - bmv080_status_code_t bmv080_current_status = bmv080_get_parameter(bmv080_handle_class, "duty_cycling_period", (void*)&duty_cycling_period); + bmv080_status_code_t bmv080_current_status = + bmv080_get_parameter(bmv080_handle_class, "duty_cycling_period", (void *)&duty_cycling_period); if (bmv080_current_status != E_BMV080_OK) { printf("Error getting BMV080 Duty Cycling Period: %d\n", bmv080_current_status); @@ -315,7 +342,8 @@ uint16_t sfeBmv080::getDutyCyclingPeriod() bool sfeBmv080::setDutyCyclingPeriod(uint16_t duty_cycling_period) { - bmv080_status_code_t bmv080_current_status = bmv080_set_parameter(bmv080_handle_class, "duty_cycling_period", (void*)&duty_cycling_period); + bmv080_status_code_t bmv080_current_status = + bmv080_set_parameter(bmv080_handle_class, "duty_cycling_period", (void *)&duty_cycling_period); if (bmv080_current_status != E_BMV080_OK) { printf("Error setting BMV080 Duty Cycling Period: %d\n", bmv080_current_status); @@ -331,7 +359,8 @@ bool sfeBmv080::setDutyCyclingPeriod(uint16_t duty_cycling_period) float sfeBmv080::getVolumetricMassDensity() { float volumetric_mass_density = 0.0; - bmv080_status_code_t bmv080_current_status = bmv080_get_parameter(bmv080_handle_class, "volumetric_mass_density", (void*)&volumetric_mass_density); + bmv080_status_code_t bmv080_current_status = + bmv080_get_parameter(bmv080_handle_class, "volumetric_mass_density", (void *)&volumetric_mass_density); if (bmv080_current_status != E_BMV080_OK) { printf("Error getting BMV080 Volumetric Mass Density: %d\n", bmv080_current_status); @@ -345,7 +374,8 @@ float sfeBmv080::getVolumetricMassDensity() bool sfeBmv080::setVolumetricMassDensity(float volumetric_mass_density) { - bmv080_status_code_t bmv080_current_status = bmv080_set_parameter(bmv080_handle_class, "volumetric_mass_density", (void*)&volumetric_mass_density); + bmv080_status_code_t bmv080_current_status = + bmv080_set_parameter(bmv080_handle_class, "volumetric_mass_density", (void *)&volumetric_mass_density); if (bmv080_current_status != E_BMV080_OK) { printf("Error setting BMV080 Volumetric Mass Density: %d\n", bmv080_current_status); @@ -360,7 +390,8 @@ bool sfeBmv080::setVolumetricMassDensity(float volumetric_mass_density) float sfeBmv080::getIntegrationTime() { float integration_time = 0.0; - bmv080_status_code_t bmv080_current_status = bmv080_get_parameter(bmv080_handle_class, "integration_time", (void*)&integration_time); + bmv080_status_code_t bmv080_current_status = + bmv080_get_parameter(bmv080_handle_class, "integration_time", (void *)&integration_time); if (bmv080_current_status != E_BMV080_OK) { printf("Error getting BMV080 Integration Time: %d\n", bmv080_current_status); @@ -374,7 +405,8 @@ float sfeBmv080::getIntegrationTime() bool sfeBmv080::setIntegrationTime(float integration_time) { - bmv080_status_code_t bmv080_current_status = bmv080_set_parameter(bmv080_handle_class, "integration_time", (void*)&integration_time); + bmv080_status_code_t bmv080_current_status = + bmv080_set_parameter(bmv080_handle_class, "integration_time", (void *)&integration_time); if (bmv080_current_status != E_BMV080_OK) { printf("Error setting BMV080 Integration Time: %d\n", bmv080_current_status); @@ -389,7 +421,8 @@ bool sfeBmv080::setIntegrationTime(float integration_time) uint32_t sfeBmv080::getDistributionId() { uint32_t distribution_id = 0; - bmv080_status_code_t bmv080_current_status = bmv080_get_parameter(bmv080_handle_class, "distribution_id", (void*)&distribution_id); + bmv080_status_code_t bmv080_current_status = + bmv080_get_parameter(bmv080_handle_class, "distribution_id", (void *)&distribution_id); if (bmv080_current_status != E_BMV080_OK) { printf("Error getting BMV080 Distribution ID: %d\n", bmv080_current_status); @@ -403,7 +436,8 @@ uint32_t sfeBmv080::getDistributionId() bool sfeBmv080::setDistributionId(uint32_t distribution_id) { - bmv080_status_code_t bmv080_current_status = bmv080_set_parameter(bmv080_handle_class, "distribution_id", (void*)&distribution_id); + bmv080_status_code_t bmv080_current_status = + bmv080_set_parameter(bmv080_handle_class, "distribution_id", (void *)&distribution_id); if (bmv080_current_status != E_BMV080_OK) { printf("Error setting BMV080 Distribution ID: %d\n", bmv080_current_status); @@ -418,7 +452,8 @@ bool sfeBmv080::setDistributionId(uint32_t distribution_id) bool sfeBmv080::getDoObstructionDetection() { bool do_obstruction_detection = false; - bmv080_status_code_t bmv080_current_status = bmv080_get_parameter(bmv080_handle_class, "do_obstruction_detection", (void*)&do_obstruction_detection); + bmv080_status_code_t bmv080_current_status = + bmv080_get_parameter(bmv080_handle_class, "do_obstruction_detection", (void *)&do_obstruction_detection); if (bmv080_current_status != E_BMV080_OK) { printf("Error getting BMV080 Obstruction Detection: %d\n", bmv080_current_status); @@ -432,7 +467,8 @@ bool sfeBmv080::getDoObstructionDetection() bool sfeBmv080::setDoObstructionDetection(bool do_obstruction_detection) { - bmv080_status_code_t bmv080_current_status = bmv080_set_parameter(bmv080_handle_class, "do_obstruction_detection", (void*)&do_obstruction_detection); + bmv080_status_code_t bmv080_current_status = + bmv080_set_parameter(bmv080_handle_class, "do_obstruction_detection", (void *)&do_obstruction_detection); if (bmv080_current_status != E_BMV080_OK) { printf("Error setting BMV080 Obstruction Detection: %d\n", bmv080_current_status); @@ -447,7 +483,8 @@ bool sfeBmv080::setDoObstructionDetection(bool do_obstruction_detection) bool sfeBmv080::getDoVibrationFiltering() { bool do_vibration_filtering = false; - bmv080_status_code_t bmv080_current_status = bmv080_get_parameter(bmv080_handle_class, "do_vibration_filtering", (void*)&do_vibration_filtering); + bmv080_status_code_t bmv080_current_status = + bmv080_get_parameter(bmv080_handle_class, "do_vibration_filtering", (void *)&do_vibration_filtering); if (bmv080_current_status != E_BMV080_OK) { printf("Error getting BMV080 Vibration Filtering: %d\n", bmv080_current_status); @@ -461,7 +498,8 @@ bool sfeBmv080::getDoVibrationFiltering() bool sfeBmv080::setDoVibrationFiltering(bool do_vibration_filtering) { - bmv080_status_code_t bmv080_current_status = bmv080_set_parameter(bmv080_handle_class, "do_vibration_filtering", (void*)&do_vibration_filtering); + bmv080_status_code_t bmv080_current_status = + bmv080_set_parameter(bmv080_handle_class, "do_vibration_filtering", (void *)&do_vibration_filtering); if (bmv080_current_status != E_BMV080_OK) { printf("Error setting BMV080 Vibration Filtering: %d\n", bmv080_current_status); @@ -472,4 +510,3 @@ bool sfeBmv080::setDoVibrationFiltering(bool do_vibration_filtering) return true; } } - diff --git a/src/sfeBmv080.h b/src/sfeBmv080.h index f5a968e..5f9f919 100644 --- a/src/sfeBmv080.h +++ b/src/sfeBmv080.h @@ -23,7 +23,6 @@ #include "bmv080.h" #include "bmv080_defs.h" -#include "combridge.h" #include #include @@ -34,8 +33,6 @@ #define SFE_BMV080_MODE_CONTINUOUS 0 #define SFE_BMV080_MODE_DUTY_CYCLE 1 - - class sfeBmv080 { public: @@ -47,25 +44,20 @@ class sfeBmv080 /// @brief Begins the Device /// @param theBus I2C bus to use for communication /// @return 0 for succuss, negative for errors, positive for warnings - sfeTkError_t begin(sfeTkII2C *theBus = nullptr); + sfeTkError_t begin(sfeTkIBus *theBus = nullptr); - /// @brief Checks if the Device is connected - /// @return 0 for succuss, negative for errors, positive for warnings - sfeTkError_t isConnected(); + // /// @brief Checks if the Device is connected + // /// @return 0 for succuss, negative for errors, positive for warnings + // sfeTkError_t isConnected(); /// @brief Initialize the sensor i2c - /// @details This function initializes the sensor and should be called + /// @details This function initializes the sensor and should be called /// @details before any other functions. It calls Open, Reset, getDriverVersion, and getID. /// @param i2c_device The I2C device to use /// @return True if successful, false otherwise - bool init(i2c_device_t *i2c_device); + // bool init(i2c_device_t *i2c_device); - /// @brief Initialize the sensor SPI - /// @details This function initializes the sensor and should be called - /// @details before any other functions. It calls Open, Reset, getDriverVersion, and getID. - /// @param spi_device The SPI device to use - /// @return True if successful, false otherwise - bool initSPI(spi_device_t *spi_device); + bool init(void); /// @brief Get the version information of this sensor driver. /// @return True if successful, false otherwise @@ -74,12 +66,7 @@ class sfeBmv080 /// @brief Open a sensor unit by initializing a new handle. /// @param i2c_device The I2C device to use /// @return True if successful, false otherwise - bool open(i2c_device_t *i2c_device); - - /// @brief Open a sensor unit by initializing a new handle. - /// @param spi_device The SPI device to use - /// @return True if successful, false otherwise - bool openSPI(spi_device_t *spi_device); + bool open(void); /// @brief Reset the sensor /// @return True if successful, false otherwise @@ -102,9 +89,8 @@ class sfeBmv080 /// @return True if obstructed, false otherwise bool getIsObstructed(); - void setSensorValue(bmv080_output_t bmv080_output); - + /// @brief Check if new data is available /// @details This function should be called in the main loop to check if new data is available /// @details If new data is available, the data can be read using getPM25 and getIsObstructed @@ -165,13 +151,11 @@ class sfeBmv080 /// @return True if successful, false otherwise bool setDoVibrationFiltering(bool do_vibration_filtering); - - private: bmv080_handle_t bmv080_handle_class = NULL; bool _dataAvailable = false; bmv080_output_t _sensorValue; protected: - sfeTkII2C *_theBus; + sfeTkIBus *_theBus; }; \ No newline at end of file From fa565c8a60ef9b265f073268083f1f8840795e98 Mon Sep 17 00:00:00 2001 From: Kirk Benell Date: Thu, 3 Oct 2024 14:44:48 -0600 Subject: [PATCH 02/38] added byteswap to read cb - seems to work --- src/sfeBmv080.cpp | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/src/sfeBmv080.cpp b/src/sfeBmv080.cpp index 470dd19..d6ac9e8 100644 --- a/src/sfeBmv080.cpp +++ b/src/sfeBmv080.cpp @@ -67,7 +67,17 @@ extern "C" sfeTkError_t rc = theBus->readRegister16Region(header_adjusted, (uint8_t *)payload, payload_length * 2, nRead); - return rc == kSTkErrOk ? E_COMBRIDGE_OK : E_COMBRIDGE_ERROR_READ; + if (rc != kSTkErrOk) + return E_COMBRIDGE_ERROR_READ; + + if (nRead != payload_length * 2) + return E_COMBRIDGE_ERROR_READ; + + // Need to swap the byte order + for (uint16_t i = 0; i < payload_length; i++) + payload[i] = ((payload[i] << 8) | (payload[i] >> 8)) & 0xffff; + + return E_COMBRIDGE_OK; } // -------------------------------------------------------------------------------------------- @@ -252,11 +262,11 @@ bool sfeBmv080::open() // bmv080_status_code_t bmv080_current_status = // bmv080_open(&bmv080_handle_class, sercom_handle, read, write, delay_ms); - bmv080_status_code_t bmv080_current_status = + bmv080_status_code_t status = bmv080_open(&bmv080_handle_class, (bmv080_sercom_handle_t)_theBus, (bmv080_callback_read_t)device_read_16bit_CB, (bmv080_callback_write_t)device_write_16bit_CB, (bmv080_callback_delay_t)device_delay_CB); - if (bmv080_current_status != E_BMV080_OK) + if (status != E_BMV080_OK) { Serial.println("BMV080 open failed"); return false; From 125cafb4d7a6f1ff39a62081a8d0f6bfe43dd1da Mon Sep 17 00:00:00 2001 From: Kirk Benell Date: Thu, 3 Oct 2024 15:20:38 -0600 Subject: [PATCH 03/38] cleanup/added comments; simpliefed the init() method a little --- src/sfeBmv080.cpp | 65 +++++++++++++++++++---------------------------- src/sfeBmv080.h | 12 ++------- 2 files changed, 28 insertions(+), 49 deletions(-) diff --git a/src/sfeBmv080.cpp b/src/sfeBmv080.cpp index d6ac9e8..1b49bdf 100644 --- a/src/sfeBmv080.cpp +++ b/src/sfeBmv080.cpp @@ -25,7 +25,9 @@ #include "bmv080.h" #include "bmv080_defs.h" -// Some communication functions used with the system +// Some communication functions used with the system. These are from the original code from +// Bosch - so keeping them the same. It is unclear if the library they provide depends on these +// specific values - it probably does - so leaving as is. #define E_COMBRIDGE_OK ((int8_t)0) /*! -1: Status codes returned when memory allocation fails */ @@ -39,7 +41,7 @@ /*! -5: Status codes returned when a reference is null */ #define E_COMBRIDGE_ERROR_NULLPTR ((int8_t) - 5) -/* Exported functions prototypes ---------------------------------------------*/ +// C function used in this library only - so static #ifdef __cplusplus extern "C" @@ -49,6 +51,7 @@ extern "C" /* Our bus read and write functions */ // -------------------------------------------------------------------------------------------- + // Callback for reading data-- called from the Bosch supplied library // static int8_t device_read_16bit_CB(bmv080_sercom_handle_t handle, uint16_t header, uint16_t *payload, uint16_t payload_length) @@ -56,24 +59,25 @@ extern "C" if (handle == nullptr) return E_COMBRIDGE_ERROR_NULLPTR; + // Get our sparkfun toolkit bus object/interface sfeTkIBus *theBus = (sfeTkIBus *)handle; - uint8_t *payload_byte = (uint8_t *)payload; - /* 16-bit header left shifted by 1, since the R/W bit (most significant bit) is passed along with the 7-bit - * device address */ + // From Bosch example: + // 16-bit header left shifted by 1, since the R/W bit (most significant bit) is passed along with the 7-bit + // device address uint16_t header_adjusted = header << 1; + // Our output var. size_t nRead = 0; + // Call the read reg 16 method on the bus. sfeTkError_t rc = theBus->readRegister16Region(header_adjusted, (uint8_t *)payload, payload_length * 2, nRead); - if (rc != kSTkErrOk) + // Errors reading, not the expected number of bytes? + if (rc != kSTkErrOk || nRead != payload_length * 2) return E_COMBRIDGE_ERROR_READ; - if (nRead != payload_length * 2) - return E_COMBRIDGE_ERROR_READ; - - // Need to swap the byte order + // from the Bosch example ...Need to swap the byte order for (uint16_t i = 0; i < payload_length; i++) payload[i] = ((payload[i] << 8) | (payload[i] >> 8)) & 0xffff; @@ -81,6 +85,7 @@ extern "C" } // -------------------------------------------------------------------------------------------- + // Callback for reading data-- called from the Bosch supplied library // static int8_t device_write_16bit_CB(bmv080_sercom_handle_t handle, uint16_t header, const uint16_t *payload, uint16_t payload_length) @@ -92,19 +97,23 @@ extern "C" uint16_t header_adjusted = header << 1; - // Need to reverse the byte order + // Need to reverse the byte order - setup a buffer array uint16_t payload_swapped[payload_length]; + // swap the byte order for (uint16_t i = 0; i < payload_length; i++) payload_swapped[i] = ((payload[i] << 8) | (payload[i] >> 8)) & 0xffff; + // call the write method on the bus sfeTkError_t rc = theBus->writeRegister16Region(header_adjusted, (uint8_t *)payload_swapped, payload_length * 2); + // okay, not okay? return rc == kSTkErrOk ? E_COMBRIDGE_OK : E_COMBRIDGE_ERROR_WRITE; } // -------------------------------------------------------------------------------------------- + // Delay callback function for the Bosch library // static int8_t device_delay_CB(uint32_t period) { @@ -113,8 +122,7 @@ extern "C" return E_COMBRIDGE_OK; } - // static void bmv080_service_routine(const bmv080_handle_t handle, void *callback_parameters); - // static void use_sensor_output(bmv080_output_t bmv080_output, void *callback_parameters); + // This function is just used in this file, so declaring it static /* Custom function for consuming sensor readings */ static void use_sensor_output(bmv080_output_t bmv080_output, void *callback_parameters) @@ -220,31 +228,15 @@ bool sfeBmv080::dataAvailable() return false; } -// bool sfeBmv080::init(i2c_device_t *i2c_device) +// Our init method bool sfeBmv080::init(void) { + // Do we have a bus? if (_theBus == nullptr) return false; - if (getDriverVersion() == false) - { + if (!getDriverVersion() || !open() || !reset() || !getID()) return false; - } - - if (open() == false) - { - return false; - } - - if (reset() == false) - { - return false; - } - - if (getID() == false) - { - return false; - } return true; } @@ -254,13 +246,8 @@ bool sfeBmv080::open() if (_theBus == nullptr) return false; - // bmv080_sercom_handle_t sercom_handle = (bmv080_sercom_handle_t)i2c_device; - // bmv080_callback_read_t read = (const bmv080_callback_read_t)combridge_i2c_read_16bit; - // bmv080_callback_write_t write = (const bmv080_callback_write_t)combridge_i2c_write_16bit; - // bmv080_callback_delay_t delay_ms = (const bmv080_callback_delay_t)combridge_delay; - - // bmv080_status_code_t bmv080_current_status = - // bmv080_open(&bmv080_handle_class, sercom_handle, read, write, delay_ms); + // Open the device - pass in the data read, data write and delay functions callbacks. Note - the "secrom_handle_t" + // is just a pointer to our Tookkit communication bus objects bmv080_status_code_t status = bmv080_open(&bmv080_handle_class, (bmv080_sercom_handle_t)_theBus, (bmv080_callback_read_t)device_read_16bit_CB, diff --git a/src/sfeBmv080.h b/src/sfeBmv080.h index 5f9f919..eb2b2c3 100644 --- a/src/sfeBmv080.h +++ b/src/sfeBmv080.h @@ -42,21 +42,14 @@ class sfeBmv080 } /// @brief Begins the Device - /// @param theBus I2C bus to use for communication + /// @param theBus SparkFun Toolkit bus to use for communication /// @return 0 for succuss, negative for errors, positive for warnings sfeTkError_t begin(sfeTkIBus *theBus = nullptr); - // /// @brief Checks if the Device is connected - // /// @return 0 for succuss, negative for errors, positive for warnings - // sfeTkError_t isConnected(); - - /// @brief Initialize the sensor i2c + /// @brief Initialize the sensor /// @details This function initializes the sensor and should be called /// @details before any other functions. It calls Open, Reset, getDriverVersion, and getID. - /// @param i2c_device The I2C device to use /// @return True if successful, false otherwise - // bool init(i2c_device_t *i2c_device); - bool init(void); /// @brief Get the version information of this sensor driver. @@ -64,7 +57,6 @@ class sfeBmv080 bool getDriverVersion(); /// @brief Open a sensor unit by initializing a new handle. - /// @param i2c_device The I2C device to use /// @return True if successful, false otherwise bool open(void); From 2ddb72b783e85637c6b0684b9d1183f89287d780 Mon Sep 17 00:00:00 2001 From: Pete Lewis <601236+lewispg228@users.noreply.github.com> Date: Mon, 14 Oct 2024 15:54:40 -0600 Subject: [PATCH 04/38] updated examples 2,3,5 to work with sfetookit --- examples/Example_02_DutyCycle/Example_02_DutyCycle.ino | 7 +------ examples/Example_03_Interrupt/Example_03_Interrupt.ino | 7 +------ examples/Example_05_Parameters/Example_05_Parameters.ino | 7 +------ 3 files changed, 3 insertions(+), 18 deletions(-) diff --git a/examples/Example_02_DutyCycle/Example_02_DutyCycle.ino b/examples/Example_02_DutyCycle/Example_02_DutyCycle.ino index 2cc2623..634cefb 100644 --- a/examples/Example_02_DutyCycle/Example_02_DutyCycle.ino +++ b/examples/Example_02_DutyCycle/Example_02_DutyCycle.ino @@ -30,8 +30,6 @@ Bmv080 bmv080; // Create an instance of the BMV080 class #define BMV080_ADDR 0x57 // SparkFun BMV080 Breakout defaults to 0x57 -i2c_device_t i2c_device = {}; // I2C device struct instance for Bosch API - void setup() { Serial.begin(115200); @@ -55,11 +53,8 @@ void setup() // Wire.setClock(400000); //Increase I2C data rate to 400kHz - /* Communication interface initialization */ - i2c_init(&i2c_device); - /* Initialize the Sensor (read driver, open, reset, id etc.)*/ - bmv080.init(&i2c_device); + bmv080.init(); /* Set the sensor Duty Cycling Period (seconds)*/ uint16_t duty_cycling_period = 20; diff --git a/examples/Example_03_Interrupt/Example_03_Interrupt.ino b/examples/Example_03_Interrupt/Example_03_Interrupt.ino index 26281df..1e3c83e 100644 --- a/examples/Example_03_Interrupt/Example_03_Interrupt.ino +++ b/examples/Example_03_Interrupt/Example_03_Interrupt.ino @@ -35,8 +35,6 @@ Bmv080 bmv080; // Create an instance of the BMV080 class #define BMV080_ADDR 0x57 // SparkFun BMV080 Breakout defaults to 0x57 #define IRQ_Pin 14 -i2c_device_t i2c_device = {}; // I2C device struct instance for Bosch API - bool int_flag = false; void setup() @@ -62,11 +60,8 @@ void setup() // Wire.setClock(400000); //Increase I2C data rate to 400kHz - /* Communication interface initialization */ - i2c_init(&i2c_device); - /* Initialize the Sensor (read driver, open, reset, id etc.)*/ - bmv080.init(&i2c_device); + bmv080.init(); /* Set the sensor mode to continuous mode */ // The hardware interrupt of the BMV080 sensor unit cannot be used as trigger diff --git a/examples/Example_05_Parameters/Example_05_Parameters.ino b/examples/Example_05_Parameters/Example_05_Parameters.ino index 6078de3..8b3e280 100644 --- a/examples/Example_05_Parameters/Example_05_Parameters.ino +++ b/examples/Example_05_Parameters/Example_05_Parameters.ino @@ -40,8 +40,6 @@ Bmv080 bmv080; // Create an instance of the BMV080 class #define BMV080_ADDR 0x57 // SparkFun BMV080 Breakout defaults to 0x57 -i2c_device_t i2c_device = {}; // I2C device struct instance for Bosch API - void setup() { Serial.begin(115200); @@ -65,11 +63,8 @@ void setup() // Wire.setClock(400000); //Increase I2C data rate to 400kHz - /* Communication interface initialization */ - i2c_init(&i2c_device); - /* Initialize the Sensor (read driver, open, reset, id etc.)*/ - bmv080.init(&i2c_device); + bmv080.init(); getSetParameters(); // Get and set parameters From 7c3d14eb0da31f8a35dca0d4b95a902520ad1267 Mon Sep 17 00:00:00 2001 From: Pete Lewis <601236+lewispg228@users.noreply.github.com> Date: Mon, 28 Oct 2024 14:55:34 -0600 Subject: [PATCH 05/38] attempting SPI in tk - not working yet -not causing reset, but stopping at/after open is called, and returning error 100 --- examples/Example_04_SPI/Example_04_SPI.ino | 34 ++++++++++++++---- src/SparkFun_BMV080_Arduino_Library.h | 40 +++++++++++++++++----- src/sfeBmv080.cpp | 17 ++++++--- src/sfeBmv080.h | 16 +++++++-- 4 files changed, 86 insertions(+), 21 deletions(-) diff --git a/examples/Example_04_SPI/Example_04_SPI.ino b/examples/Example_04_SPI/Example_04_SPI.ino index 10fc214..4f6f1de 100644 --- a/examples/Example_04_SPI/Example_04_SPI.ino +++ b/examples/Example_04_SPI/Example_04_SPI.ino @@ -37,6 +37,7 @@ Bmv080 bmv080; // Create an instance of the BMV080 class + spi_device_t spi_device = {}; // SPI device struct instance for Bosch API void setup() @@ -51,15 +52,20 @@ void setup() Serial.println(); Serial.println("BMV080 Example 4 - SPI"); - /* Communication interface initialization */ + //SPI.begin(); + + // if (bmv080.begin(15, SPI) == false) { + // Serial.println("SPI init failure. Check your jumpers and the hookup guide. Freezing..."); + // while (1) + // ; + // } + // Serial.println("BMV080 SPI init successful"); + + /* Communication interface initialization */ spi_init(&spi_device); - if (bmv080.initSPI(&spi_device) == false) { - Serial.println("SPI init failure. Check your jumpers and the hookup guide. Freezing..."); - while (1) - ; - } - Serial.println("BMV080 SPI init successful"); + /* Initialize the Sensor (read driver, open, reset, id etc.)*/ + bmv080.init(&spi_device); /* Set the sensor mode to continuous mode */ if(bmv080.setMode(SFE_BMV080_MODE_CONTINUOUS) == true) @@ -88,4 +94,18 @@ void loop() Serial.println(); } delay(100); +} + +void spi_init(spi_device_t *spi_device) +{ + SPISettings spi_settings(SPI_CLK_FREQ, MSBFIRST, SPI_MODE0); + spi_device->instance = &SPI; + spi_device->settings = spi_settings; + + pinMode(SS, OUTPUT); + pinMode(MOSI, OUTPUT); + pinMode(SCK, OUTPUT); + pinMode(MISO, INPUT); + digitalWrite(SS, HIGH); + spi_device->instance->begin(); } \ No newline at end of file diff --git a/src/SparkFun_BMV080_Arduino_Library.h b/src/SparkFun_BMV080_Arduino_Library.h index eb9fd42..4bfb9b2 100644 --- a/src/SparkFun_BMV080_Arduino_Library.h +++ b/src/SparkFun_BMV080_Arduino_Library.h @@ -38,21 +38,44 @@ SET_LOOP_TASK_STACK_SIZE(60 * 1024); // 60KB class Bmv080 : public sfeBmv080 { public: - /// @brief Begins the Device - /// @param address I2C device address to use for the sensor - /// @param wirePort Wire port to use for I2C communication + // /// @brief Begins the Device + // /// @param address I2C device address to use for the sensor + // /// @param wirePort Wire port to use for I2C communication + // /// @return True if successful, false otherwise + // bool begin(const uint8_t address = SFE_BMV080_DEFAULT_ADDRESS, TwoWire &wirePort = Wire) + // { + // // Setup Arudino I2C bus + // _theI2CBus.init(wirePort, address); + + // // Begin the sensor + // sfeTkError_t rc = sfeBmv080::begin(&_theI2CBus); + + // return rc == kSTkErrOk ? isConnected() : false; + // } + + /// @brief Begins the Device with SPI as the communication bus + /// @param csPin The chip select pin for the sensor + /// @param spiPort The SPI port to use for communication + /// @param spiSettings The SPI settings to use for communication /// @return True if successful, false otherwise - bool begin(const uint8_t address = SFE_BMV080_DEFAULT_ADDRESS, TwoWire &wirePort = Wire) + bool begin(uint8_t csPin, SPIClass &spiPort = SPI, SPISettings spiSettings = SPISettings(1000000, MSBFIRST, SPI_MODE0)) { - // Setup Arudino I2C bus - _theI2CBus.init(wirePort, address); + pinMode(csPin, OUTPUT); + pinMode(MOSI, OUTPUT); + pinMode(SCK, OUTPUT); + pinMode(MISO, INPUT); + digitalWrite(csPin, HIGH); + + // Setup Arduino SPI bus + _theSPIBus.init(spiPort, spiSettings, csPin); // Begin the sensor - sfeTkError_t rc = sfeBmv080::begin(&_theI2CBus); + sfeTkError_t rc = sfeBmv080::begin(&_theSPIBus); - return rc == kSTkErrOk ? isConnected() : false; + return rc == kSTkErrOk ? true : false; } + /// @brief Checks if the Device is connected /// @return True if the sensor is connected, false otherwise bool isConnected() @@ -62,4 +85,5 @@ class Bmv080 : public sfeBmv080 private: sfeTkArdI2C _theI2CBus; + sfeTkArdSPI _theSPIBus; }; diff --git a/src/sfeBmv080.cpp b/src/sfeBmv080.cpp index 1b49bdf..56238d4 100644 --- a/src/sfeBmv080.cpp +++ b/src/sfeBmv080.cpp @@ -25,6 +25,8 @@ #include "bmv080.h" #include "bmv080_defs.h" +#define SPI_CLK_FREQ ((uint32_t)(1e6)) + // Some communication functions used with the system. These are from the original code from // Bosch - so keeping them the same. It is unclear if the library they provide depends on these // specific values - it probably does - so leaving as is. @@ -229,19 +231,21 @@ bool sfeBmv080::dataAvailable() } // Our init method -bool sfeBmv080::init(void) +bool sfeBmv080::init(spi_device_t *spi_device) { // Do we have a bus? if (_theBus == nullptr) return false; - if (!getDriverVersion() || !open() || !reset() || !getID()) + if (!getDriverVersion() || !open(spi_device) || !reset() || !getID()) return false; return true; } -bool sfeBmv080::open() + + +bool sfeBmv080::open(spi_device_t *spi_device) { if (_theBus == nullptr) return false; @@ -249,8 +253,13 @@ bool sfeBmv080::open() // Open the device - pass in the data read, data write and delay functions callbacks. Note - the "secrom_handle_t" // is just a pointer to our Tookkit communication bus objects + // When sending a sercom handle of SPI to bmv_open, the pointer must be a struct that includes both the SPI port (instance) and the Settings + // This is because the Bosch API needs to know the SPI port and the settings for the SPI port + + + bmv080_status_code_t status = - bmv080_open(&bmv080_handle_class, (bmv080_sercom_handle_t)_theBus, (bmv080_callback_read_t)device_read_16bit_CB, + bmv080_open(&bmv080_handle_class, (bmv080_sercom_handle_t)spi_device, (bmv080_callback_read_t)device_read_16bit_CB, (bmv080_callback_write_t)device_write_16bit_CB, (bmv080_callback_delay_t)device_delay_CB); if (status != E_BMV080_OK) diff --git a/src/sfeBmv080.h b/src/sfeBmv080.h index eb2b2c3..21ca39c 100644 --- a/src/sfeBmv080.h +++ b/src/sfeBmv080.h @@ -33,6 +33,18 @@ #define SFE_BMV080_MODE_CONTINUOUS 0 #define SFE_BMV080_MODE_DUTY_CYCLE 1 +#define SPI_CLK_FREQ ((uint32_t)(1e6)) // 1 MHz + +typedef struct +{ + /*! Instance of arduino SPI protocol instance */ + SPIClass *instance; + /*! Instance of arduino SPI settings to be applied before every transmission */ + SPISettings settings; +} spi_device_t; + + + class sfeBmv080 { public: @@ -50,7 +62,7 @@ class sfeBmv080 /// @details This function initializes the sensor and should be called /// @details before any other functions. It calls Open, Reset, getDriverVersion, and getID. /// @return True if successful, false otherwise - bool init(void); + bool init(spi_device_t *spi_device); /// @brief Get the version information of this sensor driver. /// @return True if successful, false otherwise @@ -58,7 +70,7 @@ class sfeBmv080 /// @brief Open a sensor unit by initializing a new handle. /// @return True if successful, false otherwise - bool open(void); + bool open(spi_device_t *spi_device); /// @brief Reset the sensor /// @return True if successful, false otherwise From d885f988171ff029fedf5193be29dd6e95ad067f Mon Sep 17 00:00:00 2001 From: Pete Lewis <601236+lewispg228@users.noreply.github.com> Date: Mon, 4 Nov 2024 13:14:35 -0700 Subject: [PATCH 06/38] two classes `SparkFunBMV080I2C`and `SparkFunBMV080SPI` -Created separate classes for I2C and SPI -Updated Examples as needed -removed incorrect setup of spi_device_t struct. --- .../Example_01_BasicReadings.ino | 2 +- .../Example_02_DutyCycle.ino | 2 +- .../Example_03_Interrupt.ino | 2 +- examples/Example_04_SPI/Example_04_SPI.ino | 37 +++----------- .../Example_05_Parameters.ino | 2 +- src/SparkFun_BMV080_Arduino_Library.h | 51 ++++++++++--------- src/sfeBmv080.cpp | 8 +-- src/sfeBmv080.h | 4 +- 8 files changed, 46 insertions(+), 62 deletions(-) diff --git a/examples/Example_01_BasicReadings/Example_01_BasicReadings.ino b/examples/Example_01_BasicReadings/Example_01_BasicReadings.ino index 051d3b6..b9e1e4f 100644 --- a/examples/Example_01_BasicReadings/Example_01_BasicReadings.ino +++ b/examples/Example_01_BasicReadings/Example_01_BasicReadings.ino @@ -27,7 +27,7 @@ #include "SparkFun_BMV080_Arduino_Library.h" // CTRL+Click here to get the library: http://librarymanager/All#SparkFun_BMV080 #include -Bmv080 bmv080; // Create an instance of the BMV080 class +SparkFunBMV080I2C bmv080; // Create an instance of the BMV080 class #define BMV080_ADDR 0x57 // SparkFun BMV080 Breakout defaults to 0x57 void setup() diff --git a/examples/Example_02_DutyCycle/Example_02_DutyCycle.ino b/examples/Example_02_DutyCycle/Example_02_DutyCycle.ino index 634cefb..fe2839d 100644 --- a/examples/Example_02_DutyCycle/Example_02_DutyCycle.ino +++ b/examples/Example_02_DutyCycle/Example_02_DutyCycle.ino @@ -27,7 +27,7 @@ #include #include "SparkFun_BMV080_Arduino_Library.h" // CTRL+Click here to get the library: http://librarymanager/All#SparkFun_BMV080 -Bmv080 bmv080; // Create an instance of the BMV080 class +SparkFunBMV080I2C bmv080; // Create an instance of the BMV080 class #define BMV080_ADDR 0x57 // SparkFun BMV080 Breakout defaults to 0x57 void setup() diff --git a/examples/Example_03_Interrupt/Example_03_Interrupt.ino b/examples/Example_03_Interrupt/Example_03_Interrupt.ino index 1e3c83e..922cfa9 100644 --- a/examples/Example_03_Interrupt/Example_03_Interrupt.ino +++ b/examples/Example_03_Interrupt/Example_03_Interrupt.ino @@ -31,7 +31,7 @@ #include #include "SparkFun_BMV080_Arduino_Library.h" // CTRL+Click here to get the library: http://librarymanager/All#SparkFun_BMV080 -Bmv080 bmv080; // Create an instance of the BMV080 class +SparkFunBMV080I2C bmv080; // Create an instance of the BMV080 class #define BMV080_ADDR 0x57 // SparkFun BMV080 Breakout defaults to 0x57 #define IRQ_Pin 14 diff --git a/examples/Example_04_SPI/Example_04_SPI.ino b/examples/Example_04_SPI/Example_04_SPI.ino index 4f6f1de..5e379b1 100644 --- a/examples/Example_04_SPI/Example_04_SPI.ino +++ b/examples/Example_04_SPI/Example_04_SPI.ino @@ -35,10 +35,7 @@ #include #include "SparkFun_BMV080_Arduino_Library.h" // CTRL+Click here to get the library: http://librarymanager/All#SparkFun_BMV080 -Bmv080 bmv080; // Create an instance of the BMV080 class - - -spi_device_t spi_device = {}; // SPI device struct instance for Bosch API +SparkFunBMV080SPI bmv080; // Create an instance of the BMV080 class void setup() { @@ -52,20 +49,16 @@ void setup() Serial.println(); Serial.println("BMV080 Example 4 - SPI"); - //SPI.begin(); - - // if (bmv080.begin(15, SPI) == false) { - // Serial.println("SPI init failure. Check your jumpers and the hookup guide. Freezing..."); - // while (1) - // ; - // } - // Serial.println("BMV080 SPI init successful"); + if (bmv080.begin(15, SPI) == false) { + Serial.println("SPI init failure. Check your jumpers and the hookup guide. Freezing..."); + while (1) + ; + } + Serial.println("BMV080 SPI init successful"); - /* Communication interface initialization */ - spi_init(&spi_device); /* Initialize the Sensor (read driver, open, reset, id etc.)*/ - bmv080.init(&spi_device); + bmv080.init(); /* Set the sensor mode to continuous mode */ if(bmv080.setMode(SFE_BMV080_MODE_CONTINUOUS) == true) @@ -94,18 +87,4 @@ void loop() Serial.println(); } delay(100); -} - -void spi_init(spi_device_t *spi_device) -{ - SPISettings spi_settings(SPI_CLK_FREQ, MSBFIRST, SPI_MODE0); - spi_device->instance = &SPI; - spi_device->settings = spi_settings; - - pinMode(SS, OUTPUT); - pinMode(MOSI, OUTPUT); - pinMode(SCK, OUTPUT); - pinMode(MISO, INPUT); - digitalWrite(SS, HIGH); - spi_device->instance->begin(); } \ No newline at end of file diff --git a/examples/Example_05_Parameters/Example_05_Parameters.ino b/examples/Example_05_Parameters/Example_05_Parameters.ino index 8b3e280..9820a35 100644 --- a/examples/Example_05_Parameters/Example_05_Parameters.ino +++ b/examples/Example_05_Parameters/Example_05_Parameters.ino @@ -37,7 +37,7 @@ #include #include "SparkFun_BMV080_Arduino_Library.h" // CTRL+Click here to get the library: http://librarymanager/All#SparkFun_BMV080 -Bmv080 bmv080; // Create an instance of the BMV080 class +SparkFunBMV080I2C bmv080; // Create an instance of the BMV080 class #define BMV080_ADDR 0x57 // SparkFun BMV080 Breakout defaults to 0x57 void setup() diff --git a/src/SparkFun_BMV080_Arduino_Library.h b/src/SparkFun_BMV080_Arduino_Library.h index 4bfb9b2..db07775 100644 --- a/src/SparkFun_BMV080_Arduino_Library.h +++ b/src/SparkFun_BMV080_Arduino_Library.h @@ -35,24 +35,38 @@ // In particular, bmv080_serve_interrupt is the culprit. SET_LOOP_TASK_STACK_SIZE(60 * 1024); // 60KB -class Bmv080 : public sfeBmv080 +class SparkFunBMV080I2C : public sfeBmv080 { public: - // /// @brief Begins the Device - // /// @param address I2C device address to use for the sensor - // /// @param wirePort Wire port to use for I2C communication - // /// @return True if successful, false otherwise - // bool begin(const uint8_t address = SFE_BMV080_DEFAULT_ADDRESS, TwoWire &wirePort = Wire) - // { - // // Setup Arudino I2C bus - // _theI2CBus.init(wirePort, address); + /// @brief Begins the Device + /// @param address I2C device address to use for the sensor + /// @param wirePort Wire port to use for I2C communication + /// @return True if successful, false otherwise + bool begin(const uint8_t address = SFE_BMV080_DEFAULT_ADDRESS, TwoWire &wirePort = Wire) + { + // Setup Arudino I2C bus + _theI2CBus.init(wirePort, address); - // // Begin the sensor - // sfeTkError_t rc = sfeBmv080::begin(&_theI2CBus); + // Begin the sensor + sfeTkError_t rc = sfeBmv080::begin(&_theI2CBus); - // return rc == kSTkErrOk ? isConnected() : false; - // } + return rc == kSTkErrOk ? isConnected() : false; + } + + /// @brief Checks if the Device is connected + /// @return True if the sensor is connected, false otherwise + bool isConnected() + { + return _theI2CBus.ping() == kSTkErrOk; + } + private: + sfeTkArdI2C _theI2CBus; +}; + +class SparkFunBMV080SPI : public sfeBmv080 +{ + public: /// @brief Begins the Device with SPI as the communication bus /// @param csPin The chip select pin for the sensor /// @param spiPort The SPI port to use for communication @@ -75,15 +89,6 @@ class Bmv080 : public sfeBmv080 return rc == kSTkErrOk ? true : false; } - - /// @brief Checks if the Device is connected - /// @return True if the sensor is connected, false otherwise - bool isConnected() - { - return _theI2CBus.ping() == kSTkErrOk; - } - private: - sfeTkArdI2C _theI2CBus; sfeTkArdSPI _theSPIBus; -}; +}; \ No newline at end of file diff --git a/src/sfeBmv080.cpp b/src/sfeBmv080.cpp index 56238d4..7347d5b 100644 --- a/src/sfeBmv080.cpp +++ b/src/sfeBmv080.cpp @@ -231,13 +231,13 @@ bool sfeBmv080::dataAvailable() } // Our init method -bool sfeBmv080::init(spi_device_t *spi_device) +bool sfeBmv080::init() { // Do we have a bus? if (_theBus == nullptr) return false; - if (!getDriverVersion() || !open(spi_device) || !reset() || !getID()) + if (!getDriverVersion() || !open() || !reset() || !getID()) return false; return true; @@ -245,7 +245,7 @@ bool sfeBmv080::init(spi_device_t *spi_device) -bool sfeBmv080::open(spi_device_t *spi_device) +bool sfeBmv080::open() { if (_theBus == nullptr) return false; @@ -259,7 +259,7 @@ bool sfeBmv080::open(spi_device_t *spi_device) bmv080_status_code_t status = - bmv080_open(&bmv080_handle_class, (bmv080_sercom_handle_t)spi_device, (bmv080_callback_read_t)device_read_16bit_CB, + bmv080_open(&bmv080_handle_class, (bmv080_sercom_handle_t)_theBus, (bmv080_callback_read_t)device_read_16bit_CB, (bmv080_callback_write_t)device_write_16bit_CB, (bmv080_callback_delay_t)device_delay_CB); if (status != E_BMV080_OK) diff --git a/src/sfeBmv080.h b/src/sfeBmv080.h index 21ca39c..3352e49 100644 --- a/src/sfeBmv080.h +++ b/src/sfeBmv080.h @@ -62,7 +62,7 @@ class sfeBmv080 /// @details This function initializes the sensor and should be called /// @details before any other functions. It calls Open, Reset, getDriverVersion, and getID. /// @return True if successful, false otherwise - bool init(spi_device_t *spi_device); + bool init(); /// @brief Get the version information of this sensor driver. /// @return True if successful, false otherwise @@ -70,7 +70,7 @@ class sfeBmv080 /// @brief Open a sensor unit by initializing a new handle. /// @return True if successful, false otherwise - bool open(spi_device_t *spi_device); + bool open(); /// @brief Reset the sensor /// @return True if successful, false otherwise From d3caf7474b673b1171f52e22f7a05cc5fa87a0d6 Mon Sep 17 00:00:00 2001 From: Pete Lewis <601236+lewispg228@users.noreply.github.com> Date: Fri, 8 Nov 2024 11:46:00 -0700 Subject: [PATCH 07/38] I2C and SPI examples working with toolkit branch -note, this is only working with toolkit branch 16-bit-data-support from 11/7 -utilized type() to find the bus type and communicate as needed whether it's I2C or SPI -moved pinMode calls for SPI pins into the example sketch setup() -made CS pin into a macro define at the top of the example sketch -SPI bus was not properly initializing because the call to init was missing the 4th argument set to true (bInit is default set to false) --- examples/Example_04_SPI/Example_04_SPI.ino | 9 ++- src/SparkFun_BMV080_Arduino_Library.h | 10 +-- src/sfeBmv080.cpp | 79 +++++++++++++++------- 3 files changed, 64 insertions(+), 34 deletions(-) diff --git a/examples/Example_04_SPI/Example_04_SPI.ino b/examples/Example_04_SPI/Example_04_SPI.ino index 5e379b1..fee6edb 100644 --- a/examples/Example_04_SPI/Example_04_SPI.ino +++ b/examples/Example_04_SPI/Example_04_SPI.ino @@ -36,6 +36,7 @@ #include "SparkFun_BMV080_Arduino_Library.h" // CTRL+Click here to get the library: http://librarymanager/All#SparkFun_BMV080 SparkFunBMV080SPI bmv080; // Create an instance of the BMV080 class +#define CS_PIN 15 // Define the chip select pin void setup() { @@ -46,10 +47,16 @@ void setup() // For a final version of a project that does not need serial debug (or a USB cable plugged in), // Comment out this while loop, or it will prevent the remaining code from running. + pinMode(CS_PIN, OUTPUT); + pinMode(MOSI, OUTPUT); + pinMode(SCK, OUTPUT); + pinMode(MISO, INPUT); + digitalWrite(CS_PIN, HIGH); + Serial.println(); Serial.println("BMV080 Example 4 - SPI"); - if (bmv080.begin(15, SPI) == false) { + if (bmv080.begin(CS_PIN, SPI) == false) { Serial.println("SPI init failure. Check your jumpers and the hookup guide. Freezing..."); while (1) ; diff --git a/src/SparkFun_BMV080_Arduino_Library.h b/src/SparkFun_BMV080_Arduino_Library.h index db07775..c2b9136 100644 --- a/src/SparkFun_BMV080_Arduino_Library.h +++ b/src/SparkFun_BMV080_Arduino_Library.h @@ -46,6 +46,7 @@ class SparkFunBMV080I2C : public sfeBmv080 { // Setup Arudino I2C bus _theI2CBus.init(wirePort, address); + _theI2CBus.setByteOrder(SFETK_BIG_ENDIAN); // Begin the sensor sfeTkError_t rc = sfeBmv080::begin(&_theI2CBus); @@ -72,16 +73,11 @@ class SparkFunBMV080SPI : public sfeBmv080 /// @param spiPort The SPI port to use for communication /// @param spiSettings The SPI settings to use for communication /// @return True if successful, false otherwise - bool begin(uint8_t csPin, SPIClass &spiPort = SPI, SPISettings spiSettings = SPISettings(1000000, MSBFIRST, SPI_MODE0)) + bool begin(uint8_t csPin, SPIClass &spiPort = SPI, SPISettings spiSettings = SPISettings(100000, MSBFIRST, SPI_MODE0)) { - pinMode(csPin, OUTPUT); - pinMode(MOSI, OUTPUT); - pinMode(SCK, OUTPUT); - pinMode(MISO, INPUT); - digitalWrite(csPin, HIGH); // Setup Arduino SPI bus - _theSPIBus.init(spiPort, spiSettings, csPin); + _theSPIBus.init(spiPort, spiSettings, csPin, true); // Begin the sensor sfeTkError_t rc = sfeBmv080::begin(&_theSPIBus); diff --git a/src/sfeBmv080.cpp b/src/sfeBmv080.cpp index 7347d5b..b71c2cc 100644 --- a/src/sfeBmv080.cpp +++ b/src/sfeBmv080.cpp @@ -61,27 +61,40 @@ extern "C" if (handle == nullptr) return E_COMBRIDGE_ERROR_NULLPTR; - // Get our sparkfun toolkit bus object/interface - sfeTkIBus *theBus = (sfeTkIBus *)handle; - - // From Bosch example: - // 16-bit header left shifted by 1, since the R/W bit (most significant bit) is passed along with the 7-bit - // device address - uint16_t header_adjusted = header << 1; + sfeTkError_t rc; // Our output var. size_t nRead = 0; - // Call the read reg 16 method on the bus. - sfeTkError_t rc = theBus->readRegister16Region(header_adjusted, (uint8_t *)payload, payload_length * 2, nRead); - - // Errors reading, not the expected number of bytes? - if (rc != kSTkErrOk || nRead != payload_length * 2) - return E_COMBRIDGE_ERROR_READ; + // Get our sparkfun toolkit bus object/interface + sfeTkIBus *theBus = (sfeTkIBus *)handle; - // from the Bosch example ...Need to swap the byte order - for (uint16_t i = 0; i < payload_length; i++) - payload[i] = ((payload[i] << 8) | (payload[i] >> 8)) & 0xffff; + if(theBus->type() == kBusTypeI2C) + { + Serial.println("I2C"); + header = header << 1; + // the toolkit is set to adjust payload byte order, so we don't need to do it here + // however, we do need to adjust the header byte order + //header = ((header << 8) & 0xff00) | ((header >> 8) & 0x00ff); + // Call the read reg 16 method on the bus. + sfeTkError_t rc = theBus->readRegister16Region(header, (uint8_t*)payload, payload_length * 2, nRead); + // Errors reading, not the expected number of bytes? + if (rc != kSTkErrOk || nRead != payload_length * 2) + return E_COMBRIDGE_ERROR_READ; + + // from the Bosch example ...Need to swap the byte order + for (uint16_t i = 0; i < payload_length; i++) + payload[i] = ((payload[i] << 8) | (payload[i] >> 8)) & 0xffff; + } + else + { + Serial.println("SPI"); + // Call the read reg 16 method on the bus. + sfeTkError_t rc = theBus->readRegister16Region16(header, payload, payload_length, nRead); + // Errors reading, not the expected number of bytes? + if (rc != kSTkErrOk || nRead != payload_length) + return E_COMBRIDGE_ERROR_READ; + } return E_COMBRIDGE_OK; } @@ -95,20 +108,34 @@ extern "C" if (handle == nullptr) return E_COMBRIDGE_ERROR_NULLPTR; - sfeTkIBus *theBus = (sfeTkIBus *)handle; + sfeTkError_t rc; - uint16_t header_adjusted = header << 1; + sfeTkIBus *theBus = (sfeTkIBus *)handle; - // Need to reverse the byte order - setup a buffer array - uint16_t payload_swapped[payload_length]; + if(theBus->type() == kBusTypeI2C) + { + Serial.println("I2C"); + header = header << 1; + // the toolkit is set to adjust payload byte order, so we don't need to do it here + // however, we do need to adjust the header byte order + //header = ((header << 8) & 0xff00) | ((header >> 8) & 0x00ff); + + // Need to reverse the byte order - setup a buffer array + uint16_t payload_swapped[payload_length]; + // swap the byte order + for (uint16_t i = 0; i < payload_length; i++) + payload_swapped[i] = ((payload[i] << 8) | (payload[i] >> 8)) & 0xffff; + // call the write method on the bus + rc = theBus->writeRegister16Region(header, (uint8_t*)payload_swapped, payload_length * 2); + } + else + { + Serial.println("SPI"); + // call the write method on the bus + rc = theBus->writeRegister16Region16(header, payload, payload_length); + } - // swap the byte order - for (uint16_t i = 0; i < payload_length; i++) - payload_swapped[i] = ((payload[i] << 8) | (payload[i] >> 8)) & 0xffff; - // call the write method on the bus - sfeTkError_t rc = - theBus->writeRegister16Region(header_adjusted, (uint8_t *)payload_swapped, payload_length * 2); // okay, not okay? return rc == kSTkErrOk ? E_COMBRIDGE_OK : E_COMBRIDGE_ERROR_WRITE; From 166d59a71cacba701a5282545441a4c2725d9eb3 Mon Sep 17 00:00:00 2001 From: Pete Lewis <601236+lewispg228@users.noreply.github.com> Date: Fri, 8 Nov 2024 14:04:34 -0700 Subject: [PATCH 08/38] removed debug for spi vs i2c -removed debug printing -increased SPI clock back up to 1MHz --- src/SparkFun_BMV080_Arduino_Library.h | 2 +- src/sfeBmv080.cpp | 4 ---- 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/src/SparkFun_BMV080_Arduino_Library.h b/src/SparkFun_BMV080_Arduino_Library.h index c2b9136..6d5992a 100644 --- a/src/SparkFun_BMV080_Arduino_Library.h +++ b/src/SparkFun_BMV080_Arduino_Library.h @@ -73,7 +73,7 @@ class SparkFunBMV080SPI : public sfeBmv080 /// @param spiPort The SPI port to use for communication /// @param spiSettings The SPI settings to use for communication /// @return True if successful, false otherwise - bool begin(uint8_t csPin, SPIClass &spiPort = SPI, SPISettings spiSettings = SPISettings(100000, MSBFIRST, SPI_MODE0)) + bool begin(uint8_t csPin, SPIClass &spiPort = SPI, SPISettings spiSettings = SPISettings(1000000, MSBFIRST, SPI_MODE0)) { // Setup Arduino SPI bus diff --git a/src/sfeBmv080.cpp b/src/sfeBmv080.cpp index b71c2cc..c1a05b5 100644 --- a/src/sfeBmv080.cpp +++ b/src/sfeBmv080.cpp @@ -71,7 +71,6 @@ extern "C" if(theBus->type() == kBusTypeI2C) { - Serial.println("I2C"); header = header << 1; // the toolkit is set to adjust payload byte order, so we don't need to do it here // however, we do need to adjust the header byte order @@ -88,7 +87,6 @@ extern "C" } else { - Serial.println("SPI"); // Call the read reg 16 method on the bus. sfeTkError_t rc = theBus->readRegister16Region16(header, payload, payload_length, nRead); // Errors reading, not the expected number of bytes? @@ -114,7 +112,6 @@ extern "C" if(theBus->type() == kBusTypeI2C) { - Serial.println("I2C"); header = header << 1; // the toolkit is set to adjust payload byte order, so we don't need to do it here // however, we do need to adjust the header byte order @@ -130,7 +127,6 @@ extern "C" } else { - Serial.println("SPI"); // call the write method on the bus rc = theBus->writeRegister16Region16(header, payload, payload_length); } From 4b6e55b612f3a2b834b12104591877b0b22a72d0 Mon Sep 17 00:00:00 2001 From: Pete Lewis <601236+lewispg228@users.noreply.github.com> Date: Mon, 11 Nov 2024 11:07:42 -0700 Subject: [PATCH 09/38] write callback (when I2C) now using writeRegister16Region16 -updated write callback to use writeRegister16Region16 (when I2C), so the payload swapping is happening in the toolkit -updating macro SFTK_MSBFIRST for recent toolkit update --- src/SparkFun_BMV080_Arduino_Library.h | 2 +- src/sfeBmv080.cpp | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/SparkFun_BMV080_Arduino_Library.h b/src/SparkFun_BMV080_Arduino_Library.h index 6d5992a..2e20c3e 100644 --- a/src/SparkFun_BMV080_Arduino_Library.h +++ b/src/SparkFun_BMV080_Arduino_Library.h @@ -46,7 +46,7 @@ class SparkFunBMV080I2C : public sfeBmv080 { // Setup Arudino I2C bus _theI2CBus.init(wirePort, address); - _theI2CBus.setByteOrder(SFETK_BIG_ENDIAN); + _theI2CBus.setByteOrder(SFTK_MSBFIRST); // Begin the sensor sfeTkError_t rc = sfeBmv080::begin(&_theI2CBus); diff --git a/src/sfeBmv080.cpp b/src/sfeBmv080.cpp index c1a05b5..48660be 100644 --- a/src/sfeBmv080.cpp +++ b/src/sfeBmv080.cpp @@ -118,12 +118,12 @@ extern "C" //header = ((header << 8) & 0xff00) | ((header >> 8) & 0x00ff); // Need to reverse the byte order - setup a buffer array - uint16_t payload_swapped[payload_length]; - // swap the byte order - for (uint16_t i = 0; i < payload_length; i++) - payload_swapped[i] = ((payload[i] << 8) | (payload[i] >> 8)) & 0xffff; + // uint16_t payload_swapped[payload_length]; + // // swap the byte order + // for (uint16_t i = 0; i < payload_length; i++) + // payload_swapped[i] = ((payload[i] << 8) | (payload[i] >> 8)) & 0xffff; // call the write method on the bus - rc = theBus->writeRegister16Region(header, (uint8_t*)payload_swapped, payload_length * 2); + rc = theBus->writeRegister16Region16(header, payload, payload_length); } else { From 1be0e3deab597b2f7aa19ee1ccb201f62e2431e8 Mon Sep 17 00:00:00 2001 From: Pete Lewis <601236+lewispg228@users.noreply.github.com> Date: Mon, 11 Nov 2024 11:16:55 -0700 Subject: [PATCH 10/38] simplify bus type check if statement (write callback) -now that both bus types can call writeRegister16Region16, it can happen just once (after the type check if statement) --- src/sfeBmv080.cpp | 22 ++-------------------- 1 file changed, 2 insertions(+), 20 deletions(-) diff --git a/src/sfeBmv080.cpp b/src/sfeBmv080.cpp index 48660be..b96d45b 100644 --- a/src/sfeBmv080.cpp +++ b/src/sfeBmv080.cpp @@ -110,28 +110,10 @@ extern "C" sfeTkIBus *theBus = (sfeTkIBus *)handle; - if(theBus->type() == kBusTypeI2C) - { + if(theBus->type() == kBusTypeI2C) // I2C specific shift header = header << 1; - // the toolkit is set to adjust payload byte order, so we don't need to do it here - // however, we do need to adjust the header byte order - //header = ((header << 8) & 0xff00) | ((header >> 8) & 0x00ff); - - // Need to reverse the byte order - setup a buffer array - // uint16_t payload_swapped[payload_length]; - // // swap the byte order - // for (uint16_t i = 0; i < payload_length; i++) - // payload_swapped[i] = ((payload[i] << 8) | (payload[i] >> 8)) & 0xffff; - // call the write method on the bus - rc = theBus->writeRegister16Region16(header, payload, payload_length); - } - else - { - // call the write method on the bus - rc = theBus->writeRegister16Region16(header, payload, payload_length); - } - + rc = theBus->writeRegister16Region16(header, payload, payload_length); // okay, not okay? return rc == kSTkErrOk ? E_COMBRIDGE_OK : E_COMBRIDGE_ERROR_WRITE; From 49fb9ec7be898c901c6af22695986b1aa4e08b03 Mon Sep 17 00:00:00 2001 From: Pete Lewis <601236+lewispg228@users.noreply.github.com> Date: Mon, 11 Nov 2024 14:04:03 -0700 Subject: [PATCH 11/38] read callback (when using I2C) now using readRegister16Region16 -read callback (when I2C) is not using readRegister16Region16. This allows it to be the same call for I2C and SPI -simplified my type check if statement to only include a single line of I2C specific code (the header shifting). -Note, this does require a slight change in the toolkit readRegister16Region16 to set nRead to WORDS not bytes. --- src/sfeBmv080.cpp | 37 ++++++++----------------------------- 1 file changed, 8 insertions(+), 29 deletions(-) diff --git a/src/sfeBmv080.cpp b/src/sfeBmv080.cpp index b96d45b..586342c 100644 --- a/src/sfeBmv080.cpp +++ b/src/sfeBmv080.cpp @@ -59,9 +59,7 @@ extern "C" uint16_t payload_length) { if (handle == nullptr) - return E_COMBRIDGE_ERROR_NULLPTR; - - sfeTkError_t rc; + return E_COMBRIDGE_ERROR_NULLPTR; // Our output var. size_t nRead = 0; @@ -70,29 +68,12 @@ extern "C" sfeTkIBus *theBus = (sfeTkIBus *)handle; if(theBus->type() == kBusTypeI2C) - { - header = header << 1; - // the toolkit is set to adjust payload byte order, so we don't need to do it here - // however, we do need to adjust the header byte order - //header = ((header << 8) & 0xff00) | ((header >> 8) & 0x00ff); - // Call the read reg 16 method on the bus. - sfeTkError_t rc = theBus->readRegister16Region(header, (uint8_t*)payload, payload_length * 2, nRead); - // Errors reading, not the expected number of bytes? - if (rc != kSTkErrOk || nRead != payload_length * 2) - return E_COMBRIDGE_ERROR_READ; - - // from the Bosch example ...Need to swap the byte order - for (uint16_t i = 0; i < payload_length; i++) - payload[i] = ((payload[i] << 8) | (payload[i] >> 8)) & 0xffff; - } - else - { - // Call the read reg 16 method on the bus. - sfeTkError_t rc = theBus->readRegister16Region16(header, payload, payload_length, nRead); - // Errors reading, not the expected number of bytes? - if (rc != kSTkErrOk || nRead != payload_length) - return E_COMBRIDGE_ERROR_READ; - } + header = header << 1; // I2C specific shift + + sfeTkError_t rc = theBus->readRegister16Region16(header, payload, payload_length, nRead); + + if (rc != kSTkErrOk || nRead != payload_length) + return E_COMBRIDGE_ERROR_READ; return E_COMBRIDGE_OK; } @@ -106,14 +87,12 @@ extern "C" if (handle == nullptr) return E_COMBRIDGE_ERROR_NULLPTR; - sfeTkError_t rc; - sfeTkIBus *theBus = (sfeTkIBus *)handle; if(theBus->type() == kBusTypeI2C) // I2C specific shift header = header << 1; - rc = theBus->writeRegister16Region16(header, payload, payload_length); + sfeTkError_t rc = theBus->writeRegister16Region16(header, payload, payload_length); // okay, not okay? return rc == kSTkErrOk ? E_COMBRIDGE_OK : E_COMBRIDGE_ERROR_WRITE; From 6fb6a974de6d01b5390cf4e1a2365b09cb5dcf29 Mon Sep 17 00:00:00 2001 From: Pete Lewis <601236+lewispg228@users.noreply.github.com> Date: Mon, 11 Nov 2024 16:14:56 -0700 Subject: [PATCH 12/38] switched to overloaded versions of the functions --- src/sfeBmv080.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/sfeBmv080.cpp b/src/sfeBmv080.cpp index 586342c..62e212f 100644 --- a/src/sfeBmv080.cpp +++ b/src/sfeBmv080.cpp @@ -70,7 +70,7 @@ extern "C" if(theBus->type() == kBusTypeI2C) header = header << 1; // I2C specific shift - sfeTkError_t rc = theBus->readRegister16Region16(header, payload, payload_length, nRead); + sfeTkError_t rc = theBus->readRegister(header, payload, payload_length, nRead); if (rc != kSTkErrOk || nRead != payload_length) return E_COMBRIDGE_ERROR_READ; @@ -92,7 +92,7 @@ extern "C" if(theBus->type() == kBusTypeI2C) // I2C specific shift header = header << 1; - sfeTkError_t rc = theBus->writeRegister16Region16(header, payload, payload_length); + sfeTkError_t rc = theBus->writeRegister(header, payload, payload_length); // okay, not okay? return rc == kSTkErrOk ? E_COMBRIDGE_OK : E_COMBRIDGE_ERROR_WRITE; From 39066a5910780330e798f19ebcbc29ef842b40d8 Mon Sep 17 00:00:00 2001 From: Pete Lewis <601236+lewispg228@users.noreply.github.com> Date: Tue, 12 Nov 2024 16:28:47 -0700 Subject: [PATCH 13/38] code cleanup --- .../Example_01_BasicReadings.ino | 2 +- .../Example_02_DutyCycle.ino | 2 +- .../Example_03_Interrupt.ino | 2 +- examples/Example_04_SPI/Example_04_SPI.ino | 2 +- .../Example_05_Parameters.ino | 2 +- keywords.txt | 5 +-- src/SparkFun_BMV080_Arduino_Library.h | 7 --- src/sfeBmv080.cpp | 43 +++++-------------- 8 files changed, 17 insertions(+), 48 deletions(-) diff --git a/examples/Example_01_BasicReadings/Example_01_BasicReadings.ino b/examples/Example_01_BasicReadings/Example_01_BasicReadings.ino index b9e1e4f..3cb8260 100644 --- a/examples/Example_01_BasicReadings/Example_01_BasicReadings.ino +++ b/examples/Example_01_BasicReadings/Example_01_BasicReadings.ino @@ -21,7 +21,7 @@ Serial.print it out at 115200 baud to serial monitor. Feel like supporting our work? Buy a board from SparkFun! - https://www.sparkfun.com/products/????? + https://www.sparkfun.com/products/26554 */ #include "SparkFun_BMV080_Arduino_Library.h" // CTRL+Click here to get the library: http://librarymanager/All#SparkFun_BMV080 diff --git a/examples/Example_02_DutyCycle/Example_02_DutyCycle.ino b/examples/Example_02_DutyCycle/Example_02_DutyCycle.ino index fe2839d..502a955 100644 --- a/examples/Example_02_DutyCycle/Example_02_DutyCycle.ino +++ b/examples/Example_02_DutyCycle/Example_02_DutyCycle.ino @@ -21,7 +21,7 @@ Serial.print it out at 115200 baud to serial monitor. Feel like supporting our work? Buy a board from SparkFun! - https://www.sparkfun.com/products/????? + https://www.sparkfun.com/products/26554 */ #include diff --git a/examples/Example_03_Interrupt/Example_03_Interrupt.ino b/examples/Example_03_Interrupt/Example_03_Interrupt.ino index 922cfa9..99ace62 100644 --- a/examples/Example_03_Interrupt/Example_03_Interrupt.ino +++ b/examples/Example_03_Interrupt/Example_03_Interrupt.ino @@ -25,7 +25,7 @@ Serial.print it out at 115200 baud to serial monitor. Feel like supporting our work? Buy a board from SparkFun! - https://www.sparkfun.com/products/????? + https://www.sparkfun.com/products/26554 */ #include diff --git a/examples/Example_04_SPI/Example_04_SPI.ino b/examples/Example_04_SPI/Example_04_SPI.ino index fee6edb..1219d09 100644 --- a/examples/Example_04_SPI/Example_04_SPI.ino +++ b/examples/Example_04_SPI/Example_04_SPI.ino @@ -29,7 +29,7 @@ Serial.print it out at 115200 baud to serial monitor. Feel like supporting our work? Buy a board from SparkFun! - https://www.sparkfun.com/products/????? + https://www.sparkfun.com/products/26554 */ #include diff --git a/examples/Example_05_Parameters/Example_05_Parameters.ino b/examples/Example_05_Parameters/Example_05_Parameters.ino index 9820a35..4514ae2 100644 --- a/examples/Example_05_Parameters/Example_05_Parameters.ino +++ b/examples/Example_05_Parameters/Example_05_Parameters.ino @@ -31,7 +31,7 @@ Serial.print it out at 115200 baud to serial monitor. Feel like supporting our work? Buy a board from SparkFun! - https://www.sparkfun.com/products/????? + https://www.sparkfun.com/products/26554 */ #include diff --git a/keywords.txt b/keywords.txt index a0b329e..40862ae 100644 --- a/keywords.txt +++ b/keywords.txt @@ -4,7 +4,8 @@ # Class ######################################################### -Bmv080 KEYWORD1 +SparkFunBMV080I2C KEYWORD1 +SparkFunBMV080SPI KEYWORD1 ######################################################### # Methods and Functions @@ -12,11 +13,9 @@ Bmv080 KEYWORD1 begin KEYWORD2 init KEYWORD2 -initSPI KEYWORD2 isConnected KEYWORD2 getDriverVersion KEYWORD2 open KEYWORD2 -openSPI KEYWORD2 reset KEYWORD2 getID KEYWORD2 setMode KEYWORD2 diff --git a/src/SparkFun_BMV080_Arduino_Library.h b/src/SparkFun_BMV080_Arduino_Library.h index 2e20c3e..6b7c617 100644 --- a/src/SparkFun_BMV080_Arduino_Library.h +++ b/src/SparkFun_BMV080_Arduino_Library.h @@ -5,10 +5,6 @@ by Pete Lewis @SparkFun Electronics September 2024 - Based on original source code written by - Fischer Moseley @ SparkFun Electronics - Original Creation Date: July 24, 2019 - This file implements the BMV080 class, prototyped in SparkFun_BMV080_Arduino_Library.h Development environment specifics: @@ -25,12 +21,9 @@ #pragma once -// TODO: Add includes as needed (e.g. #include , #include ) #include "sfeBmv080.h" #include -// #include "Arduino.h" - // The BMV080 Bosch API requires a larger than usual stack size // In particular, bmv080_serve_interrupt is the culprit. SET_LOOP_TASK_STACK_SIZE(60 * 1024); // 60KB diff --git a/src/sfeBmv080.cpp b/src/sfeBmv080.cpp index 62e212f..1a49c59 100644 --- a/src/sfeBmv080.cpp +++ b/src/sfeBmv080.cpp @@ -1,22 +1,18 @@ /****************************************************************************** - sfeQwiicBuzzer.h - SparkFun Qwiic Buzzer Library header file + sfeBmv080.cpp + SparkFun BMV080 Library CPP file by Pete Lewis @SparkFun Electronics - January 2024 - - Based on original source code written by - Fischer Moseley @ SparkFun Electronics - Original Creation Date: July 24, 2019 + September 2024 Development environment specifics: - IDE: Arduino 2.2.1 - Hardware Platform: Arduino Uno/SparkFun Redboard - Qwiic Buzzer Version: v10 + IDE: Arduino 2.3.3 + Hardware Platform: SparkFun IoT Redboard ESP32 + BMV080 Breakout HW Version: v01 SPDX-License-Identifier: MIT - Copyright (c) 2023 SparkFun Electronics + Copyright (c) 2024 SparkFun Electronics Distributed as-is; no warranty is given. ******************************************************************************/ @@ -67,8 +63,8 @@ extern "C" // Get our sparkfun toolkit bus object/interface sfeTkIBus *theBus = (sfeTkIBus *)handle; - if(theBus->type() == kBusTypeI2C) - header = header << 1; // I2C specific shift + if(theBus->type() == kBusTypeI2C) // I2C specific shift + header = header << 1; sfeTkError_t rc = theBus->readRegister(header, payload, payload_length, nRead); @@ -113,21 +109,7 @@ extern "C" /* Custom function for consuming sensor readings */ static void use_sensor_output(bmv080_output_t bmv080_output, void *callback_parameters) { - // data_ready_callback_count += 1; - // print_function_t print = (print_function_t)callback_parameters; - ((sfeBmv080 *)callback_parameters)->setSensorValue(bmv080_output); - - // Serial.println(bmv080_output.pm2_5); - - // Serial.println("u"); - - // sfeBmv080::_sensorValue.pm2_5 = bmv080_output.pm2_5; // update the class variable with the new PM2.5 value - // setSensorValue(bmv080_output.pm2_5); - // sensorValue.pm2_5 = bmv080_output.pm2_5; - // print("Runtime: %.2f s, PM2.5: %.0f ug/m^3, obstructed: %s, outside detection limits: %s\r\n", - // bmv080_output.runtime_in_sec, bmv080_output.pm2_5, (bmv080_output.is_obstructed ? "yes" : "no"), - // (bmv080_output.is_outside_detection_limits ? "yes" : "no")); } static void bmv080_service_routine(const bmv080_handle_t handle, void *callback_parameters) @@ -237,11 +219,6 @@ bool sfeBmv080::open() // Open the device - pass in the data read, data write and delay functions callbacks. Note - the "secrom_handle_t" // is just a pointer to our Tookkit communication bus objects - // When sending a sercom handle of SPI to bmv_open, the pointer must be a struct that includes both the SPI port (instance) and the Settings - // This is because the Bosch API needs to know the SPI port and the settings for the SPI port - - - bmv080_status_code_t status = bmv080_open(&bmv080_handle_class, (bmv080_sercom_handle_t)_theBus, (bmv080_callback_read_t)device_read_16bit_CB, (bmv080_callback_write_t)device_write_16bit_CB, (bmv080_callback_delay_t)device_delay_CB); @@ -499,4 +476,4 @@ bool sfeBmv080::setDoVibrationFiltering(bool do_vibration_filtering) { return true; } -} +} \ No newline at end of file From b04a6f9372d89966a4a89c9b217aec9701910469 Mon Sep 17 00:00:00 2001 From: Pete Lewis <601236+lewispg228@users.noreply.github.com> Date: Thu, 14 Nov 2024 12:57:52 -0700 Subject: [PATCH 14/38] ex6 two sensors over I2C working --- .../Example_06_TwoSensors.ino | 164 ++++++++++++++++++ 1 file changed, 164 insertions(+) create mode 100644 examples/Example_06_TwoSensors/Example_06_TwoSensors.ino diff --git a/examples/Example_06_TwoSensors/Example_06_TwoSensors.ino b/examples/Example_06_TwoSensors/Example_06_TwoSensors.ino new file mode 100644 index 0000000..800b3d3 --- /dev/null +++ b/examples/Example_06_TwoSensors/Example_06_TwoSensors.ino @@ -0,0 +1,164 @@ +/* + Using the BMV080 Particulate Matter PM2.5 Sensor + + This example shows how to use two BMV080 sensors on the same I2C bus. + + One sensor must have its AB0 Jumper changed to "0". + + The sensors will be in "continuous mode" to get + particulate matter readings once every second. + + It uses polling of the devices to check if new data is available. + + By: Pete Lewis + SparkFun Electronics + Date: September, 2024 + SparkFun code, firmware, and software is released under the MIT License. + Please see LICENSE.md for further details. + + Hardware Connections: + IoT RedBoard --> BMV080 + QWIIC --> QWIIC + + BMV080 "mode" jumper set to I2C (default) + + Serial.print it out at 115200 baud to serial monitor. + + Open a plotter to see the PM2.5 values from both sensors. + + Feel like supporting our work? Buy a board from SparkFun! + https://www.sparkfun.com/products/26554 +*/ + +#include "SparkFun_BMV080_Arduino_Library.h" // CTRL+Click here to get the library: http://librarymanager/All#SparkFun_BMV080 +#include + +SparkFunBMV080I2C bmv080; // Create an instance of the BMV080 class +#define BMV080_ADDR 0x57 // SparkFun BMV080 Breakout defaults to 0x57 + +SparkFunBMV080I2C bmv080_2; // Create an instance of the BMV080 class +#define BMV080_ADDR2 0x56 // AB0 Jumper set to 0 + +bool newDataAvailable = false; // Flag to indicate new data is available +bool newDataAvailable2 = false; // Flag to indicate new data is available + +float pm25 = 0.0; // Variable to store PM2.5 value +float pm25_2 = 0.0; // Variable to store PM2.5 value + +bool isObstructed = false; // Flag to indicate sensor is obstructed +bool isObstructed2 = false; // Flag to indicate sensor is obstructed + +void setup() +{ + Serial.begin(115200); + + while (!Serial) + delay(10); // Wait for Serial to become available. + // Necessary for boards with native USB (like the SAMD51 Thing+). + // For a final version of a project that does not need serial debug (or a USB cable plugged in), + // Comment out this while loop, or it will prevent the remaining code from running. + + Serial.println(); + Serial.println("BMV080 Example 1 - Basic Readings"); + + Wire.begin(); + + if (bmv080.begin(BMV080_ADDR, Wire) == false) + { + Serial.println( + "BMV080 not detected at default I2C address. Check your jumpers and the hookup guide. Freezing..."); + while (1) + ; + } + Serial.println("BMV080 at 0x57 found!"); + + if (bmv080_2.begin(BMV080_ADDR2, Wire) == false) + { + Serial.println( + "BMV080 not detected at 0x56 I2C address. Check your jumpers and the hookup guide. Freezing..."); + while (1) + ; + } + Serial.println("BMV080 at 0x56 found!"); + + // Wire.setClock(400000); //Increase I2C data rate to 400kHz + + /* Initialize the Sensor (read driver, open, reset, id etc.)*/ + bmv080.init(); + + /* Set the sensor mode to continuous mode */ + if (bmv080.setMode(SFE_BMV080_MODE_CONTINUOUS) == true) + { + Serial.println("BMV080 set to continuous mode"); + } + else + { + Serial.println("Error setting BMV080 mode"); + } + + delay(500); + + bmv080_2.init(); + + if (bmv080_2.setMode(SFE_BMV080_MODE_CONTINUOUS) == true) + { + Serial.println("BMV080_2 set to continuous mode"); + } + else + { + Serial.println("Error setting BMV080_2 mode"); + } +} + +void loop() +{ + if (bmv080.dataAvailable()) + { + pm25 = bmv080.getPM25(); + isObstructed = bmv080.getIsObstructed(); + newDataAvailable = true; + //Serial.println("Sensor 1 data available"); + } + delay(200); // needs a ~200ms delay in between talking to each sensor + + if (bmv080_2.dataAvailable()) + { + pm25_2 = bmv080_2.getPM25(); + isObstructed2 = bmv080_2.getIsObstructed(); + newDataAvailable2 = true; + //Serial.println("Sensor 2 data available"); + } + + delay(200); // needs a ~200ms delay in between talking to each sensor + + if (newDataAvailable & newDataAvailable2) + { + //Serial.print("Sensor 1: "); + + Serial.print(pm25); + + if (isObstructed == true) + { + Serial.print(-1); + } + + //Serial.print("\tSensor 2: "); + + Serial.print(","); + + Serial.print(pm25_2); + + if (isObstructed2 == true) + { + Serial.print("-1"); + } + + Serial.println(); + + // reset variables + newDataAvailable = false; + newDataAvailable2 = false; + isObstructed = false; + isObstructed2 = false; + } +} From f232cb591fb13306b9d46ae93c652e4ea6c89d69 Mon Sep 17 00:00:00 2001 From: Pete Lewis <601236+lewispg228@users.noreply.github.com> Date: Mon, 25 Nov 2024 15:34:10 -0700 Subject: [PATCH 15/38] ex7 demo with 7-seg display --- .../Example_07_Demo_Display.ino | 109 ++++++++++++++++++ src/SparkFun_BMV080_Arduino_Library.h | 2 +- 2 files changed, 110 insertions(+), 1 deletion(-) create mode 100644 examples/Example_07_Demo_Display/Example_07_Demo_Display/Example_07_Demo_Display.ino diff --git a/examples/Example_07_Demo_Display/Example_07_Demo_Display/Example_07_Demo_Display.ino b/examples/Example_07_Demo_Display/Example_07_Demo_Display/Example_07_Demo_Display.ino new file mode 100644 index 0000000..6618ebc --- /dev/null +++ b/examples/Example_07_Demo_Display/Example_07_Demo_Display/Example_07_Demo_Display.ino @@ -0,0 +1,109 @@ +/* + Using the BMV080 Particulate Matter PM2.5 Sensor + + This example shows how display the Pm2.5 readings on a SparkFun Qwiic + Alphanumeric display. + + It uses the sensor in "continuous mode" to get + particulate matter readings once every second. + + It uses polling of the device to check if new data is available. + + By: Pete Lewis + SparkFun Electronics + Date: September, 2024 + SparkFun code, firmware, and software is released under the MIT License. + Please see LICENSE.md for further details. + + Hardware Connections: + IoT RedBoard --> BMV080 + QWIIC --> QWIIC + + BMV080 "mode" jumper set to I2C (default) + + Serial.print it out at 115200 baud to serial monitor. + + Feel like supporting our work? Buy a board from SparkFun! + https://www.sparkfun.com/products/26554 +*/ + +#include "SparkFun_BMV080_Arduino_Library.h" // CTRL+Click here to get the library: http://librarymanager/All#SparkFun_BMV080 +#include + +SparkFunBMV080I2C bmv080; // Create an instance of the BMV080 class +#define BMV080_ADDR 0x57 // SparkFun BMV080 Breakout defaults to 0x57 + +#include //Click here to get the library: http://librarymanager/All#SparkFun_Qwiic_Alphanumeric_Display by SparkFun +HT16K33 display; + +void setup() +{ + Serial.begin(115200); + + while (!Serial) + delay(10); // Wait for Serial to become available. + // Necessary for boards with native USB (like the SAMD51 Thing+). + // For a final version of a project that does not need serial debug (or a USB cable plugged in), + // Comment out this while loop, or it will prevent the remaining code from running. + + Serial.println(); + Serial.println("BMV080 Example 1 - Basic Readings"); + + Wire.begin(); + + if (bmv080.begin(BMV080_ADDR, Wire) == false) + { + Serial.println( + "BMV080 not detected at default I2C address. Check your jumpers and the hookup guide. Freezing..."); + while (1) + ; + } + Serial.println("BMV080 found!"); + + // Wire.setClock(400000); //Increase I2C data rate to 400kHz + + /* Initialize the Sensor (read driver, open, reset, id etc.)*/ + bmv080.init(); + + /* Set the sensor mode to continuous mode */ + if (bmv080.setMode(SFE_BMV080_MODE_CONTINUOUS) == true) + { + Serial.println("BMV080 set to continuous mode"); + } + else + { + Serial.println("Error setting BMV080 mode"); + } + + if (display.begin() == false) + { + Serial.println("Qwiic Alphanumeric Device did not acknowledge! Freezing."); + while (1); + } + Serial.println("Qwiic Alphanumeric Display acknowledged."); + + display.setBrightness(5); // Set brightness to 5/16 full brightness + + display.print("PM2.5"); + +} + +void loop() +{ + if (bmv080.dataAvailable()) + { + float pm25 = bmv080.getPM25(); + + Serial.print(pm25); + display.print(int(pm25)); + + if (bmv080.getIsObstructed() == true) + { + Serial.print("\tObstructed"); + display.print("Obst"); + } + + Serial.println(); + } + delay(100); +} diff --git a/src/SparkFun_BMV080_Arduino_Library.h b/src/SparkFun_BMV080_Arduino_Library.h index 6b7c617..4900ce8 100644 --- a/src/SparkFun_BMV080_Arduino_Library.h +++ b/src/SparkFun_BMV080_Arduino_Library.h @@ -66,7 +66,7 @@ class SparkFunBMV080SPI : public sfeBmv080 /// @param spiPort The SPI port to use for communication /// @param spiSettings The SPI settings to use for communication /// @return True if successful, false otherwise - bool begin(uint8_t csPin, SPIClass &spiPort = SPI, SPISettings spiSettings = SPISettings(1000000, MSBFIRST, SPI_MODE0)) + bool begin(uint8_t csPin, SPIClass &spiPort = SPI, SPISettings spiSettings = SPISettings(100000, MSBFIRST, SPI_MODE0)) { // Setup Arduino SPI bus From c6aad08ba64a32e48dfcc67af4bc301f271a5bc3 Mon Sep 17 00:00:00 2001 From: Pete Lewis <601236+lewispg228@users.noreply.github.com> Date: Mon, 25 Nov 2024 16:25:20 -0700 Subject: [PATCH 16/38] ex1 and 5 working with sdk v10.0.0 -added in functionality to read PM 1 -added in functionality to get or set the measurement algorithm --- .../Example_01_BasicReadings.ino | 3 ++ .../Example_05_Parameters.ino | 47 ++++++++++++++++++ src/bmv080.h | 10 +++- src/bmv080_defs.h | 45 +++++++++++------ src/esp32/libbmv080.a | Bin 177660 -> 183260 bytes src/esp32/libpostProcessor.a | Bin 88540 -> 154768 bytes src/sfeBmv080.cpp | 44 ++++++++++++++-- src/sfeBmv080.h | 13 +++++ 8 files changed, 143 insertions(+), 19 deletions(-) diff --git a/examples/Example_01_BasicReadings/Example_01_BasicReadings.ino b/examples/Example_01_BasicReadings/Example_01_BasicReadings.ino index 3cb8260..f4d8a8e 100644 --- a/examples/Example_01_BasicReadings/Example_01_BasicReadings.ino +++ b/examples/Example_01_BasicReadings/Example_01_BasicReadings.ino @@ -75,8 +75,11 @@ void loop() if (bmv080.dataAvailable()) { float pm25 = bmv080.getPM25(); + float pm1 = bmv080.getPM1(); Serial.print(pm25); + Serial.print("\t"); + Serial.print(pm1); if (bmv080.getIsObstructed() == true) { diff --git a/examples/Example_05_Parameters/Example_05_Parameters.ino b/examples/Example_05_Parameters/Example_05_Parameters.ino index 4514ae2..5adfd46 100644 --- a/examples/Example_05_Parameters/Example_05_Parameters.ino +++ b/examples/Example_05_Parameters/Example_05_Parameters.ino @@ -9,6 +9,7 @@ distribution_id do_obstruction_detection do_vibration_filtering + measurement_algorithm After these parameters are read and set, This example shows how to use the sensor in "continuous mode" to get particulate matter readings once every @@ -108,6 +109,7 @@ void getSetParameters(void) uint32_t distribution_id = 0; bool do_obstruction_detection = false; bool do_vibration_filtering = false; + uint8_t measurementAlgorithm = E_BMV080_MEASUREMENT_ALGORITHM_BALANCED; /*************************************************************************** * @@ -155,6 +157,25 @@ void getSetParameters(void) Serial.println("false"); } + /* Get default parameter "measurement_algorithm" */ + measurementAlgorithm = bmv080.getMeasurementAlgorithm(); + Serial.print("BMV080 parameter 'measurement_algorithm' READ: "); + switch (measurementAlgorithm) + { + case E_BMV080_MEASUREMENT_ALGORITHM_FAST_RESPONSE: + Serial.println("Fast Response"); + break; + case E_BMV080_MEASUREMENT_ALGORITHM_BALANCED: + Serial.println("Balanced"); + break; + case E_BMV080_MEASUREMENT_ALGORITHM_HIGH_PRECISION: + Serial.println("High Precision"); + break; + default: + Serial.println("Unknown"); + break; + } + /*************************************************************************** * @@ -169,6 +190,7 @@ void getSetParameters(void) // distribution_id = 3; // do_obstruction_detection = true; // do_vibration_filtering = false; + // measurementAlgorithm = E_BMV080_MEASUREMENT_ALGORITHM_BALANCED; /* Set custom parameter "volumetric_mass_density" */ if(bmv080.setVolumetricMassDensity(volumetric_mass_density) == true) @@ -239,5 +261,30 @@ void getSetParameters(void) Serial.println("Error setting BMV080 parameter 'do_vibration_filtering'"); } + /* Set custom parameter "measurement_algorithm" */ + if(bmv080.setMeasurementAlgorithm(measurementAlgorithm) == true) + { + Serial.print("BMV080 parameter 'measurement_algorithm' SET TO: "); + switch (measurementAlgorithm) + { + case E_BMV080_MEASUREMENT_ALGORITHM_FAST_RESPONSE: + Serial.println("Fast Response"); + break; + case E_BMV080_MEASUREMENT_ALGORITHM_BALANCED: + Serial.println("Balanced"); + break; + case E_BMV080_MEASUREMENT_ALGORITHM_HIGH_PRECISION: + Serial.println("High Precision"); + break; + default: + Serial.println("Unknown"); + break; + } + } + else + { + Serial.println("Error setting BMV080 parameter 'measurement_algorithm'"); + } + Serial.println(); } \ No newline at end of file diff --git a/src/bmv080.h b/src/bmv080.h index 81e4d0f..a0e3822 100644 --- a/src/bmv080.h +++ b/src/bmv080.h @@ -151,6 +151,10 @@ bmv080_status_code_t bmv080_reset(const bmv080_handle_t handle); * "distribution_id" uint32_t 3 For internal use only. * "do_obstruction_detection" bool true Set if obstruction detection feature is enabled. * "do_vibration_filtering" bool false Set if vibration filter is enabled. +* "measurement_algorithm" bmv080_measurement_algorithm_t E_BMV080_MEASUREMENT_ALGORITHM_HIGH_PRECISION (3) Selection of measurement algorithm based on the +*
use case, as defined by the type bmv080_measurement_algorithm_t, +*
in bmv080_defs.h. For a duty cycling measurement, this parameter is +*
fixed to E_BMV080_MEASUREMENT_ALGORITHM_FAST_RESPONSE. * * * @pre A valid _handle_ generated by _bmv080_open_ is required. @@ -192,7 +196,11 @@ bmv080_status_code_t bmv080_get_parameter(const bmv080_handle_t handle, const ch * "distribution_id" uint32_t 3 For internal use only. * "do_obstruction_detection" bool true Set if obstruction detection feature is enabled. * "do_vibration_filtering" bool false Set if vibration filter is enabled. -* s +* "measurement_algorithm" bmv080_measurement_algorithm_t E_BMV080_MEASUREMENT_ALGORITHM_HIGH_PRECISION (3) Selection of measurement algorithm based on the +*
use case, as defined by the type bmv080_measurement_algorithm_t, +*
in bmv080_defs.h. For a duty cycling measurement, this parameter is +*
fixed to E_BMV080_MEASUREMENT_ALGORITHM_FAST_RESPONSE. +* * * @pre A valid _handle_ generated by _bmv080_open_ is required. * @pre This function must be called before _bmv080_start_continuous_measurement_ or _bmv080_start_duty_cycling_measurement_ diff --git a/src/bmv080_defs.h b/src/bmv080_defs.h index be08636..5a84bb7 100644 --- a/src/bmv080_defs.h +++ b/src/bmv080_defs.h @@ -364,6 +364,16 @@ typedef enum E_BMV080_DUTY_CYCLING_MODE_0 = 0 } bmv080_duty_cycling_mode_t; +/*! +* @brief Measurement algorithm choices. +*/ +typedef enum +{ + E_BMV080_MEASUREMENT_ALGORITHM_FAST_RESPONSE = 1, + E_BMV080_MEASUREMENT_ALGORITHM_BALANCED = 2, + E_BMV080_MEASUREMENT_ALGORITHM_HIGH_PRECISION = 3 +} bmv080_measurement_algorithm_t; + /*! * @brief Placeholder structure for extended sensor output information. */ @@ -374,27 +384,36 @@ struct bmv080_extended_info_s; */ typedef struct { + /*! runtime_in_sec: estimate of the time passed since the start of the measurement, in seconds */ + float runtime_in_sec; + /*! pm2_5_mass_concentration: PM2.5 value in ug/m3 */ + float pm2_5_mass_concentration; + /*! pm1_mass_concentration: PM1 value in ug/m3 */ + float pm1_mass_concentration; + /*! is_obstructed: flag to indicate whether the sensor is obstructed and cannot perform a valid measurement */ + bool is_obstructed; + /*! is_outside_measurement_range: flag to indicate whether the PM2.5 concentration is + * outside the specified measurement range (0..1000 ug/m3) + */ + bool is_outside_measurement_range; /*! reserved_0: for internal use only */ float reserved_0; /*! reserved_1: for internal use only */ float reserved_1; /*! reserved_2: for internal use only */ float reserved_2; - /*! pm2_5: PM2.5 value in ug/m3 */ - float pm2_5; - /*! runtime_in_sec: estimate of the time passed since the start of the measurement, in seconds */ - float runtime_in_sec; - /*! is_obstructed: flag to indicate whether the sensor is obstructed and cannot perform a valid measurement */ - bool is_obstructed; - /*! is_outside_detection_limits: flag to indicate whether the PM2.5 concentration is outside the detection limits - * and a valid measurement cannot be performed - */ - bool is_outside_detection_limits; + /*! reserved_3: for internal use only */ + float reserved_3; + /*! reserved_4: for internal use only */ + float reserved_4; + /*! reserved_5: for internal use only */ + float reserved_5; + /*! reserved_6: for internal use only */ + float reserved_6; /*! extended_info: for internal use only */ struct bmv080_extended_info_s *extended_info; }bmv080_output_t; - /********************************************************************************************************************* * Callback definitions *********************************************************************************************************************/ @@ -464,8 +483,4 @@ typedef uint32_t(*bmv080_callback_tick_t)(void); */ typedef void(*bmv080_callback_data_ready_t)(bmv080_output_t bmv080_output, void* callback_parameters); - -/* Function pointer to facilitate printing output / status information to the console */ -typedef int (*print_function_t)(const char *const _format, ...); - #endif /* BMV080_DEFS_H_ */ diff --git a/src/esp32/libbmv080.a b/src/esp32/libbmv080.a index 8941dec0f01cf985fafb0c7348c9c58b9d0f356a..a05eed5761812efb9c119d3303aa7b5aa0c3d7c8 100644 GIT binary patch delta 48680 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 euQ`j#@DxFcY=qauU|5l|%ie!t(Xx)BtCqD7Xn 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:Q|+hf|4;&atk( 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 M44Z-YZxrzRKfojOqW}N^ literal 88540 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 Wgk#;f;anqi%0Gtjjfsaw@%ul%NPjB; diff --git a/src/sfeBmv080.cpp b/src/sfeBmv080.cpp index 1a49c59..9a9f1a6 100644 --- a/src/sfeBmv080.cpp +++ b/src/sfeBmv080.cpp @@ -141,7 +141,12 @@ sfeTkError_t sfeBmv080::begin(sfeTkIBus *theBus) float sfeBmv080::getPM25() { - return _sensorValue.pm2_5; + return _sensorValue.pm2_5_mass_concentration; +} + +float sfeBmv080::getPM1() +{ + return _sensorValue.pm1_mass_concentration; } bool sfeBmv080::getIsObstructed() @@ -152,10 +157,11 @@ bool sfeBmv080::getIsObstructed() void sfeBmv080::setSensorValue(bmv080_output_t bmv080_output) { _dataAvailable = true; - _sensorValue.pm2_5 = bmv080_output.pm2_5; + _sensorValue.pm2_5_mass_concentration = bmv080_output.pm2_5_mass_concentration; + _sensorValue.pm1_mass_concentration = bmv080_output.pm1_mass_concentration; _sensorValue.runtime_in_sec = bmv080_output.runtime_in_sec; _sensorValue.is_obstructed = bmv080_output.is_obstructed; - _sensorValue.is_outside_detection_limits = bmv080_output.is_outside_detection_limits; + _sensorValue.is_outside_measurement_range = bmv080_output.is_outside_measurement_range; } bool sfeBmv080::setMode(uint8_t mode) @@ -476,4 +482,36 @@ bool sfeBmv080::setDoVibrationFiltering(bool do_vibration_filtering) { return true; } +} + +uint8_t sfeBmv080::getMeasurementAlgorithm() +{ + bmv080_measurement_algorithm_t measurement_algorithm; + bmv080_status_code_t bmv080_current_status = + bmv080_get_parameter(bmv080_handle_class, "measurement_algorithm", (void *)&measurement_algorithm); + if (bmv080_current_status != E_BMV080_OK) + { + printf("Error getting BMV080 Measurement Algorithm: %d\n", bmv080_current_status); + return 0; + } + else + { + return (uint8_t)measurement_algorithm; + } +} + +bool sfeBmv080::setMeasurementAlgorithm(uint8_t measurement_algorithm) +{ + bmv080_measurement_algorithm_t bmv080_measurement_algorithm = (bmv080_measurement_algorithm_t)measurement_algorithm; + bmv080_status_code_t bmv080_current_status = + bmv080_set_parameter(bmv080_handle_class, "measurement_algorithm", (void *)&bmv080_measurement_algorithm); + if (bmv080_current_status != E_BMV080_OK) + { + printf("Error setting BMV080 Measurement Algorithm: %d\n", bmv080_current_status); + return false; + } + else + { + return true; + } } \ No newline at end of file diff --git a/src/sfeBmv080.h b/src/sfeBmv080.h index 3352e49..5c0ae3d 100644 --- a/src/sfeBmv080.h +++ b/src/sfeBmv080.h @@ -89,6 +89,10 @@ class sfeBmv080 /// @return The PM2.5 value as a float in ug/m3 float getPM25(); + /// @brief Get the PM1 value + /// @return The PM1 value as a float in ug/m3 + float getPM1(); + /// @brief Get the obstruction status /// @return True if obstructed, false otherwise bool getIsObstructed(); @@ -155,6 +159,15 @@ class sfeBmv080 /// @return True if successful, false otherwise bool setDoVibrationFiltering(bool do_vibration_filtering); + /// @brief Get a parameter: "measurement_algorithm" + /// @return uint8_t measurement_algorithm + uint8_t getMeasurementAlgorithm(); + + /// @brief Set a parameter: "measurement_algorithm" + /// @param measurement_algorithm + /// @return True if successful, false otherwise + bool setMeasurementAlgorithm(uint8_t measurement_algorithm); + private: bmv080_handle_t bmv080_handle_class = NULL; bool _dataAvailable = false; From c3f0544496f3e4a7df281dd44d90a0dff9dd63f3 Mon Sep 17 00:00:00 2001 From: Pete Lewis <601236+lewispg228@users.noreply.github.com> Date: Tue, 3 Dec 2024 14:14:11 -0700 Subject: [PATCH 17/38] m33 support -added a macro ifdef to check for ESP32 - to only set loop task stack size when needed. -added compiled binaries for m33f --- src/SparkFun_BMV080_Arduino_Library.h | 4 ++++ src/cortex-m33/libbmv080.a | Bin 0 -> 80120 bytes src/cortex-m33/libpostProcessor.a | Bin 0 -> 71828 bytes 3 files changed, 4 insertions(+) create mode 100644 src/cortex-m33/libbmv080.a create mode 100644 src/cortex-m33/libpostProcessor.a diff --git a/src/SparkFun_BMV080_Arduino_Library.h b/src/SparkFun_BMV080_Arduino_Library.h index 4900ce8..ce482d2 100644 --- a/src/SparkFun_BMV080_Arduino_Library.h +++ b/src/SparkFun_BMV080_Arduino_Library.h @@ -26,7 +26,11 @@ // The BMV080 Bosch API requires a larger than usual stack size // In particular, bmv080_serve_interrupt is the culprit. +// If we are an ESP32 architecture, then we need to increase the loop stack size +// to 60KB. This is because the ESP32 has a 32KB stack size by default. +#if defined(ESP32) SET_LOOP_TASK_STACK_SIZE(60 * 1024); // 60KB +#endif class SparkFunBMV080I2C : public sfeBmv080 { diff --git a/src/cortex-m33/libbmv080.a b/src/cortex-m33/libbmv080.a new file mode 100644 index 0000000000000000000000000000000000000000..c49412a5f1860ef3ea5c95c918b78f3a86612e9a GIT binary patch literal 80120 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 EKY{?(V*mgE literal 0 HcmV?d00001 From c49fd10dc23049a01f15e7f4d5a5ea9cf839342b Mon Sep 17 00:00:00 2001 From: Pete Lewis <601236+lewispg228@users.noreply.github.com> Date: Tue, 3 Dec 2024 14:19:27 -0700 Subject: [PATCH 18/38] esp32s2 support --- src/esp32s2/libbmv080.a | Bin 0 -> 187848 bytes src/esp32s2/libpostProcessor.a | Bin 0 -> 192276 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 src/esp32s2/libbmv080.a create mode 100644 src/esp32s2/libpostProcessor.a diff --git a/src/esp32s2/libbmv080.a b/src/esp32s2/libbmv080.a new file mode 100644 index 0000000000000000000000000000000000000000..540e132d74623eb34a8d1b49e0629691c4fb25fe GIT binary patch literal 187848 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 R*|~*vA)M6aI~y>&{{vebe!>6% literal 0 HcmV?d00001 diff --git a/src/esp32s2/libpostProcessor.a b/src/esp32s2/libpostProcessor.a new file mode 100644 index 0000000000000000000000000000000000000000..418784fa1744323d95eb8dc3d0a76f41336296b1 GIT binary patch literal 192276 zcmeFa2Urz5*Dt;)q7)Sb1yK~R0V+*o!=6cI2D@NE#ICqe5R@jMVh2R3ic$ous5G%+ z1@>>E_;al>D8b7@Z(CC5Y^iA2&-BGDWrk?49zB+a5E5+gl{q;;-DlFt9$aG%LRA%2mwLc^y?!l#5z4G9hkoE#>PnCU;uPckzy zEI2AK#LqWiR(QnZ&`FY6q4F6aLE*ClqWr?91x}eH2@eaIB=_|Th?o%>JkvjFx@1aF zgl|-M;Ed2Dw*PM-39)sh=1DP6)BJW%V6Pt zL4NWGzuz7rLit7hMkADeDi&#*5%xQOq~Gr(GNItW5F&*nJaPb8JAYN#w+;-J4_1|w zFeor&24$*itS<;h!xqY2*Gc`8{rr^GdO$e|Qg!o>HD%+U57zZ8vHN|?G}tkJ2OS-q z|J*TNq5hG<@+c4aY`<{ZNw%SOI{(@reJ0Bz<^K`mueJS;*#Fe>f5KhQ^AA>APYRDD zn<&Jej_p@Z(XngjK*+osRvUT}XD6pRtvE;>l`Io=7WVPztEQ$#+)8~?lT48Os!1gJ znuM+)kvP>gTS*Kg`by4!UN{Sq{_3SI_&oC%iR4Zb3DOy_vrV%e*Z*$T7^G9w0ySz# zLpt66=l2B zUsRZXT`y{l>pP=nphoO~COS(sni2!ucT9X zDb`iWJX}eqV^XZ56DUzr%HI&z=|s7xb#qtZj+9@u*tQX~gCpg>5?gXO)|UY)M0~&8 zHi+!+aCwmJUlzzV(l07fVoSZ0#MU<=LSkFTPpN;yJSj9d*e`_eN7b3WZ6G!M`X>lK z8RS2QN^LwLQmizIy7l-wzP^M=&Ewzk4JACZzlP(gb~7Q@$wy0fCFW^`q2S`ch zL7!F4V+z5vKWc9@?IKx)X`QywOf{`EcY-96dnCKmq52=nLsKltDopF9q@px?TK%(a zKEVz3%#w*yy;Aw;-crezN^ryeEJ@{e`3Q?7S@{f4De2(k_jmI(Ag!u3ql{6cl3n*i{SO_FCOZdJOk8)Q{o6B7 z+S9R~(fr?^c@ya%WL#>~5{VVjACdmQ@zkjsR{5ivFD(tIHvdbpHSsS0)XV(EjSydA z`(Nta_HUg_L+SrDroMsBOSSjv_5JG^)!Z$Vd@8&6XM9}nNv1N>wtu!)MABwUvMNztnttCa zPYEruuBHA*#b?*kRcZVG*Q!k*6}-`~ib}5vuT=ahzQ2_JN$jRtC)z2E&A0}=P(S!z+rNLg8~^2^OS@FX zU(|k7u@&{Vs@RI|8&y0-@qcUl@|P+6tN7)w%zx`*{tv}34Gn?Wq&FkO8Zk8G=X*U(en5BrIZNK zkcTe-gh`kp6y` zkB;+u{8CH$qkMF}|0;fYP1+}t{O{tIp`^c|gin=J^Z4B-n-CB4_wkFp>J>$uQ~tMi z_Wu(;S^Ix{vOZnF|5DWRm)Dbjc^gT){J+{K|78mQ$|wJo`G0&eUE%t72lc4_SLFk! zU!eGZeDXi)<^Oh{92V|3IdD>B-CI@al>ePic670KsJ~VI`#AaAWTFdlnAhJ)tR&8o zo)Xt(_ZuFW^~(DH_`5162mbGNQA7^rnudpSgN|zd37xWB@8(f)Q}YD$i-VlB(Fr(; zyf<4;Ho$Sx_KD>8yMEemFXKggMIz*V|2C+NB!a51d z19v7b$}X{#w|11bvMOSr@Z{aGq$@P6L z^kXerP3*ig&BFA6r9qNs7i&$++~wAuz7{5lp4oD%H;xu912^bt>a|)Pm1}*$HDMs>XkhuE-U(Pusr1?!+3_Ge>U)zzf1o;%0B+Rn?|q>Y1*byUq?Dc%Kj4_T!hUAGRu+KaV{3w zYE}k;9aDM)OwZArZDj4_YT^t93}FtHAZ$yS@_x;#L>D_v5g)nMMLKMisB@2)eZ$CRvFiE7y^+9XS_bDMtDoya@E}2 z)QF~5kT;Quo)U>5kxZ9Jp!M>?j7MNQnj z>zha~?v|!Go3-70&surFLPB2`m|Dsul0SQPkVul$30tX_X-<*0Z>4gzN$<)oN;Q6s zQ{QQKo%)jemQX1z10**Fnr~EE#UoQ~(j93t%}LTG?SD29>~=)iJ>f9TDb=p;r?heS zF(uuiZUUA?%J~qs&Fa$D>RQ!5Nek`s|1sIK3>(VsP`8ktszv>OLhph^Lc}IA%j*nr zpg)UqCY)Dsg}DxS(`geBn@mu=^6g_ZAE40D;k;#8GN&*dv9qA^}aWM-jzrW zlE#-e)pl(du`yR^LKo_&_wq-XzBIk5=e{v_a=mQ61+`OS9P>xX$s;}HYnb|zISF-> zOVTRUENblDyPmJ1X7|vFD`~1BhoSZIt!L5mSW@L{rGy#G8{K}E9~aNth0}&F#Tz?iz!_fA z@KA68o_c6Dyb_gy$B)^Br%WxvI@^<>ZI?tmZD}f=IyeVTDx418))nG0;v8r_Z4dU^ zHWv;^iideK7vrn<0^x-G`OxIt0yy^I9emd-9wZ&T2a*lVkf-JN{TGK%D}|wn;5@zGmy9Zj_4`3 zfh|u+V0>h~r@4)UiwqTw9YSgNY4ajRY5cD)30i2g5h*=cP=!^)z>?N5)1 z5j9`Mb_H!vwCOwXDyxA$3@Kz@Y+fwpUGI;!js+;s&xbLwXOYYPQ(~D>5VyCRA6Gss zfqObWl{30Fi?a(2;!+}ZaI&*q_}(X~xeu!jaE{X#a%D~DaWhK>b0=<3=UP?9b3Nln za5omjaE{#;a8aLjaXDLKI7^St{KH*yxo_K+bCV9t;&$tKa5is!xi>reb6y9=apzC0 zB$B^hnf%T|{lD33cIC@eg1C)lrey1a?6-Fj1T$ zegPklL^hPPykw%p_2O7)%O-%4>^)=#yFw(pCR@NxV@$vhHcfV&WucY$2=$V!W6Ts= zfd{JtJQdjrM;I)Qf&*o%*r0NA_(7r1enl=YUC{+U{5>|X5c`y9G?}Bz&^kmcZT19vp5FlfeLMBFu=Aj5$Bcn$L-)UyozaoSHdj# z8EwFgaUVPa#-SrH2undMHbL{S0my{vI1x_-IXD4t!WYFH^4v|>3T(uhI02q^ zir4li++t7j--EN;J)O0PXv(Lv3&FU`>(-ilaX7VAXq?;L_P!k#=@9igeh5 zmYA900~g!j$M;qugM?%dc>#c(-B`T#;b`FfMgk@m>fw8*v(UBS=6H=uKH9;sxQV+N zh^g*@4}9W4*+oyJIB^eM3mc2qU1M>i>?k_=AOmUHbihR;o!NfZs?pFM{qRC-4*;Xm zk^WK(^uV%>SlrD4x6`fX zobF)ElU5jy>kTyejlkx*1M&W6Zn%GGsF<@c6r~JViOerAKyT-VgY)OlAgxSe&^9=U zUBXSqRyV>xO>GB!XJ-MM?^BBs$6XO4qZT9c4NJv&?=GW^SH^gX`(TV~ZXsQV(XVS6un>LAEY=o5HLAjq>I5w8gulwlcY) zA&T~MmMQ-D+^f8?%O{sF@usZa;XUFEmJz>oy2uRq*qKR>G$;@IqZQ*CyIQfNrU|og z*#X(Z)3cb`35BxUMGIK-qlF4Nlrwq@v_uoH73DS6C9;LH)5}NAILIWv4OXn3SgdG$ zAiaFMe7vmhjT?#@eiU=1+>Pn?@&U8s{#NFs#uD*tP!^NjY+iZPqkHAS<-5v9*WM{V zcTFre-0a8r4m(=DByfu8<(MkVIp@a=`?7)gawnK+dM3SmV9i3=u1*f(i?hj!;^isq zTK$;v#9*1MX7EGi#nR8R5z}rm)y0n$YOuNJb?BPnXZ%&g-Ax03C&D5vN>XUwAr;DsCr{_Ca&776uBdau~ zdeb^tze`h@ZtbGkTVXBP9W@`zx96&H>j$oYnNN%%`Zxi8?)wuy8eq(|a`1)k9{zy) zp4&sO3HC4`))cQ=t&HbjT&X*}oHqbU`&+>d#|FWL zW0$~!TN@w;hQRV8Iq>9jclbp&1a|9`3g7i<%{6Mg0Q!~{=USEfPVQ)A$$wKcHm+eOf-|2p`C%>&=S4^#qPvc;$$NI~jY z7bb%a&=P6j-C#6wM$K_scnzEb7r_J25uO5-;3R4X^N=>~0t$gGbO)O38ngwZ0Zph6 zzktnz?+Gx5&bSQZfj8(GScbMBJJ=i?7maZva&FcDd)SQh(G_ZA5flS8LbFzspiRI5 zZUsAlE^LB}&=+tX9R$^gh4aw|wi>+#5-5RdfemZ~7XW=SmVgS;M-YT!0R~?cI@l8H z5g%`d5D3OuNFQGVpHXAH1l>d#;y$q#&SQU|v*;Fj1p1-Ns9GF@PJ+P*kx@>dWcD=3 z0y1QWHlX&{05$?u;$3hXg|OP#1YTrIPz#(RrlJ}$KOKAoy#-ZZ7TW{wU^?QC*aI~Y zb5L_;Gm{REh{dQUK7e{51AGQ8K`U4m4Hj1-L--Mm0Ef{hbRDFy>g2?$2A_yVt}uO& z6*>oOaVmO2PT37$GWrZ^KrOflCKDbE4ui9xF}@4D$=K__578d42ED;zkfksJBfv4S z6pTT}a39zYIPeg?2j@XB=zwpD834)NB2)Z~2?v)^GPn;mp(`MstWH}n0UZMBcq5Rp zKH?2@p2RVSz(MecL=OeT25zBd@CE1&u7HlyK~gY|4Jx({BXd@w~kf%XA`-2_s^ z_ec+(27^T&Zy_V(5?h+iej+C@L_8Y@#-mi^iMF9dD3!gAh64c&WABPzksZiDbI=0R z1PlfPKo?LWnu%}OA^1G^PhVCZP|ag0V$yZ<>E51do z#CSqC6fKY@8Vp*CN5nLg4Vs}P>`D-g;?ODbq%ktXJH&j9NCc>X2Z3DH24_KY$m4G) z2xN<+(K|Gfwa3%o6_kL=P$2NZCCm#kpB;s4!7lVomPl;k0I(skqX=docW@GH0xy6j zehxN@32+i#k6iH=xES9h(N`4ggL|PY91FAY6I6>HqSc}8*WtL zMfzVvqOT}I-;F1eXzc+~z~*G8&EXxShCNB!9{d=_!cx?jOGIAq6?+u^fx_V+EaB|n zBG?UUaMaSW*ira0%!8%4DR&=kf|b~c+YAqa6fmFc<^=c-23I8G#jrP$R4hQ{Vhkz+ z7Zr`M5uN}|@mVs{3gXeOAr23QoyFluvtk2e!9cb(o`N`q3GyQ|`vx8oo#{YV@Pu6i z+oPXk|7mjluv*1f6a$UX2wa2hpd;47yGV>C0&P@HBEc-!o*RUAphi#&$Dvu^2vDnt z1?{1MXkKxJbp>JIA>na>jj?^jVQ`U+XTRggVgh!BOJFK`&KyB=N#rY#7`FuHifuqw za%ajHgNc8+MSNL_*qrz>L+}y+635O1<`u(WQ|>tM1j}V{I2Vi}zQq$CCVtBRnKBPS z8?;>^!LvXfF2~KduFwPPDY`=z_Qn$EBKCkc#m6uiCZSD;1rWH9+e9wDgyo_;&_EB% zDv=qu!=6C_;xN<(ZUQ&Oa4`({5dBBs8ek3Ym5n6vwSWy#JlPpLSUq5Y{NR3B7wREc zDfY!xz#88mJGz=JBX^Kfcn3Iy3lNWAfwttvunX7`T||W32XRZ$Z!1 z$W0*$AB4TQ2yhKgCjPz&`y7)S5Ah}ga1rzcmry*spcq2@bOQSX3B-?QqmS$xQ5W4n zPZZOU7MhHPpf@NSMWa2XdT1cnjYgo^pgU?0Oi?*7X5J5SLMHilw+=@rzH2f59#6Ph$UJHAX+914$ z+`+tve&z#DSPIS{d$<4vuvbtAvL9EIn`Z_%37dfm;1AJZz9oTcgL7P&*7MyWtw z?1E3Cli~(26AeP<>=D+A=;neb372Y!gBZ$d6N@$3~UM?vbRM;ppAE-$_@g)!Tmm_$6G{W76+XoGv?TZQ186bPNh$HSFOe>cAo8amE3$JF&{Gr+ zTH)7hDI5=LiT{_tvG5)GDu%E=U?Um}*TRnYEBb&OG3`eK55=!fxMk>5;4eA9; z(0;KgIi-7w#;6}&3+Ayc!5p!(SStpDZqNrsgRyWa9u5bCeBu?d$#_3ePu3l-MVVkH z3WGh67upQt#LuWHw+NUJz59awH~~12v*t0{0Bvw5+#C;ugNPP+;(4OQEvPY8hjURR z@wyo}nfPC8e2pz@Fn6C?t&OR7L?+L z07G4L9XrC?;$n1;l+Vcy7tvWb0=y%8>JZV32G)YzVKH_kQI;GS;XY*TMvH;ykfK05 zuUOAC1Gf;-AM4N7D*VL$h$H|U)fX&H13?kmE4LP~SU`M=% zL_l3o2eOYGp%dy2QW$_&;GM8HoS=w-JK2xKc3ML})Pn4WBA7}>SxZ*T9=elv5%HwX z!&H0~J|O4h5quJAaCxjXnniZ=1!B*!_yJmo_Q_s?EPRk@%WNZ2mKSOSu9AqdH#u>B zun9<4W{!5UDQvo^jkg1dVi1Y4UV+8%zG6Pu#kLfeE7qe{=p4I`nGg413#>*W;5>X1 zI55LOcf5*3$*rI!nNxT8jGSGo;b%4u?+3xKiMSrELp;hNemEO#M3G`1i8!{QE#gCD zO?EhkW+M%Fora2B`#-V>{-0T}fYw}7kQv}lOliZ{S2Tq`!^ zcsLw?0@3gpXpYY?>f%{shxfu_xC%c;>&SWclSKAX{E|J#_#wIC2-rX(-)dkChmyVG z2A_gtaGLCO2WW>Zfh+vL93cK{AGtRbi+e#g^bF;R>(Hoj3usGL3*bz=kesSh$nNfm zBt%bMibY~y*b}<}FSZ&Kk*IweXpMDY0W<+)XuN=ih>1{vn&J#L0A5GM#P9Wor%*Pt z5m*z;UJK8VnEf%D3wD97a4X_qHR=o8i!htKZ{_`SN)cuP1EfKCWn6QU35F z3=Zw{2a;w;zchBj+r%Rm_6Rg-ou`{e%kXlC7Yy_grv1m`779Ua}L8zZXrWx`5qh z^u^8-Ou=^hM0DkQ63AC;#(sXjiP`1xSh2L9nb>vdcBZM$Wz_y|OVra_3YIR_#bYX3 zg7Y7e6nWRTiXD;?M0pj9ny*U$YmC%TNQ65m{HZ1Gx@-petM>)feY=8jRjI5=TwgG} zgAFiw-v%_(4F@kIU1TjcO$1Gb2cd;Ox&YVl#sJ$!Gb62*qMBpf!Nw;&8RPzmvOj_% zM5k#C*j4<9b&MYjW;hlIQT<|s<%;XVc*FI=kSAe+ZL17nj-`oP?X?+#X4eE^i+#HA zsxnEKHrL8+@F73JFv3|7$EFBX;|qk5Lw*W512`dl|8k-G;-A8+t*3+=lNJjf^A-t( zF2{s2{aE4Rt~@qiX*YQLY;QQ^bPpJ8-WsM=4u!d~!(qI!8@xHp8Sbevhx%XdgIl{; zc<`w+bdC54cG`7@oz|K`_ky2_@8tc^!Ti(U#mhl(>=GNOv8^kdp4|q{o9qJfEg4uj zgMmX|NMXR08{qf=J=n&`5w=`Rfi1jl(HV|tt`5f?WT4Z_r{E7?@@C|HIeNvV zz^9MNyM-(B;hZOdcUCSjSFdH)Oe_9Y0;v51A|r)6RDzyuIv+5@P~}vA0%)qS%4iOiHs>$gtTJ_Kdm> z&^}dw%;ftOCLS3qD=QIqFWSpaZ~3r%u0-J#}z zN=Hb+hk4q}SzlKqopVQg@1u*n`*sG;&*h7+hHepuZFfM=lI##ZwVu_J^b;*z#F8>Zz>f8OC@za?j0zogvd7M-qk!ZiVvFqWB5c$WB|W_%7Tewsh5UzX zv2Lk&VtiZF0UTpnHgAqDKmSAY8v2MiF{ny3ZgfM;?s8Xjy7)|dJ1JH~wLioj-*iz? z*&%WL8zZzk|Gt>5^MLI#?+mw6orC!r|wE$?2mg>#LsAXod4Q=2X9}gC)k(V=Et2$;J1uE!KYk4!tc12%=cLTgsKFOw#-=zDTe>-6Z9}3T69p9FCfqpHCc>7?3 z`S-~?n`rW;q7uzqc$W>giDe6>)!=v0L!FK7!TbDpJYdj8Jn)a*_{Xk&%oiW= z^$87{GY2id@Bo;fiN^<{pJ0Q=+34cLXE?!iyLd0;F~)by@eUys<$q5?T~iIPnaO$l z$Mtvk#Qv?g@@@(;v(v#pt?%NlC0o$C-ML68OU7CTYFM0JgyOoql_ANz@jEJl@yfghpx=isrMC;kT~11$d1GD-y9~yb|wR8jh_)&*2#JNqAXYH8S1w z7~M|r!0?9)5@ueJ?f#jM?cSbO9IU#4-A+vatvW158Z{}%^7Ut|UyzJr+GQjA-p+V- z)C2S^WWD%pagmsGWE`@4_(WV0y#}3MzFlk@VT2BRXe_pIzl~-#`N?`5HN+)_x6wqK zYp7k$RrZ?uMI?FsP)x4o*`Z5)#LiRfv5!m*;a;U^UchyB@ZNJ`&|GuoV&-=7v`rKW zvUJ2YE#D!3^|s=df-*Ft*$JeWxPzUzt{HZ+8X?B)s6mf%2jPi*<52UBN0E7KR}^&I z3dzpy702~6WSI8G_)_aRXgJ>;&Fi*a47+`kz2m(WMK&?QXHw3HJ8q_+E5#a$7hQF5 zftv@q=6_P0w}V5*t_-@<^(tyBG{ZA*Uqo}jPbMhQj6L1+6f$}{3!QaqfjYuslsk<> zlPlVwwNHxJ2RVPBLuE-~$@2=f)M5#vpS7x7_vcHrs_ShO(QZ51n9&AFrrbyO{p2XI z)prpeu}7thG1eZFgQERqXyS!SG94Q?P^`OxO}yYH>X;Ow$}fi$lV9&c5APYE@*H2p z9$g{sNqmBGTgIcsGh3m-;Q&SX?_*0edx>LPmN1Ju&Ju^BeN4F|gN=dKtb1i&S&N4n zO#8eqjOV9GjOoBvET{HCjEld{?7cRf>D2BrlkA$KIHj1%cHFMXeth+i9rG&2b?z8) zL!RKlY^b>^GjsV?zPPFpGi_mwVoR|Oa6EFCaaSBD_sn?3?u?zzTs+{&wBmj!`nTK9 zocQF#RxK?8cb_yu;|h-|qF!wf@A`I7tm)@aKJ{o#*~T-KY)zsIGE82^FwNeUvE8Sz zZG>v}>5wgqMY~ePgBfkn_`9>p2k&uZ`ZfBb&?uRxu+RUl_`b4>;(g#CMq`6ID^Xh~ zdRISGxV3u6m~nkX(@mSiy)z>e*@rTjh2~{4yhC0-Wc3u+*54PgAN0ya^Mz-`Cv%Wu zYx(5z!0I%G_4<|Ks=dMDrW^f5XOkFad7m_EKX z9}?RRe!}p+-9)p3bj5?|ne4I|m299^OR=ZTct!r>ZsM^ahndrshKl)-P1qa4B}E6x z5z*nRp}4ptN34>rX1)$CVyEVRQfy2_jGL#4_^GCd@t@sM%+)w4I{j1=2VdDQ%HFt& zqb}`NWIi_*?;rJHk94;cy~<5Rc5Vl8@waNGiA@G`(czV1#uyDWO23&nd9uEEcD6Z_ zdU?0_YHXF_{`eh=<^I*oiIbPaS*xqXldsx~mD4VYQ}^ex!FR{7&XRRv$%iy{_m^0< z-(y>`-0uPN?L;c`rlcclmE|N3?R8U}`D7it+~_vb@>(==XR4N{vo&69vFJ3rtSVa6 zUo=A8xPB$`*}fkuJU^$<8!r_H`Ylw*Lo3)++f3Fk?k#gaYbld>KZFTByhhyjW&?v` zlf`B)Jr!NLe`LDmhOsLKxrj40x`-*$H!4PUFA+KGY;N_|rrhnd`7mVKO0J|uDXa`w z%solX=T?bo+=i`_!LsLW+?j#xxZ*(x-1LDt+{`$AE^(e0*L7h!cVns(H>KbX9AKx* zB^cf2?C(Z{A>rAaP1H*6m5B{E-_4phfk0^4c{{u|@DSG)GThBBnd0Z-B~Z&blS^K^ zoco%6ne+U)l$+Lf33oV!Lfu^@(BCkFn=xQ9*LlKY z_@ws^IOzREaxa+A#lLz76Uq#^2l>yr<^dhJ_m^C_-Kl4owBStowdcNVXvw)u^y6f$_i@|Kzv1AMUU2C7Y22m}tDxoS zN3gwa9+y!KIsd$E930}!nR)+&_kV1Mgw*np;_^&xmqF()XW`P3 z@4=d`o$-m8QJ_`Y5Zpr}5A0fG$q6Nn*dp;2>fGu$2_zSZAK5~?UPN~wHWB^?Fo7&^@AtP0A6dCg0IWBprDy* z*nM3-8eBf3+Nt3&DR*l%i*Lz_P(|Wi z(6-Tev1f-X;FIk=reJIbc%aK#)N5%F>bopg?D5bH?H%X}40h&=wMKyTyp#`f&Njl5 zxg#;_W&kU{C&I_}yWx`W(XdHYOSm#Skv)-P1T}8oLiP)saL>y5z*<})I^Jl8&RLnk zwP6pyrQnyaiFG?@`Y{aL(vN{9+fJcLH%*~;xGCqgOApK3laWVkku2t|0jioN0SoSZ zV4r-of3Z9H%VLaAM|afLnr7ysA_mVGz@OPA)u zNAFL7W9dua>2Z(H`BMha!Q&|$FgqRSgg3<(@~fD3M|v}I>u7Ly?0S*sE`UB;kE6os z0m!NJ1Uu@~d-3hFKwPQw2YdgHb9vVg8?dmjF}gjr4banDi;_$fVFe+lSS=7r)?du#lSy6tk+1Kc(4-d%(ure zmWR+KEp?nd^({<%m4&pnZ9z9YTZo={r^OdD+Jopq5xBOhVTW}+CA<5+Ir2;?14H__ zfz<(vfv$cQ&{mtu`uIS8^%ryQ{Mk{_oD{%_KRl4@=d_k3rztzu?&+ym{3(i5_L$Kmos}10F_IBhRJxb-T zn^!SCH+5qt&RxvL#=EeC@~<&wZ!_71Wi1b|>^U32 zKDYzexUroX^ZldQPcK<^PI`hg?ZH~aY$-xq1{y?z2A#IU(wnPkSB zICrSaf~O@vg9>n7oMZ3kx@_*dP6`duh1TgAg8SQSVRLkburFdd zzini$u)9;b5LteQ*HEYnlX|ol>~%B+rw0T1oE27r$-Ha)L?g&&nsa=YK%SR*L4K86 zH%M_{hAV$&ks3e$*(L5!Rv~{`dnfC^dnfChRKot;xs%4}yi>T_y-=U)J%T@1_a)tGxy9_7Z_FX(F7yW+?3a)I?|vUT{rMn+ZNA zKJqhfnDhE69r+7GI`gl#bl{hV^@1&DS=Z5nKA+-y%@;&Io7dp^KreU7)w{iZKmW_>&*)o40G*!sgq zfG3lLHn%1VFP%2?!#)%VZ@j#P_ER45**9MDg`B1knE#%)b~?vNtD6fiTHoa#ez)SI zLLKY!xZT}(bG-^^!8!BVUpwBZc9(v3BFmBj{GbYky8ceY^O zF4oaNn>pGiMe4P`P&%Y{PnYw(UrBczu8``@4tFVdH&+_qw~+s8=`DC{@)mTrwh*d| z-|#mNrwNUgW^%XsT;RvOe$JmgXCQdPcl?0$fR{JD3h`SPHSwyiXH(F$p|>`Bsy zu3k_8_uF^2hx~@H5j~ zxGlxW{G4@N$Q&@|pm&(lJA9sF-W}yKd)ELeQ^@swb=m3g4k%cx=7POiF=p-kn1Hm+ z%!LJ!jP`}Evg0m?n1^{^W$8}-(sl*&q-*-*Nh_<T!>lzDshj$X4J?5_Odr_C?CBEbeJ{|>h9wza3iM+*J^Oh-`LI2a7 zTEurIV7Mmhw6ZZPyQjgfs8YC^yXvqTExs``m|4>H{TE4xZOD+$4@{D3#XC6R zEA^|hFEVf5*F;^Ya(cn%{zxUC{LvS-6rUvWWDwc5lXW~z#w+31++SBGGqG#ZrpI63 z*Ob_0bH2){DIZns4Jc0Qs7>@7&83g9=iYLcIosT0jOcTg(OYtfsa$rJ(TL4+{rc%D zGu!YeBlmNY4u3md+Uv=DY0BbA>5DJL&QGJyN~gQB(%RYUhz%bleZA%lN1o)J7HE=n z(h=x-NhFEH?lzHj#K$;p;N4wT6PvCi?NiCxf390YRY`OuQDL%&xSPkDau)K3++L?e z%vHr==7eW5qc<#p**JTs>qDbe%xv>mCaYUFscU-|sl{Pl>U_Xe+Qe3+w0p)gTeh08ub8niquGO`&-VpMtNR?5-rSuj{rW^ts&`$@ zC9j;365m8@c?wyxXnw?E$V*pPP@5)eWkY<^G^Gza!e6df!@J8bap&IMAY=C;GG8XT zd%%Hn@3>v?0oTcNETl4}bv(iScYe#xo*EEI-_+_$T35n4nhMia)rYyd5={Ryc2!9~ z6+pjn>P508$Y#o=>oi5*HFo{;hkq zhyeOMO8V?QN+gN)NwE$oDg8OY`btdaW}(Dp>h!x`^*nY2(?p-8*qM}+$UR#mmXAW(y-L1v*uqEjk+Dtuui|O^($#en*OQ~q*3<;u3sdLI_qy( zr@QJ`(y05&VZ%DzUB8mXKYZYXIH~fAbtvA#- ztv8%8tv4Kz)~Vm8iTalor1w7c)w*BWKKQr#@Zajx=cy9qC!fs@o)Pp9-_H*A3#MP< zZ}4Gl<@dCGe5OQ3_&fg1|FeL6S-L;>-(f@s75;@$%SM!&DW-}iDT8Fy_v4BvR<6ZXip|LnNjphaQ|fRJ#Tt|A>?@3mp!5c}RNLI70gOYC)tK1K9 z0;;hzDOS>(G@$D>pzAlF8#SPtG@!SoSSf=!#Y!1EQmmB0ielwh-6&Sh*S-PWsR7-k z0iA6?r}2}jpWY4V{V7(;;6brchM^QIWf)GeQif3!D`gnhfIhJSeR2bOKm&SE1A15k zdL+e48KNjw$}o>&r3}#&D`kkISSdpy#U#_Tqyb*ufG2}u<+Irh=xZoej+;xda@;(M zmE#sstbBGW#maGaQcN;Udm7-<20S9g%4ZKWpdX=FIqq?amE)eKSUK)_ij~h^qF6a@ z4aIi#-)DNg%PQfOK@E_>R3ua+C8qnEx-i5}DZeNv{-kbDDreifBG>UbVx~1Qzr*!HnDb`i$xto%%Pv{h@ z_??w>BSNQG#ou2^Hz9P2Rs6%0bUG)BRs6n6x;dd!tl|$+(uqhCidFn`D4k?=k~5Te z6)Cfn_yytLs>Jl(cU6h$nov8T&z2D$y6zOyd!Hs<3o;N@JH;v)nknhs2%Tb;45pM$ zp8ZC$wGuxkc$^Z`b@ox>X!7hdC8ld0qQq1-syibR=9Q9?9+MQ)RJZN~(>0>UGo{mY zu~cGBQc_k*FCwLf64QR@9Zl8eG$j^E8KT6bkVGgk9iQI&C_i1V*-A{upQps;q+F=P z)CS^|n2uGh#0N-;l$aEfDkVNZ$}37t3dzj|_=yt#FZSLCF0Sg#AD;gVGuH|vA#qSU z_d>`F28AISh@vn-0>Ny=t7x6yXf+S;z6wx(9g`+e>`=Q6?AZr{)D`+k1!+xuad=RW5-&w0*s zp7WgN{JD3ieSgc~VSHafdVxG7^VJM~4)8n%Q@J?|2B^D%!PG_`2Im33k--Z97c#gI z@XZXSwk}~XmGvNlhXHS6FhJcm6Y${#Jk7mHPP(39FxBN~0{yEDCYi}!5&aRsKVdMH zd!E4nb-!frEr5T`;1a+W7+ePULk3p>{)oZU{$z{9pUU!(jR778d?SMa>Z%g(f0KZx z^#WcOnZZ<-jS2LRFqmXMz~B>r|DM6MfTIjv4)_@c-vzjj!8L%t#o&7Y)7k`;tLTBj zB>#I12B@1%z#9-NaXD!%gTu2JOfoweOnh<~d=l^?2G;{FW^e=GlhpYd_9Br0M2LdUcfSg0qVY*0Ml9zm$RM0S)d6snE3xQgAV|H zlff?n{uc%V)cu~p-GI$zmFJUytqi8R%wTW?u#>@01GeKcliC~K9)jm$r-i|GHZI@7 z@IS&g!FCo8moxlZ_$HY9@RbaI7T*MOA5LvgWzEMo>4nNV$6%iKAjAI@-vsl#BrDPX z9N&uEYz%#l;orwM!JM9SMD!ovn_xSOdA?70$UuHk8M{IAA%pEK7NYudnx7C1nv3`* z*v?|4|77@2@J%q6pYDlX2j4(2mnVt&3KPBw=Je?dZ^bvkoL(e6F0ZjROR8y|oh_@{kYiAQ&<@8O-&z zCxPbg84bx!FxT6+7~X|%g1J0{3_l;=1ao=5$MAXhCYaN|$?yyCO)#hbG2tO6`TKJW zF2T1IIFh-L!JJPT!`}it!JH5M_7c%kUV=G&7Q>eTPcWxfVouOk08cR2TQSk&L;l`N zFleaV2Gn9DPd;dcU0FqdZm;lY>2 zu7wPyF>@)wsBZ}L1l#dVm!ILu_6g?r-3-4Mc!D|q0}Ouvc!Ie+f6wsUz!S{rpJn(b zfhU;jXMpgKi^jU|Fq#Nx2u!10(gSC zP6C97Y&5Q}XEY~4LonA#Qv%J`8O=Co2| z8O>XuA=u95%VP|G7I=a={#}MY2Ry;NtoIrIr@#};%laMRQ5NkDO){FFgN9(9mwvN` zZ1sKM3Fdhn4F3V}1ataKhW`+Fg88_A1H)ego?v^PYV-78pQXZ9g6FC*{pWZg0Y8Ue z@SuybahTX~_?85?A_2ZD0j^DeHzdGY6X2Z*@ZJRY$ppAB0jAi1%P^b(k0-zs-*B3r zCcqygz%!;I;&KPXgSX08{_x z{Hfn^nED=vsn2kjY@NeoqZ}sN;xO3LS>r)^P#Bur0bu2)3y3 z9Rw$-a1Fs^Xt?SLPFCS2f^90?LNEohxIzSz0pdD9@D(Z?A@~a_{2alw2!v~p;1m@; zK`>tjCYY^BlmDFHnJWE<1haK@Y}aV($pXQ&z<_HG!PE(GWf9EQ?ehp`>-qE> zgnW&fem{_}|KCOMHEP~kg4uq-27=i>!d8NvDh>H%y{N)_36@m&NrE#~_)q=P-6g-L ziQkdl{MGdju3LM5{e4Xho4%G+M?VBjzkQjN$9@Zw|Mcc(es}s${Y=V#fv@rtou6ge z{DAU{!+{6$^Ar)(TmQYA3+`R~z(zlQ3A^6AcC(z75Ak@~;w(?XT>|A2dE-Vot3XR^ ze6S#ELBgFU>qhMkMdV*v#7$b-;;e-ldDH zVe?J*dK=}hX5~-SBk*8hR{oUa37OS0^QY<&c(5odf2tyzZ=6=nR6RB?VC76zC-C4+ zS@}~HNXX2}nW|3U!G&3#g!)Wt5l=#WJZd?f#QH4A@+8z}DzjRSC$T;^W_c3oGp$)X z3H8ZioFA>v5*K zu2=C%q_bk|I;o_n|2W-$Or!h3=g|FT8eKOkcR7A3C^WI$TGZikbk|O!b79=vOBvb4 z6F+kf#2}w&}AAfEjKIc^89H1J5j#S=g`p_cp}~Vpu3#?t(ivm;@r#A zZJkEfl6`r)N2k%1VXy6SjJm3;c+V_~qln`4K&uPP@j-ARp)!00Wa% z=u+@aQ=5chbZ3`fFBUj{@p5U3l1SGkV+|t#!Rci?S-EKrc1 zg$3-#zyJL2v~8wfg4Ka`ax*SDea0oe^!p~|caFnW-FOlInPZ)b6X+K<+o65->&MvR zR%nButpNU8X1yWrmvU^eB{cmt);(^Qk_`IM8FpGZTtK{WI|10Uj> z5yg%Y{4ihJQ1J8*mttRxhT4{|bC50Zbq><%OzNk&$hXXd+9_SZGslXMQa2MYu~qQQ zFvxyp0wz4!FTs?g@BtyED|vyW@(H%HwH8{|mX|D0O5q({c)56QVNo%$)KP;6J&hNF4-MEk1m`YC{6Nm0(f^uATUBcy9u%tSK^@ zz6AV>1oO7L{;S(IZkGL6bJ^Uiem8LFlC_r4*rNKw-F$uJGnRR2@@Gu%Pc6TEPEpE| z%jcA%q* z3?K+DVF~qUFR~-We(+6cbblK@iTo(WNH9T#4k+bWmqdO|;77dZL#Dv_eFbnLzY^S2 zAL19$(X|SnM1CPKA-g4hWI~+ZR=|n;?!tZIMQLAA%qCcao9Z5$8we0uuFd1oydQg$S*8R2yOptoSVPkrUeU?NcYdjxiwDI2tq7SWOL~T@H>GsZwuV| zg7D65SK+Pn!hr*~{9O{>?Rtm4#IW`2Dil01TE$O{@^j6!yX5R8Q zZ|u9}hWmeV>$062Z_Bu0%`I8ST8dYGS-x%H`d{CA?2}!$d~@`-w|wiL^(B8?eDK!S z$H$8cPF%RP`~Ki<;ukmH^5bvsyyg163rcSO_ix_%hIIVa;=i3mF6;k=tBuMnnJT!1 z;QuCB+Q>B7Rk3(-a`Isvp6}J+Axw__@BT&^;D6GqmZSR;`2RCL|4sGzuSiSvODTm{ zfDFo2g8yw$F}@c7=PV^X;O}AJ|9VZ+fZBf3kbl7~4@NJ~y*)P3OScgkT z1I_<2SB2u=R2yj{duqd{gx3xDE0sFwP+yv4{U3Iz_0oh^eC%EXJ0~%gkKm+<Z>8_cUyAQ(16Q(XTqPy+5BD?gKa`B`NXhPh{Wik*;SyDr zlG1}cl_;kPX@ezCF1JEH^-8q+BUkoPsCnCsnhiHyCjOzAMU7W7;S=WKGY=m(J~{ZP z^=*UfCAT?oug67a*r}c^%J;{M`wTeWY1HZ7!9Dqx8qm@HVg>qOJ-$(oTYjLY?+WiX zuKOuudXdFs3n0$|?~NaS1HLK=@QWnNKmF?qYc4acwXMHI=S<&;dL|w3ge+=brheYF zc;oH2de{D9%scmM;eY(vo0*H_J6`v0`sT9Ra(^|m*nQ9Qw_W?}oYL3F?;EyH&{q_2*2L7snziQyG8u+UQ{;Gk$YCzLK zVjM(Bih&a2Gm4`qhEie{iYb)1L(6_y;F3HVy&7{O9#!I|*YDW7_}?d_!k=9;@0Q=Z zzOU%34g2sry+66-cdn~%>stIMVy%*rcea;$`^JvnMzPQOk8QUOgBPu1Qw;YQzUleD zdVEvtsKrD`qqW|@UjH=>uy_@1Vnr<4t;`G5`N0RJq+7bO@OdE3c(bnL$=eYpEA97| zl2Yrv_Sv7~)QdWI;IV27=CbO%19J|Vdt4?C=J7bPmXOU++fsX~bBEy)Y*ZReW(#J{ zB_%Y!p%|a9L2>&^wB1CTRp-)*fPdjXb!|e+q|67@yFaBTqPU!nbh;`1{P)?U+K)6D z{|xZoxt7ZHuJ{797r$=m)ddzCI`VbDyVIJTS(06FMTbKdxYJVDX@!!@ zQ%?I*q9Ss;@=^>7=30sOJ*G}`k;R>a6F78cr^e8bwpDt~D~)a)G#xf0&pE4ZaON7@ zVGDz^Hrfs+sqkxMt+plM)A7v48LNz7fc#O34*DR^`05&ikY29WRpZ&Zh|V)=l15z> z#;StDCY4~wG~Uk(SYyiw%-esCmoa4H3Ar{V*EGJ^aRXn$;yvW7@+|ebh%Y-zG-SAx z?~*^sx6iPQ<$G>>l_X^PBCqxtG74B74&v5jSh+uS%&x1FR__0a%T$hyFqc8dELj}! zp7_Kcd9}tgWZ>dv6vQ0*Tys^~y8S;>_3>ZiU#{^V!^Y&F;2)WLh`7H;YMG|*LW3|9 zdO`CGroJ>*gHwZPhm9&+Y|AL?lQg`Ph}Rm$#<8UNn`B*~p(3pYq(%D5RG-XLwb9m> zCd~9ibhQiitNiwy;wm`X-vN_zrR9|kr<6qwo87Fr)BA-nx9)vQ2l`n?fgt5c!zof^ zl_5LRFy_&@^t}1@tQScE=zJW5`}E!Rj^9tB#)G18lUm|Y9W%5|c!!6r6fY^zOA(yj z8)7y)WK-#2OH6_cX_>96V4ZZP=_RL{mTMcEjqO0Kq%}4$6SBvCIeGW@em9ufrx&uP z6{b*({bX`Vej?-C($D|4*;Pc!rlh!{iFSVQedi>{*miR*pjkJ2Iqo;UCRAV6tGy(3MET&Em;GS|;y=d$xS>IPgo&-a*`Bhi$& zr7Ey;|2zK3Da2Nzh%2e&MW-{$YWbLL$WZdMGd9P~$}mTkvZNu#3vI)@ z=NcQ?)sTr>MMC?s7GGm)H7-mSstU^g1E!)Dde|&!3Xld3#kO8!kAzQ>&rF zsI|o1AOEq{SZpXVZ=3aK;L#OJ!moQ`8@#awf2`I~AbbsMU5fHsxRX0Aj)HJ(c`#N{X#_G9vUVqXVm0l- zF?ioFmMn}E?oiC3$l7hSQ@<(kL@IXdE(*h%db*R(NvV4aBD)VL#uc&_8rymzQMWGd z1=i%}UP?XhNQbnJo|L(f?&L~CM&OBbLx)S(VaCfsJh9D=f@7?u290+w{j}ps(gU&1 znD<1q1@&?i6dExgILey7H=Oaz%P)Fk_naF~P3ey~SRbe`EqbJB!EjT}aL!lD({zfs zA#2KwkxuZhpzPN@k+J28{Wo|aMp=bvNo;QTkTc_%+7r+zSUHciftzYMXq}~xI0|ZO zhW(j3FSH2yj1^0sF^nCb^u_LStf(;u4>|46I6~)6qz>uZcs@&fG8}6lvF&aJa3|j_ zos(i4&{G|fqoBf2V;qBK)9;$)KjbVnIRf^w+N_9+T<>maxfJPRPWbMZKP~?o9db$H z$$eP+hV%#FRY5tn6#2a{-ZJ!`KGv0THP1d|)4Jdq<|ILv%fQnI^?rqCHFyRZEUP6r z3Glp;nj3Ul-qZb>&jxy#jd#qhGx~*Dj+BB38eYnL1!7ZWcT0PTjRj%l)NqM>#acd9 zt z=v``AAXEWa@jML{pVu01ZuB&UE4`J$%BXL2extc+#mXlxj@k4+X;y=G&x%sKi~}wW zS!-jgZg3xmjqv$>p17yns8==K7gSld+TuZYD~oy;b69IUt47MtgD88hq2pCz)E89~ z0Y?3{$ZE#+^cgyOUF3-z$}1YNtWe72<26W6A57xj{q!#kK-BonNr^y z4FmJ{4C(!HvdXvb4Uc~&lj4o2oHBpUVZEP62eo%QQyz?jl9oR>eApV4Su__E(^9rj zT(AN*(wUSI2z0#_c--7!p?ZV#q&_fv-eF;s(~pX2d)CW%&xgfwo$j!p7Pirp{&Diy z?m$Cz50$Cd(+)#5 z-u{RB-I=#43^0_mDq8bKkq3RR6J2V{;}?rYxOr`~4TvdyBaEL#M%U_3QSV}orpoXb zPBz1knx5qy<7LI%eIVpz!`!DF258mXYiwgs@#oq4kdbS0%F@YzxFp=oK6w!GS4L~h zMIP_yd};KqRi>)4c?T{YHd?GCm&S$F9R>|wk^am-ZZugw{UeJ@WSv`|apz%Eu5roZ zhOt#7;B|{DQ!Dhl_m^yogyuCQb&8?XirKpy=7H}SUpn}uDW5SYp8i+bvW4x^|mfdgtOu!%X{P zS88Scs#Hsw#v2aFzN0gLqbb+ip)4d!mDAO)cj=4rm7Fe2u4%roDs@%9+POEHiU8-D zD;92Da@eE=^5-2_95z3dw8q$KiY#*Ot#qQVGr7A~n?m`RUYMK>kp|1nnY`zAoiPk0 z@wyh~XJnptTpdakad196_|EW96zGlwyAQY)nG5Hl$**TA(N0+ zAvf-GTZ-COy>YHSb>7nk%M&`myy~dCbX9MzagDV@ud9$J6H9hM;gV3(x#fow$yXp)K<$zv&&M08OD%d>5Zx- z*5H|$vpK6QZlg=wR-GZ8TaxM)Gq#kQb$lKYbJ$i{wpCMtF=I<%epO)I{=tn&Pg%C6 zLWwoiEgyE5R*L6tPhC2%(9n=yWGU1)v=jI6XBy>aX@~q+OJWoDYGqU_k=GA2-rJ^uvVV1!c(Jf!TdDYRP zk%nGj*7EYal9J60M=N{Nf0tZQYR`fK++v5MObNb}zdUoGMs$iIrZuQ=NlC4W_5WLgpTGC)N+XTvoMWUiObI zA5J!uR-~>kDEZE?{m`=+w%2W1cdse6FIw$wDu~$2LPoS-jj7YL%9!DaWg0sEZPFs? zD)MVg=L-xSPF+K3hU64W*Lz_RIX5-cMG7rBBzlp)(17M(f#~vYJ5SpTT4>T`Ga-!) zGN;cNU2=xkf+3!_Ojo~Q$jpbE)4O$ra>im;>5}M7*hXGiTT@m9(`|i`r4r3jV<{|k z?W>TB3{YwL{gW97R_STL?H=jWH|T5LaBXTd_ZSenlO4# z^`{paJ^tBa8MHJ|3IjI+1w_YeT_E!YWW*$_U0Jg^>)<)Zw}Zw9nlDf$k3U`cKYPrk z3lz9K5kq3G@qTR#OyB-VA~`KmK)%D;8p|FBJPcRB-Dgrbn7)*hb`)!|QVNeF(+{Qs zp@o|B=uoB8S#Eph#aY^iup8Ih5k` zu{yu+NF>TNQQmpv<5)B1+7PoQlstY0Y0S4E?V7|ikU{y}@$62do1x=)xL{4DA)5vw zo>S|B^&gBUS_$O;lrlKm?Vpx^L@{goRMpnl`h4w53l`h@npJ3-4Py~AQ^=(v<9Y}` zg^Z{2n~gS<$r1)x#4;f2Axp=MX;!Fm9uN&ov#goGcB-1VVX4y^ zGl4T}gF(MasjLZ(=wzH!+9YM)P}Ey_bX9eB8b(1Wa6@6WUM7vxQvtAo3|7=<}IAPCh6?TeaaeiPic=_oLs&`XJ3I;XR){Fwn;ACiD_a^&E=lJlz>nX$IsV^VnO0JQir@m5>bHOT;uU_w~ zXSS5GD-yECOV4dd4OoRSgRXmDhUbaQZ;wq(W`wqH>P+g0PBObHw$)UJdIx7U%&kd1 zY^tyx8(IBjRr^~-%)4ZF>GlU-y3ww6qNr?IV_3H^nfLsu9?*)JnMGSEf_*Z(RJp;Q z^S*TYWv#`@Z%&N}Ex*CsH}ZUb_tC=YXrnHgsaNxIy9o8dbIxJ>w4VNdm%l!m$+X3T z0foQoFXfMw66SMSCL&Q){=@Oc4ziw#pg!;R==N8Zvdk%-SQhZIRkt=}F!CfyyhQORjK<&99_n zNN%w~3{~&Sj&|p}s^`TGmbWGgFQotQ3e>x|aKz<8-4`B9gY0l!eIKf9<9f_isu2VC z_WjnG-NuoiSm$x%dFswCCasamI!6jeax#mKx_c4n>OyaT&%ZSYNxtXXq85X$pZTj? zTND-NcaazKdNrTS?31raLz#o`spVlp9JZiQGo6vzm1#+*M|E(Xc(6Xw4qg~n_HGWB z>oT_Z$5Ix~+vh^Nx(x246-Qk&a=>2!^z#+i*-Jqre&Z+ofxi(`0Pa4`9?l$$!QnQC->~}<6yrs4Ayn7SI z`KvTZ*eK8LjoKaw=FmI>Kz+&EnRsl_@?oSbujF2o7iwQMvyb_mZlydotJ%~jAENT6 zeADNa2j9xlsI;jVRr9U;;_iw~g(hd_@VpoF2nIGa%-QN%e$#Md$?(FPJUIo=zBFrI zfi>6I{f;}?lA;T}(=y?@&xrcVvFu!=`3Rqb*_JO0n$I@r(G56Sd(tBq0ID)a~da@m% zf!K4~tUYs~KF9Gvdw9Je>dFh>$BbY!_M~GRh9hmz@e%m6!wLkqoYSivQ z+8m+2nNovJYD`s|WJISMh}8gpyf4dbmo}uUXc67QhCIEL4O=avhxQH`wpp7SGt~5u zaqEojTX(%=7+b8fxU>S#=gb&;m*y>8g03?kfrUM1Al7tlG_|>Rx#Rfu?XTJ~{z?&D zEXNv*7$TwJbFS22tO>=T!moUC(z-pGbNuCF{c*Ldsic(XD>F}8bB^cqA34?*i8B{A z@Jd$mE3TYpbB;@~CS-9)Ck;mi+ai4|z5E|1b%mLW7H%o1zq`(iQu<8N+iV3CqK-xm zMDO!JN^XCBGu3jV{y7R31S+C0iznQQ1fY42jxQL|rVAIE>;>q$@Jyqz7l(JGI>tK% z6!4fK8f%hbdmQ}^DI9z9m~EB8(K8y`>5IKM5PK5aR^yHpj^j1vL3^d(jfFg~&UBPj zz1Cg1#4Um`XZ|v4$6bbPv}f6M(eKX7PPeyX zEORXiq>CMC)PRD;zrF}^0F)6gev4?I?Yh|UTkJEA#-8@awnBoyRv{RJT}JUM!m+lD z0!Ikq9$#gvw7+FtV_YU+V}Ar}&(0W)9dV2|3L!zTG!}y2YkiDg`TOAKNlMlgWUicH z7~4kWd29=!N!E0u6?q4+2X_2bd;0n-Jh2mw0)K3{$LI(oG(@{H2ZW&0fQ`0jl5J|7 zdD#iZD#?&d+j{_F@T7|EHlip`Y}j$!QSg>AZnw|_zYzMvD*{Tmkb*=1^{s=&Oi zi$DtwL>l=x!uOv8Kb+BbbGFTx(Qp5_os8-Iw#f*X{d{&q(y80xH>1lzSgT_^82j$q zf+IBah4-vnh*4;Ae2}eM$Bn3!C-&VaDV16c#r)j(mbKd^TsdaZdF;9%v{#UcacyC@ z)dK^WaecW#mob@fJoe3Vh~`Pu8NG^1J&k#T0>ta@JBA}E3lClt9OW3D!Lj8h(d&w` zZKjNVh|z-DN4L(#i+`Tlwx0+On-E!P+`UzdZ7anv>Jq9TzKRKLqMl;>S09~=sK#8z9MeItvf zN1=i7ZsG3rG>)P|epik?5D8%2^l%cNhbu-Hy^oS>zoUuJq?8}qJTPCUH7sWA%tt8I z>9)c`s1NtqMq}O7EGGtqM!3@+tyu<8{_$>m%wbU|8U;UO#2(}}ONR|!^h8Ri?XoHu z0Ndjbe$Y{gJR$xg4f?4DeaN9`eTq!O z)z&EWNk{*nrQ6nEJ*IlbpgS)xXYL4j!%fP84*!NCP;dVlrEh`fjI{|iM<8xNUz`e;yy3m45Ou9^abK}Y}Z zZD+m~jcq-(g8F~I18=b^v{l+_%biE=bHc8pCO!2CIIx!-21_M+)^{D_Fruglu|sf! zE+K3{LfjYvZ@C+%>unvXWXnpFXw`q=NpeZ=aX#I>SaHd8St)G5=y z&*ph>pO_Y{pL6N$Rh%$d@0bEJG@@wz)d}!58qCVMmgo6QIbTd9jn+FkVYFVH0ws+o zTA!H!XHAjJWmXI8@S!bN^q46Svs68;s;Aq`+@~+nUDc<+)aXrQMXSrIURJ=}HL$ z0Ztc58?KW!%$GLg!V9C>RXK7m^~u_LmM`|4KlVZJ4R{GhAbhf<##~{6%W{PB;Q`G( z){@Q6Fm8MLl1C#mF$I$%I+fuXM3E(q{>bf-29xvlVeY60-mn}gi|kpQAzAbk=G3QT ztO%_5VZfIRF>8bldZODKYjUm~cHkr!&bu|5x~+k9k1|*tPVTX*+()5G3_i;7#TtX< z2Hjz{&tHvwhhNx~j~51^oE1I|P>IeG?@`%K;wj1gZK1U-%G=mBeN zOS(=Y&PEQQ%K5Ef6`PpuG78#ByM`H1#A7z$Dujw{^Y^z^?ojE+PaQV!s2~?-OB*t| zNd$%8f5XfDJ@D4gc3+I1bTJ6YV9@Eu_vkYq~2pseW(NQ*aQuFs2@g3|f4EHt+_{#_UO9uQE z9{(K!{$;y^2g7mH?Fo!T{?)WUXhyXJYgp_L-mde>JAC4|;>lt0xwyGmZfzD1$CKkp z@mcY!;9@|Bif{so${A*1x>l@gM~c7c{+Jb@xqURk;i%exj8RvN0L zdHXMxUzpT|#fMy#fi%gIrIW;6y`VC9&dd-jVAELeS^=X}=4~EvmlxE=z7xWXqiCKo zcePt~Z*sT0_qluBM^TR2Sn*QtNQyKvpU+g|Gpov$gg<};f(gstI?1Tp6ZW3ad%mZS z?YtnE{39u~Wf7MtC_W@LT#ucR3N{&rY{(=<^ilWqQezJ1*Oj9yZxbMjl$8?j+Wg`! zmqn^~O7$W{ptC=ZtD+#g1G3DVauXSuO4fDC ztZ>f(r9BMv!Ga^lB0(c59KlW~v(_7-a-JHHgJJpaYl|W!Sxz-;gC{KheJ+jHI9qry znyjnXtc3(Y@hJ+?Fz$*E3E84jS}ELTV~%CH0Nj8WENZOmX^bB`CN@ZQXv?<_D_a&#Rxf;Xh)y&olD>yEhs?4cql z?+}x-D`#pCzSwqtQ5RyaskMK>*tJ?$er^)=M@=B3;KAYZ{zJ}DC;C?Z)9p%ABk6TR z{~^Ktxro=v$_0DQp~%y1Y97mLn6S&}h+@D0w4D@Ts_d$axvYh8zZ^_h02I>CJMT+Ivzt3Nt|{n7|VZN@_P_m5o*TydxPE5R#S|Y3vXmin?x4 zvp^C2>?Z1Iq3z;Cy`5f7E~leKQzY)NbzZ(z_quH$GPM7Gl2Y*9DkeSvsS z$PW))sg~7c)1v}dS zpEou+i7J%hL`*|-ET<{ZhTYS{2ET=A;q))4c{!u5?HW(4juBJZd)4BBuH7)fpp={= zRbJ;6gMvXS%NZ+SoX$J!sIOpAv<9W3ZrPX7+ZoakWE9eaauAOmB$SR`X1O@YWjXIK zc6>NV)UVrw48A+l@xdhN?#Y2f-GRqcyXdh@kP(2^vQLZ9vm6vGc=X_sa(0txdQtor zw3?sKamtD%bR-k0R%IL=fv_a1k=$eWZ9A$TmV*fzu>1_BDVREDl7mVQk~)hxv(U})K+3=g?v#m8=iy|;QR z4QGQs@u8sj+~DJVR)MW-!-m%wmOD3t0$k4?QYi-JCil(pMHoM#F)q&|8c(JE?9(3c zA)ol%KxT5^Tu%Z`u_>=)GsF>+ycLEuRxH)w`5TW}_v8!HbX{yy=A;T@hP& zdMwROikos22WRp&LmwE!@o6y#<`RBo#HxoCc`CCdt3j%C1<*s5=zLb4r*fXJa;{YA z?pUn&`sdOl*pS3*D4*KcgZ@F|67-6~%c*~?fR5Jw0B2B8I5(ZH)mmS+=VUCpxgTp9 zO7Bp!VvoR=xBOnSFhf|hT*_NsFuc5fcuWsl7ZwRKS|-qdzF1a{Yqca9VDPPr3ZdH7 z1s8Cn&?3seE1T|H<&|(;Be&;ci-w8d|N}`;TxzIDiBl;J4#$T9MkX((KeYIf5 zxxZdGf{_%pqWriARKxqn>7{fGQ&ZG>?O?gRUzjBrBEJ1NP*x62m_1|(H0+XDkB2k1 z(6GC30?(P<{kR!CIP>$4D)bFf{}hIz2Ek12gS=0^OO>=bJyxmNDoPciVDMQpn=2$w zMW$5Y#N0?}#M^&}90m$QsP41eor(bENeT-OX~1|wFgmlH3&U3|eEdpkFPL6IY~lYF zEFA{;n_y8#QCCq6jzw$@i*3FNov%XgLs){W?mXY(6M?jb@>I1xXC*4rqK7tH1#|4i zUkV1QbXu+C42o^Acflyka^AVaS9zk@mFGj4G`+cq^s@*qnlBC9Wg?M5=$u(-?f){L#m0?~CMLSlsJV{jO)V1UV!=Z7Y# zLMK(|r3z}LXr|61cOWm!9k+2~G?VR{?^E<0t(y~d|3OQS-uDMI7q|z-9g^IE`U^%V z2Aoa0vv|-BF0tS@9dm7Aapxz$x6~kP>!3m;>;dRKa!BJ7H$){?PASs;bBHR7l@qQ1 zLkB(cp!4Bi;oQ`Kl#kRtHra_e79*&F1cl`MAf%^ZvS>xm?cPyW5vk?C#d6wf3Zz}F zmd&59h&k+t5mA_wsgvp_!CD49*WG9iNV!z{TqaMbyhfRYZ<9{=t%p-!)bu7=)0R5Fm7s z9ys5wv_rlUcT3_fNLXR;)&0y@_j6y}d%n6~Ln_aq_ZQv7Bi~<63JCQ=;gJ-CU=zJ> zz1v&!W^cV3i@kj8_ife2=2S;`VT_6SIMX2T_W2-}>OIVs5f9Td??y zx@DH-OLlm@x(q3!U|#pH1mk=YiK&y4@rd6iK}oKaWLc8^kjy8p@rYmXiuZ0cgvHep z;+G}yo<(bYa-B!6_sVO-a{GkbCdoTi-eiY)Wb`b2`dG)~$-0)`)n);`a~-y)cPDED zU{r2RI5x5eaz@2gRc4t6%!j*jW(38ZVR84cD^(i(07*G+A>AWC=7ELCkND(Az4A8% z!!pYn>)uA^@IdOzv7qhB37psoWsaU~AO7Z!-8+KTcg73h2w=OmE5f}7B-ul|zjtta zRM3rY$Tek@S@44532|qJ_oD@flppC;IzYT=Tk^K6wz&_R5mT!&Ay$U_TVp%Y7m4QF zb1sw`u(>TZ%6i?KR}24oTax{so#VsU3?Fzc1(}X~hv^^r%HNyJ=tpzy?u<6v!)Jwj zKYM^z8iSeTf5Ai_^@xu}#oC}Kd&O@^qCfJ?aNCaIsJt^MKjO?9e)dK-NN%*jQwaie zH7f6%5Fh!d;EU*`a94YBO&(Iu&Zzi^DtlCZw4BZtR6`9B%pV^Gt9c7j6Pn^N%Bs%O zBD%2r*nqf4+f>3MC{eLpxp4@ahle17ramfv9d?vq!ua_E%7V+^J;cc}1xt;}UiC3xb%a!Hxn zmE{^!xgK8bVej*kUU|Dm{<2rTXCGP-F--E&3C!8$fL~tclN&t$u1|l{G~o6{#ZJk6 zrz(MSz^RGYtN0u^aTpP=dbCc$SxSRS6Rpd{d77zquFI0dP`al$AN||-59!fcykZB8 z!e#QwkAaHYB*j(#o*4I>b}U5LO}VmjFy=0jg05Ln1ESX*+FTM(-pG$=dOC{UEbml> zAZ{UDRNSc@?NRYq929qWBRVFk%sPKmZs+3Xno5@5+46D8(!6~XR)?D9POsSBEMkuP zaLe~wzSD9@lH1Vin&UXVNEzOEm+CqNt+qd9TJqiU@^$dxd(t}A&|!tdEST+Fz|$oA zBNL73OB#@jmcJ4e!ca(qm}{)n3xY!CN9_lMX&`4f-PWz zZMRtP{*&={g=9^#F+B|WQrQ+LvMo?#BQ6QDQB0}b4v?~-Ls;!JS^9NP84p`tH@Ex& zX-^q2a6NJJ6>5?3>t0oh{G{a`Y&U@hLdrpE)3J9}wZQSWnAGiz9x`3}a0nj%>*2k(m!7iDl*k z$hPvxQsEU^qN-BV|B>}hEk1^?QIS!3hvwFVWEnfS{dZ!dS(BWxzU9N>mKh=>fWY#Stv33Kv=}MKaw)gJNWVohp}e2SFJ*+ z;>I!ZdBkR~_*F^V?324Yeni1pP;#XP(y~3SSx^X{BkfbpOjOgU;jp|{lD`4+v6*OJ zS;>NAA#F6WRlo+T)Q~DwRD>I5`FUXwK}myeKu%SFd#<)<>iQOU-#J(i%oP2Zk}os! zm@z)1Co@=gt-tPzzB=b?1q+`%JNA7#10vqL$TJTwNx+d9kHwxjz8L4`q{u5UYM;2< zlQpyIcELP2vkwm(t5xLlPe>he%<-F&gCi+;xWgW33q+#X%uB{C*rZz-9qX<>DL0fN z;u@9P5Nkm_2)!oc_KjC+wn@g!?S8snTy50I?ER7cy%~$H%fX~vwf~k0RiKC`FYh*U z9?q<)1m$pf6D>b!Iipk|SkfQyih<i=gyYq z&Z)*U#q1NmF=*l1A51US&dCjCPd#+}S|Hc9?(x&A5R$yvD}U7^H~YCm__K95c-`u$ zI{cQ^;hDV1H_dJMk2-*W>hRl^_gc;jh(WmDBfBI1h6Vlx--Ot9q%krYSTGv!9a$Th z2rQTg`0)IJu~}|xmNzuZ4>Zf`o8^toa#OQ>U$cCFv%HBln?e0Xvqk0oDm?D!sJ4jc z3U3M+pd=|TJ8ecjOhRri1v2ZtK$^SbYM426BN%=Ea;1#4wKUg59-rL4=q5IW!(mEw zNsCsuqpppfhWpx;$-+K`)cdwR+St^K%w5zCSFt?s@_Hv9FBEt>Cc_>hC=OPo7h7@B!?UOvvB#i0G?3 z1Opy#7}EXNxJD>We#(Fa4NOy?NHcWI*F}wbs2Q=9*VTme{5R#lQ?(AsBj3&IlVE}ddKJYkGw#_d zUa@@?3d|~s9FJsQowm$Odfx)QU*#2dyq=8d4!#8eM@W)Q89l*QC!<-L^FpM&*UDZx z@H1o&*B9-%!yD0i>+;lUsdWm9JJ#5u4V%iHRO1~{H}gH?yGO+xzWJMA*;J7lQq^Ck zXLA0Z(euu{Hu%h^so#*E&p^rjm8f5&EaI!*JSy(=X6E5=z|7g0{GvuxlT~FC@=mY3 zBj9n3(d+np;w~&>h0KB(xqOX9)ykI5>eZx=l~}96E+1%i2QlN3ANjY(GbBOCwi?E6 znH+0I%0Bc1_x?ay>IKEip{Gc4kN*w**thhh6s>r&9+&F(i!``P^lhwb1_RBf-M#&fns358Ir#iz{1mX-gsYg2 z0w0AJbEkym9h@fSpoJvPA7IQO@VjDLxj{=RwoQmT@@_~WYBpw^cg#)5%V%&H9a(y= zZ4Xkg(KFg32u>jdF5Z!WYWla*+j80Z>s$A znTfP9M|xtpYDwxrd0L57R}(pwGf`P;GC%;7%H>^VQ*J6ti#ApEsyXq$8d5CD6O3r| z@W|Ei>Q(KPN3pTH&ppyCx2?f5GKcBWvasCJw$$bY>69RD|n^rSVq~+TdG!MFSsI# zCFCT%Cy8FALu&{-=if18!7^Jjca#^iU05^T;So#FYx8PSKIlnthEj%TqZaEOhs_v1 z)#9;8bo!u)MlW_KH|DtcF#~42xyFipg@Kdh-6L4i!Pa`QRk%y27?mFmV=7GRID0PM zRP&&aD_kpd3N1o|U_$F&vfk3Q)EFA+-gI(b&C#ITDY%02qk>JCgQ7>}cAxwRv1qU9 z71juUqq2y~Axw64j~NRC7jHUwclS|`Oe^L=xm5@u!leA`g{?Im7ZH0x3}T>Ub_-Vv zR%AxyFoulEPh!-1SN_`x`QX$BD6A4KfJj5FHidd}8#j~*@gN4Y51vm;bC|4?&?`S4;ceaydcKN537u*J9Mu5)ru@hU$FXSIijFuScSimR@Du^sU_#!9 zg)|IllH55VheyRHF~Yqo{%y>$VCafZO+QX17cI6P{(@J2Blszc!8xX^I zwFa%yh;7gl>NFs?fACEwmSwQ)p=twaQ5C|g-mWc>Tv7w9q3q;aq|H(0^f(8nCZ>ZkHo_`3 z|E#Us3}zC(?X?03M3$kQ)*eK3q2bIbw8pmZiT+WnK#4oN^WmZ&DY-3WKt@ij@!Hq{U4?T1^!&jo2;1i|Jb6JiJl#d@kjRpV8Y zk{Aw?gI1d%H18^drFRlS`Nc<7J`h_45VaMSqGEYjDHt=g?hb>&$_Ma#c;V-Hu@xI6(L#gd3r=Tcil*C` zV;)VynHJ2S%O8u9339O2cRmg*wXrj`+2bLJ#eTndm4WwqQpb*2OEFAs0fGkMokODAB`xb!N2rEbnG48 z_Xp`q%-BFpB}r@_HRia+BlZkL`d)s4jvUgtH+FcfuM|;nkSd0E?nJYG*{<}T^NxRx zX1&kfiPh!!M9Ml};)x7o#-o|vR!IgjM>z002WZ_pG2X)wC26z@;bOKyKvIUs({Nrm zvG7GZ>PY%+JTFCby_lv%;!6vBhwt$oIh!kn|A5!Ml?d29)_wtAbK2VU#LfcR6ixDNIzwn;a({cjfVO` zuazA)l&6rZ$$DBXAm*5nAyt)?>(%pbhQmoQ?>mCmDeXm;S}F2%>4+2=jfPHL%49-( z7(-wNHrO8aeLv+RyghVi5&^1T+)@6u$w8y`%Fl&e7qp_gPSvP3bmWCL)reFPJfaCY z8pMvfdOxpgLh3E^VriqyD?c0*9~MsdMs5k7oY^ez_K_!Qi^@A%O$gD;ucZeLi%o+w zs+iwi7@mk*UR!a?tKJiNRRL)Rq2jtCNWzIc zSm-iCuBoG!wOGvInj$&xC`-(|c$qZ3nu|c>h*Cdz)*O*=h;40v)&_)p2&NhbS2N7}m&Nd29$k z@E3DzstrXX7cK5+Q+#AUz1ye_KhWk%$83toRCOU)1#)fW3CjzoJ|&X!FKPN#@)@8z zUijJ79au?G95ru$jkn>my#Geygtw+ZIIV#+0jAs#rr%!Oa#38KXUZ73d&dkE%xzw&!vQM zlt_NimF$tfCdu2%lXMt9CVEf2+54l9KR$B?g8a&)S+*o@^N3p^5U(RZoG#St67|D7 z!=9ZvC*fF{CO-5xOUsA_7v+5VG(GT;4751zrPICijG_GI$x)JM{N3J@sL{ut{NnvH zXCcw@?>p7ZlDPE(x*^SY+NB46ts)WrPh&kG?k+|g#(ab(l?Gsfl&JDzn^vneQy|{? zqrC?VIq`BEW+e%02}2ZWOe_3yIIZM_L=l6!|5vbWCE|`|{;HJX$)GPQ0>G0!D=0oz z`7Z!n=FV@&zhC(uMRV2HhnS_?P5aO+Nnv?iSZ-)n#_2uVC2?1ufeyQ%EdE^jdB-)l zb3McFFR?20H4Lu14kx)-{4{~1Q2 zy1`?WOs}k87Mj!pTAsD@{cCgmYp)-}!5vg3D0Vc<`@#+L!wtFNhU@XjLveC1g-(4^ zPNc{@ILb{>ElxS?uB|b|%^>A+fuPXrcSYi}22W!@bObLi^UCX_x7nDY=2uFLud(&a z>2U?czP|H=R-Zr14rkj5U z&-Bo!c%N6?X7H)K*w02^}HiW@Tc z0`=a&T2COr)AwGIxXv4B@B|vw#Gn|AiUG+rOLK?OKy6f9$CVci$Wh|SSOxr2pzfLv zpsfK+?bhXo*LlM03R;v?03Dxx)Qifm%a5+}MAsEq&VQuDs5qv)ZpOg6StjQHbufX6 zieHA$Q@PUQ@Sd%#E8+l->m#4ILo(y+NBP^o?Ku5g=v^?6S$|7r_0XWXuR)lhW`z22 zg4&BSot3)5`siF{6V#Z-ARYXC$Wx&oa9g5t4H#n8JnX1H9NpM+A1adv;7e&?B$q*gyORG5{+>5*#^us2%i;IiLy3kGXsB-PkBK=2gav zjs+WU$hBIY|IJOMw24;=x*ytuQfgq%^}Q6*Y(<>p^)qd%7(Ths(%Y5pFVeUvNqCjc zeNx>@sjfzuN_F*8-8!jmg;cj%BCC?6y0ubWgH(67RQF}6 z?knCpzf>2H>Kem!>jQJYAmxuZB-x9m}OYQSNRMhwx$)Tk>mXbWT*h3k&lqOSWGzTv*8Yk$CD5^|yq`=f7} z2bZcOOZ$!m97Z80ek|<%Zuv-f;58frd|?{5?b;!LvEZ_e5%&4>U{; ztT&IIDm#{3)$>Zv#c<9nGliW|w$o9-J83k{15iwx`cc^}vJ%Z?`9&+~dcuix_=FHVm4`MEyF z_xN)j=W(9rwQJWll~CqUl_?pRdED5=+tYJSTYPxmK-)myZK_&bv5uX0S4Lr2;L9s3 zi~3pH8pk)=(onaY$E?RD=vsO3YX^G9B$GvFEiM{=whm^|IX%tEo}zP;%`J=d>ARu{ zOEa#$y0ZC(p5~^?<)uCSo0HAc7dJQG*L>MUcZ?d;?~AAE9k^7VmcI0XH*>P`Z_`gZ z5|yJ8o7bGM@Pupbee91pqqslJ(dT!jS1xZ%`H!y}sM5*Xlw5wj2{Q*Sk#PM%N6+#b z^aly5rQL9u{h({{^6AGvI50W!`NMJ!e?B8onU(0Pug>WE`DeeSkC~pZ@R7-TE~!mp z;Y;S> zK$>xwN>jv9fT| zV~V2aJ3Y)E2KjQZ-hL%_P7o67>9owusv{C*m!H?)O$+srd z9(kTlt8A`KmHWp+iwm3GQP-TexcRDszRECmda*RWGTDEyY!Fg=&EeDVPmj*AH?tbX zS8g5kYSFPCIx~*xiCTDF;-v3~0?~1=HNkym|Rh}G^ ztgD)!U;3WsKn5U$1XssWx3x?en7-FTbJxp1Y5K z@bR3UgZ|~y`=@?ce_5nD^}Bm@hb1;oN*3p8J=8CZed>`*-qf#lJTf&iXHs2jZo~N1 zMOW1&-xw;Y-CA_@%oD~`XXK0?zcn-2a#Ur@n97!;^=77eoob1!?i*X3(ZE8jFEVO5 zwX)^3%9hjhiGpFPhOYm+msO6>Ok13(FVH`Bp4Rp=DvQqSKIf>St=WstDd*QCby`?K*vN`Yi(VxBd@AKbQyGFnC_v(ye9{%>|n!l%M)&5_lwEqp$dClCn z6o#*UKlNhenmDIUQJyopCTHM>`Rzxa+H%|QGJR3_$**26%^&z-M_tP}zIU#u<=DHz z1x{rL`afTq|E+JP_VxdN=ufcm$p4C-jHY}%Ii(?ITyjeCYV9pAU)^%Xt1V~tw4AlI zrEI8W{7}m|LoE}ATF$+xWs|;f{>Jk}4Yf25wOl`>TlALcLoKaCEi;B%W)8L7 zIMmWM)Y4wra#LMPQ(a4QT}!gArDgKuO%HB*Y}1pQHf?%o)9cTMd%vOfqXaLt54DdW zzip_cpS*Xd<+tR28EV<1d*ha0YbV*BJJd2LsB9S+YI$sS%Ny$SgM}|06+KJox6uzi zrRvrH#rx1tXX+iXyTZ6$r1&jwmSiTsxktGDsHKJRFQ44ha;ko;q7M%xUr5)lom{d& z|FwKVCFQMa`RnYKn|oSr+1fIzF1i;?K3{Ex#eHwueRJzqgT9AnoqypYEJlJ*6pNT8Csq;)R4A6EqQrn^72v1 z%SR_KKP-89B6+!#^yK9kIVZGNuWmanSv^7KWLs{tzCJ)zXh-y{c9ym;Ozpf?otbRo ze)P$~O>1x4n0&aKE~}eIT>dS6AK1Y2C8z4%M)V48f9r+pSKH2N|3>?FlhqrF+Ddm$%!JvpQ7YSsF} zkr(M37z&d&e)!rc9NA0n-=8z8?#2tI`6qjVs!#UlHw!P;E%tfg{<>G+Y#zQlTp_-s zFVGyNyf>rw=-#^@oY0%zdt&dD-m2a%{q4Fjz323{^w#$-crdTGsQ2RDIlZmDOX^1H z3lAPF?p<;3*t1lyw5I2zyu~Mt?M?4F>6q2eH9k0|CprB4j;s5-OE*9Dguer0_1+a0 zoZfWhH95Uwlno5!_7*Ac9k2g%)2wFcTNRRg$K}81fgm}yr?R1^a#~O2wLO*B^;92 zl4tbPH4cP(=*7vi7AMOVC(mA-9DiTWw+8s$ihIAhzh^6JQMJCJ;)=z|E7cl>UYxv2 zkaIy#mfi=dS)8ox+o-C!Sks|!$3On;nayPr&MixxGlB1DFP+y@m&mE^nL=k&dwn8j z^TGQ>edWdI;c+=zhB2$Rrw?q;)MLv~e`4t3MA797iY}`yn!LBjuXo{K>O!E{g?c}^cV1$p{5N?JJX;DezWbKWcI z+*qXh?S~99uH*xuJtwA}Jg&H?C{JBExUT7Tq%aJ@(`i5cW>ItAd+JzLuGjV3w^==v zSs&(rYnaAYW`%y=WtYmF!?zxh=)I@+q~2?K@9%xC_ig>@fpdFj^gi7C^PU;Gizj9F zPU@Z8`$X?+Ju{B_%0ub;p73V1``x3h)+xpzZq36n0KUci? zxq_bO@;*1?@${Fj-gMEEXFpijdsKVc>2II#+Al}_B=g`KQiCU@0!)2bzkV3~xaXw7 zYwU#|B?hliw^MtMT{CFUDpRGOJFK5OIAhp9V_2UtIB8g)G^|e=oI9+~9oFZD^R+M> z-yI8cj$1fpait!+kIXr>Cq3)IF~>AmLl$q%7&v^dLL9gt=Y)ZxcUMo|t1klMNp$}} z^4(>xe<_?pgNG}BGV96eC));+e}AlD^~S2l^ziz9J-lYs9_YCG<-)QfE~=cY|5ZR~K`J}=cZ>O(sU*++Z^wFG5ME6r8ZFmXQG_(# z@~X5HRM>v0@yYsIh!Y_yt3K2H5rsEMH>vl_p3oQVIK z9(&@Lu^zXdW9adPiA*}GG*%naj+{h&FjKBbn|`PrUPmv`#yF!h1|)RY^=>flqg1AVGC(*LcP^gUf0`LWt)!x`F0v;k)6LO)-dk6XEzIfgz_n;*MLV*N?* zpf@Pz$6a`)Ya<=1U;lr!f%!?j*Hfv|q3Zo-$4DP331#^iuE*g!6lf(ni7$`~11pG|Jwojf4k2N*nqYwekDu z=!>-#XhUDEO`m=b{F-tS9@xj^9YiH`xIi22Ii5x;p~F6h&x>@Ja}EEbNQcpA!=;g~ z-H`lT<6OW;&KiQBbA&{_u)Z2S=o}Zk=&U{ZNo>$>R8AG>ZQ6WHZWEKx;ghrx|LfZL z0?- zAIAz#GyP-YD;pE3O}beJ`by5ER&7>#XDq-!@MKc+LZhll(K zZAIE~na&*xPxBm~#hzpEjQZUlNlj3;VjdR7^9_zozX(ZPfdW<>>3R`L%Md z*z5X(c(OL?x|Am8Snl?DhUcywUXg6{NuU2?8n+6ZZZNiM{M| zk^i;G59g{}k+!!Z9j1@y;}oRaxK>E3SS;ooqwHF-U$dSS`+3AMRd+(! zH^mp2{}f&9TrUy(cs7U&&2yXB*XMi0B-#M`wc~4%4rl9iy7x$=!|bAeE7G+alFza6 z+QUQc=UtQ7+u1DskT&|;tqm{j>CxtE-P2+cI_&LyL9Ffv{YB*;&_{)}krKw~1*F9_AQ{GM>DTtflzKNqAt^LCSLf?&tp3#UwoNG1~B~ z(dKh$gP4Q|_IaM6HqZ?8Ou!Pakeux!C>F#LOS+<$1!_nOnqM$Ic$5*={ zc{|5w4<9*+nD8~)D0`ze5<2X2;|@e6bhug@{^zuj&|$yNc?D4k9WK#^|L`>Zr-Tlp zv7IhPgU=CTV}F9c$Khgey6M~_`PfdyY&wjGI1Q1`>!gF@V7@Vt2fkSz%6>-d=PC2^ z^QIq3a3$IXw=2g#FVeLelGnu?=4EnUPk6p05eFWnjX2Y^kf3C`TW8|9P?L3nM@5{wKtKTsDY(4s(qo5g+zA zxinA-9rknZ_(+F6&WU0|;V%}GV=dKx^tVXc^_vEO?$2lOwL&5!gVv5&(A;%nt8 z(#D#6s`1leub2B_UyEKAlV}g@WBBLDzhCVA&5DjY{63W{(#HL>drlI2T_=l6%yXrf zXH@(Ti%HZAcPbBYbaC;r$B1t>{q9I#AjZqaeNKV#^I{S)VLxAfCia+H#Jo<~?U5f& zH~nR?AD3U7PMO_eKNi0elh9$0`KL&SeV!l2Bvir&Qy1Iek*?j4{5)#b9v6%9X=7a?p~K8=qz(Gd%l=f1hG&c5E6R(s-Ke?b zdb_yA^vz;#+iPN98~2Gx#DRU>M(NmbT_I+3bWCAC*SJ?FQ5N>LF;_|GFl!5KS}OK= zwL;90;(1u?=gt#iZ`%g(>w29wJg#|CX8cRB$9X-PKQQ;i_>+eXpBFu1AOHKsBKR)4dRQ8N9kmA|A)jLzd-E%3UP(` zyTucY*NI8Qhf9+zHWseb~;o;uT&$Vi?zn3*#tbf7NB*+!hhEDNi#!rd;9%c__C1S!p4*Me=_O<;6 zHGt&^f3ui&5`V6kgbw@rT7BZPq~ZBDvHk@Q*LuH~=Gsl7EIdYek+vhEbq{72{e6Nu zn~fR8E;E#0AQU`SZvF`#r{6VqT)`+XC9E&ZFZOY`M(oG> z#z=1y6PxWmF^PI%_b-e54~c#LuZjGyAFqv(4v$kj`m;0AVPCJ_5%W6r9uQ+=KaEMH zgbrV&oOaemI_$^s+DL~#BrkDp6LVZBJ6~LA{7|I#NBXmozCrBQ-xtI_p4-I4WBZes zL_1+`4{!3gKTYgw!sU@(BR)mth%+bByTl&nPBDr2F#W>+P^7~rN=w(aUQCXENZhI% z|H%kSWU$YZ31W^Bo|;I%R_y2aJz^3We5rE$n3TlgYC%?d;D<>tP=5IAFDGX z|GDB?y-qvtiTtpy6%UBL{Y%9@w;zrCF!kX3ZluG$*1aM2weC%^Uw87gxKV^QoGkXb zO2h@GSBuX!zAf_KE%xKGAo8yepJM(WN1n}M?mwt&v}~53U!>QG^Msg0S(qICX|cEM8SzZhi*=xRe*;gY*ke|S{g_S{d)X$jkKxzEBR;snPNYV?c!@J{xgyOtk}ox zBtYe|Ak10=P4fJaJd$ct;QcvXZ<|V?`j;3 zUoH0IRm*@Vu@9f8oH(D2beKyp`h8*@*1!)$9@w8dwnjSaYuc-k4*MGN8?pEObunF| zuKi-4&mYo3_v2L{#*e2c;$pG4t;}@#HC}v?`R7FXT(Q@+K&;aw#QdU|L|NF|xg_#` zQ|xViSX?15?Rib?*U;VKZqwUz)8c*kqS*VgNbL6sk4E~S*w_DcVz28N@yQl*msnMV zdjBLo)3{g#J^o2z*Qba*&NX6xru&h&*vkG+?DPB&;`2=}(TV0UPZj&MwOUMKtYGiU z^vK^7>7R=Hu&M~{|6Jtn6MG+5i@nWj#QGQZHvvl23;URF7PAy^EM5|yW1OQCha%{O zoJ2~Lg)dc39c_^g7fQq58|kpGOB=*(<|(D)O2mY{>=ls?_v&?Gz9^+@eD&%5IDt?UHdgm_;jb3>v;92gIAyTyLI?h^al8x;FmHzf9B{hatjm7{IDBTu>- z=AKbv_mqe|{;A>um80ItVp3?2xL!=mhaw$TcY?k~tXsjrPl-MLFC#xpJmS12zRtKp z9r5$MM(pjmLhNhK^byiapMDvA1WR*z3xc=<##JuAdm`#o`MUn>II#Nz?_i zi+)F>!)KfR9dWuC|0=PjLGW)Bd)u}~o^6q5Po)1&tY(K;hx3rAL`)c+HWZ7sWCcDy z^1wc~Ys8epUoZB)UnBPOdZGAS^E@pkQ3m!o@RP{T1>NJMiEHI0{?%OQl_(3BDo4K~ z(&3X#ABc4L5!0)+FkWZ;O>w%Im=BBZGySZBVf}1zrRj6T-nK4rm3C;u+Cu$|LxJG; zvrsD$6ZSDI6#JT75qV&|DxRno(`@3*6r=H4n|aVX#aAnbpB4N4!yDp!OMP0 ze1_@Ih&LMRw*wOu#?OmM)CJ$5ocP5oN=oSPi^|d85&Jsufs)~C+*x98{}o~qW#Q?{ zDZ4V#VV?u*#J*N+6#LxXDK4|Jx$5lU#>dfdr7Uf*_wf?(UDBxQ-^G5sHj2la{*E|Z zOxXisKSoEMHtf$8dwcT57h2hAViILxpW9y$pD&GipA&n%&x&CTkLJf5g%^)SSElH@!|I= zr!Pg34mX;9r`YG%1Ca;zaTttr*sl>!MmqdHi}}3Ruf?0h?tfYAb-g7f(N6d*<+QVq zn?NOWm|Gh3^CKPRltjNloUR;ylbFjf`fZUPt}^}U$n#?4fjI<}O;=;Q{iDQQSE+cb zdHyE$dO0!u+H|(quN^gFKSo!GHSI(EPl>(kZDKA5)cb(=3gcgiz3eWrUqk;I=?BDX z&A&zs*loOwNu|V?z>GQdt%-E_NYj5P_PRER3#8MYU6CK=I1=aWNQZS94gRBag7~=Q ziRmx?k8xAg z-x04i=Cc7l4&M`h#`JSFwiAs%DQ+>|CO*cP&tS985OcqnM7uqCdx)>lp&nj4l&8x) zo)hy{%u0vyKO&u&kdy;f~@ z_b{-@?j|> zd;%`sZyeqUenx#bWh9!0cSIS9Vm{X0kOcaPY=YsCKDBlhnZv48J~{oWD#_l?-^8?pa| z5&Mfq>@Oa%zhuPz10(jAj@bX|i2Y?F_Bq>zQ^vthiKn!T#5aat6lEm(N9->ju|F_k z|C=NBIirVDMtDae-hX6xN0gCxbj1GPh<#ghOw9-@#IPkJJXy#4qlb4y8UL_?uz$pe z*ST{VP8s3K8Sk@V52uW9cN_2L4ey9D!c}Kj$~buCNog73o!$8L{NWu@MtJvRSjtEg z4DW>3SsjN{Mz|A-_gPJcQ$~0qi1$w$-VtSlC%<7SBm5*H-Y*;83I6dT_9u+k=Wb>= zWrTM`;(e|T!zm-&nZ^4T4)2IE!l%23rHt@&67OF;yc7JBM(kfYVt;bD|8tR}8_x*# zkMS3kv(IyvC-zHxM>+dtBlfw@dE)hpd`CI^myOuJdc^*@j*e7?mzi;(lw4K4m!0 z_8F%!39a|jr#H8@&Y5|RU}ndx=B_#Ib7qQL+iyjj-8Fg6mCaXPBIU-eIWxyA@34H% z++?cQ&2u|a)?lQBzM2=iXwiR#0(> ztAKN6bjfi`sIa;1Q!U9)+%jWkSL>{Kw{^}{>{+UI4%M{GQkOet&FQM0J*#ELoH?^* zPrq?S*Tu7LnbXyLOV^zDzI4fq=B~N3XB^^{+GhQQ%^6)YW*_3UsZ!f#-7+Fv`z`HV z?adwSx6k;eFHGrb?s`vUvuAY7Xr42&kQ${<|6^aI{L^OXwYi-m{arIgO6rgfh*}Zm zQkvZ+W@^tlE8?I}57uzSOf%-{=zh+fwChtIu6k*9tNDLYmS|qrd*U?lYAXFxPjl+^ z_mur-?KeHN-^PUV*89cP*!vaw-kORZJXSV%j0^A^7e`zIr-nXUVck=PZuN5I^t!la zq$TyA(nM`(Eddi1u=%TC8*|nU_tZq5+DNaD^oEGTakqYjzRc8%N(I`youMz*{?Hfe zV<{e+1MlgJwLkR5+8O#{dIe>h^qEKa7d#?->&t!!Rbs;rJSdF|jcWV`BAI5Z}f#jES|a8vPUc zPbnNDh6CN}0xdfCS(jEVW_hU@Pc6D!+=$J#S5^5?=fR-wP< z5B;@%h5j0c{+g$PvZjarHc3zl{iWebp}$Q5!_%|3GxXQSA@tWc^w*eTe%wQUt^M!m zueGNWzj^*yf9K<|wspf+*8(dS)}*F7H37ogOO(?Y-LwP zo;8uaHqzI@)}HmS&B+Zg2VZHUHrF@98K|l61#*3x_WfMg4%_;$Bhq)mHlKIFR_|`u z+Pnw0Ij}d<_rccp{jili5P7(H_p;pA`LW=482#MmcOSg2T)0UAl=31!zX#zS?z6n! z0@&*1zR*1-k*73be&^l&{QM&A=2Ttfu%GX+y)9A!+YNiBtOwg4aZbd!5$8obF5>)% z3nDI#xFq6IxJmyhm1*-fOo+G~Zqk2B6ScV~3+_Zs{mj8Vp`A2bDYVo0|D>J7@^vP} zvGEN3H7>wo9Qtb<`fD8eYaH6&O61hDM%pJ+{6EHwuY=b2_l#jvDoz+f<1mKi4`XOt zA*+vD6>R51HEf<5*v^I8NUw)&oo|5cde;ay>p!I?Z9Wg_s@K&9+uLs)u=#V~Ir>j2 zSDSM(_CRu+FEo+MEci3)Ab zVXQ2E7%MCLp0P4LjFrU^q@B8ZI6mL) zx>Jg7=SY}u94Ms;+Wgv74qN<*u#IO09N(YVJyFnLTx@KeXzA*5p4Zk66s4}i@yxE z`2DcOUjbYELD3 z05hmc<=VWii4j-8@x8ZkHM-6Dn#f-paXoD9Y=Et7BW&$#f;;q|63z8FK(pM>%dU6A zR+i!OF`O6ieAvdbJJJ`xHl7P%8_z!2+PMg}@mvC1T}xpqR9dFZxgWN=Rz&(BY;~=K zt*%wD)wKq;y4J#0*E-nhS|9NS*y`FC>6>AzYYS|3ZG)|@?XcCg1Gc)d;B)n#Ql2*F zaS`W7To7?_#3d1zMm!TwWZm!;WF6b^uy*^5%FNeD`Bf^70er{N^7*az7{rp zU8Jv%^bL`|5pL9fN}IL)!yK^runpbLyX~-@vpXXHPT1zvF4)?+JM!#-EzVxp;_Qn& z`(cZ7AmZ>mV(kgfBlc_+o=13tSt&e^m>!--Ob^c^cKr&^BNit-kJvgEo<~d%&m%S_ z;d!JfginO$5sM$5M=XAL9Ya#)JP^N97U3f(-_k*5YWPc3Zm>mzQ6 zxDn1w#czTSPjM?eD#dN^=oELr*8Wb|;&(+nFXH*I#qWkK{sP$IFN7_AA8g~W2)1Lr zB;uv8)w?X>{)kt=R_`Ee^{#}i-c_*Gy9Ty?t%WWAx`@|DyaBfO8)1vT8MgRaV2i&E zw)op&i@zh{oe}SXE&guU;_rbi{$AMP?}P1}-4EN`H~`!HNu-NyZe+sNo-Ekrb`Crv zb*%XgDA)P^A3w+W8HXPizW>K#7Qo3=S-ua-*MSn)&V^Fgj%gWe?U?{u8_FY|2wT~T zNUw@?zVF4$)GcseMU2%w9kBgaxD&PyXK~7qZ-{tf#9JcX7V-9ocSO7^;ymVdsRX5Q@aZYehfhm!0eotT zYhY_RN1heG^Th@R5q+9?I}I1CpV>dKOWN$ zz&0ntdSV>b6XUR+7>D(wDHSKIC&pntF%IjA-6Mtdq&eje>xtDH)|0s@J*+1dKddKK zHmoOBHmoOBHmoOBHmoP6hxNq#VLdTDtS8p@u%4J6))Q-USWm3pu%1|)u%4JdtS44) zD{G6jxed0m9k7+{gsp5BY;Bkq>GNS*uexC?yCC9)5%UlaM)M*2F~>RJz5T^l0LM%enkInuYlEKW+>V2iUIwm3T?|4!KA z?1Gy@(ZueE_rP{8?2UL|#QP&Y5V1b+as|~jHcSL$8Y;|=-`aHNLRo8sj>gtBAt_85wwGg(t`e3VTQKT<{ zt*)h!z6@?j)zuGMT`OR#YY?`&R>D@-D%k2;11D2)*1|0*UKi=>BYi`}8zbHfH>JvM zfvpYOU^~9sVf&fIj>x|gwl?g7tuMPH-UC}-_QH0)?1QbY{jl}xK*W5U&pnwDXTj#r zi8wd%u?n^}S4Ug} zTN`TO^whE7dz}2dYk=+iZH%}n;#SzsyEfSR(g9oiPT1Pt1zX$ZMLZw2c6LX+0QUJG zaUX2+d=YGOX$frW#!}eoT?Sjd{jk-w0=D>rk-iePIIALF6Y*NuVy=TN=6cv-Ziw`a zu*KXQ@fO%VFt-hENga#rk!J^Nrr0;{Ro%>;H=YdG)mnB`# zgw3A?+wskT?L5te?fyRxw)T&M?HJ`p{({I;49`mSw*k*y2>d7NxR&F!Ha2t*%wD z#a{zkoVBo(T?bpt^{};JL*(BW`8P-YEwI(K4Ys-k)8+7OpWI_*yc<=Y<(<<^kUe~k&=i@Ve31; zBj#f=A=3FBG1n(XI=>_4dR3(J`(m!wz}B8x*xFDZ`5PjCW284ldMj*Y+agZ~Y-80K zdAcIcJlKvk-y`S!?T+*Xu*F{(abM(L6#17#o~4mzS;YOYwQWV@AB=cq53*yhQ$h_^?)1Gag)GvZwl?}ly8?1^|UY;D^Y>H8!7K&0~v zQ|`}%ZJuPob}VvWt1CC+JlN_Q7y0uePeJ4Ijt7rrOZ+g}@TedK9?t-pn1=@XVCH4z_E}df2Xy z8(?ey#)vmZyd~mou$A2o+xYK*Z%oy-6Si|<7i|674g36ut?XX-##GsTk-i_c^X>p_ z?c~G9-p5SX^eou=m=o!_5$D0y{&BF4Pk!Vnh`1QGaW0AU(um6<=DQ`mJ>{_VaUyJW zRlvzqf2$(q`=#Ae1KT}GEo|dZA8`XbBNe9+Zc1@e#H|sxMcff_XT)6*&x?3|#N81u zfURu{BfT%u7e%}Tw&S%Fw)wCOw!ZX7{uPlv80jlvi?a&0IBO#RTG+;UUF2C0TiFfp z`%>e!G2+dz^=nJS+h8lZ9kzORz}Ehqu+_UO^6ZAK>>k+a-5crqBHj;M`~#8B7ZJFg z8F3bD@pE81?{Z=Lj27Q7>Sf18oDW;s0@&JL9C=D$i&+}^%OZUOY;(RGwmCczZcB}G zMdYu7t&i1_zXr}t`Dd~g^}JD>5Jf|RGcNSy;rsrPEYB}BJPiP1#EpEjCf_ltKjxjoHek$FSIt| zbrG+Rcmr(nd?Re_+#E5H{pS~&h6gz(Vh)vi^59ner!-ER>-iBEM_dvyKUQ%+Ke}+9 z5OI0L6JcAQDlUHvf^09C(?%FWWsjrvS6z#C-US*diWWowP9T3 z$&WnYXO!kCjyxr>)l~{>BbC9nmQH|kQ+hdU{)v&N0@g;Viu7vO%GSVEwl?zAN8AA0 zTy2D#LdZl@q_;-g7I8M#jk=bW_83h5!Xg6Or(8? z|5M)==w;dW_GiKtKlF=VDz@|wo`0stWyg8R{~`XdDNm@^`WWi9I5~RR+Zo2KDdmsH z6XhS;7PsNJl>eW_4>8RXVp@A>dfG9mvf&und0l{R_kqQ*=_Qd~8tLIUnxF2uzdZ6! zjP!~~uZr|=d@YXTgU2ZJs}`X3Q8|0ju7}mDie1{&C}aPnYmBRuKWWUdea5&(`Hx|>ZIALTrYlRlV4SJ^MdK{xFB#`3-vL|M zou=n1|CMo`@?RTs=wCO^SDpc@tZv^Eqm8Mbee|))sROQ6&XNijDCaep`9fTHr}8kD z&KDSGbFh>?s4Y)AeSuv+&2;(&yFLLuJ@vg~A*LEjU7_A`fl_F*n3!<3otvS}^5YHj zRvzNR?g?{Po(rY1H0Q}fIoR94YkBe%DzAj)VQk@Sd(W!IbjBIZw)>ONW;KkZKD7D6 z0;SMq@gdtR@nDy2+xexvbuS{H7G zHEC({r%mVY#D3Ov`rBtZ-esoKmxqlRw{IEae-#!G=QY#m*IUNQ5`Tu}p&Z}QLL2a~ zR>7oWVe|0!f??uSMjVc*{EQFmV_PgH4&wv6ej2*sF!pD{@)Q`mX9BuBb;>V+|?UT^fu|R`}c~Ge^0%5!%$~?|uQBKQw<7&tBK<|! z>V3&{&hh_>^xqgiszKI4_+;hp zI%}M{R^cg79_GJznO+a`N-*o99;L zj~nCvDJ(zzgMEE_C-P*XlXP$}5KWtp87y@ELOIs*n!*8u;I)v!1|yPW{I8YUyzHCj?4wnO9CIvpKT@%YYy!7^4Vte zF6prQe`@+X>9EIVy`W#5TYPRAUav6@&l(k}>owQNJaLwC<~^LFJe+IdOmU?)*TZv= zbk>S1O;;AaFCs5nb4LYkjdZTHL05i9q;p+F|FZJ?jrrT}Uo#K&{+sCy+6mXbid1|4 z!#u1xzcOY$c@tL5N$TStOlJ)_U|gX5eVktvsW^NmKTKK98Q0H;6^FGvtmo$EeRYo? z&VAFvHO1nv)_a_F5&yfD<$Dl+5$UHe=Pk}^SoMBi`45bLshkZDWB#h?{B7QFzR1t( zXK;MwDVAq0Ed6%ncbLxc<@@UK(BA=LVup2FI%Cdf;PI4*UxyWk@qg2F;`7;cJowY} zpT|7T7`+%)S^kzUoBMAvrrsX&aNO@Po%L{Oq<_sKhp?X`A2gkH z5B4?cbkoa~!>+TI5r>@3<4iJLFNJ4j_p{v41|DHJ4`Jr@-Ec+feiP1a(tk?5+VFfy zc|Tl{x{reWJpGR8tb4GRU4yQ&>y@*?oCiNN=9v5#u1Kwiu*VF~Dbnku!M>L66cdN@ z<4b?th&)?DI;b%wu+yPIcG}t{ypvyB+d3ZjRr%4{z$M9r4(p#m&zFzTn0MOf{ z!`|j9(^(H;k5glMr*zokTx&YV0d~FB^m)=@k3ZY=`O;z6?=-zzI_!O1fUZ9NM0uZi z7RUp8+rss|BK2J(u(#n+^Y_UQdtKi%eUWt7{XZ~$iFDZg|7H48>9E)PhUv?s!|vZ_ zdcSno<0otlSs@*EJ=^p_$*{*c*7TLqVXyZ?rmvC?dz@0!nX|C_Cz!rgI_&tb&^oF(us>J+C%QbZDG&EQ^6Zc&-2Y4$DE;0% ztnKf>6{+{DVZWyut=EV%PkBBp&n}gPeGE@A&p74bo=2YD@`QVyq(G^{%I-1t^)1}< zS0oa9rNe$4!@ZF7ebU3dP>VpR&Eo7g_BPB$S37H!cbn&cJg~>S&vc%BU~j_%re{ir z{d`=8u9(j%UuV2l`48a=-NVQa`!gNC=Y^gl9rk+v%XFTJ;p`?gOex$WDL&V`Kbj{` z9@yLP7j$__9EJY*7OO|;q043cN0m|%ca9U=lQ)V`p7l;4&&RD-v_I|tod;EEvYz*O|Os+ zXLEs8`Z~Je^oftsmUj_q>b?8C9K8=Cf4CC9YoW}Z3UAfLxnH9@DI z_Zt)cRO9i=!~6M)-y=Q`{i4)84D833XG`KYE5F!0S;p?U+&sh&?@H{o^r*3y{>7Ir^7rG<$*oUIoi+D1JH%a+43s&pHdh%>1)K#YQyt0 zULcP62<4XdCJ4JTl!7uscW&<6|RZW>!nZA=6W|QeWCI~ zYr`qZIX37Eq+e&eLHV60bH3nZm@eQ(9LtHc}f%qcFz^&VO~r%Cg!ci zyhnJOG3(X`wdJu;DTTF8i{COa=b`Ii-IIs8dI7q5ZitxSz@Md@w@_gY&CRg+7n#nn zd%&3Ek^#%Z`9vAYGS0AHQ^ugnL%WWF0`LO(qKkWVERhuoGI;#rZe^fk!J|Dm|<;~ zpJVr5k^YMLId*%Dm4$1GmkmD)P+8_lShp=^h1%*Kepcsgn_@cm9*0@XeC4o@r%s7b zHp~(86p(9k&++W5F6#dftTq%Yhy5P=B=ayfVV#$UV*>ly$os2F0!|v}g56AFR#`y1sSE0-EJ>~yuOubLR^6OtD9_%uWJjs;=H2#MOX!EjQ#%e z*QPUOu$TQky2|qNZLTGhtyd2Fd$4~o4|C^l=HdK;{eC`MuThrqhJDRE3SIG;W8u9B zd79)2??teHDHU1SR%0KZlBjICdD`TGv$-i#3fFzb>@fCvYppDEk~x$&3Ag?HQJg96 z)P|m={6S;%F#e{8d#Bvgb1nDu`0<2$4D;|_OrCk3jy%6KCVo!(u;)nF;)Ls(#R>Nw zre9u(r*q=epGM#fD_Brzr(+iZtu2-90 ztQ^kP@g*^DXlIGB`@=aXo#PPZM~gt|CT;l3jNKp3LFp5u!>)hE{G5-lxBp(#Cn|^i z8STraS15;F?-x^Vm2%kIztVL21be+}Os`Q6yFO%kt#a7)&89ORu(xx&>6|;T`(HJk zv4OpvZ8;9PUmwzKzO_k%{byuZ=$atBr+$oiI^=<~n*>Tc598q;FWfh3 zd^)AW9*6r#_l$?->5>QbF%0j?OP?nl_C8)}{`t~j*XvF1mJYifo*xxwfppl%@Fw#w zln%SU%k)0!u#eTfrZ18Xdw)NVuKsc^K46|D^1xnKzv)Y*!yfZnrZ1BY`}nLvx0v5I zPrp2{m;IsXE2P6dZa*`9P&(}W`i1E$rNgf8GJTbF*!AC;zD7FieR;?9wbEhtho56= zoYzT*y`ACSTl#wGu($IAVvhR;>9EH++4POlVXya0(>V`dkN*+Vw@8OQewFFlq{AM+ z#&pgb*yGomzC$|f@xyzPYUfVr;XTQuKxwA=cNu$p?&Im#Zt1Yc&(MC}C8_&cy&PCs z>OMqzrub@fy}6N8xp3boo+<4vba}Fr4;bVBHZ0H8^8YN-=>vMP^qrqdZH4h5v)f+l=p2E-C28DL>nod$e$U(Tng$BmH9IM&;o> z8MVLI*zY;J%u}!Y)37`x#{Pb6xGqR9l^(7O?E?U_VA5HN90j z?E01HigUg4us*14n>=BCu;V-3JRQngVR<^_fjv%G6Qp-a4{L&z6-^s%wEf;b$Ln1xl-|>_TI|SKnxQpLE#! zvc>d8(qV7&4%3%Nhu!~c)0awzy)S!AUnU*)zWmwre(A9HyZ;i?IbUJ#OO5I4q{H5qkDI<;I_!P9 z9$kIuP@Xi;26jf0_;d6+_fa0_c32+nW$uXdm8SEa*=o~s zRrV$0Jn>tRKRn|o4nK!HmN{S?&NbCLPX2l5;sWt!jPu2xH`b6O9y2Z$KLslepEdf0 zF|Y57^ihnzdBW%Dtga%{nMe1+(n}O`z;u3AHAWRumY*MW8$Y1@hsKAE(*1nIKR13^ z`L81Vx5htE{zqfRZ9lAfNtud8U11Eg4}Va3m2s=`$;NfcSv&A>J}xxwSN^$(Ik)lr zPW5as{<-phH)cNk$#|5G)nAO658*jiZ7Y)o`}N`kF>Rh89ro*5A-d|~Ie5JBg~~58 z-Yfsr#vfN6?(^m691K4T5Hlt>nuoc@^@zI4<$?V?4fpWUCrS_Z@GSzR#a5QNx-{Y; zSpEumV83>6F`Y4nUEg7PwRG6;MR%EABOUhk>@mGoI_&zNO|O>@`?~Qiy82tB{vNIk z&QqRaoUfestI^lV8?I~ODrw<;0P&x6OvC%n;wjQ=&5zDLWe>hDZT?1djYEUl1ABjG zncgTJ_BCoQy2@Uub0K`TP<*oZ5!1QH`@ZqZ%6|$gev{(BetqXULY)1|Uop;7oL$D8 zm&a?PY^%z`e*bWq>2174tpPWnZ80g>~Vf)`k-{! z`^a~wGKMRq!`{cgo4!gq?0p=Snd;*)%8!6mc8xr+_wjhs*Gh-IkKt$W@~@K~eimwA6re|A|3WV&N6+QblCei7hT73f%4nU zvt1t8`?%2b9nxX%<8pMBeMI?cC)w|WWSvl7v z%2L;_jFpAYf}m%KdA@ZH*AdfO(G`<8;d)_uczzMn&R#2+XZd@)t*EmbeH4IOicoM9bU(43#+fDC~euL@U&o@VU zyD@P(jLXDfeOAm;@u$%hlX&4?NX-2^v3z`fU_3$oAH(u=D-Y|i;xHz=%|l-f=iHP& zQ9Q=DLL5H7Exk&7uIbuMOg1J?SQ{08v$XK}Rr5a-`Bz1LeALA_{M@)k9M&JxUp1Zf z?=kKa{{dEA8ESM`XXMY49@Y>mJ4LS%zgBuUf92}IMf5Ny){H8JWz8m?o4jYa$))@a)#x>$u#`L$# zn6dhlahCWFW8yD{)y@Is_nS^x_Gu@)+L*G>8cz`O{eF~vOF7@~hab=T^&iZ6S7=Nd zij9>e?lqt&{QD~J8s%6U$Ft|6Q!lwDx#*U%fx^Y6-A%(Kwgul3uU#cAT-!}>G_saikX*`eNS!V3* z--#|yv+{S1`T6Vzwc+oV274PmYWfQ4u* zzqcZOP5d|0xt^b;jj=kQvapw(XnI0(0rocEjIKC*_H~Xi*XQt=Sn18;Wu`Ax{FIXw)F~bI_8e(?mvq?m51KwtI_!Fh>GP$--v05XcT0!8{S!@JARYGhUt;<~ z>9DtdCc5T8QaRs`4Rg=qn%-!~r!{rmvL_dwV`>`a0>b>q|^u zFCBLM8>VlN4tx8*ZTd#(u($vFrf-%Gd;5QA`WET1xBmsxw@HV+{r_$HcImLU=Xa*> zkPf?k!1SHcVb>3{d-7eG@rtg*xd;33R`X1@9xBoQL_ezJo{g<1*Pde=PQA^P^ z4|yhd%J?VBUw}1l_sb9anz_^T1JYq%Gkf(qX?YpJ{rD zblBT)9=gUVS9z6rO67sQ4Og08CLQ)RG@3p^I_zW8WqP@E*!A1dRo8vWyUjCE9@yLS z1=A~}!(Mg?y2`Fl{#El-$pd@YLDQ?H!(R3~=qme+@-^n+ejoO-L#EeChrR4Zbd}w% z{HNxrmk0K;FPq*V9rkhCWqPA@*vIX6rZ-84UH==p>f${^zK0d&cVl!Lo5-7-y8i04 z2rN1EU0%|)yeWG&M^(#%UP!7A^XgXsFyMBx5I?Yp`{kCV= zW$0s5&*@>TF4sCEtpQz39B!>(uAA+~#OW|@RX)p@Yv^oauA2+sV|4y1=t9$p`MHQ6 zG3I*um@)DH4OZFx%ES8%)}Ci0Pk2AU^zgpAxK^)+_ZGx8;@9yj4)0sMZOnV*e}%0q zKM#gEZsGGt^1mrAHl6X{=eu|qSAM1oH;Efz`9Gn&&-6U$PZ={l;XQWw+r(TKDa&#H zl`(UJ&z7N=ieHBn^FPl~n~nK=5Z5X^^W_Pj7ZP`g!{-geo#Nx=!^82p*m#~eyjP%@ z{G4;9>G{&b`|$D?h&xO#7SD#||DM{g)_Acd$SP>CZ@e!gS{3kByhA zY|=SXLtc2agUEDwJp>!?USHquKXzR*0xuQmNM%CCz& zJgXC*x;||>&+PX{{5A7*%M*SUCjSC)`1zOG^QK-8@4Z{w`1|4B<}6tH7nC1oI_(M1 z>DI5)OlPddo1Z?OYdUSa*mTNW9q~2hVSHLmC*EzQcT2z5^o`2DWIA;{XgYO0WIFx& zcI5dN^ZZ`<4S7H4X!^C<2|r(ur$+uXp4a4I+^S(>%5%NxlzO|atNf5DjN z!r#KGt6!eKn9lwByQZ&@&OV+&aW1Sl7b-u`_$uX<5l@2UUnzgR>2sCeY|P&Vx!ri7 z@^2dNQT{K+{OsZx;~y&jjqyE4=zTX>@j34A7;}yIyK#*;{47K5JYIe__n%^1FV9CJ z{R(5riN=U;iaa+*`us@mfmPR+l+(V@cbyAgHhsDB6~-UcTv}<&HFPzszK}LVyw#XK zZjbcez^ZGk%Kpjp0(ru-nBuGw=VYg1Quat=*%K$iDqF4mOw-p$|CllU@XU32YMxIu zy+C@K@mg^=tT-!_-)A~;*!OXM)R=l7H(n?HL8K2w{*AC=GA5fN{b$DORd!dT|Hhd3 zZ$|pxj5kPspI#&;bxwpYPtBRjj5o?N%RJv#zS?-b@~4dRbi8)KDof&73D)V6`2U)F zAGpfOa_xWPppuZ{L`sIWH8NBjaYRL>+A1n48YLG7^TSh(a`+0xA-=k~p@4D9Y z-0OMPzrFU_Yb_4s`7;<&@cR(wRSqrqo&p{NZ!*sqJoU!FNH-at5ybBr*CHNyXs92H zm_@eyIi{b1c%E??Vlmk~YfW!N+#vdQOn(mX3DJKp`UQuD^IeB{71?rDi2iNkUm*Ti zJmaGO#&m8=ndxC3_V@k9)ITWtc4LIdCyaSrF z<95XB#B;Oh!-%&T_aJicK60A#6Xy9j;8VtBAeA9C!bMF_+t+Z(7o$#*iad8FTquFP;uEme0M2ea0h*-xB6H=f(W< z!hbU!hn|)ZdM3b!8Bc%B>5wCZ#;p5Z;|cJ&#;jXPM%}L^nX0B*SwC;_;?4C&ztV zoNt~VAxDL9T)5qs_3jt_2gb)>9)BcbzASIUIOm&-fzy0mMZz^?44=X9ap55{@=PI5 z3f6(wJ)Vqdmm^**+$WxI7<0Xk81wtuk3@fpj64@*;xkC}Y2oLLOOfaI#wFlIGU_tl zf1A#E9e`YH=QQ|mW9k{kGvK3*x%|&I21ec^`UPans7}I}^Fn#XXVa)Y@ z0~vX$--7$W#DAN3zH6T2;rYJlY}>QOobSu#=|?;eK3^B_BqRU(5HAqsxVLA!@SW!Q zHX;Z2JY>w}{Iq!{@MUj7Ja53o4*HYfIm{TFYUC_qu9u6*XwNl>m8P@(j|e|w%s&2& z4F8dD#q}Qy&K&2wnDc1kS#Yi~bG}EooQymRh_#|`GG@PanuqmnFr97aGiJ^onCGX6 z%*8fvzA0E1%>QY`sPXZL9DEs`XUv=*GS7{O*9*6qhx7WX>3>4}w&=sgZ1eYwxg4G# zqYd4Nzc(Jl@?(8(!{3b;;D5=Ozb_ngbXfOW@4)XeWZRxIjOXBgmoe++8YhGE$(ZjG zZ^P%TaXaD_=9!0w6Q#xmWz(CL`w$5r1O(9(bNHj-bsi8M6)lO|~{9 zp&gu8GCXfIX8tVW6zC@yGf%Pm;kk@#d9D`EM)6!Po{yQ%zI2KIZu5Kt@m|p%GG?2( zyx7h(v|-9P9sEb*4Dh^r;O~8V*tWML=0-!l53xZw@7ORWx1SQ>D~usWJ}LUcqW@I% zmDmn^8+e=W3C7HGmFRZ}a~txyso7yWV~B4dqraKx*Sk%>1(DOJXF>mp_-dRVvKnAh-b z5`EB^dA>(Ro*Bfy0bmxxu&q z`pw4q;4Wj%>ki{W==X@;ZybaEpzGit8V{rHPmQ@uCfx)6opCYzFBp$NKOiUUJN*Y5 zvkj@nCGa0DdQ|)uld-I>J^|;|;2rxiJRj8HWFAGWMMocF3f4{dm7raLAc$R`_ygb=e+JQehzJW(D-S@?-~CZ`eS6vIb+N` zFPMjU-T)sx)Za!%JE`XjUu%3k^zFuXAl^x~{Pzft8Z+lpWXm}x`pcqoe$2!5d!aFZ zbNG-m^!3J-&|8eF!Cx@01%Jo54m@Jq0Di)l$F50ZVC2`vad_rL|En?E^Iv4N|DZgK zVDNTw-1#u$X5=}_xCMNQG1uuuWaRl4;-#jy!gH;08#r#B+Yx_cdOP%=8Z*zdd47*L zC;Fo4Z#o6n?nURgw=>VU13BMg+zGx&JoUz$*XND9;Q6L;H+Vw)xvQ7*^SS`%#k&7a zMt}L;o!1ClA2yxW07gXrwdwTo`i1*nG@ZHs+w>IVKlIcv|35IZvyFMJ_cq9EJYhWaQ*;P#?fJ+dl*kIrVV-gTl7b(~kHh8Tp5e{a%IO8BgdV(8;dzGlq5f*~)hgkhy>HcR_L`;>~2# z9W_qnhZM@4rjH?#Q>#Lq{b$`TBYw%4>tvTPe`5@u_e9QdV}GCUH(_-ElK`+W{in9jD7y`4X$&b}c2$~^P%ko}(X z8T0V>$>+_p01w&kU4PL$+@ANChs%fTd6H3|^Wtxt!86xr=N@>-eoq45b<|- zk?FjTi0t~6rl&wByMCkTY0$~3mEm#=p6^B*I-mv5cZ2)Ee6BKB4$0v-+rayUIL+$@ z&o05w-%cN;AD#?&$nF`X4$n^!pD|A+Jml0(VH=(^JqtS7*To!l)aCE1FPSF_580O? zFG$ey21MQ?#y0SNA+kR|m|>oy5RWwv?;Rrh@;TW&e8%w%^W?%q_I6%qI`17Kdpj?s zjyCYOS^iE;&P7~DMtkz%CwrUg&BNbqgZr`JDS(IUZT>ht&XNCwrUw z%`<@bpn2l(kbU_NnP(dDaq~38L-srq;z`EmF6Uc{co-S;ZGoTc_hKDodMk9YxBq0* z+n|$OKiBkj=w#RVn>Xi`gji|Zf>=++d^_ML`!*0a&rZaT8uuaw_mjil34d@uxgCqT z>=FUp5{=e2@%(7yM+;KV+Uq5Pxp`H^gVj@OQ&c_VxI@={?ZN-miJ;>=({w_?ta> z0`XvsGfyx4WMBSoqz(^%qhD#BK6uE!?PZ#W_ldvNnEum^dEfV$qQB3W&kkNi#(evc zlkDwZZ~89iWN-gw>Szz|1>iXuxdicMGV<((pX}}bqiT=6wy@g`0(MA)}q+$WKmf4nL=EGkpR&+53K%>66gO z-uFK0==&JrF7r&mL-sa5Af9iUXBr-|_x&03%pwN&-XrHE__wC>ehN1aJhSkS-ID_LJVzRziO730sAnKvW4sk{y)o~**l2tMBJatd|0=}b z9)55dzDIo3^hXebXGo#bh7K8r;eQWBk~>#ayR0=#(zY7n2dQXqAuC%j+wp(I@$GK znI6IU3)%I*P)GipRGdGXhv$Z5UoT0RMo%$f)Hn-~bzDD{d@RN&xd@T>(^IcRtTFyP;z!7s zZ!YqXeS7#9^YGs7FB;#6_#henJow4}jOyd2=R+s^_oknj&gUb^p8r|X`Q9&bYHheY ze@h+h`~%{waW-Na`a}IF#KXvFLkxAvzD(X}9^Nx@mU;NSgzO&PQ^GvFf8-kT6vIPy zPqXPI(8+!d(`I@pbh7(zHN6ZvIdyH=moC%Gp_BbseYfenCzR~R>U*f8ZI2+{Yo1DY z$o`r5fa%rH$=-$^m|hE=?AyZ_b>#dd;-Y!#;30e6WL#(A@@#-k_Wq`u9*0hL|52tl zLnnKGqo%h&CwqTSG`$r%+53A6b+qjw#M8~w1`pZ$`ySKVp_9E0mzmxHo$UQBqmG*hY;^I zPd_|l@9zVq?}ASDHau$jZs=t1?mUqVrvvblQ`dys~bh7)8Gkq93+5M-QJ_4QW`njf$LMOX^8FjStow$Bh$B zG4I*=Fd6+Cho9`r_9pS%Wu6Im$bKx^W%?v^a%z3JOa@J#f=>1}JWL&J9zlG>coxU~ zACb|9Y52*$tj0~Bfll`A;a8^5LMOZaJJaW&lYJX_(e!!fWIqRc2d)=#z6;RF-uL6F zqn)LQtIe|r581bq0`n9j#*9CO$Z^)?{bd&$^E&R8WXx+1@{m1Gg?T=Xc)fXe{e$f7 zX*Cb;BcqS`Z%6zl899^TC%gY4^ZXw12j)qEhwSqmGtX}jr;M|)E;!Eo$AVuVBYzs| zlD+O<%@c*^O&I7&hllKKcnfvpX+xxsyc+RxGW@)LLw5hw=Glh0#ypwukbSIk(2D(VG8yW>eU_>d49a`%X6xuicUTJg3R@a_D3~xBP_Z70}79f8O*; z=w#QwV|q1ovY#(KLLF`3eSeRerxqTvulL`YhxZB28b5}6^!`Rhzv|#8dw=(s-T+w*#uP+Xr?CXWkW3dgquQ1Cz&G3-jbF6uIZ{aHQw7^65b(C+OV#Gr8w8BGn&$;HQ zM7-EMZSatNySmyuI}q2HryU-$d$yXV1My?V^zRb=TgF^g-xVG)9z%SVjAht?{A53u z_?_vU(8<29%~Qv+O2d$hfpxp!A^SFS7yQou0Ky5 z!w80#$!NnMJY?_7fp(8&F5;nfkL3_NWN%M~c`ijf$~?pHki9SYrjI};d)?bjAB9f# zw%uj=7<97h_nJNqot(NOJPz!pj&}2&(+7hQ)%eedskrfneV;&1 zvY#&%P)E*u#4__t!bA4<)SEs9o$SYiICa$J{hpsN&on$_-^V{~`V4fkZ&!DlJ`0`f z>*5~j$jSRd?={aHJY=u?py~6_$zFGeI_mPi(I1;<0Uolii~leW?=StCc^2Uz`+A%b z&mQAhPPcnR_rOo~oQG4#d@n*g!aNaNwc`ySA35h*^f)Dre{GXdmBD!dK5a@=k+<$`FjZ2{~qNo>S)6Qi1!=+7JYr# zI4ujm>5$Qe9MmQIcJid@xzNeJolH_k&VL|In>X`4fh(+d!!9(^ozt8j{=wxs671U9e_w#NyZbZD9jJ_Ac zPxdx^(mcGk_g3?iz(e--cZuig#*ZNm84n_k8&4wsr}5*6bH>d75*ckMMSimPcO}*h z^)l#We>OjpI{K20c(QrQ;UW8SILq`3=wx3GG3uyWg;;E!N_fcL_sh(41LEc8sfLH_ zeP3sKEp)Qi{TJ%UzZW|8IL0Vr}6I*pELd?w#fzKH{c%LEW4+-4*AKcHQ_P* zSi8UX48$|d(*O_Im(P36lZ{wpo;W;Y_griq-kW@_d79xNyQj)LC5Y?I(*h6K+p}3b zjpk{EhwPqa^YGs1R`ayMLr&cp_Um@j+o6;FJfw#@mM8Ch?lVsZJY@IWXP$=;A23fR zJY@eI`L5|*(8>PU^rY$C(8>PUG)W!v_$bBFf1~MR(8-?vM$^Zklf94a)Uh1Ch|`!Zqr9CWhh`JL(W z(8;bJ%X`#u>{@_M_Rp_XrY}M#yMC7Gd!UnDf1l|Q{KiW5{1vA2H*K=(>rGFAPWI&x zH$4qH+5I0eJsmpP{kKrZx+q5MGQJ1#0W$iP0YBN_$@7fqnb668yq%$rJf}o)%r{RK zJY-+*FN)`M_?SNm583k+Qb(RR;`hvx4G-DR8J;vf2RhmHY14C|lfCaRn4Sln?AzEs zP0xo;cK;#Agl#K;PImv1rWZmdyZ>0zW6;U&&ojLUI@$ean_di^?EVVV`Mx@`FSl0e zSSEvrKQRyQZ6JH!e_?tVbh6KD#`JRNWS`fIrdL2GyZ^sTuY^u^fAX>6GO316_W7op zUJISCMo|-kw_1TcDHO-(-3#bh7(DY=>yQo?r%1I5IWiQn@t~rPWE=* zYWgsAvgaQ$eFQq$^GujN3Z3lwjOk<0$*%v!^l|89KW^-yj(z0NZ2WeQfyb5!c*yQa zp$-q9tw}e}Bs^sI93h?)%rgZK*^kxv<~atj)I8Jhklk~Qd5RI6%`*cJ**zaMPXpo$ z=9z_u?ET$i`W$q!>j%Fx?BhIivM>K5OkaRbc7N3LMd)PrpJ4hP=w$cjn;yY^D`fW< zQpYlU9&NeOJjw8o{diSjp3fpyn;XPDjulr%sOQDlpzs>YA=w#3NuhfzA2Z+7qDTjyb>+W9D zE1;7-=L4o!LMOZa9n-6!lYLqJ$n;w1WY7Pk>2=V_p66-P8=#Xt&tFXEeQ0Fw%Ri{2 zFWK+H;>Eya&U?+sKCeSeZ-Gwsd95_P6*}4Vx0>Dto$PJMF})o++4JX_-T|HLc?wML zgiiK6d>)VO?1E1AZKK%qZs=ssb0u~3k|7Q9Gbh5YMOVrWMU5FgWd`9qF#(YNb_r`oiF!}h1c%y;9Sspp$)D`jF|<(8>OJx6$+&=wx5lO{UL6C;PT{qv>hjsd z7tE6k583O!Y)I6E+kbPhHoatH6$)3NPI@*6L;^XFt!b5h?gn531 z_*-K>Yxx&4+MEqP+4t)MP7L)N=w#1xsOh=T$*#ZM^gQTf*H1J(xF=TheA5fyC;PVX zZtCa@p8+j4Pa!;HUk)EPJqDfZ=lor!7eObxK45w=bh77p-1HLYWWWA4K^<-QJ>rz{ z4C0@RzmNE5u8SJj*=g@Q_n$!eeI4Jf|X-8sCF>IT`b+fS;Ud`_9$o`3T|~^Hjn^c2BK& z_zdh8^Hjq_cFzv+eAGO(@Q~fpZXP~Y`x*1p!9#Y>znF*fV!PSq26)Ks`Koz-j`)Ci z;_#5&GiaX3Nx1fCo@RK+?)koX(%^Z3Mjh*v&+o1^PX|0?uUluHe#A!ebizY+&xg%(JK{&p(*+ON_s3gI z?}kqHV|%yhJut{`*N=F8Hn#ABmW5e=MF3Z3lh<%gzcLnnKlCr!_RPWE;_V|p%h zvge;MJr6qB{V$lF51s6v-S5J=3)e57gD)gwofg1D_RrRH&BJHnKVY6hc*v=>w!fHX zC*m6O#NZ)&8|q9if=>26wwhiHo$T}dICZp*&)VN=o)UP-sp+;}OfQB0dFmeu^)H!T z2A%Bl`l{*W(8=!qy6F|r$?oU70Juylp_5ZLhxs2hy&5{%+dN7gZJt4V!aTL`ko|sx zNz?0~ll}MiV^0a^)c~FBZOAb_4xQ|6INkJS=;YMYux;m=-U6NM`Wn+)p_4s-t?6yh z$)5icrnf^UyZ_UscR(k*|0||5O zClALllZ@?T0DiLH<9+0*p*{$m?D}!04?!opeyZui(8;bBQOA5QLcGA3&k$Wl#(YQM zC;R8icGE|plYL#ZP)DAd5N|Wj7(8V6eBM00h%3JfBeiCw5QP6zbmm0`xQeZyMDImMTlhAKT91s??b%T_{)f2Hy%QKkc^zg z#{OP~@0(`|@fXHFMSRxyuZS-i{|WKGjNgJj9l?HKzAF*4j0+LZG|oqSukj^_=abO} z{2#Di&k5G!r4Ug{F=T+bF4h`zo$~Sxb*|G*#%YMbx`R&79j4RMW6X8^V`Hvs*2zF} zUP{8PIsqSp$aP8mBt)(!aslGIjk(M(Fvje{zkv%+8@S4J@=eA!Ab!Gl5b<-u-!T4n z#P1kSAU-DiI2kj_LL~3AtS$@t8*KAn_7^|BMl!&4h-VtJudQU zLElb>|BcCbkF3BK}Zxj(bi%<3VPgQ&FGHZK=o@7`aOHT4DZ;J@?;cTnzv1 z#zo*h<5KWfj7z}5->}BK%E8|-y$t-6aRvD11Cbx?zXP$;nC~CB)3^ZJD*q;3&_~3_ z$jDiVy1y~51@qnxdR|84{T%dELq84msk49YHogbb&o|zQWrL5Uz~6vK_RnHm;tKRQ zBH6D6)tlaoNcMBEozyX}jflbV0em}{`zQ4_#Jk97TZ^&Rz2Ed!M6&C{VES2??D|ut zwD;W6MK<0LGH!^oId2Rvl|j_@|qJE4^cqKCjzMFN99^oc~Il#~;M+m?s7g+1oQ^I*$QlulpP7R`(C)DTasa?FrtSguawO z58j((-@D(I9QLskI@xn(Q%6odJ9C10%HScpCr>`ln2NZ4v z-jmxAId3vQm%nbz&w1XH%D!|U4>|SFaG5`29)8aM-8`M}klho!^9MO2(6RYMGTs-~ z#i|K71rc9A1IFTrFf~1Ci1=C^a0X&pHQ#NfLpJXzq=OwUB*cM0aq zLHwX`0b-?bK4OhAbJrT@A#OJ=L=3+7Ax{i^pXtSj!FNFDMc^aRPtL0pe3WqsIBHx5 z=JA4_axjkt&C$!H*N;sVcY_~$C!QJ zZQKg}g>f5r%D5dIyju@BJHQ9=SO?~^J;^u+e4%kCIBwhpzTUV89Gt^j-QcqT+zb5^ z=HYyAHSPv~*0>LRr*S{{A@K+2^T@LcdT<;D?*{YTC~W5d_+{f<@B!HPsONzXGadv7 zf4>|05cspE4}-s8JObwP`K&t%=CkqSaqy3f$H2ic6Z#}LIOhjXfRDpK|CF)s?-!ar zjYxL=D${2W$*$i?{jK47>{?q#v(U(XeYMf_Ip}29dAwj7=An~azt!{w=w#RLHhmE~ z*{^{-MjdVVKH@)(UqXD3E$2P(lfBKmsl&eu@!Q4^BL0qy_C!#Z?D@~+@`V31#BIh~ z5kF6cKN)_q`|mY91v=UF;PVdtH0Z(S9d}|Bz9WG7ClLQ+{5&H5k7SevmXO~ca&U|S zCu1~~9&id`k#QR0Ipm|m{q8!`(-FzO9O_NaKqR{!%=ZHjP=a}ZSvQy$nDbqUAp^|$ z2G>%+obNkLXU>z1GZFKQvk=rnk{J2k}PZT*U7f=OaFBT!=VgT!1)X z977DQji7B@He~PP-SX{LGGPEb@0sjV(`w#P!8oU3E)R`D1 zSUzAbH?n(zb3J9i&o+?xyeLc11|9%Vf}G&JIkWMuap*x#<2PYE10Lof zryhxaPy$bRSeL0Y!1SP6zzC63g%2_2Hb(Ykcm#E9bQd6EmF(pc$jHh0kW(x14@w>e z`cFrUk>SZO_MAZ*NZg4K~t}u52Jz##e$Bfy9i^=eFIgq`b*c=0$eJA^Rx!Lqg zL~<$@Fv=|$n1|Z}+0WTNOC9t5BI2E7c%sJsyHcO&T(@MedoOj={WjtQWYot4RL!H}F za1IIP_7EH=!SsAoJnhEZ1|BiydJm2RIpHyTC3R!2W9Q)biJa7e<0l(~vI+w|HHchx z&gTiQG5!!@tufbsqcE?Pvo7^782=k$ux&u+`W!Hw{9WM@GTIhJB>Q!8U?hno&0S%=cL(+u-27l)@i8Dm$#*lPTfRSGE z#Ub~TF9~@!xg_L4GB*~KVGK!^k-~GwB%br2jAKY*Cr~CaB-#1KH2DMg2W1vR5)T+C z^B9uK0t~JnCfR2b&!3X640WCZC0!MAI=MXLOfnBpC{Z%@7Z!d8Ny0ky;_H#yx39-c zazW_GCfj<yg{4ug77st;aF4t;b0+8-+51!PjH3JZ(Mhp>FFjScbM9c`eD;W3b$8J?2uk^~mpQ zz8;InwjN8#wjOz%!q;Oh+14Yk3;23$CEI%BcWhse-Q;q%KK#AL*CW5X`Fb28+j<-& zV_=yOo)(@HUKCC~V5x4paF%e6aK3O%nAa7(4ZN1ctUtucutt_BJsM(SXa*J!db#O!ui56;S%9;;cDRq z;TBMJYI7c{NI3`>oTrONK+#uW{+%DWD+$+3Gcu;smcwBf&cvg6U z%!_9%=&N&@aHep!aGo&#M!DB57A_O66s{9)7H$*n6z&o37akBE7Uny+y*-n{Gs66P z=tKZ{0n8!n=isghz!Z zgr|k)gcpUA(H5Uqx-kEqd(vTHJ9C8dg=4}c!sWu%!VSVL!tKI*x3S9q83pzw(B zxbT$ltnh*`Zy5D?r3q&WXOq*z<&Y;_C|oSecUHTudGQaWLAXV@UARlQS9q83pzw(B zxG>+V?DL%!UJ&MwOzue&&J^Z*ncb5oTqs;DTqay8TqoQt%y%?<{!ZZ@;eO!(;bGx1 z;Yr~c;d$Xb!YOZBY6IV^?CpsP=L#1H7YUaNR|xZc#GW%Q%y%8T-XYvA+$X$Scu06u zctUtucusgxI5}gf4e7#J!a2hE!ZG0z;d0?>;RfLr;dbFJ;a=fgWVD-QP!KiG~rC)Y~eg%zQ@?>77LdN^S#FIsS|D%ZWHbl?h)=69uOWD=KG6%UX#Kz z!hBz`d-e#Y;5R7O`HYBjR5(|-K)6Vl?;`fP6~eW`ap6|s4&iR$KH=TML&BrN6T;KN zbHa|W%y$lZ z&Xl(-G4F$OJt~|_#<7E?K)6V_RJcO8mW=(4B`(}5+#%de#x}~*C%jvDNO)9uLU>wu zPIyr``KYCNr3+^X=LqKu$An9S%Z00j8-!bg+l9M?dxiOqVqYeM!Xv`t!c)St!VAKY zw=U&O6V4RQ7S0nc6fPDn6Rs4l6K)o66Ydo55$+cr5FQpD6Xtt_eOb*2&kOGnPRUyG zX9!1ybA=0pi-b#sD}-x>x7$y+k`uXdxZOi2ZV=($Al+^XN2d4_Xwxp#tUB#8NyNF zT;T%YBH>bDzHioZ)(Z2zvaYuZcL;Y2_X+P79ugiEo)DfE=DTElzKg=i(Iq`yI7>K3 zIA1s>Tq0a9TrJ!n+#=jA+$G#Ayi0gcctm(ycuIIyctJRF%u?UegfoS+h4~&@UxtOk z#lmI6mBMwx&BATMox(lB{lWvn!@^_2lfpB?^TK9` z-NJpsyM>2@M};SZr-kQ)7lrwLRBvaxaF%e6aK3O%xJ0;IxLUYDxJ9^KxJ$TKc$e^? z@QCoZ@RabZ@PcsUT}ypW6V4Ro`$>KI@ExJfg~EL2r|V_HmBMwx&BATMox(lB{lWvn z!@^_2lfpB?^TK|I_sX;UeKuVZQUz{k6hz;a1@e;cnqR;oZV~ zFQ@0{dpVsagr|k)gcpVR4o|O}E}SLIcYC@gUpOXQB3v$9E!-g7BHS+ACEP2#OL$Ot zM40c`^mg(co6fVs3&N2TmON>~nZnt^dBTOl#lmI6mBMwx&BATMox(lB{lWvn!@^_2 zlfpB?^TKvt!d=3>!n=eAg-3+>zCLdc-_z$jE4&~aITarK z4#bisoGF|woF`l;Tr6BBTq#^9+$`KC+$r26+)u`DHY@|e!@^_2lfpB?^TK0)EZJn7FS6v3asI?oNX9t?OEDRrsVrq= ze8#X;l5w16sUu_G3(BgdotxuTYa*+f;*DXfb*kGCuW78RTNU59wWfK;+S;94Hms>y zzr8-Psy@l`whx+I6)}bz3&qY~5JDX=l~8gvp!g zw{6_9y{T&5`mLKA>S{J5PF}ycslH}IbG&iO+PXD6wkAxj+OT<3bK}OfO*`sp*6*y| zo-ny_>$tRde;m9m~76t>08v->|W1%g!C~ z&5gBNmv>dg8@AN$*t&l0&gz=Y8`dQ*t4-D0*3@s_QMG-`y2j>s&Bo=EY+hTlaclkh zE%EKO+tzGYSC_qZOMO$kp>a#YE85=Fu&r_Xj!p56>#NpoXs)S#73;bkYc{Umxv8;s zb3=7g^M(^A*?Wlhh>xRZP+nd+b)o-HVhS!8c$YOLa_@V&EPpNi{i z;^%RNRn^Cv5;nD07%!-)if?PIc}-twRb$oW8XPKK(|IL48@41KKlYvRhWZWh4OMj; zu20;b_Gi01UKM|hM&fW)Q}v1+bl-&NXifZ87YU}n&aT3_E%9Ko@7$W=HLq^K;@rHU z9zBb!iq|xwVbxV}975JK`9h|;zaw)nZ9j+QVA_6;$-%V!9FW6l%O8z{Y5O@82h;X* z91f;!U;ZE*Oxw>9IGDDd!*4KcKgZr++N&RU1Iw!)bpy+*A94fBevY@nv{yga2A0=x zqz!zp<1iceUdJ&u@V$-$Y~b6^(KVd*+K1M__d1TNf$w!3R0H2@98tG~J5g}<68QH$ zj=rA5>Qdc(cj#pftic>!;Yv8FE^pfBI1{vb)hiO&!IbB1r>x4iBiHij_C4+{<9WqF z_fmLImVU{12*$mAKLu+(zI!kV%?o`j;~2;>3@l^F z$7Ra)asHl<{nLDW?@R?WFP`rO2%0ZC5x!H1`3|*d%=;$P*L>|5i9`3|`3{Ay`4*9n z@4{iebPSxve5;}1|GnGk9*neL+>7Ts3A*M>`&sy2Wae9m!SlU8Azw2#PQFvei{~pz z$XD=leD7Wnwl72SH6-L4f+yz5%*WA93He%|4&Q^t_8nn9_V@OLe0*<8E_5&6zRxD) z%YP<(-y-vI`}h6^@9n|3@8>y~V3!esl%DUK3Hf@FuM7_6&^L-#8Un>^mv?ntkM=wptH~8yFgzqt8`;Ijq+jm1kzRH8~ z?pj5S_K^X-N6_x8P*kdN)VHD$DynW{-+4V>Y1xFDLAS zkNJ3c(DMcFYQnhpm(QJf4pwze0&q6&i^8|u=PHj+tP{h)GKH7E7b0@LeonyUe0)N_ z0_5ZJ^WyW(257!ae8BNDp83wez-i2PIY8UjfqeYj^+F%ZWdL%FBPgB7$9^y$E|Kod zcYQ)WJ{QONc=3GO67uyUUp7q4cQyw4Snmq}Z6BYlTdsXQ3HipPeeafhk0<2o-%tA< zOUO4P?R&4}dody3z<%=mF(F^d8<+Zfj^xY0aaQ{~jC{*&FNeX0lzZ1lF7o;Ia-QUS zPeQ)Q{j~4QgnYHqzVjttWkS9gxV^oWFL<{Xe7>JE z-`~R2!N1-QzNcUNF^GQf9enJ^Wf;646AAq&c?`O!7yll)9_MP&&T7Iw=V}i-R=wVnROke zd!diz9SQk{k*^;*+sFQRzM_PDJ;?V#O!wmX-kXrG7AM|4Ffm^_2G3WSkZ%w2Rbsjq z&v$J?zGR%N&A`Nb*I@8`EeZK5-irOgH%{{*M0O_Mr^!TAREOE2EkL*OIFe8Ndd5x&2Y`PO0JG`4SbLcR!oue=Mo7teQ6LcZ~nlY)2t zGhZzR&v!*azFy=jU#7o&mz}n+^pvIZp^cJnYeK%oTwDWKroVLw`N~hj=L{AS+gB&~ zx)Sp7o;kiF(~I}_GYR>+@Q1GW9zy1;$Kd@9-jj!MUmv{x=M6YEdGUPTOvpEN4%ROY z*v!Z8Q=V@op?!RD@j?8;ZN>9Fn~<;iVjNH39Oi3;*Yl-e9=g4xToAs$IWgbC@Uc$J zCJbJ;bbN_J^L)Yk`7rMNZ9%?1tHVGa%gG7($|{qBzgxuqZpYyHN)y@_y$}=gF<9|@ zmn7tCtxAe?;y}rK%@{mib7H;^czVz=VMfjdu=DS|<^(N$NXu;ps#&j>< zzRxG*n;c&1FRJWq-)KU<;v4Xt#22RdnEQJP`H~+^itxQ}Y~M%B$Nl#Ymd|&I&YQz` zjblX6TF1ql**zCR}9n?OE(uVg@~;qYnuk|&n( z-75KF3Hb(*FMDscFb7A^PRN&!d_1pW`#LdjUfiCm67o$UA5J;;7H=Ql|ETS2N4{dX znD28KJYVn*NR0a~wupT6dGUN7PRKWod_6ERUl#_?_mzb9#Xc2Y?@7$}#e{ryKVACX zbGzjGK|;Q2!nDfte- zF^A3Z<4XxPrZ-^Ri?{Ev1Yh}nd`Bnvs`ukNF~QfcAKw`Xz83h>y>W=%z6%n39q{=y z+MUZ1e4YF8RVDbk_T#Hh@OAH}eb*=W`r(VQVOG3-A5ZYj?#K68_;4uaDR@wFJ{_({ z8x7Ve`QBxGC2w-q(sKEh&6md%7Upy2IJXfFkHU8_1uNz7;S^?X@lAWe^7({L=JSaV z9iM=YeUF(j7k^aDKc~M6jnmRF{5m1uFb-19yx?QS^YOiCR@ug*IoDkbj~ z94e>h=Lb_xEjZ)!&{BEGjpvtKkd)+^xC}qEcR6xCyR5O{=~YhT9k^2c^2;yZhymq= z8@(+Uxsi%$KF#Cl=R~6CMvn>pAW8J{^#8yb>Wh|sBYG1qm#0MDeMs8Msk0u5M4;c7 z{Lq1+`sJgNPFj)nro3a(h2*2>Bh2wdt6`b0Wu}J?y!4R&VV<8HaNhwBt@!1Nuv%J5 z+REOXn=y-h=JAt5ewq3TL!|X(tXcGZ*!n+@ah7=-U%WAL;d$qs70p@OxTUEnzGX|@ zNtaz1t!ZjF>6F#0Rn`FCxmR3%{&nY^ zd-?lHt|&YIx{`~^&i}wUC6~WD?~rrOy$JupjFJ(Cy`Rb4&RDoFvv4}|vhZ`;nLcNF zoq>_$9R3?#|Kz60-GZ|_7Q=ZMSUf-3{k$GYKco9E1hXvX$EAkA&&aZz=k3s$laXaP z4|Q+DD_9ODytmkkvTGVw1Z!nUSrPn-spH(6m&%IZS4186H4|zp_;NofD}rD3mV^}% zTyT`KV(%Ia#T5};h?25mpEbr~iXK%sE?+89Zv~FBx{ld;9tXW}+*{0byb@Ehd?F&J zpJ3x$rz^2MPPK8azm;(C`Zf#K)k^$V6pV$(zQd8dbf57z2Y*+P61T;}u{?O4hK1|+ za4e4v!I+O{Mz-uTj^%OPb=&HI>JZuu#|CVk(b@Q-( z2LC|`<_l&UxD``p8*+@PpD23Jet1}&oN9gK_QblJFWK969ChsEJZ`Ke!^34p_O@}? zbq|^z;d`-J$et&d@1cRb&wM$*4Crhp+5L1TF#!tulf(w2(BtpQ<}ysOoSf!^tec_qm&Tf!(vDX6|^e zGzYustKAyA?|gzgz!GM%S6iBcN@xpj7hI)B30HzchL40zN$~Ei%%g`m|8L&66~+4D zCTFWKxHQIn$%}0Y!FObG%qA3I{c}5xVqkqv<2HV}je9)aSYmzZuFxKS`-79 zkN1Pu9O|9j^f!-#Hw&W9)XiudC?I>A@EAK&rjy#h1W2hIX;Y$D8Y(PdoMuO2b25y$b#3`$NS;)I!rN*k*ElcB>>HrhkW!! zQRi(KJRkk`(Fj7piXMh|43Ot1^rd4+{C+)*3EZc>Fb~V&7<^mdIDc2T#wTLju`zyO z4bT2otzEU{2C_eplnR?}hB&Cb@L@UF{g3h{)-=HXhbbkDQe- z{Q?^g>*Gj^6Q|%iP`EpUqx_N-jwgIwg6LnXU~x42(x}bD&m}qP=hp$-Id#DH-H7`v z?RtV&O8f z9lR=q>x7%hY&c3A2Io#;elGj@d%y62@c-Z(+}32`d9|<5WprP2uQ(T%^^H?zooySF=2kMoPe4A-+Kfi66JEmV4GNQoc5y~yg_I z&yQH2(>Q*Hje96f-DEYW6dA>~v`C>K= zAt;`E9mdG9Kn?Ga_4aWW@q9Ofb@>&U-vg(yd=dkhePh|5?=zUjefYI}Jf}^ZFWcvZ z?PKY}K#pNx;onO2elT(xBhP6yUn$1@QwJFM7`abszDmib=hBbDr}-){zFhkrO325* z+3M}%@ypxyOhUd|j4#(d-iM&=YnFU^EcZ1(JZd&G?^8e#=M_(#j+Rj{He!j;opKHnY6dnn@ zxQAOkJ-+p;$G!W;75ki9a*=u6(6`)mc5NNE3*QIWvX#h3%?o+ob1~!(uO$2G4@d3f zD7cVhmHj+~qkgW!)tX@&VZdBmR{WfSz4r42PI8^?bDi72pSNTS=LrYrGqz(CQ#aQ0 zng7}O#?n=`rK@}R@DHz^z1C^NQst!+fw1QP56=Onv5|z^1C|?>9aj^_|98&;<|H52 zyXU(Y%=~^%!F8sE(^yI|kZscm?y0Bl#eG*o;P&%czDjr!=gaaP7INSe=pwi(eL@%z|6<(ndJi*oH@>E96pV~_g`S-qZpR^ z47(dT{a(HeNcRy$pLQphZHQrD;WK00*ZBFW=K#Af?sb5XA7Q8@Sn+9J!MNt*Gh>y| un2+=K{?d<0drK~aPK@!^3_r)CKk@nqKkJU!TWhIJiJxKZNdApweE$zPmZt{* literal 0 HcmV?d00001 From fd73d2c2d11a24ffe624f6510d12cf9ad578ebd1 Mon Sep 17 00:00:00 2001 From: Pete Lewis <601236+lewispg228@users.noreply.github.com> Date: Wed, 4 Dec 2024 11:10:13 -0700 Subject: [PATCH 19/38] more architectures WIP --- library.properties | 2 +- src/cortex-m0plus/libbmv080.a | Bin 0 -> 83996 bytes src/cortex-m0plus/libpostProcessor.a | Bin 0 -> 82192 bytes src/cortex-m4/libbmv080.a | Bin 0 -> 81508 bytes src/cortex-m4/libpostProcessor.a | Bin 0 -> 80508 bytes src/cortex-m4f/libbmv080.a | Bin 0 -> 80028 bytes src/cortex-m4f/libpostProcessor.a | Bin 0 -> 72332 bytes src/esp32s3/libbmv080.a | Bin 0 -> 183260 bytes src/esp32s3/libpostProcessor.a | Bin 0 -> 154768 bytes 9 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 src/cortex-m0plus/libbmv080.a create mode 100644 src/cortex-m0plus/libpostProcessor.a create mode 100644 src/cortex-m4/libbmv080.a create mode 100644 src/cortex-m4/libpostProcessor.a create mode 100644 src/cortex-m4f/libbmv080.a create mode 100644 src/cortex-m4f/libpostProcessor.a create mode 100644 src/esp32s3/libbmv080.a create mode 100644 src/esp32s3/libpostProcessor.a diff --git a/library.properties b/library.properties index d6a9f0c..4a355d2 100644 --- a/library.properties +++ b/library.properties @@ -6,6 +6,6 @@ sentence=Library for SparkFun BMV080 PM 2.5 Sensor paragraph=A very fast and efficient Arduino library for the BMV080 category=Sensor url=https://github.com/sparkfun/SparkFun_Qwiic_OLED_Arduino_Library -architectures=esp32,esp32s2,esp32s3,cortex-m33 +architectures=esp32,esp32s2,esp32s3,cortex-m33,cortex-m0plus,cortex-m4f precompiled=true ldflags=-lbmv080 diff --git a/src/cortex-m0plus/libbmv080.a b/src/cortex-m0plus/libbmv080.a new file mode 100644 index 0000000000000000000000000000000000000000..612183104f2d3bd070bfb5202fedb9265c27f019 GIT binary patch literal 83996 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 literal 0 HcmV?d00001 diff --git a/src/cortex-m0plus/libpostProcessor.a b/src/cortex-m0plus/libpostProcessor.a new file mode 100644 index 0000000000000000000000000000000000000000..7fa73c401ea7978cc07ae1ddd90c5842650e4296 GIT binary patch literal 82192 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 G?|%VRk<-Bd literal 0 HcmV?d00001 diff --git a/src/cortex-m4/libbmv080.a b/src/cortex-m4/libbmv080.a new file mode 100644 index 0000000000000000000000000000000000000000..d1e291e07f3f40a8d11f5bb47137fbc208135cb9 GIT binary patch literal 81508 zcmdSC34B%6wLiY^kdY*WFa<=oNdQB_aKmI2sv&{HWDSb7+S-yk&+}}p-T-18P!tCw zw2eYrmBECeB?=Ois_j!>Qf;*kPuf}|P}>_5?5XXmzwbK3&CR)3?fbp|@6-QI_Fa4J zwf5R;k7rM3pNgf1pvit&;XK_)Q+M$K{lZ1_7hJqZr_&3h%wL^u!GigshpwfNG1ksl z$aSy}e{PMQsJ>pm!Db0>Fb5q`OK<~h$l>!c zQ_x{ZIK3{L-x>hj1}z~=SVnw)i9L|B}{II*LHp`pMQjZDB=mYOa`aX<~7G-7GF9_OE7BL;P4^=!H7Q{ zi^=T^S(r893)zF_u-g)kd7L%}^TZ>egw5^`SS@a+!5C#8cPQrdnT?i+Bkm6dT+HHg z#=Q=|HDPku!jYhx8BAWI)$Ft*{+Pw#iZhEVVKs*0HowVjcbFqi7BjlN7H8ZPP56BQ zn?1-9{*XCrF+^?7SR`mSI+(*8G}`>$P{5LKMogX@4UHMT~Bb#b$`ROaW(@#iB-sH{lMLO(<@c!NOu5qrnl5grZhk+~+j~ zn8#p=B_O~bH%Gjopp)4=5xd(I_Zp+-fZr7iF|W%IcbMEEyDu6ECj1r_a=NXyM8p@2 z+oJ)4*TH;tk2~Oqc}<3()o6)^nKuz~#G@XA-QT6ph&8W|uFPFu23W!U&qN(d2gd0?|as#zJ;aG~uuYoNj~H z=8Bk^$p)!Lv)dAL1R@@1kU8S+M9>qq8f<2t%N`0ammz?r8x2LA?wHZzH!+jL=(hM# zP;qyE|faq78-}#<<0RcIz^_WBve&++_1P zQ27%clfz}TMJ*w3(1><#_J%xGr!C@2IO2A{Dahh)oBbym><1{)oVcY zwuj6Smx;N}PHV_yi5r4;kJ06euxL2pwi|tD@e!BR97O$y*A8PYV>$5sLTNt^~a$HYLhMOv716JW(?XB7OO4d ziJ9DCN5GE`)D^abV$OKfYWF%4=>NTmpf&D}nml0}>Wl%I9Je^b=%TF=U(^*cFh?Y2 zh+7ce?+G}4(IAVv(dYUCp{UJZF*=+vW=!~8Ui7qPe>m!~xRHgZmCi)aZMMX1F^9>( z!e~BGqt%73&~Gq%1I*xaoBgqYsk?#3wkLh ziZWsfL~T|_*pB>g1MyhRsLuxUHF(B_9UhaxZuACS(GWuVnAPXCc$}_y$YBh-?NJj8 zqrqBZUYp6`HXH2D2t%5KUVqqTcQ~V=nA^g_PSgxT!f!WPkm6{B;Yni;SmWUkD!wP^ zax+iN>3@Cm2VQLKgZHMz0<9z!MI|O=gD^s-x^|7GEUh^+%0}B^q-0 zgLYFqV6YhzuCSS5Two5kgO-@r<9FIZMi%!(%!ZgfU~~JdsKE{vNQA8(s=9u!-RW~j znJeJ4JELyYc+^#+mHLl_&l8E8LjG95VR0Fl*%`4rtTuNz=#Lt_mJlD1d5REWu^C8z`PK&{7_9U1;?1;GFu*5j##wu(l@s@X8c*wPCH|D1&a zsAjW3|LiaSIKiqH_xg{Na5)^X&zf%3a;8I?+L~U%SXJ{-GFTPd9jr1uy77hXvNgXm zl&z^Ws;Zh(w_JVlbm0P{Q3LnQS5K{|G;QYV_02;K!G@1jV;^aKbjwV?sij(wTE`v# z(BD9@9oG4en|1z`?8GZCzkE4kx@D|F(Bj0L)2WpocCzYgdwY47)N)4$*l2C<;psZg z-g*4P)NRGw1a6ujO}m$EFCHjS=j_!yUOZ4psrc+TU#P#RHmA3F=)tfY;yu1&+ew~n zTP1`_@&(C_oapwqv+eV_CEP4g9>=Qxqfa$M#ofUdtP?r3TrPZj`b4aPtC8|Y%U##C zlh4=Han(ZDC;QE54Oi{0ej@*I(Z7PzaKu;5T`0vdr<+yp=u=lA4*mW8v$^~F*$FC& zsLvh2kTmEpp*DmaW9RW*Jku4d|DB zK|BgQ5Ewt?KT^cq+clos*hM+tbfda9m&@;~TdfmPTHjr3A2cwOvsBi{XG;`+SB>O~ zch|-9Kj@JE%pT+*rPkz<<-}Y1esF0;~O_N;JB-i-M{#yG2ts+?NADNv8l7-&;+jRkl2Fqq?+-a8&$PA+|=L9 zlVa0#|IM+Wh3Pb%spGYh-*p)|@(}W4f&WiPJ#jpQoLJ!R?>{VHlp{J>>x>-vn{z?S zulkqZ_m};XC3cqB_t6z}p z>MxeK%DW%p7a{h?`a`-O_ftC0mmlOW=Ly>Gvfp*)A1dbl+NBk0L9UeJA=HjMPHe|U zYR9eWCsfqpKf9y4q_?rUFfI5+I<+U!RXmWVW)<~P`$?ibzSH+TK2NWz&Fxij zs!EyC*4?^b9vB6UbjZ0P{Z_stNt(0jKSHZf`lc16Ril({ zR{h&PRyih(z17#s6%Q2Um-7W3-RRj^Z^_eFaX;%4>m@YoD;Q7}bPs4of7C}Yh>}nA zskV_zwc|FvVB1llW#m=L)Ian-*zM`WMdC&()(`>HzB&GnP7XCwkP&dc~TV zE7eS~OprR{^eEJ|;(?2hDzOw;^$=2XQC1$ar*j|79ncjW`*1XKbE8l0`cT6*!5@n7&(66$-vA^pF(KgJ@@4P_tNtx-uB-3eLY#%xzH%s!v#KWGIv7 zP0;$L-V%<@O7w1%dfwr7rLJw2YLtdb=bq*iD|B$L@T@~l!$9BDH?rE6zN^sRvwLOV z5Be@~u9C``Rlf(G3xt|}8}w3DJsrFax^=G9AeZDmn^nKu*SV5aZRAvsui{kOWl7KW z)eHTKSl3k#lYb?rlAbP`xTCj=oKKw15uQ$Es|mkeh+FQ9WNt0$^}~I)@#B)u7&=$p z6sb4dC*+uzHc=82Vo-4p3D1lhm$T}x;F&GPo+H(Oy*K7^W4m29YHH{7J%AM5D&(|Y zN^e6~&5f)=#8`Fy2_1)?PQpopKcm*kysY}eKGL`5#tKdj(T^vWEBIJ2-K(#xKf(@; z)PUmFa%!Po)gLDbI*wu$^MX|m_U(1-SgER1S2-~ksy67j`s38v>yJ~J??3nAw{Giv z<@BgB3`|mo@vNqBx!gJdZoF|5H@U0vyQ&(Nx+mGr7w9xKxxI&HRCC1$mnYPN;!k+Z z?oSS@c7O61E8AB*a9#c#epab&*_hn@$xresTOLim#53JvyjF+yTv?dZbIn5=gXNE3 zDzxJq>}Vc({%Te+Q|PTq_qIcdYWrx6 zL?9!yBw4|!s^q+~_Em6?4NTC?d_wf;t;TbxmsPLpThc~#b$8daPwyC*xmR^|nM!l^ zS(V6DIG`$o|6qPsH9wwR+P1Ut?3-Gybnm3LxpDGq?ff|1+kAQHy5Ssa2JM7- zL>@}AYeEA|ll=IBB%ATo{v2*?|GUV6$@}$a+pMB^U`ZZHWtER}m--(YxG+adLFu6y zuJB>e-Od;4Sj~#QQSGeu&%H%E^Y1Gjh?hKr-s6wlKKy~2ESWZBubAMRfgXSI*_vYIz~3s1?h_4OhSy{fXt&uagpSM(j#erH!vd;a#R z2ZS1RuD~|>RS!4%XAeTxTVWr99reA(R<09jCe@n*y-$5GgFE_xmUH)abk!fpv1_>p zx~M&j62{Rv151T|AirDJQh%IPRpIxr4z(Z8bu%Da+0=BYu6kL}qg#39*L2tTd~TE7 z;PC3|=FeR)_iBr~PFLL+!AgP-3x;#ZbJ46>BC$?4Uq63=e)0UpY}p)ip9YHo3(=}7 zICCyuG3To+w>a;s1?n>GIMsO7L`}JBl4`PQs=6|BY5-m~Vy?iLR)Ocj2V*~hlYVj) zbZmE|Y2+vr_=nPdw4F9=G^|LV5Bn4;!WRqlQ)!0cw2K@XJU~gGVKZ70zEq&UpJpgk z(90C~xHKm@G;D%G{saa8M1j699crS2K1rbK(wQE$yj<8aJgFa&a9+R**=|7D zki26u0!a8P3jDtm_@5PcW(H9BF%&sW1MC=9#WHI!(dS8YIEDC@D)6xX3i=@heo}$|N(%qF5Plr{KtcbD0?$`dN<>5Ho204{!q`*%q@LwtL4;1)c z6nH*0Ovwo4r@(6z_!8ih-i5GbXw9n>^cDrqria;dv%Eceo^9joZ6M`7a@MvfEp4rn zm$o*D`^#Bdsad;gpSvABQk=u<2s^OsaHA!A**bfBR=KyBwe+2})SI>WyKXoc&Gs%AjW0w*Hasxqxqp?QeMOgbJSj`xXEegR;>uV(EQG&A=J1D_l z5UgSBEeRh2RM#?$BH<5tQwZuA!;*&p8ze~jkbhW$LOj5CO86dvvl;6oh|%*=f^!*r zL86}mRAZp^z63v%;2$NJlAxdu_-HId{C}5VDPTIEkS-)u&}XRxISKkDc%uZjNw7nL z`y}`rK@9AEDdGPky+$E09yFwwk~LV}P}Mi6pQ zRDwJ~F8G{;LrFoei-+qC<(GPlSgr)e5uaR7AV2(FUq3H*B{`mYHtW9%J*s83Wrg^i5;k>F~KdsKknpFj}weDa50 za=wAY3ZVzGM9Akg1fkz`1QFgya4lnQiJnUk;f3-;x^xn~Mxsw32>+=B!Iva>C1d*t zHZ%4T!F5u*x(W#Cg-oF_Ug3JQSAy4|9TEipa|FM}*sBDu#auuw;$ebcM>{46WsefP z0_6g}sZCP)PzlN@zHj1ZF1A9$1|wiNC_=mJ3R~h~HrH$j8`xZ9D8%NXJDy9Pb2A>Y ziW73fJXvSuhDlOzaa5D#Eu5d58}w1ca!exz1f*)++=bctjNk%!goqL2hR+o-f-5_Q zk;95%)w4zmipc-jF}=^#<(~!0R_zNO>%+Q!-lKPzBkOTHOp*gD&H!dHh)*=CHgmH^ zgL6$jk8nP5?y{@DI@b^uH^s2u|1X#ez>6v^%z-Hwy2ud*)m|_a_$5AhN}%K;8kvh= zsSo%fK0SDp@oM2G8`(|$M*(buL@=WRAo(+4iH9uVXwoC()dNq$%0`xlu3>~cH{|Ky zNAjrek>&Z|&eZQHaEeDZvOE_&GWEMFLqFn|qbOc_hRE^K+DN9nn?N`$3zPT= zoeHK*c}vR~TLpiTN6%bY-ZF(eeGX%O+CFCBL(;(a|M9mt||yvG&tUV=P&*2zXrN4G-Wlu6>)l+pobTHZ$r zd4I&1YO^d%;v@95Lf&BrX@Eb;qdrB>m(i$iqz=>)j312xkI}S|^}{aYh;kc(JRP`5 z9v$B=txXI!ejpSk2ke0VrA+HT%$%V2oiI32g3VFLAkLoAM ztALgD`!@Kf-OK&oG01BGE*n`t8edSp=p_R2aWWGi(a3%me30drN$MgDHDpBMA(VK* znl^gy^`K5ue>?@2;w62lZOFR8$x;|g24tmxlN>Ve9>KQ{>D`(Ufy_5gdb>m?nJ+ru zQ@6NozR3E;=X<7zdZo|zl%OY~b2dFL|H`F$|H_S>sUxR5ecMY9McXxpXop+NQ4X47hI#U4^I0#)70|*$e*zrJWa1j{kKMiy^L@Mw>iTto_vwR{Ho8tL)`Vd zuDkf$f89*GKH7mPMdH3s9`=3mn87J?Khqa|SS#&mUy|N$Jk+Nhm@e!#`?%3BzQZ&9 zl9nk8@Bgrf&60Q?rM=L9`+bv~bR7{Y3R<>Y7eqWysB3b4q;>r9AP`Q)S;lgNHZzRp zGE8&QhUzG_1ET*DwhX%h7>1_}(d}tWtkVeveuo0TPl4}N;I!_TwQ!iVNSL*tmtH%< zqM9X;{rW}L;n%G7y{x0H7?68Sew>t2zNwIP)>Mx)6ka5&Wa?#t^g#Mo<|)D)B`asdsY_P=NZ!h~QieygS&MJ~e;&WiMpjZC&4ndH&y0+2 zH0^GJeA(N&<8yDm z_v^ls&;R0;Z4Z6_;k)kKc#qOy+ACHx`s@b0R`=Z-Z@>Gt z$TT$z_KM0{LW2RUAy7BudZoY zK56R2(j4`uqKcXGs=spSf`wPEZdiHs*KYVGUS+z)=`ouwyF`C+<&4?2xvKoplP?@M z_Q2yEKR$Tm*wYW*yW8^nn(KNruU?$gN2@D(jHaTt93fi)u@~QQvaG>2g(vBFMHs0`3ASo=fZ}^|9x-y z?=;t^{FIHH=hUZW_F2o(?x>F^OqcBFQ{Mi zrN`J;&;tSLi*uf8=sA%UbmOe^N*?EcH3MwfD4bTLlgCU)C!}(@md4S-DWOrEI>TR$ zGlt{1Vu3>E(1|x^EvqD0$<+!tx%uOCMm%*neU0&k}BanqSS? zr^<4PD;FV#IWJViu%nye9;V|2BT^v7zN1?wosMS*`Qsz`MoDtCNWr`PBWYTau_7}p z=|AT*-}GfuFq|`#f+Tl)hK6GmDM)tfxl1@!$*L$P^l6=w2akWqZ(=(7ZRFNwNYG^H zeyU&AtqrptEqAYUW;p+Qta@o5-fFl?JZYPU6J86`r*d^&7boW>McJy0s*`!27W}2? z6vcmpXFWv&s-kJ1-t~9e3N80T;NyQYEJwpt;H)OA{ZNoiA;>o2%&?$+^7VdJRhwLp z3<-MsQRbywkw6<+;?1eg7VK^)=Cs_*GaBJsnOtXZrt<_*?`-fN(Vfv~u9#Yi^SDzF zsz22Z9d6XT(|+)dhW5!*4^n(1Wl~v+GqP-1Bx%jm=9H?a{9w_i>W?=zYTqgPRQ31W zXNxrD2WgHemT&LmDd(-BNu>IAAstjVa6%L{JhRr-A|=HcK5~nQcabg)+-f1L?8~ah zonX4}2zey_{(H^?sb6iO-a;_vKTk*Nh@w%>3-g73d526!PcHXwqF12;SDv3MQP7p= z-^K{fYFT_K9Ajk!kZ_#>$97fP5dG3LCi2VkP&54L*{__3epA73SKu)PzD0p=2Tpm= z154-G_5jL;^m#%?00}<|OZ>ZF>Ac#{0cAti{A16ez zE=&meBHj#5gkvOGmng^*ts^5K)MiOXKq%G`(#)9&v1aONMcT9OWsrlJ>A1@O;F5-P zc+zoLDasS*n019iIm)Q8jNw5Ah{>H^!fD=0>ki8aV%^~if>?LBM#8Tnh{{D{CgPLj z=p_1dg76gNL2e`Ah==M_AsY161jkAH#_;zNjs>PTLF`%FK@k4;5d{B_B%J1!M2AQr zUMy!0>kmDtj#9kyCAy$Ln5xiH9u3w-z>2-VWeBu(FZmt%OIWyd4Nk^_%2T9?0^n zaA(S+`PeS_$wroEgh!^lQXnnxBYC8kEUy*rOnE~ zNS91`ccGxD-N;6kM{#7z>ja{MAIYQkC(HXO+?n!DLf#edlZ`Cz5Ii#F^=8PU{zR7d zD%_d!N>L%IWnmH@p{HRp`Rc)!B!Xn*c>e%AGu{-C2KZ4rXl^RUOTtJV)h{wfA&(QC z!Y|Rt7T^aYzfAfEkhwA<@eoS9$cnU?jfl3vgZex<|4QK|-5?@uj-fK`qQH`ooyvK% z9)&tdCW2RX&RZ-k`F+WGbe+DgzFy${;=QWnRf1CKdGv+Ct{dtP-f25Is21kVWztMd z4Ih=h81v=qSqsf!zp}5rx~a?!xd# ztt%{E`z~MIDXuA~K~d=^oOgDXnL={UOs8;iN;^82D?}Q{op_Jmw(UK>ZJU@!73WPS zrAAzFm?)$G+UJ)`oRkNYB00sBm$Rfd7b$OuHjCTKGbYZt+j+H~6}1eiHFv^=)Zdd` zo|)-SH9vxPMp^3VWRdi~C_7iQZXMo}d$f_>W$XF)@g$B9rhb$Z-%hQ7rcUX7SbG1l zA+-*E2Q1?_sS zReCd0oE<~w1+Cy;uK7kD>2U?t0XDB~PTjhe;u%iG_1s1&)mI5|PgqI-=;KTdkJA{-|P0+X2Q`}bxx&p6m{T1FVCZBa_o~fb_Q=t*wDW(;shSa&_aekcsI6pzBNlnu< zooO69erF%I-e1;Uw)28EANql@$+7KYcU}<3T1=sHFh?`izdD^uns$W|CqSGg>-rz z8nH^fz&EBnhr2#LW(S@R(2jH?T~$)c5mQ5PPCsv)xl)`{r8vcPH954dg`EmrRL_a; zESuA=^+HV%^`n|1w$Jm`lv91#^<=F7><9FG7>DOU4Xmy~xC3C(@Ld3e|HpX*5kkZ2i;8r*EuEU9M?@eLDCza3wW=^LJD|9Tue)>|FBQ`}qH?Fb=9TOCt3A znB98x(>A0h@8LC$c2+rbLs`?%sjAA9Rz0?9t>G!$?9h;UCt0v_(`vN)_0RD=bxfDH zOON-&A8pIuzWWZUN8jV0(^uZ~Jf3Z)LAClg-=nV#|GqVE*CTgyv=RLXewrLM&bhCt}w+QcCv(#^r zrsh%Ynr>rr*+Y2KJ$3W7V;>~xR4T6|^V)m(`vaPRdTkHCBhbU|g6)9a1N#{K8}c** zmlkRUmKI#f_3--)J$xtZVS{GivV6@zV{R4K%w5B=bH9kNbG_f$iM8|m_MCxo^(&{f zrksHy+%EFUY4z=|oMtQ6bJ|5hyw#WWeQU+pzPz23;<2}`zjgbquiZL!%la+bx4gC` zZ`WvOz1yKloznlFe(S27_?>TZ7M)PfRLz8Y5to`))pRDesk~`Y)8wYwrjw`ht46hV z7=CLQh4-}=bmi^5k6)vwlHLed@G#!;FH==L!oOV6%D;+oxI}nnsj9|}sEd~mJ$1k? z(F)pM<9h<~og-A!2a3Gu9>eTsb;EBGrK-eRlWYfhUOXl8`i$ZCx465sYA)Y z?t<-r-2?krUGcyHbs26y`o1Q!REoD3-bbgb-sN>YnQzw@4|wyJb9i?@Sv+uMVe!DX z^NI&R6u)UgB`>J4TU@wB54m%6B7PfFZN^(%^u^mJaZjN)eYo*!=$%?hm$a4K`*343-2R@bwp}aM zz?D4J4UX@xSPu6#eJMgbEreJKyhA?*IQ7R5H!kcea{J;f6$>D{6M^gq*mxZcPzW-x$mN!g#K>j{lb`G*Cw&I z+p%fn-8Ok#?z!T1$;xG1xiAvJom3i4rAoT7<~U!nF85r~^{P3KV^pj84feID{@q4g zx)EHD^J=D=^QSk7Ql+3^-(b#f1xiRk!H&V4*9A&MLBU?ZoEHU3hk}A#gE>zLlt&a4 zybnKTzd&go+7!%8!{a>m7Uujwpf!A)S2mJ{eTF&rO5rvu!eP&0&L$~bfg;>E&@TTZ z@+76XdFWO}NW5(is#T)iuAr6+)UONFhL6W8Bu^HotE8}ZD8fz=sFz4#$1B246{s~* z*gF+rbprJQDeOc=*h+y~B!#_85q7#j{qF;m-iD7SDZ;;OjH3GF)3VXLA>}-MhtQ7V_McBCl^`I2?9z|HaK;12cou&voU!dMEh25qIyHKFs zDuu03gk3C9qY`zrf?6+7ZIa|Rh2%>G>UC1sF^aHD1?p;vTBV>~CQvVxB;Tiy+#pbE zrLZ#;VH*YN6e;Yzim=NCYOzG!uAp)P^&k7i(yvuWUL{cfEKr+=b|}KG5vZs3FXPro z^JThm)F;Js!4QN9$^a{Zfp(Sn@q zM=_7v&rjCpAoK*drU;>O_EP_osh0`imV!PV;p!LUBV0MKnTTsLU^U0p|nG1Y8JM4Y(Mv2CyD*HsGaza{-qE>H#kUoDbLlxDc=ra53O=z~z7# zhw+yIt^#ZTTm#q$c!jEYnIQb^F953*{ zt7{n?J>w`!$~ZW2g>i721@j}#3;cgwbrts#e{#M~m72+x>q<@4e%wfu%W0p;$IWOZs;&G4;VFveX2WsRrQMB- zUPBGfpLptfxNXfg$TV94DP%P9n0R>y;&S1{2QJfBj4Z?e&ljH^9=Fi0g!S#2=b7kiTpQcfu0?o3M1o;X4veo^*!c zF5t2u{)c4*knkTVaM~-84bg=KWXXf@mtiTsJ%ao~_O3)DK=eN;@Xr*u7U3xTjj(0d zjTldeWGH;*yH$iQP|zC{_*KBkYY26w47(D`NitlQSJ7PHy~@10Hn1 zA?phgBMx;4r!c9=xheKX7bA z;MWlZKP?^>g8x#2;HPyB;-@~0=w^bDA0!CAjS`*uEaJakg1aR6m_*-45NAFF{h%j; z3UX=)LT)`lcrGUhIl@^C#Os#mVS|34&1=gWwHCPC2k1VLXc!3Khm%SrGG3DUU%^0!Mcm*gRR z5Fy03m|%r;*9YV+Cmiq^iT-VZV75yBLcW6z5yBlHLik$g%+YM=t`I ze@eo&YSF)lApFY+f}hTt6Mv%w*AN8VEa7npCMAD*_lD^E2v#!o6A6ETAoPV7E5v#^ zvOs_w!G%(O!e7WwK)Xa2+6!=@9szEV{Dpc9d?(?^>=Z#P%nRi^4dp@Un#$Nof}k&@ z_~)WN5k!1{B8Wyr<0pC#wp@Z!B&d_%bO}~VaJB^X5?m-jIu}85=w365=N*D|xZ4C! zJx)4<1wEjWaK{T+Sm7nonJY9VBjJETIsqS)@JA@&x%$mLMm= zn*j zX1RR+m3Jf4@9ty`MTSq8Weq`wNm(Db8YX28D~3r~AH5nTWsL*mSBR8P`0Q&^lpGm% zqGUbcha=2-QcDs3-@mAYA{EAvC{Dqk>5nj|zJjU1FPcR9jF6I#Xk_rn6ZSMvZ3Xjr zeCRSq#EYsiVm^~E1{eCl%yUzBL179z85UJqu*AC-mUNKQu>6WA|jpBR(?9^K*wG z??d>Lyh2!6-Y&Q^<&6X3CiuxlmPh%JsoyS)SysW1q*a(f+oH2;!~?EDivGUNR_ z9uz$MDBjHTbHxx!a%FiZk;rwBDH~ZHouA8;H-u;6OYkFkV_}Jp(owCDHxAD#dgjPR zmPd2dOnJvD#4!@dqm=_$9!@U^`pH>)67qDiFo}=Ql@cG-bu#aRj}x83FUW$Nb#S1q z`DIcKBBN)gY>1BxK{-ysuLB>p`{kcw>$TkTe5&%Zisqr7VE%x3lB8tSWBgsJHvVpv&d$z_Sx4{1&60NJ zs=M>g6|L7yXET~kt5?u!pBe8D(XaUKF?~0ux(h=xgcJ7iP6(6}^llSQE3ND0uhWWd zqT`+ABla%%uYZkC&2Q?;=XR`Y_;}t}dNZkb2iB?#d#!Jx6J)yAKc_4 z;pYn1E!9_Y)yrjk)VkT3_$LQP@_%wffgfcgE$1BjnjFWku$KEXzGpt2l~PxfaGm`s z{O-pNH>KBq1S_!faXzl9=X9j9=X9(RE4NdcQ>DfZ{{3e^Z;u)~)7Y!-ggsnGxp$Jk zp{n7Nf-*K^58qPNJd`w^JpKCDPV(2S@8M5Yp5%|#o#chi5|MIh& zv2Wiz^pdgX^y6PE;d)N*{n{-2?*Cc`f9&cc|IF3ebJzPRr-)}3r~PD)u<|_%_xitN z)PC~5K$A}ymUfqPZ|02}dPgqa#gH;qlD8(w|L1SvD*6_$J=?=?Lz;Ri@1^o*tfzrh zCurTenNF?U)~Twb)nt12ZVdNp)C!7S!(mOC(KkU<)#_gHT+jFTVm;f|g!3e7ZY$ix ztJy1-o4Oi%B~ANK2=&LR{c~TtD4MBmO_x8_2B9`xTA4G z-puPBA0Mr1~>e2`MUAp_}t`+1(L)Rs!_u{!q zrhE1@tD^hs{VU76dib6(^d78OZ_2wi*+;cx;wb41x~{7iB|XeR;a^hFU&^32bmbq> zuI}Yu63$^!TJnzz?UCKMyrZj=_v%C4oxET74g3c6P52G#F2!$@;q+0ep#Z$3CEYZD zeF&DiJBboqxedI}4{p|IYBzV9-Yl#rsBBK<7d5ByN^+;?%+Su%T-2OW=c5G_poSC{ z4wPz&&uR(_L|Bk7!u&iD=H-eoH%EjyS`lhXL|9TJ!XmW@)ueSHU%K>y!UFt4dwsru zs34S$&MSN+Iom0b2xgn-f{8mjTe|2dm@7A#@19o-_3JuuX z!5&UiSs`|DOl*5eMKRJ@gmjK7DV$y~BY$Qd(wU2N<{+Kg!aMr?D^o{q?JW5on{#t- zPEF!B(6nb8?{C@02O75Vp;OyQsDPsO3im+?m^QwW-UsSDqZm4NNE^pAC46R?DmY^T&;U?8~hw?1hd+Y$o2X)vEZSmeHSX{`>ta{_-}; zTld`H$+F2wD$U}ZRGwqu4(khdYErid?udSrtwTDow3_iSP|8R$X*r zr;h1z@Rgcf!f#0UH4DG&MC!=9{Pa`rp3b@U-P3tD#k&Gso-S+GhOT2cZ6sfl7?=9T6m7iOxy^n3rLoYN{Q~0>J z@21AN#PR5ZDs}4nj`KR53cpiz?7qUiW7pIP`*d3xC;ukWbr?17JKcv-(@gjc>eu2o ztY3iNsQ!ZPqPchBjBf}#c14}|Mwe0b|Xg_fkpIsL7jr@BaAR$1`)R{lbrhICfv z?}ffOubfs@u!c++ zp~g3+G}U>%s(L(obq&bvQOVMzf2A5be4p@5`oF% zGm$5IFK;BhK*6uvyBnpTXTMKOLvWJ$YgjdA3M1uQgDSVk=bA|PJiA9*FY?tUXHKD!D zJrYiHGi1;?F1iZ+!7y-tV+#ZUtL~9pUg&MXpqaPn6kJ#d7moJtu;3FSSPXtxTXmaC|=g~w6pZ&Ib zq6vpJ;B*_jHdo|4-$pj!L+){-*=>p8lgu7xkez3HRd`>S_F2}UUKe5?jM{@5m74mo zsc4K?N*DHFu9V=nCFqsl%@Vv@f{#j&`a_a?P=Y-Yr1nYsOISW*QxOS4TF)2cUo7oA z)=S~A|MG%FACmY0yZ4RK-St?Q`Xl+T5c|)mSW~^0aA|Fo?w;=fuD%HSO$4!K zsF&!}zfb)te*Q=M0a?v=c*)#mj~Kn?nA3%CpPL+E-03CUu$a{-MenSpDSBr$Q0XOi zi_>cjggg;f-0q9oAUnN7k@Y>5VbbUIO`p$^Avf!@Iie<64OR5cYObQU(`O3$ahYVm zXp2P?7PFKmSxr~u&ibf|=$-Xh6wy0wciXJNkSk(}hJD6FW}alVT`@#f3m(phthPK% zQZ{0_C;xm7KBGdSv`c5t;%je^v>!WgnQ_-9y|YQ z8$W1rXr96|J{OP-JsAJNF5c?)aiU&KdkpTcCuOXEb@&=`RX zJ=-(a)ZZ@^$4~R&PdsF4e5c&|*$2OIu(FZmt%OIWyuU*pg(rEWi!9Fwccy+l5)D8w zvb+SaOum!Ai$suM z{S6+O@@{}UxjaxbX?c?&EK}Y|$fI$&Y-D*8;Fl@S40(Dmk$z>cvVL_6dA+Ex<+3n| zkI+>LK3Z@gy<{WDE05*n`pkb0UsNHF&O)3|-c|))`RDM_{vrO;?Wp>5_?}kq)qf5j zoq5TWN8ga6@wjY&3WnwqnfZJ_@|n^>`AmHZ@liQ`q>yI@fyzTRvOGFtks0s(Ake%+ zHZq?Ue3|j?$*3gLwNO7UhZOzGPN8-kTKh9z(o3Fp+#5%}D3VLkfAc z*DA{ZTiSh4!S^Qk{KOy`Im`h?yzgYBw;H^}N9FN~Lf$HPp08g0Tp{oM40#yJrsch_ zkZ1lJd4E&zCBb*Teu%y$NqPbZrV|LQL&%0`Wax|&l?%iQhWL;*X(Q(goqZxcxvu{d zd|aAKq!IlR@Zmq5wf_yixe7i)Gvg$DHZ=m&X$<4>8nu`&rGVrOd1*5no$?V`S@@D1 zGRW2ue1C+;>WqLg-@H1#cqNOpfBQvyw{>+3_2R8BUwntlU6q0=Ibu7iW)19ew(5}o z$T)6uXW5}*=`Kw*cCBV{n!US){i+VUqfw%-N>1oHj@_~aN!leFo6?USjW{rXpG1lNu(|B>h5XF+#_Nqn&Ow&e(yw2yr-#W zu&0#Pl10Cr;iLWQlQa!9=Aer8UYKota-jk*`WQ9N)B)?%U zcA_v&H`$D8dyhA7E8?ERTjW2Fvzd64C-?b5?O4;`=$X$BHjKrtRlaF(BKPcIa%>J~ z8k}aOTUa{c@_hz|1mStYZ3Vgn<&rV+`?k3)R~Iy$Q8zu-;%lkq&bA0Q&)_}*{gEpY zqY__@-^*)GogB>3vP$z{p89#*7=idI|07WpC-=_=b8--8Bda1F3wEGh9n2{)V-L!U zJ*a#6+*7y5$;Uf5&DhxT>|l<-wAo=LU<_9l+ICt!F2O zX;%yu6g3VOWYF&Ab9#Q!)_mrMDUD}}8d-(9WmyY_c{Z^rv9VK?Qn98ptP1(Tj^mr{ zO=lY5PQot<*aO%D$i`F-eRg%z8P$Ty)HLD)plL9VJvW$#H@`ADiely&mfw7RSWXu zIU(JntA3X_6&KwTn;uPwu4yLZii%ZY_fB0ACpUKRDjyL-w;*RlpJ~RQomN$$mL0dk zsw=Mdm$qHiR(kjv`!3{aiMnU7SXFxL;Uv?&1r7a2rf`}nlYeYm33pZ7)%HhQa=2y4 z#iqdm_Pb<9lFFX!DU>+D9O)*NoU=XSix$n|T5cy_K!Z+j=?oMzJ5hQhr)sTVY+)UU zs}z3xk*T=PXQCj7zCceQwP%wm)j4)mAKy7&wcuI&_VIh>n`$q7(_E?k8`EpgveFty z4{xqY@&Qv#Jjn;E-1rSOx$Ql?y=fnQ-Azy3kmUVUss-42Mri)H7H1ad?%7oH+W0-4 z`L(KTkzP@ks(9Y^O}H_c;vRLD<(lFT@^4hA?|YDcw<7nx{MrZkQx!S)<#6BXRqY_2 zJWjJs7Z+S-S&??zF8=i~yZAR$yZE;PyZCp1yNf^7x{Lq)y~a3hd#+j1o8PUfsqcOA z&@a)+69K}5VCFdG%J^;7_1Kzt~X%8Fnw;SRJ zKbFn%^r_p|c4N^$b>YT7-5dS6?PI%haQ}j{m(Ba6ubva-pHHs-JaVsx++X&ek9+EQ zxUU8G)92+bIuG}HaPK)U_t1H`*MWO$ziQUKIC*nFPTkz!tDV)5DsE--?!;+`E&Mvv z9fn-q!mnSjg})Z|de|FaH&k8IpIdYJCkvj$K6BwK{PYgG-{c#uNxWmbm9Jx4d3^_+ z9N3ejvjFOWdd(~R{En^s;to0!@CvW%n9S$z+sapWvqP0G!G@?czcy%&EJZ9 z91tFGaS}H@BuPp+pMTd@zE+~oPEze-sjs)PSw$z3xb*|WB9w9^;>8CYaS~-=2f5I< z6xs(z*WjJcH8^!rj%R~&Kfg$j`U+x&)O~DL`3dCKyjb5epWe+kpSiA_;>SL?5N|$m zfTTlGKHe0qhNM-h3TRe}p531RFr*~M@cC1=@^dJM3TWqg5??w6OANDa8QON><_}1( zIYNF=E~=_F;t7>k2w64g<<>Z$k(|pTb9fe`T&DbNNIjUOcGrMgoG4#OALO`@N0euj zPn6flMS-#i`{xVcTbo3lBiCw@rv98+mk*^5ubhxHZ)ZiZ|vtxZiju#&5C(T{UsZ{f~izVOCN_;FemP#U@a)-2| z(%diPsxB#)Btwn;@8m{~%}eyMsvT5j;1hG&DdjZE%T6-RR~!EJ0rIDm>gw(!=^^Ld zK}r|Wvk+-mj5H;0gajc?VtQ&iNW&-lsP6Shn(32l-sMBb4^TW$e<0@hqe)gpIr8QQ z4^n%oy?p3v2OdOwBG;7%+A+prvu_z%bs*>L3f0e<>RfS9b?%cuUb||?H;qxUJCo3f!^VT@9PbmKkZiEG5tp&CYQn55)yhYYkpYK7Iv z8crWLLBl*K+U*b(K;Dy^%LHrzmxlDh5ieP|BAN_3x*4XnS%aXYHr7 z8K3Os)^jhRB*a{%c0%oCv5-H=W#F@6XLV2ybNSHBC)uog^f3Gfl%jpeqdMf#EkkDx z{O}Jb)26k5D4_nf2|X?BwXoO2-T=E{!4KZ2r(E41*okt?7pO+yOxgPNr`2ZF+%WFy z+su`}&8k$oBAiqFKBxKQu=@HbcOEP{yHTz0`W4@!zS_R65oc9&D&3*Ro6l<1AHD6z zX)qN=B)u4i2{lX}cbsF_ zZomx(S6AEL;a@5{h_~UFO{VwYpB*eyJ%5f}bWh{tw;tq;rg!+)gD>+hsc-Ij0m$w(E(bNr6`pUcXTmg+BHZ^ds^QFS*PrhZV0H<1$+#xB)ZWlt( zt&s99{G>z9Cr5Ky3@iB=OqOGxDZ7O6Skn|vTeYdvaU zb;!j?xRtXf_O_jAYba6%#t@~fn<&;7f|B*@laa>v3h0tY9x2bJO_wKgZ z?%%gv(4CLj0ga`N@ylxpf1^(Is2gh5^d@U;y*)LN-U3kn+<*UHHF{Q?`*tl?$<^T| zP`_}-jPgi6iz&`EuK5?|8Z?s-&IEp`xyD}7L-+eQt0{V04ZTclm2C$5<1Nn*mS8?p ztbQVSHu-Qr&2N*nV|sgPJNicIn}aaod9}xqxAxPlWh8wh#!kH1Md!eaxCz{}^WNy0 z|Mt=@I^$h|({HHD%a9)@tiz|eg?YjLPp&AYC*eKG3BqlUcP6Ld`x`8E+vnU8I{)pv z4r%tPpCFl(zpY&IkfwTW?@Qc8r(Rnz<2Qx4_v#n9qXzK(jkATC$)9c-EP4WC?!3HH zatKy^ZQnDEExlrRseGQ@vm!9SRP#CQ-rRxw+z;PsPFeFCxMFAr&F?wR=i?k|{-~$V zZM>!7O)=!?PwyOTXKecqD+~8lNG*s}f2HrIxQX(u71bx+;(iPl-8Z+mw|JnsAdee$ zYK@Q=q_^tgf`R;k69<#sPpx=#q%LKTGzJHldI6U^P@emTx2(D(*Nvx*IYXa@kGGdU z+5g&#HryfFo8jM_a^&yse;RS#GIZmU^c>jL8|e2RnIPTYD$n*_=Z}pcEner3j?qdv zsgmxlK~IepBJsXgoTy&k%WpGmm+o7w7Dfld_j%?>VVYAx;Vw>`@RoX!VQDy*_-}An zPbDmc$v^+<*}Q-CEM74i8K3ej9&VwPRS}@_ES~b74DoDUdJz*lEhEGKzdoCXJGw^b zf1v`Orobx{c$Kiu{JXS_Dh2(E&eqLR@YgEvISPE90B4@!6$Af3hgv4mr}8hBCq+ba_Uyjb}53We7RcnNz8a2OxW&Puo_uawb# zDA7fH43pmpBfaP>AAPr4Hl*J?;N;Z;OK0;MBwW;YJiBTHK0&xwg!o1MCbE!3Unhhw zXPZaxPht;9cv7HGW<*FED84teiiIe34bb&c&gZ12^Z5dgVBDKY)GC%fk!3&#h}sIzS|`HK>?q|X#bbu zKPcd}>~RU-BH(k_QxblMfX`$9A>o$^_yYEhgxevcj4fgx0hbNw^Qi*Q)5uh@zS2AF z6u%y}3@1}(DCl(x{4$CEN`e0p)~ujQXANVCxWyTEJG|D2FX{>z( zJ7)CwO*lIi3VV$XeA+Q#Hw4`_mURHn!0L*-9U()^$LtB0&0{gf3{IRa@tUm68H#uf z0aq;OPFTYxzmNH&c6Y?;Oqg6@hcRw3Fi+fNbjSPw9B(q&d=7kzCgCwTTvl7u67mL( z{xCCpLmsQs7I7sUal79XWcHXNZWu0+)8GzKH*`36wT;#AP)HW6T<}yDTB2!Iba>-BCxFh0VT@+h(%Fj1jBD z<8`s9#TYj`W8RR<6!sZxb`}d-BME2N=8t;}A&bk*{N|t~9x}MCMjuYx#GL7m{m^YH zUXKyym3)z4Aa0FCi92ER+7Y`a9EzLF4kybxy%#nHL)MtrW^%aA2D>xDj1gDR>kr%P z4reqJ!*_flelt#1h3qb0&|(T3yv%N}nPLfRz-M-P+(t)`MO|Kp-<*is44z2PZ8b5w zH)L@eeG!u(;R?pW!(SvCc_$Culj90H5>A8PYV>$5?*G%>x4=hL-20z>ki%JM3 zmgN#+%T$DW2^SdpGSpAxJ}>!a6E2kZEs|#p1&sY(&zB?wpNJ290s5;=~3xa@eGmoaSUPl1V8jIml3~I+Dn1_8Y%C3 z34cHcxoZg_mwh_Z!Lf>RP&DFxctto^MY;+ltRh5Ugb?=+A;kSE9TyP4RNCi3xJVE3 z6=FD`xDWSpEam;89>7Qac$O#m$5FW-_&6Y5LR8vx!pjoz`N)?g?VaF$KXBTQs3$~t zln~)h5~5waK!|ps6M|0tAJSF37{YKQM&#qGQtsFIWdp(i6`!cr71I99mBt*#1N>a_ z;XXg%H)Q^Se?Glb+Ype@3bb|g36ibTH#7rnJ-rOJ_V-4xt=Bh#ZGFEHY#RZjZ0k5+ z1lvXfBiJ@3B(h{19b~lDA;Ac?4Gc!GZFn$(ZG(gnY#S=15bJ=ENThA(Fz&DoAc;F{ z!$*Q-8w3(0+i;K|*#?FL$u>kJNVXv%L9z`F36gD?Fp;bShKXbyIua!7AfhHhpUh!W zY_<(JiMwoLN`hn?ME=#z5-UX4qnulMrU6pN$1iaoImi;pX~SVX9xw8&rKPv&hSE8t=kN zq{?rZg)aiWf$HsA3m?yR8;DQ67qhL=Z3Evx^|8YuZ$J2!8MlaEl|J>}tmI|jy=|a) zX@?X4@%o_6vgiQvUICN2{K62X+B4@{s{Bq`i@YZwFBeRdmyJuwqn@ideWCP$+d->E-ceJ2Cz#|}^j~>dn3dc^i~4$w$$ z|A-2I2Yh%ni#t_BglGzJH+F=k?Z^A{g$PmYJ_CN%E#$@BYngb@GzBPm!z_HyAs;^* zfN#dkynLy`EWj!CnCH&PGx$%f$NaicNpU@9+Ks0DlOxAGUytmn-G%ew#!rsA19PKU zyS1rvx(q8J*}J&IMeXKDmTSAAeXQm72|ebiILB>>@BFB%7wvcI8!=%Y1M74g(%osZpLVp?u*Y;U*L z+u?d8Sv&Ea!qEpeC674hN36u|;=l(2pJAKko8Em)7M! zzQ7CpS-=|r_X9rT_5bCs#hK7c^*cuHb7X7TzjDk!?i%mzKw9^`=!G6P>}9Pm?5tqN zZ=L>@)7!aDf7_Xg-*=p_l(lae?E8qE!CI7-y;XlJFRH(jCvE)vpWEL{5zkb-@#ASw z?cE3)B%V)(-H(g=HKP*DqTiZm!P!SB$LEVKLMLE_u{QhYC6(Nl{7@OvXWqRU8uISvZb-9roOcq$rRtv zc`)zDgWr>C^obsHGR&XHBiGnKzedtIhLL}h#4iOLhivju=Y0x(zO^A+Ny%jkYhDvC zyS7{>NVfbZNVbyrr(cozZ5QiZ&97&}Z+5D0ACExtsjk?{M;aaHPN;U^gt|7phi+2HF1e+KWt#q`n7w5hfNuST2F zTj-IFX`-`^_hTX8IfEpA72k}R=gj&n<9*)DJm04s?^`inf$KNkcR&wuRmUitLo>)Z z1X?B>i?;6Gq7U+=Or0RdZ{wu04fVztOq+j0G{fef<1oKf;wd%WK*@Xaw@gn|o=mq&**^wkz%i>&tzx=iZ-=D@T}r(xE_Gt6l6rT6EA}j;dIM)3HMEr+ zn7z1ga+4~Z)l7Tjm+$#gZtQh9XG$F)-|iI5Z;U$@@7BB?aqdp3gv{A_nBf?7Z{W|} zhRv}$>?r(5yH~qUdjRK~{8-zjJ%sh59kfgI1(+Ea&zmSy@pEe3A3ie|#BUh*jGb+9 zItDkBb3wO)_a|I>T-T%#ft*WZCWzwMoNU3*v)~t7@T-9HIV2zF64e&^wUX`^^i=IO ziSH1&N81Xh9Qy{j*B-2Bt1fM-tgEjHmo-$CN3_NYY~2>MMZ&=njP=b;_W8!C?cfv# z%fl_L)irIErA_rkB^CC4`O>n6mgf4}qLQk*rsBp>rB+&0RoPbE)KC{LD{rZ-4{8qj3kbC zs7oZBWlDNIAv#NzA?f!>ob}E7KHq%ARH+)XiT#9wb`d3cL<6OlouL=aVFUnJ6DCL#nGRu1%xF45t zN*>#uS>81u@P5i8Bp=~QTxNMWKz1NZIVF#C8ne7rAmk&A^4R+*c^lxTJWK(Eivi*L zgK|pVRs@jGCkZ@l|b+1nf3Q;#cv_m^tS&tvSq^JL^-gIpm-Zfs4;U&Ok|~K0Z9Fyi*}$y&yKO)H$2`uGU&dH(^Q&kw6k7cv6sKHmXbxBAjEao#UApKp$i3?$1{go>`- zTlc@0hBb<7Vz7sqVs)lD7>6$0gbD@MIvZ8@C;85wA zdvS7LDD-wG2aNR3l6-k_=!W($zrQf(Gh}#HV5&%!f(1zBP<)+CNt}&MlzdE``g()@ zWr1%9x@Yq1`ohTiuQtQ1qiC@CR59>Tn}ci$xLp*?W@HqJpF zeNT&iaBaoj#&s*^ZQ4lpt9gClKdpXTZ=9#<0IO^$V^z+*^R(Ow%%@Z-7sZnCHE{d; zRa#1xk%}4dIA_XKoE;Ato~6pzC}C@fPOy|{mXt7FLY5~>O?{z}DZ^DsQGZ^Qs)CBf za`~iEOq7VWPnE;1Z$G~EufJG^azLI%85nIcEWWd!-#IMHe~XceXGLxBYkOXtv$8pE z6?_{z+uy%Je7m0(FNK6JaVM=wXFSFFID5g^o# zzIRxbH(->)K=*zTX057^W1X-EWgqILS2+6|wm;o&YnJr8z0ESU;DT;89Bi~82jSonV{`4>jPAd>HE7v0EtrzkS*#U-I& zomNpCscJ4OZ>WQMXRxL+thF|^)IlS*w6db8s;wbZ7S~Mdca~wue57Egp(%(H0Bh=@ z=GsyYHOZn-3A7@uwjE2_>cZuXm7%JN)|RG*>SnFB0;;1;I5w}Ww7fCgP^47>sV)sc zp|&Vo+gg)2C$JpH`ZbnU7Z-(tHT9Lv4Tz^!E3K_5sjjGOZ72^mR)w33<0QnWTfsM~DSG4&*%F?ovX?`5Gba|CWSoOANo35I28c zhW|jqdnEjK2_KR0CldZb!ru^{rU~7A!Z(N`-oFzj+1(W;PVp4 z{nl`>h;Y%qk!Y}pbKG(WA!iyP?ib~b2TSmsermqY_s(W}S`u$xw#OtvvONh2lC8xj zNVc}0AlX`ef@FIJ5+qxrPmpXX)&Ej!*12dS%DJV7?Z*86l%8tnz@UkXag}@svb`@} zg|LC-S>G3PO!AVYOv)?8g-0;{{<#`{^IkT2=z_S+>AL`g4umm%`w#fd@-p#$w-{l{ zsr2nafLUG@5X$1kK10cS5q`70LdaW)Fy)jy_KRkDt4#9PM<{u3!*7;%KjdAYgh@W4 z$8eeD-3=rcVN4&opSV2sw`O@qKS7=wOlEn{n&hF|jmtYr%47dV$F=u>;T6A(i&rjw z5LHBxg5YDHt{i#j2vMbR$MeRPApl)wJRd9{rVaAq?kE~D_hFP%Uh8}LTevYXr!?Z@ zJu_y`o%@;g2F{%$53oA5F2D<1gEPIC59271+r+ijqd_#a8Gn`&O#OM3+!#Ka^?gE_PHJ`2-;%UV1%E!grcvO|eR`NrG`%ZJ@L+UsoHRbH|E^VTbN8dunx$VOKg1`6HsB8LrT~n~4VbGET zTJFnTp79CnH(hhlPKG*-kS+R9-}Zv!fF}ltF>QM4zPgD|b%)}q&~kqQ%41!F`@Dm+ z?B`KG+jY0k^Wf56kIRb_VaCXIc3R{qJ=3?R;K)lnF=}vMMq0}D-Yji=`nC~zim>Ux zJIL?IK5$IiG$t@#rZ6cG-7~mvjB9=%{UIYwPl2nU^TD0z+Z{dg9j>0AIgD_}IiPsA zqmA_*dQ#UicI%pW-)78H_0gJR&c2;{3Z6!bJk7hVV8cu2>%*5_Huk2S+Sz}NO%Gh& zy=CIE?l0>5F0vw>{e4&UNd|-ceU{w>c|OARdG}m+|M$iH$^FjFWS_}R2+|h{da9V) z!z&!=x8Wka6+e6*+zP*Pq?^}0i9fA~fW%+2;ICNl9t+NVD#!czJ+5-Z<@=y*OUGss z`_vy&mPLxgb)~J14fuGmy1ueXv+V*^w}dJi@%>@2ycm|@%UU(t>FBmC9h;&`z19A^ z%?!IdM#84+Vf)&__TfjPRS!gd!-Ph&97RR_l|n*{Z!A0FV+pY)?2|a>4aBENJf9Hz zO(Gm}78Az;eTWc~q#RaYk;j56C_*pB}le<`=?(XkTty8iDw1HBHU~V6;N}S@d!Y1#OEqjKGNtW;X;+2 zl8<%Cd(82gpCe3{gtNXswBiQN1=U=Ye2nj6TxNN!!_^2=PRY9n0i1LBC7~Viyzo;V z)1u^+!f%%M1dxRYQ%=bXBET%K147ttDUaz=@>arcmiG}5_D{+wdDi!b{gAf;Oq6GS zf7k$=x3e7S8Zn6s7+bm}MWGS63^1TtN47(e8pBUE)w9I6uH%pUG@AqgTM%opU z8)x}#+vmzoo%SZUl61$sKX)D0V`AUw%=pg0m>>V=F|CZT4(?k#2&Xf8)QO&Xu!(hk z;5)ci#T;Ffe&oqMhv)6CE3h-PM*r>15n^VSzC`ox?)LO8hE=|0ff4%R3lcQ$3$PGl z!yD!kYO9~|8~YoXfJd><0iAiy|2vF)(_)P~u(bEu%M9D5Fgev__?Yj>pHLbTL}_qO zYrXzkkzS*eV25wMDl@gO#T_-w*w&oBvjPw*_&CO+StLCZw0D~@HX=}+ySUn7sbu$%T$2hTLUsdK0PM8xs% z6wDPJ;~A%K_Z|9IeVbD=_dTwEEixy11zL~e;iV_;tv57vjNiv`*X!M!W3NLwjSD2N zTNfB~yYa>VJ3rraw7;V7A1-IWU-lIy^$m6f-Yxbe{pHq0#p4&~gQsOiH%1odY10e!gE-eK5|`aYwlXV_jXb0WoPXKoaQCcqIP#W+U)=dn!Jvhao@B>+uRg3_pxvrphz~4UV~$N} z>zpS&mmN5k{v_TjQoS<|=;^RH7)ndIz5dHb^syaDcWOD)Q5$~G&_|u?M+MH)ozGvX zyXPIz-A703j;U!My7x~G41pcn%{#Rz{@%`L@go1bk3?g7XqJ1OVTm@g^S+(Vb?(h) z1{|{=D>%}1P9Sw-(mh)CH^(lXg?B^krJZS=8G8EI?FFqp$OK4`OJ zo~tKi^m=HA-H0mvx96 z`_FKE=)O$bncU+TcKI1v?$YC{JdTs!s9Sp6IXvwMPUS7sK6DpqIJMWYjy37n>_Y$I zJ00;2e+jWU)_(bnXAt+5x@W($Cw<6I`$9u^b!F%&M`_LRkuGh@4%AiZ#(R6xosYt5 zmBW>yJ1+Qow{!F2S;F?A)1{|RyQ%vKa`wuxj=T{Ie~q(^jkcm``>*@>-`q7#dT-(wDWAX-{)h_nVAQiJahPW)xad7|f|FJJh!=s)v$3$^ocB4_r5hX?ol%v0R(-@*Jx z2KVhr(b|q&s57UlFT6;1?@0|fMd>>?uHN%IJ+tG% z!WB{%AahUd_ALcJN7#Sj8;1S9eVvE&{g+K@(8e3}v#is-(eSYsXUa5jKB#MRW@LdF zFU}f=)J^(R_wRLI$07Vq>v*<1ZOQZ9+NAlo7I!CKTHl>?X&d|(ce^gVtlN3%if+fH zS9e33wSetR%Uw==fCZyqb#6t>9q7;tF{GTO&EL(~evZ9yFKpK73xMH_Qh&^I$dNmz z%Q<-=Y!)}f9Fr?zOHbSt@f~&LJ94KUN}c@ILyoyWdoSRcIqUcOq3CRVg!X*O@_qYv zYM!eruO{Gl^j?Rw%bQUs6KZ9+n0N~{qLTgLF?{Z9dXQcO@8*!@85LvPV$~U zDCB*&`!PMF4Ut+O4*&~m=@N4W9DUjXtRIQ`ybH8aZK$NRi~AI|23SxVENRyZY>>ph z)BV`{rP>IIHKOe3a{PJIebZ;cHw%z+zu6M!5aW5;w&w|5(;m>D5bGMhK+SMv zO^YqulOHJ9p7qdt(dsh5RT$Zzf3-cO_pB7-PK?kFe_-kHjcF|Z)w?g*v%AkVba|I^ z#^r|{lcpV|oM&QM?$2VUbu#8rhc$1pXkGnNpyj^Tg*5n(2H$?HdKo+o67KGE4y8?T z*U;ZX@)1bJOz7mZZBJuyQ1)xC_&sa;QJ&S@amx4N6gTd94pZ}aC%*IO%aBW%zd%n1i>}h|hW}aV zPnIiCzc`la2#U7BcMZ*Z%UbGp_F`Ne>>|GZ~zWF9<1*w0%F3lzS@H@mB zU}@JK`T^Kt4FdiK@LOFk>l<$ocSdz96C^oOo^+Vt;HEz zaXcmEOR*%_y}fGF9s0;w?zQ6s|F&t1e$D*RYoEbaS6bGsdj8BU`kI+b*J*1<1b70& z7X7>PalS&<7X4bl(FI%d)qrOO59p703pdSJTeQiy))#O+#CWi-Dbno?EN4r+i02w$ z6ir>z?U-~&cPQuG?r_fA-3>YKNZo6eIh`tdcrhQo^J&dL7O!H9pMgdX=FGi--uYT| z&9j;o74zi;B>mgZ8vMBX3!t&>V20xE)N6lyZ|#lq+t&g~kHzVqPPgUm_>1Vkx-D15 z=>zMw?2X4~=(g-P;Y?5Bn_KQEC7cVI$)qQo-L@m?e0MjT`O7rE7mv2wk2PS$DqyCd zuZRa4c!Fh2Twk5*9s{kNvhU~ZnS!1y>_x#V9H0Lyq@RFz(1O=m@M|piY72gc1^*Fn z#!nj*)Xmvxp`)?K9pmR(n{vbtD+G}E8y5Us;FNz97uRlGM5H6XvNf?7e(LsQTIiE4 zIM;!cN+)9=-;>Cv^k(0<q`slNwnl5Ltf+4bw!pMrq^7yJs>p7c zFs|2CTphv5xpB0gW>#MLx8oElQN_9XS(XE#uC%zhA=Fq?5)4;H%3#B;r8-zt-q_U8 zTw2yzTT@)8Rn^xv)g&a8_K&u|AwB3^)rG=UHMOk~WT(0;*wjY*b2vP>yrroWcKWJX ztIHbN!mxALR$JZFTHFw6sVgt3glWW*>V}d=d$}wtsxPW8X+-J7^S~68m1vMwR90Tq z+}Hryeqk8wvzcqMnRY@X)wRtf2}v}qr;4TuiC6wob73;RrkXgdpO#twqm-GjM2(bE zJr19LlvI^gw?;zEl~lL0xI3D$=y%FAkS zylN{fPim!Y%@x&k#Wd*{3AWVKYc>r$oAzI6QAKlQYp^&}R#RWq*aH2)U{z6NxVf&j z0R}kRT3WS+#(HE=t7~g4t)>aXNKLq+wyIexuB|K!hMFVQ^{ucS3Ee#~))YrXy_Z_D zh8i~2C&v)#(s6y)Gd2OS1)_O!G|fwRru?oL3S#FHKg;;`$pa!LIYPJWTZH4Kj$M|q z?oRw(hC?~DL((6UIOj`@PsBe_+OoraK87P6?kzB$d_u3W?#}RK#3xDJK5YI}5J&hb zLd17JVXm>CM=0cDAQf`Xmb!vi{N||7_z|V%!GIbh%#%8MNKeE8dZ>6b6_up5QY0B;T&lT5b(bw z{*Hv~I7uHaA-`E6ey)U<6CzRHB%F&efe$=vyb{uW5b?hg zo@eycp7YT^vpi5fXfmQ6Y6!jZyK)rfYU1+^dt9_(xRp5S=LN!rQg;&YP2#A(zsPXv z=#Vb*1?ZJHZ7TB2ZO+%60lvIouVDc$-nZDm2~l+dznpNYrWF#RowO1zk>wA36LH*s zkPv*QQGS7;N5l3Klz0sxa8W*>ua-E+dh*{Z@eYY|OecSg5cz&h!Z#&+SHh0~of(MS zX+XDxB0p$f)0wV|<#UF7`H2I5S;B8g7?x1v4>#RQ9QQv$i28qm@Di-F5Tbr_8UICc zU-K)P#`&jnq^4aZVWCVH+Y8edmhkiKd)kKD#15uyY)z1C!=Q;|9ncaa+pv}(*+!=X z$u=Y;NVcwAovm%{j_qe_TRGy#a$7rS`>j@v_^q~4;h)~}{UYu6@*PJxxAZW~yr1gF zD^@DPFbs)zC-M=;W5VuGj9mcYna`w0IwcRyzMs6sCV9!ADS4&vo8|G@N@sv{jFT>i z%bdPtkjLkd=_8Mlw-SD{JoX_+5vH7y_gw^-QUI*my9Y{Iy(e1)zmX{BC7~({JhX5*hFT!t@w;cPze0NYz z$@>ig%<{sJmw_9ZK6Z^t-rMk-&h&t}bM>_jTLbeUMbO`6WigGI6959*Vg}Rqm=U}|3!g##%q&yYx$U(+lzF8jQ zE0%mJUVa0~aa%bR@6`x1$NL-_J?otD!W)nG+ftrNdOIrL54v(n-a5(0I;D$&FJO4Z zFO$IQZv40~HBzM01{>p*!pTENsNy8P5PU}w8OJ#4zA|3cGxGp>ahHS28fywr@`hRX z3L#{NB7&y8GxBDCrteYb&XQ`cpF)qI*N7zkJ?bE=OBfcJ2Ko*)woiQf_XS+bW7)Hf z7|t!$niR%5feKXI5%FmcTS)9nkznFvKgQ^+KC5s&VJ5=#PNCc zpx^j>^A1}C|59V67sa9+>ygenR<@#YSifoO-)DD+yAabEY(Kzm>lG%c_fkT&!v?apjUalXu*v)ry%Q$`)+-T`$0 zw(efIX!MK5j_+KY>b*ScfUdQZnuHxBUqCziC{CMlb8q3sB zO%%EXVUg3pU-kx^eg1SUd${g6%e%wfv%o#R)3G{7kB+5wM{tqW=hS+;uGGFUZp}{P z9xrs;KZfJp=xrV2a8BB4dGd0*e#^`=cDL)d&U6Rf>ooM*Gm&;z_TW1Y92<1wtx}JC zaNlSrG}h(LxDVeTjE8Z;|!FvaSm|1{sZi4z19`Ya`&ZU&yywR?z_bi%`$dE z5q|Rfbw;buysvi;?mHtbdB;fIafWtR8rq1Y2Z0qF2t3@xEf z#K`aVAYtPgJfQ0sYqMEWdOyL;Wz<2RpvCVCF7FFjS(i*f%2S1h`wPfNdd z=hVPu&_fyVs&*I4IJ#$^(ECfnxt*y!1nSm6sJ6;<1x$jPD=dP_& z=*bv+wyw>tp67?J)o=7(U*L#s%zm?5#@aK;nY8(OwEEw7y8=g0AI#&Lj*eZU1NZJ4 zY{}b0qRg^i9kt82Tb)vuoq2s=9b~vs@&^UuVokA7y-3 zqe|N2!V@t6j_!>)H^_FsxHIzD_|7q%BRV5{Wy{@5>kYzI8EmWZ6vu&D?WkAp?|h`w zc)rwWe^YU?=`Hg^yK(lsC_f`sZ@@U|9x|U|pJ{~N1dOpnclAF02aF>F$8yH22Rq-8 zv8a9il!bSpo@aIXw|gHdml{j{-NtE>MQn%cf$-!M30+y^7j{g=bD4k{kGlgR41LGd z=sQO4`=M8Z&5AGLJ~!tqoR36tIq{aF<|aVllEpU&4Eq3=6L^1ms#vpT*d>CVD&S)H z4QJmMUkU>Gxh~+u44C(=iVL;xlb1<;%5>sQKF$i9Z8~mTkoa2`{BIU~h$%zl z=l7q=5uXU0L3}sizVIB0bM8DGF)Wt&9|b;K`-a5%&dxLTDgc$EyzfZ*82E={<>3~I zhXkIfZIO6b;A6B$B%UhpvD&_V_&BlFj36=JAFg@DH%5(>FyB^IQrpy06KM`M)Twhy znj6X^_2J^yx}vgRTV-QNg@-Dd!sVr9RgLwL=AxRC1{I!zT}jI>lOh#`T5!--b5pRS zs-mH`u3ClLz8E_7r%bjlmuw#@$t_77n-(k$RfLsm_6D_gP8*j!eN&D@rXlA@YW zb(?*Q*7ofUL~%>ZT0)w&Xtc`WqEKB`eMw7Ab)=%KA*i)hH-(B?!gXa;wWT-?uiSoc znzgL7%DUQcMROGnl)))r!BQS7XW4AEmb_*ySNj$s>N*#f2QPT}gjfgRI~@1##CtPv zuCdTo!$Ly5pj|5YzA3}6k@!u7*e_Tw@vVfo@23)ffe`f92qEVU8GeEg@ud@D!O2gE zNJXE7{W`7(dc1P~0_hRy7%%M)XUTmr!0(d}a4R9?y-0}odL>?fhRyG^mJxd8eirx( zCGIC5;&lR!!_P?KUgOem96E+F7=G;WG zX&C&|i(P0dU!=XEDAJ=G9$De|d~i+4FEH4@MjOwBKL;0icyYYE92Xw7_!|CW@PC9$ zIVF$JvsvD2kQYH16kf$8=F1vL2WB3jAhyJjaK0 z<&?bNA;2u}ph?~k&{XS>EfW{IYyh`gU66Regdy&XLXX-ZIJKTu8|~ zV3F4dc`Og*RDOSDk$1u*&kJTH?{z89Ck5OBc>yI15M*(^4G)?+y9ME11mARp0FsZ6 zkYje-p%ENKzyt)SdSm-%ULh~;j-nIzgA#&J<+ZM-e}sJeO%Y9eGxFxn{w(Y1dFSMR zYCH0@^8^>)GaHN^#PMmJxYhE5^y79FIG`jF;~a`pK*=r`61Q4V63pDEL=%z>A8w`u zYw-UVZip61{DgeQlP?m%(qN7TE)(+hPnuvw4iJiq^iRH3(glc5H6oCbVo7;f<6WxQNerkwr zo6gIh*ZISlQFQ(Ct0h4M{ez!2?chf$*fi)Xg=sYqja zQzaIvN?ICayngnxdviWkUSkZQ@9O%h>BZA)XL!A*I)`x9IZ6rZ)cP6w zIr%lsC&xgWEb_Sf?)!J`Jo(slGhclAbG%eWyQI{v=y%%}SvaGv$S zEq~E^7HE&0oPF(CA6);DmOb=n@giq*s~*eRs&Ad(>cbaQ&>YB!tuGi7+f|Sr8xc51 zch1lz_r!`9dG#S)#qmy81ZVMa&n~>HXxBG)U9l_w@zcJNRQU5_j=af*?(otRe{cA? zeog-Co!Q}+I`0cV(^(we)j4DdQdJMl0P*GSAOkx&C&Jyv6a#yA$1-A?Hy^uoyp%n7 zW_Z~ySD5=~*}HBCkJz;!?ArCpNMV6JFfd>6n{&$^BO?-!-Vykux^B^u%Kgt`8kq zT2BE!WzBeMP-iG>OjPXV^%SJ<)zgpe)n6-UT;%H7tMB;v{fmyqw5flNm4fH3Zf)xE zSP6XH-RdsnaO%skvC)^hnFM3M{fO?5YPoed9RM$*xz(}X>8Txiu)7|P-5ID4Yg0lo z4PXBMwC{nT?!!ZRQk_g^>5ET*<1663X0fx~(d$Y(aLheUn{Yb5JYO<5JJ1riDuA!q z|I+(ySS)G3IWYL>15>9S0eAkH3m@LOXwlN%2U4a4ro1>a{8-p|`&l2{@X@v&=Mc~F zlwofya&4$RK7W4xzHL28uG-_5&7XfScM< z#MTCOq7*8SSGOpalGu|diz^SY1jKwy-GQXFLyv7!exOjvP zP02k>=g^o3mWR&z;HD3rUi3b`^-nqKk#%^_OC?_IC@n5wU-`BQ2`TGxsaX&U9PV~{ z@zph4$X8N&?p$Bqtm0YP>duv&-|qB1Haf>0O}RvyFgQ9Yn({(s;Wr956*@QP2F@(> z#rN5H@3Kx;cue@b&Q0MdomYmnsU!DkUOsK&iTeW1T{u3lZ^di?W0!SL+CG<|{$>c5 z;jD9;RH5H_l_F!}ulj8x$Rp^{INiPn-JgGm;LnT)Vv)h*Tv)L)>yvT?FU~6Xh6y^y zX2T7$&_`JAA1U;;DT71kaExS=0Et%#JXx&m!7CicH}!T9#ahHL>=G@LGy>9#aPj^^ zT>O@q}Qv_4DlB?@W%C4?1iip``OKoFo1LlLl@|xl{Oa*JpDjKRomGzj#)iu?$h)*@S znOR<1U0+*kzyP#S{tfw3|8RV&_0OB^n3XsHNQx7IdR+094VCX=dK~;<|?hEsJyMdwWhYXsjQ_T zf>Xud&c#KWiVG#YTtc>2Cl))ygwUa9*^qCFg!vL)Dk0l1`J#kagnWbHXb?|J$TeT$ zY?n^#ow0p6vF`hs_P`oTS{tWZYQ{Llw9;BRiH#gvH6=*4dPtCLHIg9Nsv<$MZI!Ee zyR|Ot-x^stG$UiSI-4GBXqawmV*m7O!2hp3CiM=0sjzT-2jKi(Ik)u82jnxW__o2X zXk<}-wnH=D4&dyElv8{w5MW-TKAK{z$)gGP+hbDi3MyW<-$Eq}P|0h6-z-mzYglln`)5o>^RR~i~$@>8U%<_D=nfFtkd5`H~;AVN;v*JFCa!THV2r$dbH_1x} zjeL~<94@oGbiCNGA5~7tdlms^d4Al?HF2hoBaV{yd-!>K9xl3E5E!3wf;Fv|;pz&=blC2uB}$d7Ca7X=~80O=IpMN*zh z6Zry)36OE|qHY9aMHJ~5;G3=x$wQR9950nS!HC#D0&sjLnt_XXRcV7)JAnc^Mvruq QLuY#zL>>wi5p?DKe@YQgKL7v# literal 0 HcmV?d00001 diff --git a/src/cortex-m4/libpostProcessor.a b/src/cortex-m4/libpostProcessor.a new file mode 100644 index 0000000000000000000000000000000000000000..41c7f939027001198aaa9c1175739bdcf7bb0e44 GIT binary patch literal 80508 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 literal 0 HcmV?d00001 diff --git a/src/cortex-m4f/libbmv080.a b/src/cortex-m4f/libbmv080.a new file mode 100644 index 0000000000000000000000000000000000000000..9668871e7c758f6ebf3f5bcc365a021bc510eb7c GIT binary patch literal 80028 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 PzW?Y!LAxz7e^u|lTQ1q7 literal 0 HcmV?d00001 diff --git a/src/esp32s3/libbmv080.a b/src/esp32s3/libbmv080.a new file mode 100644 index 0000000000000000000000000000000000000000..a05eed5761812efb9c119d3303aa7b5aa0c3d7c8 GIT binary patch literal 183260 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:Q|+hf|4;&atk( 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 M44Z-YZxrzRKfojOqW}N^ literal 0 HcmV?d00001 From a68b74faf401f9ab8bf91e87cf0dad9e3bff66bc Mon Sep 17 00:00:00 2001 From: Kirk Benell Date: Fri, 6 Dec 2024 11:02:59 -0700 Subject: [PATCH 20/38] replaced archives with the m33 versions from Bosch --- src/cortex-m33/libbmv080.a | Bin 80120 -> 75608 bytes src/cortex-m33/libpostProcessor.a | Bin 71828 -> 31732 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/src/cortex-m33/libbmv080.a b/src/cortex-m33/libbmv080.a index c49412a5f1860ef3ea5c95c918b78f3a86612e9a..f96a86ddf9851fee242af5c7d663bd2462b3c6ac 100644 GIT binary patch literal 75608 zcmdSC3w%`7wLiY+ktazAAwYNtlMG@Y2m?fj=#?RX1BexTw52VrnP=ublX)aFYA+L@ z6fL$Ws0ezC!fmM#n($~z6^V+E`b=8d`mD4n5wY!r1bb?GumA5lXP?RB3~KNF{XV}> z|2x^U_S$RhwcmT6z4to%R9uK&F?A#A3dKgifsuYJBK$9v0yB6i{D|1#KI20Ban_?=CQ}3iCb(5o6j9+ zx;R%bG|b;?PqbK@V)15ws5Kg}S<+ED!Yz(l+yP`D91EpmvH5}#2lKQz63yOdFwkUm zx?_mXMdZo&IpJ$!CkS#x1T`i-WoBPDfKX*5YrCc!SYEi1~ey)1OV9*4iFB^b=Sj^5-)3=H17UAV#20G~vOvt!jCL5cI^#|L zgg3-m9M-tq(;A3)ZP6e~mjy%7gv%GVHHF|m`fho{MF zjXC|kpgS6AVNr`C9B+oaZj*0fVvHO;sJNanXq}AqOq`#*#n87KNhz| zLaohi2ZC4=L2tm*!aIcCd&i5O$%c+)Yux#qK~wSzBE8c+ea6Tb#Z` zs0l$FUR#qV;A;&B?FmwOQ42gm7N;i|^ZOD_EjCB9oi$s+LANVzi-iJFZ^Z6rc2{e&-x_UkhQfh_ zFX&-jo5kMj3p-i^{*b3BVr4d8+!eB0oH2j2IpPQ>SOEPDZ7I@>dI&jM-RQaAr~^GN z-r{rx+zAXkVOPT8Y>N3?Z9Y_Qh_!~Dv4khu6pH&T5r-E84iX)6dQfpuw>9ptFi#{F zurzyH!@h(wY73ziM#FBO%jQj3BF>l{{nj3c_?@1nm^a}@f^1VIPXn8?v?f z9So3~yT$K}MVnjD*5f{mAi?Gc`nkjE_Ovpe-Q$ed9C1t7<+pl+F=oer=k|mw!C0WV z#pkjzyC>#yJDYsbaHz!+K)v{5&DK!3)#r*v-0?)v!JPh(JAw8Qc16+Bf?gJgGi^Idv+oFD(*AsTQe1T?*m9+*e5tkzzwKs)YY>5~O*=vcrZN7*r z*b)mTLJsC{ZndB#N3D*4)93P{-$nvHhdYmg0@&wYb0d%GP^%w3p-mwZeK89b+{5N)RaIy`Y*AlZje4a?K+0QI3A!pR?ZuZ*{XH#p8IW0bK!XJw?yPDjs!7!S3(A#9S zw}kxRc+80@hlQO9hu;!JFO7L^&7KeoyIKPtzq7f?igDN*wK0!BhPl*g^Lc~KEs01I zizhs;fUPCww6r$+9GH@BZLtSpA)niZIjYqXccAlx{LLt&F!Os|v0x&ENy-tohg+J__wC*& z8ne}HL!)epvv{nv+2IN~y&j7%5wSP1R!2)HZf&+XJ+Y|Y-4tN9m^Tn=vRfQ+HwGVT zf?1-rL;xKj6m)x>P2M=esA_SBthR8I-`f(!d~0isI$b^w%F5#PyF(G?aa!YUU!W

92 z#6(lb5%XIkVKgaw5T#&qv|_$+`vaJfoA6NMON0Z~n8)AJ8bxLMtbtg##oHQmd77da zPZJSaJmmMGMLH}oYnX*w6MkEhqZu79<_UO%%o;)o+1$+m2L{NfGr?SVjKVZ;_o8un ztYP&1=B8F}7`@#Q^Lav;qu6ZqqyO-QKo&OlN-PN^(^$wK&0H4WEp|tX+vb>Mn-!d` zc>8^~*uplom&@S`Il^jRJZ?GNO={nZ3w64kK{aRk*-1^Hhqqg7(XcOz5VU6{Hx!IS zL*by!5y3N}IzSXdf+K9foSPLc(BdD)9d_V(&=NwSI3vRdC@Bdyq}NwiMP;t6=3rel zAAWULnq+T7W8u1`*9jVp2FonjXjnBH!WdgSN%GIBl|VI{4*I8m{qGa3y0#~Dv_!}e zfPLCfdkNV>6%EjDEPS%C=FgZJZXeHC9U!=Lp9?2$?CSBZkm%yCJlUop|}BmliQ* zSj;M=6r8yHY--sD9jw~X(<8E^UO3jzM(TTxOf?9uj^iJszFRDe6{bki^!wSi;{FnC z&VJobiu(&G2cI4n3r&?ZIX$Ze?~5uS-Vt|iJt?xS%cW3Bu^_o#klmqOY};JnDq*@T zPhizA_G&KG2zQDFt7Q(okPF}LUKy(tX7IAn3q4)S_g6of|C4GdY^9(Rc8d9iYT*(t z>#iGfd#9Z zTY}a|G#s-6QdFii3?+ALNyXupAoB%Tdhx}aIRgOCwy#X1a+If$Y0aOh~Ua7Smk zaBC;kM8mDxnp`2Tcg_kqucj`eYrqmZ&TIboOzz*D$Z5cS;<}1B+(i=UgesL-$~rJ6u$Fpq2uE@UeQHTY9VDT_gUUGb+bXLr8yo- zX}s%5Tj=;mPBnEI;<^1(HA+j3ARV{CQW;jjQlGgFwh=Z2yAgIb>=9Ti<_Z_B6v;{?VUa=au>^{Q%s7FobA?iA-xvRSCoX6PM+gF3%SNe?Hx3sIqYixYB z&%p7dVD6l(xDi{e$r$>1pH?XD&()ZOb}=_8_pe-&F=-Ya?JG~q*?)&I`AFX=j<4== zdk{wIjjZ~<-iJhl2;I{cF>LLlV!2oul7D77Qn~%HBmZ!*@V8FAR64nWTw@Wmsysm+ z53EvIX&=?l$noi&)g?W}RnrCSKEm|im+92=WLI&2o|aY0rL7l|=+|!{b$KS#Lytz# zR4J6rT~&{2e^S3+#^+)bR6?4-XE(;Ed9zHjuz|+r0M5CBvDDG; zVU%9gBhMANd_ zNahnpo_z3wJhlD3txLL^Knp!z3BZ7d&_=9l$I`SP9;flXi9vsI8=SROC&+t9+=sD)ixEl9oVyQ@;H zQ1g?QMg4BdM-JLefA3?rdLO$1vxw$y#jmgTO3!ks?up}cZ=L7(9YmWxVaWG4y&B_V zVYz;Y>*e0>isi{CEFH_f9jmiE+h` zytnFVrlX$aaYc`QJmXdcW7YX53<5^4G?i8VrB}mSCt7y(2fY->j9V+YAFJ-etmO^w z3#Z5GWpzi{;o&h;oO(ek)pOl(l3)-hR&tTlf!_V@9m_OTTB9fC4Od$XLY-6-b;nWu ztJ*It`Q}|6FQ3gR%iD@akJRIs=P9Jp%QxKGCQR&X__n5orS4BYfEkqf2-Qe2LKag` z`ayBOsqiilP15+N$V`ulT3EfQU95v$2zxcG8MYpF33|(nJoKTdcZrvq%6_tHaDBui z+$GL5k9hPdXLdM3*L}V%xoWWCMpijV8cz!MKOpK2nr#Jm=Ah75 zB`XDuQ7&;-ZB9J{{L%hg-K0llzn*HnFt3MIf4TRn%`bLdw;ye2gzntZ{3)M&uYb~h z&AG)I-8s!DnRi6LW(52P@;j@=RMEoCJL}KArWXqLkKcS;oXQIJQ^`=uW{6{$=8E=1 z_trz2HhfN}oBhU!{cFGZXy0}FAzNn@#iHl>HlW;J7fVev0=+kZ!fvdu`1J!~x#4xO zqBL(ux&&8&c7j@5+UExpi)IGp|66acOPBSbCacD@KXX=7^~_lvY)(~izfm*ho=5wO z^T+?RFeIn{wa$7xLCNl%U94uH=K(y0v6{d1=I+$pb3gj?U9e;Jk9_fMvAp~AGMSTA zzuOCGx{2|d4iiKegQjwP=-S7Sic-z=5K{5@o2R-Kish@X+i#tuJGVr){Sdo+-QYhC z&J)G8Ii~A-^O3$B;lneR3Ll(N;(4|AH+?*H4}GaKcb9J4_($_z zpfp{#|E;S=zPN8$-VQ1!Y6IOpFP&j0Hh0z?&2j04Z+B8V&zHv6oc^ojIn8Kntiw|b z+B3#aJ0SYzvWA9*hU#V4f7!4&>^Cg+TOD@0!)~}a81&g(7I(lf$24o+<#SDQ=ggX8 znl53p<`@V!)y=InREHhd){Ho&v&ENVh_W~=RyWfa;mldE^ztvU+~T}16==)!<(e^? zak>i4c+CXOWNlUEBRzQ8uxEV6^eQ|TK8!^rPWs7J(eqV!p~OF!=BHzuA){kO5`D<0 zNENOC@@FI+vv?dYK9@SIHl%l0R0(KTe`|q(hBU(Z{Rs zi7NaO6+T6USEePCL&uD&^cYzl{3&}>FJ<`63{eWdxtxBxM9*anfQljd%?biYI1a_q zhVVohlj(N?r}%PV%P&v8-03)vn(#ZdUi6$Fs*msR-hRrp_2cxHi6_)!!&H-t}C z;gQUn zM=5+c`%p#yy9zJTf{`1_?&Wjsc?@9zfFa2 zQQ;4%@PjJ+gbMFb;eSx!=YdmxW=Z*}WS^?&(J*jk34CEYDkTm!@I2Gy{rSktmD0O%2fx{!*j`>W7t1?Y@Kxy>38_)&_3%tCF@Kk>#!*6 z#3k$eG3z)f>kQ(H4{3NY$mi_C^N!6ozdK-w;$&QX&YN{0&&QO>moP?8RfSXJeUU-~ z_GSsMWXuUTxr#9wq9;#gY#RAr%Gg4JKqNkdqdC9uGVC7`tY(bn_(JgSAP6~+5S-4~ zA%ZiY@xk#AIHc!0?F5FWInW_*5*W95M9^dg^#N=mnx!)rOb zox@EWKFHw#4r%VC{QipI965c2Q#uGzyoGoWqvueHzkmJ-Kn zIjrNbgyf^V#}cdrAHiD2r1Hl8%C`ug&sdxw>Tfea)ZccFKgyvb2jL|-kVnsq6mB`E ze}!NjV@ZNnGPafb?EBl%2FMPyriC>u1fiLmXN2>kvr^tWprmVvwgWYBsa7rl(mr`H_^@ zW-Y$)OS3Fd`QQj@9{&R~5xi*9Qh%dh7}|yzG<(TZ;+Oc8M{hMB(a2l|OMU-~_)OqY z$E$~*ViY%xX9cikPS`s}mOl+R@sOqXZida2hoMwj9|1^4kw@cAro01?XMi8cqcKO3 z7lb=g-Vxvwk75*gUU+26dnqG*#IMNP1b3#q$AOEmic#dPhexKoQ;^pPKT02s^@_Y5 zaFaY5Pstnsazb`Wzr;uMZVoALWTL20TDL1kiI>uo8E@@ad5)lXX-7zj_f5DntV-TnkY@%H$)hnvDd&-BZ(vQggVpF1n2ys%k%#lPVf8i%i86qTVTu94Xsgh@=XF<>vqsUvPlJ_{|QTrr$m9WG|{ry|u zBdCmjA;>cWSBxT$`XQBz5*P8|u_bMYM)up_gRGE3_yzc8DG28wlz73KHXnd5i8f8+ z@g!J^m(ojpLrEK)%!OyaE0sh6Cpl!`J&f-qEy|*?FcP< z);m%dgLC2H{wZ4JoZ&Ax&7ES>rT$B&sTt7|&EU3YxMi&oCCqPnLp$VCvo&4C7k>Zm zPv9g}-#@A70N{VXZh^IU6z(T_TOZK#bJ;7?=XHmB_5D+e=nOR|jC}6F4|Hr&?e-6f z*mvPl&Sf6%`~SxoMNYb%NR0)(TWJq6o+q_8rA^YFIi@j*hpM!UgD47 z7c_{VW+s_$f$yK0i?)z(STsrW{Lh|?wqSlaB1x8iC>R;_Ttv^D|0$ECUxjb>+THJ4=sfuFSixVRGpwZT-wJTGY&5ZT?=pVeQ{~ zOCJv{%NHdSbEX<+Tpnuu_k_=Dbu3>cEWY`suYdD&-=EL^T(uF?UMEsIfYIap6~2f9+c28~q=Rv*|sdEOE*f2z0J*@dblk98mn9 zkDC8V>wYRv#VBP?V{7KvbshR2jaB4FJY)%{4o3Z7c{E)Mx8y+(MvaQ!I!y_qwvkHpB%J(2(#c_|MVFry8*+sTgps9bg%JWXP&~w? zNRXrmjgyO{@Whh~{vp08Jcb#9QR3LwMIndintrx|Xe%V@?yhQ~QgX3F$3GA^4CgK4 zvT}qX;my9`v>XAFmJAO)JRf5&nvbi5xl(+TkIWLHoFs)iGEzEPRaVI^lW-+;yqJ-~ zLi3qx!Y8GaGXtf+URaqSLB}QNQ46R0lrr9om5^Q-Crp;ok^c~M6?^d>zzwpdW1Fz` zF~)UXO^<1+s*~DJ^8T8Cn&O^2#k0ibR|HLn05h=yYSd)wx<|WC8od_Mx6-rUs6nc35uS$J7Z;!bc`k&K2 z)JeKsN*jW{ZA?vV08Z6pW1!kAGj z)cPnNLp?}o+wo3Hg_*Za#g|o=pJ0aDq|%aq|8;fPXq;`NVM8((*J(Sckh9i{`O-MO zBTdiNaZ|=WnMJL`R+2g7gGH@_HcFbi74fBTj8+hdn=yk5zg&gm2rg|Xys|#E!%fcu z>hE`VZJL%zC5~rWoR1$m#RpF2j@mN{(MA;U$dbUkWl+!b_Q- z5N;^^?JAu1L&@vkVasT?ly!QP^|yQOkj@3PT80q2KjuqoW7soQGwjfP$$B{+ugVN@ zNAPC15`mqxW1_>*rVMm0v^=t2tPkTw+>De+svub}+ba=B>Ni6Y32kzu<0I73JcMRu z#F?2+C-R>4{=O22-R^Gr-@MG94o`(Jlqf0_q%rGNe|o+t#AbUHK`i=A9H;dx?MEyj zi2Vp^3x(K^xS8W?2%_>4MB}=vX@o<#Bo9pWoKDYih3L>X5-i92J={M;5F1ao z62!T}_qqRl1i?>zh~yvR^e>8cF7YYpM>r|{kRzpEi5JjEeAq9gK27qac)^D(utGd| zPbN5tu^9xhxlLmW>4MzI=}v;!r1lUrFcv0=!l36}iXT~#l#5+Bwgl2P*! zjSN)_wTmy}qc)t7+(f%#*kfr!m!e+|b0sMJb#VGQY!6Q@N zJ_L@#kK|DqDDs?eXUb~?LUWm76nR#7WXdxDX@noiqjV|q+ThNV_YWYu;iniy-nZeA zDK81c3_p@r2&>4Wv}DSA5EVuJMlp&!Du+yY-9QZRBYD*S6nQ^~J5$~%$h!`Hic#bp zhDWBn(;4z;JW=Gm0(Yi70~*9sMHuHJ^ek*9-xBa8iNK8#@B6?rSVoEIno0 z7Sno<+_YB75uQN|^1AAB9!D8GS)u;nEMeM-k}J~3(4q*d}7 zXJR_dnd^00iPGwd8Ah!jIc%DeH)UO;thnTLUcSUdoOoYK*Emq5tB}@=vO2?1eoiA# zlgv1^HX~oF#vzX9kh7hLiNelb`LDe{2u>IFi;T&ByYOBd zD{36j>b?gTR>VKZuFuT;r&c|TcOzNq7s(>!7J&1mktZvjTC>unyczf7B$NSDdz13} zmX$)D;K_LR(wy3n%)4M-^E+|t4Ligcc?|icRB32+YL;DcNb>pj)#S4(wQ2EsDeXDJ zLn2126y60g$$6pQtEF;~e;@i=j%ncvR&(UU!s{1aPt-Y5$TnezI1{nusbbq8`F9U! zO1t~>RkW|6oL5VsWf@5Cf?V)_J@4y~G!kucRq8t{SEV+tq3G{^WP1I=a4%-e6^^Yum~NJo2T4ws9`J!-hAUcSvcW z_YxPh)ln(mKxrdU7)KHeJ;>gdFMp&pfV@IUWGmxVj9a@oY5jxz=kOPVN84`b$EZp`Ocd{6vyb0obF?I543b=6D040Yjm7sY6MEP+{!K{b6;}QE|T|+I7u9pmN;ft zMclS>aRHVZsVP#c8NF+KylhvSP_g-2D>bP_8dlXkP$W^xcYQ6+s@4md)D%rc{Hs!1 zSs`pl=jCfc8!t-@ZzW@PRX47Que^x-9LN_gD!+}(UnI$&juxoo>jv~xxdfDVpi6gB zS&WLC8Y!huBb}_uB!wHbD@XWReAJFvEAg;YMJbkBcC}QWavmuSmtHgtxjYS%d4G`i zxs+H9jqG&fvN|D8YSs3%>n5q)$SIWj%V)QncY3p1&FIj3cqbF5hZv)0z#7bW16_I- zo!}fMzmrbS3DUdi9M0u%9*6XtOY|!^oX;UTnB-5-TtvT;!#NNr$wLGZgg^;GpadaM zf+P?l<~tjxXO;-ZJE%`SwL$KaPi%N*#d^LUcydMIR=LEUT2ahhPp)X=)DtU`-1WqY zQcisw!2)&uVI`H;%i9+FHS`4U+7IZ6w#6dSg8^t`qT)pTsvSNoTKkws4Lp0@4s4?hu>>-`u_R(`u@5CeZM)c zO32?fPq>G_XrDLGeO}_^?GT?}qi;#pNa=YG@-Mm9sfDWBn0PK>6Jvmmg?* zfsfc#uyb^SIrV9q%kXc~=pa9X(YlJBxhr4|u+^~CkEt)3VVA?MhFt^O2r)18RajG16{U8$Xz<9vcjFDIr0(6&YP{*Mw9iF@ z9S8HJ7IiuA1Jm2eCH#ABB@+B@+ZYM{zK!|>OTE#y=l0-$1}%{pA2>5Y@*C4u253(G z9R26^o4QxLD0a_b2DGXBYY~pMOvFe#4_h+w$%?2JNyV0%@h~fPF_?dr!%I#r>f|(ocI?T;73} ze>Yk_?1QkoVfVuBgB@z!FN$)Fzb52t8~5luVXSofLf)?b5VZ3=EN@!_U}|osuope(20SN^=+}?X&ezr! z_G=5Z3p`6SSFq}JgD)REE;h0*Jk=C!UA`3UF8Mf}5Q(Agmw<`MCnPL+`W0aPNz9d? zZB0H8?89UMZe7^D^$xh-!xKzL>BP+?cRx^XPQ9Hh6K7vtCYmO#DQFy6Hp(`j*W_QW z1^yu28*!v$*IwK=aa`;+y}R+a_>{@`o#Wz3lMTPmn)cxLdDFZ2eZgehbXAm9B$-Uw=TlZ|5apsZRHAZ>-OTPa$YUk>ewFjSlzZ5mMXmC+G zyL{2$)$K(RR@Y7~Y0+S9JGIJ1gQj+Bjf)0nwo@xyG+5m}Qi4<4X-qEbS=5=g3%%iQ zt3LeNcviD+u(F-{N#Km_j>YFk&y`2U=J(lbb82JKfYu<5+&7JrMrV2CUe~L+Y}EZ$ z*Z7sAF!B$3?7RZle>+^=vw4O%kwhfecTFGrZF85#>{4YCjG%jM|H&}Dw=+i>rI&9DE*^E>~$77D@7Y`hKOA+xajad7QT4S)@U`kRKzz<@H) zAn(6_U!J?m&PaK|GeUx%5gLkxd!=WDz=q+sp5zI+7rwbVi93u;(%J`io9T2_8h&F@ z!}*H%G%=qY7jY(4-LXXb`WPBXHxQR0&9zU|a*n^eMigTPMb9aJlqlg0N-n4TMxyM_ zpeXS@FHs)Opp^13k4cnOgB!w1O81F{oYpSU%;)pUhG<2c_Cp?SV@9|VPP?0jE64~} z#%UXPxbI|yE9bODAIE-5xn4DRM+S9ln(CCO=JTU7!l+ zDNVhShy7kg*vVy7WrUrUrv6!? zn$J(n2wR<|zQeK-0;Yev|) zY3g>O+4(VjIayS)HR%H%%EPKrmoKHPp(tOBhZJW~P30!{<00Gt6h z!IT3jGvS&fh0fVeBg{|=+7SMFPz~T;4Oj(uBj8lPS%A|3O@P&aa{*@n)&kB1oDVn) zuny1!xDaqI;MIV&fY$)d2Q&lL0oDU91Y81mHJ|`^4d8M>GvKv=^?=s_E&=>Hpa6I? z;BvsP0A35Y2Jkvl1@g5PuIr_Imv$n^=U&m!`mDHBLpN|fH(=KMNIW%1SG7s}?cKTOe^*KzRPxUaB(QH^9muVcaJ1H2nSm`$yP!n>UH?!M@+T0&VLV z@vZqvI(~kD8Gj_cG-nfL_Kx@L26=vx=GE$z(*1awI<&aIZj5Q1pfl!TO{mGw7xa&! z4QuYgJ!p5K6_6~SWgt)Qu)n+b~y6|X%c z7MYp`m=3q&NiuZ%(VlUG*N(8vuc_U8NGBM&j-yrXsqgs}Ggb(>G=H|);i7jxj!pjY z;^}K2UcB>xU5g8Uckklc%C|25=!QEN|8CF5#nSW0zvvxLIL46HNc7x9rzaZO!GC34 z)9$pN`h5ynKjwopJzGD9KH@zI+E19y++8lawK&!^t#-A2Mov8u<>WTAjin z-vPBb1E=ujyy5i544mkO{NZ#3qZ6g!<$*)z45P!T)A00-VQJCeD}~JrLAU`{F@#^P zAb^C^nY&^Lr*le5!&+F<=b^Q%Vu()uiXq$sOZ>0Fl77x@94AlGzu5v@F~t9Xf&dc! zBNcvFg<~TvZHWIRSc-42B)^coou@Mh#z75#n{zE6eI`>o{l51jLn{?9Wi`fpYE?^XC; zRCwkgBjq;_eS=sYfh|L8sz~=0xqLrI-)NXt(dQ^1k@8K}S1^Vt97!5NU;JGRMIC4O z^*x!2PPm@DC9Nzp?2;c+9LoBxM%D)|vhLzRGKb$3l&OqFYCyv^mohY^xFS>5r#rH= zII{Falx&hpQ`Uz*@Rk&!&A#Ja2}IgmSsw$*`fi8vu2t5R>{&Ok^BZrnE*Q%CN(I^v z4ReL#*+C8On5<$qBK@f7K^dX%~2!|X=9|-aKI6cbw zrTD;i58THZ&byFILgPv?42Rs7Bo zqpSl+`b^&^`c$4z;5!Ki+)WT??uR&jjN{J|gxns2ko!l12>%hsKPHIq|KM-}1_a`# zJ7b7{7D3Q!IlP7-;#tDswH$thLnnvRNFEB8&NAqZlxqpjgIcq0}Bg-^+2SJpz~71K?BK|0NFTP9V~AlghJJ zzAHhxV@U^{6ucWz$Kll+nmHsL8lo@f@H!4xb9gg{YdBoXVIzlj4qY7jI1F(Z<&fTc zqj=r}q&tYN*8>{Reh5y%xR3)l3+*Kr5c#++5ByNr=>VkmHz6Mo=VW6kzo4Tlvcd&? zoI$6T`rnnj-vLVH3V0v!0d{cs0*7Zf)Ka;DPIoU5B;8+vQa=Ec+9lvU+`ogvS2+BL z!$N8o;H&0P;Ly(DdJcDU_ymVZiO!Wf1j>8){Y$P}d<2gZ`Q*I)7 z749S=IE|0X|Hk_T>g#%5?g4_p|D7P@{_pfNvmQx?G$6AcMTSUOAL|+-Wj$UDk+Plw zly}?I^LzGPK5CAPi+i%>`Jo82=4&3||AjZ`{&jRYX}(?ys~B{1$Op15*A%h(#Hgl?xcH-9NZ}KmI2R{XNJ5u{3>A4RMYaDaA(R35ki(5 zMV=LSro3a2mxLe5BOXd4!8X`o^3c!sX2>HxGT(;Hlvjr_@dNmgyh2z--h*&w$}0zf z)-{SzR4DMpF+ z*YL=Ux2_W9%;OyiniB7MxJj-e?y>c`jLvfV)$jsdma=LLr{s6a6J-s8Ue?{jUZCIrGS)&jB01^;Td*%MnFX#l~E?& zX5@FNLIh25&aUHEo2cK-TySw6(gpJt{L}BBpDIU08SiG!Luf1LlGs1ojT6Fd@%bB8 z4KBA%7ufli%(Mrnzi{Vj*+<^x(_i@W>LQcuL-dC8FWKH-ZCvur#)ldk&Yw=Z-)_9b z@=Z&_d41&l8;wgI3N@S;)3oQr*EW@OZ4_Uy)BBF8wta_5yR}$oK0H>i9-e|PAm#6B zIE)kTWH)vc^DmgchWG3SyThMW=Jyw|UyAt)DCW}T`@}7p&Eoep1{b?vSxxU`D(850 zT?H5ZXwyw)mp*-#E&YjDlt*tS+NHPeq}@?zONPGJRNV;`2ZWZ+|4zs>+M7f@tnLv* z`LdhnxC7v*s}ue={TeA~=*$;(EHj^jc)<`&%*pGTqjNhwX-~%UJbIy}Dg@iI?C@3zv-08Ta;U^Y0QTg|5U`7ABkY z{rZAs!W+<|VB1Ju?tWRHmQ`QX`w;g0FB7$kRxQoznILK=e$+=hvT{l^>2&I#Q+Tjf zQ^|}I(tdRa)qQA3{lwnqm*(_LMA*MbVMEIbSDqAm=CDdubyD0qYNPmS<#c`yq7%N? zN9DA+PbX~Z^BOnyG1hI4ce10}Vp^5E>G*{^G{gm8(O~FsulS?jW{E5{hLw~`1^Fq`Gg*k=2_mkpl z^X2z+wZ_T9@jiy%U-W74`}01z{g^wiL_1l#y63DOC+|<5Wk&jHL1pJiM0PtI&@o-Xsye(g7@ixjXGV;#tz$Sg_Q+Wt5W$zt5SI- zxl?m4)lbu1wkoB~mo&}rWtPJJQeE*mU15O?3-V={pC`k-Tp8x($S_AQLw$)1ONwMz zq?MtTQe7yPUOlm}0KZ7RDPO|!BrI&om9QKMi<&4edda5*zq-OAv9!n~XyK+Bl5;72 z`RBVG;*Ew5(Pz3#WQOv>@%VO$#(bBkE4>SP*(H_5$YT-mIHII*YQd%X)AEqVT;wsQ zU{y+AxTP<&EOqod9VI_xvv2RonbG<>Qh9o-7+SqmY&LHdBi&oYK;tU|Ig@c30{`IY zRUiIGNxN8bIwz$oY0uA1jm%y3;iO6Uiqq=RXj~`jozc}a46Gi=Fi@qttQwPvrAfdJlh$a9pf1Xzw{L8VnlzPByT63ipq`R@OD&R6pVMSmzP6w%fXn zpq1J18#b-PZ`3pozb&STT}89DKw~_DZ?qJ3;45exD!8meN0YY(y~u=jKJMxW9j;nQ z`H@n%zqo%|&dX=DSLpA_hr3EkBOA1=<`!<1b1_+$TSX~G-q8XKuvM^AVW)K?@7>gf zbTDIj%GHIIkJpV#7{os&jj^usXbtt}|$n3mOk7H|&JAIv@TeJsLo46dCiAqm!T+ zM@W!ys8w)j4yCe4n}6Z+I(n}A2doxPjLI{fobFs{&or9OMD}^zaDMf9+z6FC_519_ zDtd_&A3aaYMtwe4D$%PIGIn;;tdd`u3dfT~nwK2-V$m=>`x`97=@lw|^*2~1sOai% zvP@FZCrfuSQXGZ&(PC$6czlLosncQS5Zfggrb@+cl<2gtCmW-ReyIwdCh>1q*zqRq z@c4&+my=}U>8pBlfMEyxH#YmsYUN#^aabe^~hP%%VrEA|7{Vv2aAl20dlK{w7`j)LSPn{f8M~h2w1zChNysf6FOl#u zjP?+SU&hC>HjYzV^i3ApTO6WSusy@*(Q#PA}RU?mtj}LVgy$!4bt97x>nR`V;L6i63KSeKREMtHr@kG~x2aZB1df z7oT#+RSD{^C1ibqIO`NK>$ol0 z>|*DgG;Y$l9gQ&rk8nu)VT4~# z5FIB9s72GIF=#T*yRh9So%^gNSS!EpP5a+87SXp6-r)2SG<-T6ApXgKSCc>F-pHYq z!!U=NIP4)==-UCwpZfFU75Mp| z+?$!c&rRL>l&(0mNuAXjhe%nyPQJAutEN_f&jzX9qohDn{Wu4Uf$H4kEvlSF$Cr#7F7)6gD&7 zsb~;Xmx@v3{T&{e@}^?LUnxI`PRk>GkW6`WzTcq;<9vjU1yiQHnUGfve@b5&tdhPt zDtSbpcBL34ealsR6(CT$6r=Dd&&*1DrtjcgjITu{ukJJW?o#nB{|vspD!w(J!S|So z&-EF6zf$qV!AE7M7@(5*lZtO22nP5mM&VO`tKjC0`ke%3;-mV`$3R2DmGXNY=k`Sx zk*5b=X8o?skVnrbio6*rd8Z)wV(o95N}fGKo*_ftVlHnk{3L_(!;y*`km9A}I#ltN zg71`yk5G#$ULWE$z@N(62&?4dc9p#MAdhH@QQY^d`0(joX}zQ7+op!iT9vN-h&zCNBvHbN8i=VtY7+e#Kq*DR`DGJ-^JSBUpXIuWIg~N zjX#P}()TGCKuXU?cs-2KI$kkEBQpl$38hboi}9*uF9f^Z%} ziC0M*;UVyKBT;kUu7;)bmBLb6hP<>fArp6G1SC0RP^`oF_QGRUMnHvcHa?eZ$S_}c zm(JWdwQ_(jzDwsiJdeZV$a8-+Tg=RK4!UYXhjQbr#%K%OE3(t~in{Kf#si5D6Z;eH zc$-k2cy1sk54-OrFAd}rJv)$-+dYuOo*Kx}K8+hFo*c;0^fhl3b53s*bGxU78^e{& zkA&Y1Uv>$*w5YZKH>KcS6x=cLoolC@zACQSRw3WrA)WBVyEMCG9PjB$cX-eZ9JDJd z?;#r+HCN=>E z^O6sV#ir3I)5wu{E4|2M{`k}I(*q-P+v@XA{KlZCU2OgvTBeg+J32#0#|Y~?teumD z5@E0O9t+!EBm8HToJV|Z17YM}+7~u=mg3G}N;%F14I9K4mXu0g;?`|$=&Ij5w`;>@ zV^{a)%=0C7q9Hyy)jd*oqC4K*&^^#yO1sRmUoQC-$ha=mtuxmQ=c2H(zov({y5lU> z&35-E(~c_&Z|b)=u2fa<|AjuwS3A7jkh+2i^O# zPpU6>g4}u1O&rw;DhE&E+~(blFAV4>yf~m8abrQlhuVgX2>tAUxoo4T+5PN5a%@wh zL3ku|CiHG2-2udy!TdrTF?3TaT_3tOK`ocuNm0|SZN6L7cE6C}r|Vu1KYjO|i4}2$ zliGDs%<0yIo@%Cgxps3WICjH6HBh3hPZnn`oPYo1nwb-}Mq}LA=r0L}5^u&vs z<+SS>iGO{^(}{<~979{8Dm6u`!z~TWU>V3`qZ@1kBdI-r=WfJ*C*oQ4;o3=yKP+1O z)W8U>rg426(dcIBu{gKRk=jaw>K3EiHx~+Xa7KgDkj{#n2D&p^Tluxn4V!y5A3`q5 zHm_-Wa-c**IoKoScfX$8nWPq=Q}HYwD9}(YGI>gm<``FoG?eyIMLN=FPLxqmH5*9=V~r_?fFX0-hT$oM7LV(Z0~)VZ#=p~%U!&RjO`LF1>%fS$HJ9HHQ(NJU zZx>HBZxj}F&Fd;K{>rdXe6BV}>gn6X-~HhUoS$9Ovt4|njc(b{^lEE90`_*L_MXBn zUCkM|Pgm;T*4Lbd``uA&y1l2MrU>rmrWVX#sk_?dK1TN%6t<1)Bv~_hm~o?ctahXL z80-_UPr{z8Er9QHwcfbChMlk3@XiOLQ}=52;5h5MY$-Gmp6KoDJ7|zorI}$)-QPws zFC(aQ8sbx$6pZ&lOH6yfAp{qrl0J;4auZVR1@~cfpS#uG=1? z@a9xklH#T}+;=A_mrF3#$#Lb>?C6d5F`T?=vZQ~<^V!l*LOQE?wMSFa+k;)G)cT|j zzir70Q?xVK`8FQk^C*jgs*9Bd(leD(@{68co|22F!TC8kd=hE6>od|m`E$ZOhH%ZF z5w8Ao!aad-U+&wElBGK?PA0dbhN+ewY?Jf2rBAzaLYHnQo3Utc-A}2+m-lIEf+(LE zJ-V6&J^C7H|9!J@%mfqT*5s|PixFI*GQN0OfBl1?6^@?137eQ+7HmstMY619s{k4n^agPjMp z(%lH{2em(3E^+MR9D6y(Zi!>v;DZNocNA_@*l|$z!~Qe5xD8<2L5goH=ikCpp_Qb3 zNAg`X*miKM&?+qG%f;Oqw;iPL4<8Gz3u(-|m&Us}E{XW9tT|9;BLEH)uF`U7rp;@NCl9C70E>gKwZ7V+bEd z_;m=+Qg=%AvL#7j7Y*j}uv*m5y1~d#|Lc9K-9>|+v{P>W+P*xU{AYT0zYgY)hFkCXL}cS-OJ;=yZyy8T4-b} z8r;HtHcL|04Q^~VoRLGVYk#hf+RJT{+(m<}TyCWO(!LzDh=&dm)z?0`?>_N`n`51y zH%9#UeT;TRt3E6mrMWOAthw-U^GZRpWA2hU($ijnQD2SGy>-(q;{&y zmk*A6KL@Si{(}>{sPBzxuS2L=XbbZY<_d&afG~>&=Sg|eN?{@g|LZ+Dj!zEM@^*dU zz%^%dQn{rLPJ>(-)XwbN$pe?iXLs z@92C>{3!P&@$|HZFR;p@3TAjo{73-*Wwnh@4HRiV>^$=Kfq|Mv@i_4wPm2?$^?@5@~8p67JnADbFs$rB=&EfLpMVfe7Kp`F7+R>dTXO`ebpuZIys>ALTc3y zI*Nr!!reR%x%^Jbc@^8lm!u~+bLv!b1#Sw&Dj?~S%JU zeW6PGSd|J(Yu^=!ZH**f!|OU15>8tXet{uDH^x<{Bw%&Dn9}oGtbuo1$u(U#Z7tpp zT|ljz=M89+-zl{> z%_9vxkM}1>ezi9Tp=2$!V_2K~zRx6R?xuXu2>A?ddeuDOb=_GX!5Fy!tE9?davNcY&B>aap6;44Jq6%qhJAgy zj8KU-S~oQe6zJ;OC=@g7=yMwG>&s4i_sHM(s(nv)q6aK4lD;}~@ikuln^$+v6DS9? z&P!1XIN_9Zyh-Dg`cM1E_F`7;>Dh|=Q=57&!M%j`9%V!rS}`7y%HoDM*{oGPy8YTm z=kSq5FXVUXss-$G$bePWk@Z`YuIv5~f(9HF@1T!46QEjoQIMon3c=8A&;{DSsFdSP?d{-u}n$iD1c zp?0-cSbC$Yvp(F;0c{(x?iRov$D+sgafqebirI)>4 zx?gwhnS8{S7%4pt9d7?MPyWcQ~%r`TJrWzv1EK zJ2qt5^sCnCQ{S1P*6|yyN>918*X>ISROJ%!Z>B2#St{J5!sn)S7%Px5E#A)=p1)cZK3|2`sqlqaI)V*DnUVJGSF7-E zs_>z@rq+}FjoeKt{`*z1l@shn&Wh)NjixA z9G7+8iWt2&O#F1FO*)68IZm=j=aBSWiH_IMfRB{k|03KV;iXLAbQvGTzRGbrV=cp< zYZyM7B{&|E=;iEA;EJI*cX9glaF-!gI&UWyI@2Q^L*-lRGG4*x{bi!#xCHd^>>Z9* zN%#bo;<%h&=)mGkh4|_Gj&uymI6hUvC#Q7=Wqe9nXHd?MA+0lLm-wqbQ)jRo=Wb;< zVUKh9EfW86@68|1Bn&9G(oGRhSkw@Uo;nZR+AM6Y9C<+xm53niUM zyC>#yJDYsbaHz!+a6}ZX9Oy*0*juB1o7WR|xO{(FVWOub2QsomabNo9%Hj59CW+lwpb_-^+xP|W_PtV`>oLy zXDA#<_<|nhwOQ=VzObV;;17A4B35Se#a$u0#ToNQnVt^cOuNJVOPT8Y>N3?Z9b@FhFELZ8B2JgO`*8o5^;EOT@1AUVop!O z=8d|oafgL@BC&v_+1ncSC7e-PD98fQu-oUdc@vh1GiHzbv%jll4@CSUAUi|enzoL*_Hau*lGGm&Kne!DZPiuvbMhua{{w>{{0X>_^HQ&PxFoNILoUgCp~W4%YlHQKy5ah*C&7U@PITsnnUMMk+cPoHtU zHn>Y?=dy|L7hfO;Z6rB+>z;p_rF0N?tGgR?tGUN_>bt+><;U% zjH__I2Px9WPkM{Kp0-3k4+xfhG+&~pJLn7K;ohsHDxHxJey8*Ak-~je0(>u>6udlF z1oB)9#(d+}&E+{Gkdx=`Al$dn9Qdp+7;dg}BK;C6!hH`Z!o7nOa=b5y;pX}!y3gjZxdUrLJi zN=Ol3>vjI)t!FkDvZ@+Qt~a&RbxA8rotCt+)Na~xR7)MF8Cz;P&Dc`kX~vdXPd7H# zeVVbQ2Goo#^`K^KsST4sveb*(8D=OWm2YvecqUD@%Qvw6fH!Nh?dGnzS<4 zrq*x4EMZtKZ>f2cxRyFNX=SO6KluXenJ5oX{yzfA7#2W&`IzTCf_c#oUa$HwE zO$mW2xu2TkvQft|UX)UDZ^FQc=YrgL;o!Pzqg*lMTnY?S;j!K`%H8rIatlpz?B9+T zjuMmHwhxiJ-6YosxzITNTPpYm%#goNFApK9gM6 zhsgaelUyI<#!ELfUco$0)epIOnpXa*^!SYl?-=C9%U1&N1<^#gfdSw#WrxCJelx~j znIZm&tK#nh6W%;n%p1plOHFcImp-1{29q4m$r~@fa4)9Of13>7o6F!ooH%!IcWcza>5l=9z8CcJ~d zV}2$c+q?>I#DrHqQHZA$m@Y?l*o5~S@PaTW9_to`mx}yrOy4Xtyq|-;Qp$fE$1=v> zk~v8{wz(DFToYalcyH4IT`9baOn5th7l#b}=fqP3G9_pc(yHsUZ)8!I|tv#IR0xj;k^XB65!B(?5ile z9VWcU)bZ=zZWCVC++_YMHsJlxg!d5e%3-gR3hzD>-g4j(hyKGTW5Rzg=y*&csx!d5 zTGPs32A$8(A&38vvbqw55c7#rl%XO;R!yjS$i-5GKvz4F?~&v(?*T8NuE0P8&kj{e z;UPKcZbH@172&@Em9Nf^|QIi0B7X9b}FOomIF5( z$igW}mvyCh3c6+-DtdCdhiA!r?Mcpa+j7PBRi04pT)Boo`OzN`(=N;RXdf~B|sWXo~lk)VtX?c^6?Mj<^?6$P?j?GBR zJeHX{@z|6zU3c+RuMW&w@4@php8a^fhvyMId-3eUBaWm$c1u+H2J0bu;?6V|)>NdV zrQ4X1$}DUYVhwNRK{Ef;xMtG%)-p1Lw!u2=fB&XuaXq-8eqc_?WzZznP$axk+6 z-}wO^p0|Hq(o&Z7tcR3ho?odLQ1a_d{H@@LcO4$iRn_YJY{{o3&gbWtTn@h=oSzU0 zH`WJmc6m#%83U#@A7xD5GPrLU9gcWwD?@E94gPjtxFgt9Evo%htr#lrh}2ZJH8h86 zMF1WBHtfd_)z{SqBbANXcn%t6Zul(&^?w;@x;{<_ud=SnfPI^8e~-@Z(0RrsACpYfE5`W{FH2$|0E& zcTFHkrFs*;<+`3k;rXCvo>p?p!MMOHrQ|*b17mw+3*4nUbeGLZ5*}28(%o!O`T=+e z^#m%-Z3#~E6IpZp$M(dd@l1Ex;`uRcU5vUhN?ViUz!_ze1Wt`}+wyHExIc?G>9{6TOx>Im=}efttqla9wLhZBtukFw#&jEOW!M4$MG+UGPQ*J`R3QtRrsF zd6pflOVGuV_WaH>_~Cr4GfXU@G?esazkc$P{?jxb$-JZ#^B0x5oaZ=HKFl-lP=*i7 z-)rzNKdSP3FZ5U7QA**hgMqQU?E@b37xDP6!eg2e&y9!bO+4e3w{u~~Z4o;HH4zV;|aSi$a zC6D6XJKlE2owE;=UVNN)o#71A6u0NRc=~?Xg1^tcuRB-Uxy!rDDo~1Ym8m_)w#a_k zVM~cSm!zC(olEvvbz zmE-B@h@AY-#7<);@7?_a2UOiNaWvJ@t?%PaLrsI$J8BuO4OVqgs-wW;l|cca+?jmNIBtly(9kw>uU&V(EE{LlM_2!}%fM`X&5AMEWF- zy}`CcTl%v+sgQjiC&=0nKhFN_!y8WvhYzCw<1y11^kmTjl}}3 z7wImuUD}QN@VGDTkuJy5cL#H^mqD|`TKz*AbCrH?)a{uF_qb~JTaQ|1_|x^z`w=@oCw(l}`{oeP3SuLP57D z-~{D4f4uh(*Q`B!6#jAbly<+IzW4fB?s!hgR|mwB_hJh?{^8vVe8ZpCHiRr&RRM;Q zHldZph`AqYUE|C4HQ(VmA#8JSTvjQToeLEMN}g>ArO2x~Vhi+aV{BHIptNtmLwpY& zuBrTcP^D=9O+2*cT1Bq0?1Nq@+D8=wO8yxW|FVgH#l(-8_&=HWiF907#AllbYwawp zAj`RN=U)HjZwObmRJDg{>YEyUfncX~F;l3z6YIn3{Y{OnzM8uBT48BPHFyKebcPEz2MlAo;KC56UbEqQ?5PYV0*k)jdtM^aSKJew#ZM_*%t z@yast)37#$6oW7k((@twvD%52WKXseEvcEbvLs{D%94Jcymk5M8b=uKd?9oD@@b?W z%N6#6SzgI93sjXIu$HO>X~%LzDaui;!((h;9>)tVm=TZfD!eM_0U^ym#B*TQQ==<| z$2@DqLxVu(U*aK)Ch)!py%8_Vu9Z_TmP+AqT*8Q#j(l4IGvcW>HF24ziN|k)>IpP* z$7}yS2s>l@*A9o4$~UwhVo;I7O9|zM9LF&5IVIwS-zEJ9yoBmQe~W9ew%KV6pWM z*5!`gRXB4bIcEM~)SjP$6TP!yHqblKT1&eovw|mTY&?C}jhfD(o5)s}C@B%VZ{a{3 zJ84s}kN>XgwH-cA&-z0XH)#4aPjS?a)}YH1KWqaP*qfTB+vP_cFe!!&@$TfVRULEe z88XktW2^O+AA*Rs-#i~q+;u{B|@CWbkKCrAx;Z19@ceZ ze<@wT?o2OkJ;517TC9uwYX&tP!@KxHV&P&L3#p#T*y;Im+w1Y}ZenRMgneAxk0&{` z1DcXJoxa+>AED1ci#^>ov>N8`uOPv5S^*f%y5SLAsrbDd|``!B4xExarIO8C}_ofR{}*+mbOo*hi<74zJl zSrwZr9;hHf_91P5DEA}2GyQkB+#JL$beMdGWX-bmPX0gJ-kvN{dL6rZN++Gz9bbaE zIJf&tIMKnetGEbZ%uMOcMA&id4SFQ*lC)mjFwrj-;6|ZZ#t`lp3fhL;@I}hVJ!uo( zPhEX;Jj1mnzM$m0BhIYJf86$`?E~rWrmsa!cBFAf*Pi?)} z!GE*u(qG13T97mI$M`*YO4uJCxTh4k-8N}&^N8IpMm*vtC)0Nh;%1k@_^S)1mi=$& zv^;?F@U9O&xa%(FwZr}P?M%&o>B3CsLUH=}u2lIIi1}T(d1!t`pkhzOZz|?{1KvH} z<+;oDGNu-K=H*V&bw53o^4YY1Sdu$$Z~EDVpQUZqip+frv5Qjlq(9=6cm1UAnzVhw zuF2aoc4cqR_Z*Kul(%f(q=zXxsW-i6a_@wmd5>iGX7o&XI7On0x%2L)?fjkmT_Atc z&u+dk#q;thr!22*dSB6|pUZ@EDFzGvaehUCzI#*TcMj(4uBuq5%ZdDkL1*vr_;a>B z6&E7U5_fm}Dfdu?ST+5KE$`Qn-SNZN@jT$R3Ka~{+hF_1*>N}3#>3z@OH@p8| zh8=(N&0+iBd|}vj-QAcEX8M*KD8?wt z7!Qipsq*ME7-#|bBAx$IKWm{E`mfu+Fr(Gc@rqn&fZbpm5Y2U$1Xw}v@*GA1J31>sobzZor}=r5le$HoDBC~+k_fjF2$24 zbM6j(oaRZKWb{)xV)Hn3Ka;v>*D>5;Hou1_RyV@%pmj&?Cspwn_z zUN=YJaAMrjt75#dX$MXwc=p{c%&4Rne71K@&vm`?dN%eh?%5qLEBJc+HTUj#Ip`4R zTF`$3^?<(azM*$j&yBrT^za0QiGz8MI3Ct^VLLsy;MBb=_oMMMZpV;q!F|JDh>Cey zNL(HdbKg3ikmjHFAH(93!?EDJ)5DHOY;)DyB7X$;Zh29&*%$vBD--HvK4S<_|Joed zx14|J;A`M$`sD%pB|jgmMZKumt$$M4Ec9I2UF*?IPajgIwVtcG9lGrO22+Q}3DXi8 zgT)E+)!h#chv$8F7~@Cs8_?SNY#+-pk5B16E~?E9Z$hQYzKQBTkRNNGChf1)gz;-# zw=h;dQ_8=ckT>7!GEv$ePuQF9busVpo+9PB&QMe4J>F9_yo4vrd%Vw+_FSi=DeYdD zQpIAG1^Zk{{~A|au#ahGPdFtFr%U@Y3B&1fewi%$tmBP;v7DfNv9wQ>;}y_K z#k_Mp9@=lhlLIuL&NEMOokkc`DavnA3@G^?6W?dzjq|;fKV-6h!Nea0PycWoI`2vO zwaNaBiGSb3o9{unfMB|!`+4AL#5CZZXU^#>Mf+miem(Tu^Sr@i&pl2`QQm9fzhL6G zfu~VD@>C9HXm*?Ie_-N|nD`%?_+uu1$i(wZW~Jyq&J`&|J~NTGwe*_~o+7W}CkMBO zE;QL+Vd8mD3g!PDPY&`k?@3XL_?(MVioEe0Tk>2Zs}%X~n|QV6m1jKXpk#Z&WdAc0 z{|giUiiy|9L%sfX?6z%d^#$r{!%fW%BGeR)l(#fh2EyT{mOH8gk(&Z7;hLsK;cW|5 zMf^3*4V9Qpu5NElY$nw=9#?tm>pB}+!_C3!n)ap^?D=h~tM>WZLJch)tyQ@A!#c#N zHaPn$8$$Jw1fYNHhSZwBOW4#D`V)Hpn4QqDXsPN9GT1m*nsHhtPM6+wzXDy+nehH;gEF) zu4Ts&9BF833nY=a!&}8?Jv^`URmRAqd##O0JFwNsc&`e#`h+jg7OZJ$>Af1 zaD*d)kjV&n#1rsFT3Z5P;jIb>e3i}EgxuKL+0=&EX^&I|>uZr8ymbvVp|HReJFRv8 zhR#5H*xT4q-z@4{+NztvzDPTF6vHCnyD>Z1{e`W_2W`RDj+Th8v9qD6(jTs`7U4)s zV`Zq56k%ZkRhfK;q%cIh)+XQ`Dsl{OroI;zlVhCE^b?zdaqpefU z03+q+>f_zH+B^u&{glho_r}iC$GgElK=X_By{q7Vp!4aZaF6v0?~VbK$iRDUQkS-G zAp`EPp2~n_nQqQ{DPy5NPLE2iQ8)hvsls2R-66w0trCB!j)Og#tc$sq6GQIOeK;xi zfJ)rukVj!g|H!?ns4QJ5KX?a@#DRYyBKLSo9N@|I9iV=i7wUJve@45jCIdn;{D`#g z(jIiLP9G=5BFcXzMIc%4@s9g{)#+P0mGcC6uay3R{Y^Tp)oB;$<=6vDx(a)JN#XxT zbo*(q9Q?O+D*XliM>_u!X{iwZrt?SwF}nm0dHf(sMTSSu59=^O zNFJ2qzoehjX%#8rTe^eyWIU|FxHHYy>vt0&{L|>)OOXDg8xXIgaHNqG{_h|yfxk)1 z^gY8@3Gt8QkWCH+|QEtYCUTeE4Y zLy{9Jmg*yEWvNJ#R+ci~U}Y}7lU9~8JZWVqij!8Bk}+vzDfZNbI_3h)dZCV4Li`0L zl2DAvwn!={6~9%ZLefe#7r#jE#2kWIj&@Wiw&eVYLvmI;CC4(0dZWAe#1hJ>>u5Fs zPl?X&MIn?9{VY6`;X@vu<Q4@c2X$O5yonVs!U@@S74+8Xj4Gi$-_*;qG*p(cLsW z%3aR;81eocJmr*9?sme!i1(r)95h#W^p6oQ9Sqy?N-?ZdJMb9sV!#W+jQ-2Sqwo$u zZ^Yw%$hTppl*0QV42*cim{(PJn5s?S{S0~|UL1Jq6__qZ_9u9ZczwWA@i$qQquZzO z81YJwaoEmRO2yxAU|__10(i_r4DS>?D!hy!FFq9;))+r8-`r4iG^kpomW>%0Wb)13{|3j~$R>dtNE! zF6%a9I8MXew;@D#8Q;p?X5C%J8P)w6sDb7Zo1U&?t8tk;eL2DWzRjSh#ZBbi^Yii)>U~{C-*XD0*4b|6F0)t7O zfdoc&5?u3(;!3XR{dj9MEDn6)n()(954sRHO7Z)pGS`EjM_y(6vJ9mRAL>;-=!Tw( zb=%car~NRC^C`!J(d~R17HHq%wc!J77^E zZL}XHx2$l*@;~Q0Ur|)>k@xdq8v<40JD-mo$Q=Do#oaTLJ>8yN9x)H|l@lfpaX-PX zH2W`pgi-PQ!IRi2C&%6~YuR_GZ0!X{wRzUda6`?e+@E4CBW+VKc8!^>ONOw+&nf4L zQ!qcE>CR#-JPUW$*e0hRxp)5WhPTdFHgJD6SCe+*=9|Ou{E&9eEO$_J>$?ZF{S&r) z=W)mBb}=R25!>dHs9zL$+R3wYUF4q`)Mg|2?)Cb+kK!68?!K_)|K>PX_vU+oxG#w3 zmSdhk&St>(UG{xSUgQrNP;N}1WJ#2gwa)-0OQP5kdpC&S*r#Mge*fU*o;C7BT+Ls5 zbwtV)d2Y}#cViqr`>{UEig)FTxj{LPGVyAc$39w;CGv9OwmGi-&XG0Fxl!BJdGW4U zwxZqv-&!$h7pDhr7q`y7cR+i`g%!0QKykkEoBbDgzUcWX&NipZ-SKS&GY@sgzh2<< zOg&)3s_E%&uARQny&h|6zm9dIKRuQCy@~%o*@>grzdu*qVdC((F)M#Tw(azP+H4Ci zifzMOwl+K39sdUAYmN_gpk-ZrQ0LVWfvgTvSj{QFXP&AA#v`GZ@WG_2J{Mi2TO+ri#)#?{&FJj95}ICi^Wx* zn}&DhZ5qygOpI1cx~Kn)r`97z>zy^8E8_N5nW2Z)ZhU7dZnv?G+HGeCH@V#~of-~F z(;LI~QCw&oLcH*pT#s^kSbcm63M|nKmb$jqf z@+9Y?llL7+8~tF_oIif;jN6kUS1XB;=gxC>XRW~MrTeB2X)&3OlaABfj-5y2&Zoat z`uS0jw%BtUVm@Wmo-*a6Dp|UpELoBhoAbvl@8cZp$7%^`%lK80C6tZouVIKlUq>i67?D%#+8WZ|N>2?k_024`C>Z zmh5vqQlrnymK-XS>FQ-n$vN#RmshUi*M8-GW|?$E%+T9^G8&)jCb?1$^gwUS-PNm2%08b;fpLwqEN}az+^4Vg& z&c7}B9C548&yf5yQLFPDTjaUGcY;@n_-c-=7JAMZagL25Y*Xgo6iCjoCHYx`b8O_< z2F+m)7Hj5fTHC!H0UW^^YG}r`zZP|pSVLW~wW%{yUl|T`_*>eVmAN-k+1ZG5P(w{M zwN=%19m*VQ?>k!Cn*+g6Rb8#OzBBBvR#vr5&EBezud=1Op{^|w4k&ZW3ixv`%|G`R zMtye1a({hom9L|wzOg#e8ES26_cmK+t1N5C0mZooa|{V{)ZnC6e_aG;#QJI~an@^f zhb1ONd!Q}U;cKp}s%?!l)KoWG4|lapGnpe=n4{4;_mYov3#`kP{WkDO zagl+l<|u9WPBq0G9KWrOczkMQ4TmafuB83_b1$u{>7LKv~uso$LnXC^Q-#YlEc~N z3~ZG!XFjXMhkfixSIqg%O)e?3j*9z_ zjCl3HD~37oSYIi;#U{Km%nhI_NhpPPu?g=XLwH&KD?E=0uL5{XH>DIF=b?@M+Yh{a z2+@D%<575A2ZjGce&*fn_289Kczv@ zRZjx%J`>&*AA;9o!gFE*iS9DIjBn+?0TW&s@aTV~l>gZFH2N>gfX8--!uuB;&#eP& z2Hw>Q3>4P#ISLK3IzMBnz6UwhyGl`xiqtN3+Rrh_^}!$yteVqdex=`lmrxNH#1sfj zmDW7=ISt|9+`3XqyR2|!(VsK+S-7HDA1gig97nd60TN@MJj=!QQI+zjk;2oQ+bl^& zr_uH!=@G3|F8;j9AE1e@9h>gZEu_(Z^V2Cl_+U)N{%>T*wc>=XxXa#k7xK~<$CdaW zHM~lmj`u(6#Q!^R{i972A0Re!i^@LB{QtugTr4!^ugo>}ZvqNd%5iSkthDcfU!o&@ za*5gYFVEw1P@v;}8MI7DC`n0maVd~|)x^@mD1A;giKOZ9G7-$ie=%NzmR|gja3;Jj zJ;B&uh{lf-%8vD#6h#PNiih?e{;F;-h0H(FRfD6_6@w7*b+1WNGnV01&ED{?u9Xm0 z^!5L&UtrAlfj3B=JDIK#M>)jMnCNPgtYWo@(v=ThrWxzU^ zDhQw{Xf-X+Se;KxoVUm`d#4CArZBK%8M|o-)HYT%hZ|b!aMEF0bx1^NTbet(ouQyF zP*sOBu|!K{XI(?6sTRv)>svdT186LSI~yWiA84dSqd}#M1Ue#Osoxv%ilx4A7(KZr zGD|J)DhmsG!out^WnuB)U!Y4U{#x_jOOR&F2Q1yGmg6a*Mpvp0xE8!oE&`tEs+5xZ z91M(dJin0nLn$TKZj##%i}B>Tbvf0hoQ5{Zcx}p^kTbR^KL@#w(x%)7Il6%^A9JW| z%Z}HkoP{>Zde|$af@E$}`XTqQ5&~6nzJ@k;vHOme`lXdio0hqf=L3Gox|yOCMOZyU zb?!Fh(`*16=F?~39=XtC&Ik4%7&v?IuEL`acs8C{-qv$b@4z!>54PIgPkry1(LLCG zx<-8O?DDop2euDjm-SFjX1w^ItNw_^E&^j-b<1 zbl~n_-hnm2sRt%{9zK*K-_&MBCy&9@UC=S}J;jIV{`%SW_eF_wgZ73nx zJEIGGeMRf>$4JY5j ztk~k0W3##jhv^N@d49Pc=M2o9^c|7!#|^UR>gHF(ei2Xa;-10VV>>-{L9zJem{|C? zu|12NC+xke$_~JvH@_J712bcUGs3#7xwcdouX*E4D8$_&~1b)t6s`o8mtE&Koi3d9|F+y{TY?;VH_s_?&jAyetWmjf;_q~fAhj|02wy=_SX5;vGS9o{IrB2N9B^rfl)Q%dOra^Au7eDNPE`BnzHWM zR5qjz+(0oFZ<-v(A||Wk9MohNgOab8eCn9B*sR~K!lM-Vay*o0obik>ug-6ke1>QN zRf_U=QJDy!5419Y1{rL>@BJcwEM7ct)a1wJGwa0 zXKB^dR5yhJ^_?w^zSi1?w)TkiATUd_&T?R?oEf}fl6v6hI za8q@?zYeE$*ZNv;-(+)jdtD2z7Y(%5*M`Dv4D+RUIEPlIQ;w^XXIj`XfEpylTp7pO zXwG~>dbv)ScH}ESDaU+k$H3vwXpRi=xK24vOP=}EjyWvi*f9q7XSJu>CysT4hgm|u#>|q4>{%?eq~s^=2K=@A z0B8zJwH&`JXO(j5n$@8EhLzl2=#?EslzubxM!EgqSq>?s&X-iXJ20&$orrSKkxff29RfR_b3$`SuXJVv}f0gqu;O5r^R10!AuUY-s!`j0h` z!h0QhzFvrjY8ou)o>G*fy#qg_DxO`iV0o<+<)}WuV|4cxLpazUq8!69!-Q83i}B`r z3Lr;$^xvf79ZOv_(3Ns`osOscM7i<$g5{7i_5~k@+)@Pw3TvrI5w!{RCgiw3hjEA+ jNQNUDlwnnVgI1hD1f8NrR|?PE7py=SDwHK;mG=JvbTZAo literal 80120 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�IPm%ST zH*x(B^3Qz!`BHg}>|98x&C8ekMLeunX2K^%Q`3X_Yh^3vN%Aa?q+ONPLR5WHP?D3m zgdGy@>R_)q@?=PG7rc%bd^s{Z>($( z5?X8I%k}47Ldptx$`9pOl~?t|=bO6psQT@)Hm^%UU%p&%o*iJ!?QVYg<#((Y8>Gp) z%Yrd#-5)=NDCX>JQ}xm;Vd7!VJvP~pzyE?&^f~K(wLiT%iPjf`%zPBnB#%n<_>vDu zgNQ2HwT*{LqcAcuX18V|4O&ay?~wE*zC6WYQ~Au9+xC8k&U8{SSLZ2%t95t0-=UAq zZT0$WJpP^zePWDkY!f|XP>ie_toCsUeKVEkPZH~w;o>?I8)O(4BV*1>RNF)1Wz@#S zi@8QQ1YH=5R2IxdsxHczG)lU|)TX7IA;-u^&#QT0&aG{luc?jM&YxGy?{@bo_(=KI zE)6pr(51Zx-$%+6drzM<6tumk=Og8^P2*j*eWdj6lI#she;4Hkb*_s#XRo-I^wU^f zHmx$>R=%l)@_JI4;ytNU7yajwkjE)Yfs@LrZ6}qwmXpeA|C>rxHOa(?QKJ*%O7B<4 z0~_gW(*@b^xovuUKGepX54O!ISmB*B<*<_6a#%^(c383b2k;t)SrMwOUQseLU#*)T z-FJSWV`;Yc-#slQj-MP-Qe3~fQonlNg+!M4zWO;_{?(NoD?U@0O|KY+KXpOR4k52! z`c5h-?T3_aJ!=s%e_`6fL&|p7No8Z^A!UdCkn(`5URiH@Q<lMpIqti^_~m%$yr(T~@A!LyeJ1Sr z_K9)7eD}(@=Kqk~*C#cN&py;KzF|r21oWeOcijI{euw9!e3$p7{AF;v;5y)3B`@W_ zG<8=AbG($leExDzWl2X#*8Df-znE|8xLa@Pn8TzrslBHnjnu=f#p?ci!SjU!e9srW zkiUGv3k7d1VCh)hX0WuvkYqlr_^r?7f1!-o{Do5VLiQtvl_R#p%5k_>xO(e4}fGq%I80dK7I-^pTV`morAjocM0w?()!ka zSTPqLRxEHn9-cp}cqZEA!^#xbVI}1LK=I%IfwFz>2g(k(op3F1Z^G@KOXJS{ zwbbiHWu41Ya9CMCagL|BVBS=e!ZjE4_U8|O^@!u)g8LA%!;W%nTBnrOtWzF`Ye8E6 ziTaLo9csx)RdTv_I!a&5oTKIw? z+NMmIAPr}&WA=}jI--Et-&HoI>b_ZDf_f|rpofgvPxaVUw><3Jc?W9uaphC{uawhv zmSP4z7m=sj4`4uCVM;;n%NM!CN)-otDKp7@eh z&v4HMPl4C!>E->%`xDPG&jxRiXNI>|NwX*3d(0c~&M4_s;P>=j#cckPi@SOj{6emm z0~cbLzQbaAoMWaT@prG%YQ#UYeZNy!X5#Uk6v992A+-^%Vn5|UeHsAPw}wnJc!o^N zgR6r(1ZVILnKq;#51-EbLtd6PWLk}PVo7buyCsGa)-h72@32`UyVTxGk^1WtY2f_H zSK9^_U=5g-S}D%lrcBSQ zRvySSEZC;_;9H$}P^pHiJ9rSQVc%Uz`5V({ys3DHX8%y6O<@a_ zu&b?*I}na<;Btn7hkVrAEAHi7Qh>+$*7g<&cJRhDX$NVKgY4Q}aa`8Yn!eC1Y;(5D zG|e<6wjOdXkz9I;jZ6ejdn72%bt=}_dzj2y0h&ddUWqfWMREd!!9)7;@&1Vm% z;sk*?-thd@lkNSh_l=U}un7KI@`iVLN%s6-7xdiRZxwS`eX3UmRqwizx~8Zr}S46#Xte~#_F`D$Y3=Bqu5)(kfv zc+Bxoo^($@DRpJ48 z_>bl%KS<>;`uS(q{%b|P4f|jUV@`J{udZK6N;EWCS~vL~@R_;wZD_K~evi7VFfc zCNAy2%mMNlgcTp_S9dt~CUka|=UTW%l*CwW?KXl;ayH zt{ry1nftU|1cgF&qPjcc)^MGg_a1%=mvo_L#)>#9=eu#{h&b{71THxgapJxwPTN{l zo5deg9?nb(u;DCZt^Gn-1^SdLDex&~Hfeb5mFgKRwEFRcKtd4v4XhPXXwTzk_)0RY zm8EUKD$tBo;22hc4Oj)Fw8VmA*llc3>g~Fwo<6ZE3?yrVIW|CZV!JjDXpSa-@|86c zu=b9jwUXv?{j)t9So$T;CGQCD&XP0AZr3qopX-eBCU7_J-N%$Sr4c2IyqCZ|gwP}4 z9(48ckMSP^9p5nK)fnDt$CQK8qLQ875%bR|t&lqjx#OrGEcch4q!{&qc1oW^WBp}1SDI3Z+%rO`8Y z>e{V2|CT$mwf<_4%r|nCHfu1Tw4g6bq5n}`uUJ~@uO<}j?O=%$Lt|<%V&YHpnskTS z>wbkj-NuaKl-n>Gmxd(0l=XZ*?M{D#(720h^%G@}FOl~<^^_qo_?|K?v9UnkVP?Iq zO2c2yHMTb79%xnlSKHK9n;05cb6Uw8I2C&1RlTlQXro*nMfiJ)p?XK#dcLMg!BZYJ zKT_!Rx;hbt^*>$`eLxB|)af&xY&(mc+s~&J@ln>h(J1%gJ**EOJ*)Vsgto)g2lX9J z(<#rt%KDBR^PTb_`D3)+QS_*f(Sk=618^VEoT+NN7pd)@Z0xWY|J-&GZA(3z#YRnob~DHp4|>^qI}No60xEjc9LouiI#EkC1tnomYbEt8M8>7P5J>?pqM zqw_6_txu(SG`m8hnNtd7S4-%zU%1e((Qg_g?VJjyGC0qsSS=mQoQz&0nU|HXQ*_np zXg83qbf>(l{4!t5j6@F_wQM(fKpghOXO!(dPnCC%uWzbFd^SP~U8YV7BiJOVC{|91wDqKwHau2K2qb`$+p^pu{dojV+M>% z^>Mq;!19-d8(JmDG59tp7hHy*GZ4gn+Sq7n7`$nSpHhFdCa7Gs)2cP3RxiirVfJV; zHl9%~OTFYxx$F5jGc;{UE(}!`*MvS_M|E*z#1NbzIS(8e!bY%=V=eYoQ)cd@^~K&^ ze>IVjOs$NO#C@!TO?2}%P|v{BK5<3~^&~m-uEn`!%jv9r&tyY~)lmKQ-)b>7i`X5X zp6=68ok;rL?_kE>2Nu7+hMyqaOtW^9CHk8T?V@M?M_cQ8hnyzcWlMd}dSiW3y|q4} zzE}M=Iica0(!i|v+`^LZxs4g|xs#nyl07})Yhjp^GA#|gg2$BY)tJXX@3vxov+d5u z+?9C@I{|fFk%DZ9QT|9VCpw-(L4#h*bZy# zw8`h%98KxLL0d7eXEL<)Dcdony}}Vl4-5)~)45u+p-`mqqu(Qy--}e#HW`Xkp1Inm z*3oS4xG@GNA6=<9nf1HA2r6xw-??J{P0 z=JQb*^za|g+~HF>`e*g>4j<-o#60OHzHQGA-y?iJ+TrN|JB#iVK5$O>W>d3?TN9|0 zVu|~hbIs)^o0;R`sfPMNmQV&F~do`{%38vZein$wxbwKKa1oN)La0hc!O=zy_s9=Bdej zTZ2~zz-nWO=F|P43sP~t4-{T|@>*eNP23s9YE^shSUGH`oocg=dWWA&+1xab&_3

6` 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 EKY{?(V*mgE From dab78c050f87338a5792889b27588c1643b2fea8 Mon Sep 17 00:00:00 2001 From: Pete Lewis <601236+lewispg228@users.noreply.github.com> Date: Fri, 6 Dec 2024 11:27:04 -0700 Subject: [PATCH 21/38] Board check to set Wire vs Wire1 -added a macro to check for the Thing Plus RP2040, which has it's qwiic connector on Wire1. Most other SparkFun Dev boards have their qwiic connector on Wire. -removed unnecessary duplicate directory on example 7 --- .../Example_01_BasicReadings.ino | 15 ++++++++++++--- .../Example_02_DutyCycle.ino | 15 ++++++++++++--- .../Example_03_Interrupt.ino | 15 ++++++++++++--- .../Example_05_Parameters.ino | 15 ++++++++++++--- .../Example_06_TwoSensors.ino | 17 +++++++++++++---- .../Example_07_Demo_Display.ino | 18 ++++++++++++++---- 6 files changed, 75 insertions(+), 20 deletions(-) rename examples/Example_07_Demo_Display/{Example_07_Demo_Display => }/Example_07_Demo_Display.ino (83%) diff --git a/examples/Example_01_BasicReadings/Example_01_BasicReadings.ino b/examples/Example_01_BasicReadings/Example_01_BasicReadings.ino index f4d8a8e..3bd2cba 100644 --- a/examples/Example_01_BasicReadings/Example_01_BasicReadings.ino +++ b/examples/Example_01_BasicReadings/Example_01_BasicReadings.ino @@ -30,6 +30,15 @@ SparkFunBMV080I2C bmv080; // Create an instance of the BMV080 class #define BMV080_ADDR 0x57 // SparkFun BMV080 Breakout defaults to 0x57 +// Some Dev boards have their QWIIC connector on Wire or Wire1 +// This #ifdef will help this sketch work across more products + +#ifdef ARDUINO_SPARKFUN_THINGPLUS_RP2040 +#define wirePort Wire1 +#else +#define wirePort Wire +#endif + void setup() { Serial.begin(115200); @@ -43,9 +52,9 @@ void setup() Serial.println(); Serial.println("BMV080 Example 1 - Basic Readings"); - Wire.begin(); + wirePort.begin(); - if (bmv080.begin(BMV080_ADDR, Wire) == false) + if (bmv080.begin(BMV080_ADDR, wirePort) == false) { Serial.println( "BMV080 not detected at default I2C address. Check your jumpers and the hookup guide. Freezing..."); @@ -54,7 +63,7 @@ void setup() } Serial.println("BMV080 found!"); - // Wire.setClock(400000); //Increase I2C data rate to 400kHz + // wirePort.setClock(400000); //Increase I2C data rate to 400kHz /* Initialize the Sensor (read driver, open, reset, id etc.)*/ bmv080.init(); diff --git a/examples/Example_02_DutyCycle/Example_02_DutyCycle.ino b/examples/Example_02_DutyCycle/Example_02_DutyCycle.ino index 502a955..723c681 100644 --- a/examples/Example_02_DutyCycle/Example_02_DutyCycle.ino +++ b/examples/Example_02_DutyCycle/Example_02_DutyCycle.ino @@ -30,6 +30,15 @@ SparkFunBMV080I2C bmv080; // Create an instance of the BMV080 class #define BMV080_ADDR 0x57 // SparkFun BMV080 Breakout defaults to 0x57 +// Some Dev boards have their QWIIC connector on Wire or Wire1 +// This #ifdef will help this sketch work across more products + +#ifdef ARDUINO_SPARKFUN_THINGPLUS_RP2040 +#define wirePort Wire1 +#else +#define wirePort Wire +#endif + void setup() { Serial.begin(115200); @@ -42,16 +51,16 @@ void setup() Serial.println(); Serial.println("BMV080 Example 2 - Duty Cycle"); - Wire.begin(); + wirePort.begin(); - if (bmv080.begin(BMV080_ADDR, Wire) == false) { + if (bmv080.begin(BMV080_ADDR, wirePort) == false) { Serial.println("BMV080 not detected at default I2C address. Check your jumpers and the hookup guide. Freezing..."); while (1) ; } Serial.println("BMV080 found!"); - // Wire.setClock(400000); //Increase I2C data rate to 400kHz + // wirePort.setClock(400000); //Increase I2C data rate to 400kHz /* Initialize the Sensor (read driver, open, reset, id etc.)*/ bmv080.init(); diff --git a/examples/Example_03_Interrupt/Example_03_Interrupt.ino b/examples/Example_03_Interrupt/Example_03_Interrupt.ino index 99ace62..8a0168e 100644 --- a/examples/Example_03_Interrupt/Example_03_Interrupt.ino +++ b/examples/Example_03_Interrupt/Example_03_Interrupt.ino @@ -37,6 +37,15 @@ SparkFunBMV080I2C bmv080; // Create an instance of the BMV080 class bool int_flag = false; +// Some Dev boards have their QWIIC connector on Wire or Wire1 +// This #ifdef will help this sketch work across more products + +#ifdef ARDUINO_SPARKFUN_THINGPLUS_RP2040 +#define wirePort Wire1 +#else +#define wirePort Wire +#endif + void setup() { Serial.begin(115200); @@ -49,16 +58,16 @@ void setup() Serial.println(); Serial.println("BMV080 Example 3 - Interrupt"); - Wire.begin(); + wirePort.begin(); - if (bmv080.begin(BMV080_ADDR, Wire) == false) { + if (bmv080.begin(BMV080_ADDR, wirePort) == false) { Serial.println("BMV080 not detected at default I2C address. Check your jumpers and the hookup guide. Freezing..."); while (1) ; } Serial.println("BMV080 found!"); - // Wire.setClock(400000); //Increase I2C data rate to 400kHz + // wirePort.setClock(400000); //Increase I2C data rate to 400kHz /* Initialize the Sensor (read driver, open, reset, id etc.)*/ bmv080.init(); diff --git a/examples/Example_05_Parameters/Example_05_Parameters.ino b/examples/Example_05_Parameters/Example_05_Parameters.ino index 5adfd46..f75680b 100644 --- a/examples/Example_05_Parameters/Example_05_Parameters.ino +++ b/examples/Example_05_Parameters/Example_05_Parameters.ino @@ -41,6 +41,15 @@ SparkFunBMV080I2C bmv080; // Create an instance of the BMV080 class #define BMV080_ADDR 0x57 // SparkFun BMV080 Breakout defaults to 0x57 +// Some Dev boards have their QWIIC connector on Wire or Wire1 +// This #ifdef will help this sketch work across more products + +#ifdef ARDUINO_SPARKFUN_THINGPLUS_RP2040 +#define wirePort Wire1 +#else +#define wirePort Wire +#endif + void setup() { Serial.begin(115200); @@ -53,16 +62,16 @@ void setup() Serial.println(); Serial.println("BMV080 Example 5 - Get and Set Parameters"); - Wire.begin(); + wirePort.begin(); - if (bmv080.begin(BMV080_ADDR, Wire) == false) { + if (bmv080.begin(BMV080_ADDR, wirePort) == false) { Serial.println("BMV080 not detected at default I2C address. Check your jumpers and the hookup guide. Freezing..."); while (1) ; } Serial.println("BMV080 found!"); - // Wire.setClock(400000); //Increase I2C data rate to 400kHz + // wirePort.setClock(400000); //Increase I2C data rate to 400kHz /* Initialize the Sensor (read driver, open, reset, id etc.)*/ bmv080.init(); diff --git a/examples/Example_06_TwoSensors/Example_06_TwoSensors.ino b/examples/Example_06_TwoSensors/Example_06_TwoSensors.ino index 800b3d3..9237465 100644 --- a/examples/Example_06_TwoSensors/Example_06_TwoSensors.ino +++ b/examples/Example_06_TwoSensors/Example_06_TwoSensors.ino @@ -48,6 +48,15 @@ float pm25_2 = 0.0; // Variable to store PM2.5 value bool isObstructed = false; // Flag to indicate sensor is obstructed bool isObstructed2 = false; // Flag to indicate sensor is obstructed +// Some Dev boards have their QWIIC connector on Wire or Wire1 +// This #ifdef will help this sketch work across more products + +#ifdef ARDUINO_SPARKFUN_THINGPLUS_RP2040 +#define wirePort Wire1 +#else +#define wirePort Wire +#endif + void setup() { Serial.begin(115200); @@ -61,9 +70,9 @@ void setup() Serial.println(); Serial.println("BMV080 Example 1 - Basic Readings"); - Wire.begin(); + wirePort.begin(); - if (bmv080.begin(BMV080_ADDR, Wire) == false) + if (bmv080.begin(BMV080_ADDR, wirePort) == false) { Serial.println( "BMV080 not detected at default I2C address. Check your jumpers and the hookup guide. Freezing..."); @@ -72,7 +81,7 @@ void setup() } Serial.println("BMV080 at 0x57 found!"); - if (bmv080_2.begin(BMV080_ADDR2, Wire) == false) + if (bmv080_2.begin(BMV080_ADDR2, wirePort) == false) { Serial.println( "BMV080 not detected at 0x56 I2C address. Check your jumpers and the hookup guide. Freezing..."); @@ -81,7 +90,7 @@ void setup() } Serial.println("BMV080 at 0x56 found!"); - // Wire.setClock(400000); //Increase I2C data rate to 400kHz + // wirePort.setClock(400000); //Increase I2C data rate to 400kHz /* Initialize the Sensor (read driver, open, reset, id etc.)*/ bmv080.init(); diff --git a/examples/Example_07_Demo_Display/Example_07_Demo_Display/Example_07_Demo_Display.ino b/examples/Example_07_Demo_Display/Example_07_Demo_Display.ino similarity index 83% rename from examples/Example_07_Demo_Display/Example_07_Demo_Display/Example_07_Demo_Display.ino rename to examples/Example_07_Demo_Display/Example_07_Demo_Display.ino index 6618ebc..9dd56fc 100644 --- a/examples/Example_07_Demo_Display/Example_07_Demo_Display/Example_07_Demo_Display.ino +++ b/examples/Example_07_Demo_Display/Example_07_Demo_Display.ino @@ -33,8 +33,18 @@ SparkFunBMV080I2C bmv080; // Create an instance of the BMV080 class #define BMV080_ADDR 0x57 // SparkFun BMV080 Breakout defaults to 0x57 +// Some Dev boards have their QWIIC connector on Wire or Wire1 +// This #ifdef will help this sketch work across more products + +#ifdef ARDUINO_SPARKFUN_THINGPLUS_RP2040 +#define wirePort Wire1 +#else +#define wirePort Wire +#endif + #include //Click here to get the library: http://librarymanager/All#SparkFun_Qwiic_Alphanumeric_Display by SparkFun HT16K33 display; +#define DISPLAY_ADDRESS 0x70 // Default I2C address when A0, A1 are floating void setup() { @@ -49,9 +59,9 @@ void setup() Serial.println(); Serial.println("BMV080 Example 1 - Basic Readings"); - Wire.begin(); + wirePort.begin(); - if (bmv080.begin(BMV080_ADDR, Wire) == false) + if (bmv080.begin(BMV080_ADDR, wirePort) == false) { Serial.println( "BMV080 not detected at default I2C address. Check your jumpers and the hookup guide. Freezing..."); @@ -60,7 +70,7 @@ void setup() } Serial.println("BMV080 found!"); - // Wire.setClock(400000); //Increase I2C data rate to 400kHz + // wirePort.setClock(400000); //Increase I2C data rate to 400kHz /* Initialize the Sensor (read driver, open, reset, id etc.)*/ bmv080.init(); @@ -75,7 +85,7 @@ void setup() Serial.println("Error setting BMV080 mode"); } - if (display.begin() == false) + if (display.begin(DISPLAY_ADDRESS, DEFAULT_NOTHING_ATTACHED, DEFAULT_NOTHING_ATTACHED, DEFAULT_NOTHING_ATTACHED, wirePort) == false) { Serial.println("Qwiic Alphanumeric Device did not acknowledge! Freezing."); while (1); From fa8820fbab3fd7bc5b4c7a5c214724423b997780 Mon Sep 17 00:00:00 2001 From: Pete Lewis <601236+lewispg228@users.noreply.github.com> Date: Thu, 12 Dec 2024 16:18:22 -0700 Subject: [PATCH 22/38] moved include of library above macro define of wire1 -this was throwing compile error because it was changing wirePort texts in the header file. --- .../Example_07_Demo_Display/Example_07_Demo_Display.ino | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/examples/Example_07_Demo_Display/Example_07_Demo_Display.ino b/examples/Example_07_Demo_Display/Example_07_Demo_Display.ino index 9dd56fc..bea42fb 100644 --- a/examples/Example_07_Demo_Display/Example_07_Demo_Display.ino +++ b/examples/Example_07_Demo_Display/Example_07_Demo_Display.ino @@ -33,6 +33,10 @@ SparkFunBMV080I2C bmv080; // Create an instance of the BMV080 class #define BMV080_ADDR 0x57 // SparkFun BMV080 Breakout defaults to 0x57 +#include //Click here to get the library: http://librarymanager/All#SparkFun_Qwiic_Alphanumeric_Display by SparkFun +HT16K33 display; +#define DISPLAY_ADDRESS 0x70 // Default I2C address when A0, A1 are floating + // Some Dev boards have their QWIIC connector on Wire or Wire1 // This #ifdef will help this sketch work across more products @@ -42,10 +46,6 @@ SparkFunBMV080I2C bmv080; // Create an instance of the BMV080 class #define wirePort Wire #endif -#include //Click here to get the library: http://librarymanager/All#SparkFun_Qwiic_Alphanumeric_Display by SparkFun -HT16K33 display; -#define DISPLAY_ADDRESS 0x70 // Default I2C address when A0, A1 are floating - void setup() { Serial.begin(115200); From 5ff7f7bceca1ef036058f80e958206a248736097 Mon Sep 17 00:00:00 2001 From: Pete Lewis <601236+lewispg228@users.noreply.github.com> Date: Mon, 16 Dec 2024 13:49:33 -0700 Subject: [PATCH 23/38] renaming example 7 to include "alphanumeric" --- .../Example_07_Demo_Alphanumeric.ino} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename examples/{Example_07_Demo_Display/Example_07_Demo_Display.ino => Example_07_Demo_Alphanumeric/Example_07_Demo_Alphanumeric.ino} (100%) diff --git a/examples/Example_07_Demo_Display/Example_07_Demo_Display.ino b/examples/Example_07_Demo_Alphanumeric/Example_07_Demo_Alphanumeric.ino similarity index 100% rename from examples/Example_07_Demo_Display/Example_07_Demo_Display.ino rename to examples/Example_07_Demo_Alphanumeric/Example_07_Demo_Alphanumeric.ino From 890529baaad8df3b92e4823569eed326d91de457 Mon Sep 17 00:00:00 2001 From: Pete Lewis <601236+lewispg228@users.noreply.github.com> Date: Mon, 16 Dec 2024 16:31:46 -0700 Subject: [PATCH 24/38] example 8 demo OLED --- .../Example_07_Demo_Alphanumeric.ino | 2 +- .../Example_08_Demo_Oled.ino | 313 ++++++++++++++++++ 2 files changed, 314 insertions(+), 1 deletion(-) create mode 100644 examples/Example_08_Demo_Oled/Example_08_Demo_Oled.ino diff --git a/examples/Example_07_Demo_Alphanumeric/Example_07_Demo_Alphanumeric.ino b/examples/Example_07_Demo_Alphanumeric/Example_07_Demo_Alphanumeric.ino index bea42fb..c882507 100644 --- a/examples/Example_07_Demo_Alphanumeric/Example_07_Demo_Alphanumeric.ino +++ b/examples/Example_07_Demo_Alphanumeric/Example_07_Demo_Alphanumeric.ino @@ -57,7 +57,7 @@ void setup() // Comment out this while loop, or it will prevent the remaining code from running. Serial.println(); - Serial.println("BMV080 Example 1 - Basic Readings"); + Serial.println("BMV080 Example 7 - Alphanumeric Display"); wirePort.begin(); diff --git a/examples/Example_08_Demo_Oled/Example_08_Demo_Oled.ino b/examples/Example_08_Demo_Oled/Example_08_Demo_Oled.ino new file mode 100644 index 0000000..6d8a629 --- /dev/null +++ b/examples/Example_08_Demo_Oled/Example_08_Demo_Oled.ino @@ -0,0 +1,313 @@ +/* + Using the BMV080 Particulate Matter PM2.5 Sensor + + This example shows how display the PM1 and Pm2.5 readings on a SparkFun Qwiic + OLED Display, 1.3" wide. + + It uses the sensor in "continuous mode" to get + particulate matter readings once every second. + + It uses polling of the device to check if new data is available. + + By: Pete Lewis + SparkFun Electronics + Date: September, 2024 + SparkFun code, firmware, and software is released under the MIT License. + Please see LICENSE.md for further details. + + Hardware Connections: + IoT RedBoard --> QWIIC + QWIIC --> BMV080 + QWIIC --> QWIIC OLED Display + + BMV080 "mode" jumper set to I2C (default) + + Serial.print it out at 115200 baud to serial monitor. + + Feel like supporting our work? Buy a board from SparkFun! + https://www.sparkfun.com/products/26554 +*/ + +#define StatLedPin 13 + +// BMV080 Specifics +#include "SparkFun_BMV080_Arduino_Library.h" // CTRL+Click here to get the library: http://librarymanager/All#SparkFun_BMV080 +#include + +SparkFunBMV080I2C bmv080; // Create an instance of the BMV080 class +#define BMV080_ADDR 0x57 // SparkFun BMV080 Breakout defaults to 0x57 + +float pm1Value = 0.0; // PM1 value - global so we can update it in the loop and +float pm25Value = 0.0; // PM2.5 value - global so we can update it in the loop + +// OLED Specifics +#include //http://librarymanager/All#SparkFun_Qwiic_OLED + +// The Library supports four different types of SparkFun boards. The demo uses the following +// defines to determine which device is being used. Uncomment the device being used for this demo. + +//QwiicMicroOLED myOLED; +//QwiicTransparentOLED myOLED; +//QwiicNarrowOLED myOLED; +Qwiic1in3OLED myOLED; + +#include "res/qw_bmp_sparkfun.h" + +// Fonts +#include +#include +#include +#include +#include + +// An array of fonts to loop over +QwiicFont *demoFonts[] = { + &QW_FONT_5X7, + &QW_FONT_8X16, + &QW_FONT_31X48, + &QW_FONT_LARGENUM, + &QW_FONT_7SEGMENT}; +int nFONTS = sizeof(demoFonts) / sizeof(demoFonts[0]); +int iFont = 0; + +// Some vars for the title. +String strTitle = "<>"; +QwiicFont *pFntTitle = &QW_FONT_5X7; + +QwiicFont *pFntLabel = &QW_FONT_5X7; +QwiicFont *pFntValue = &QW_FONT_LARGENUM; + +int width; +int height; + +// x position of the PM2.5 label, this will be set in the +// writeStaticDisplayItems() function +int xPosPM25; + +// Some Dev boards have their QWIIC connector on Wire or Wire1 +// This #ifdef will help this sketch work across more products + +#ifdef ARDUINO_SPARKFUN_THINGPLUS_RP2040 +#define wirePort Wire1 +#else +#define wirePort Wire +#endif + +void setup() +{ + pinMode(StatLedPin, OUTPUT); + digitalWrite(StatLedPin, LOW); + + Serial.begin(115200); + + while (!Serial) + delay(10); // Wait for Serial to become available. + // Necessary for boards with native USB (like the SAMD51 Thing+). + // For a final version of a project that does not need serial debug (or a USB cable plugged in), + // Comment out this while loop, or it will prevent the remaining code from running. + + Serial.println(); + Serial.println("BMV080 Example 8 - OLED Display"); + + wirePort.begin(); + + // Initalize the OLED device and related graphics system + if (myOLED.begin(wirePort) == false) + { + Serial.println("OLED Device begin failed. Freezing..."); + writeCenteredStringToDisplay("OLED Failure"); + while (true) + ; + } + Serial.println("OLED Begin success"); + + // save device dims for the test routines + width = myOLED.getWidth(); + height = myOLED.getHeight(); + + showSplash(); + + myOLED.setFont(demoFonts[1]); + + if (bmv080.begin(BMV080_ADDR, wirePort) == false) + { + Serial.println( + "BMV080 not detected at default I2C address. Check your jumpers and the hookup guide. Freezing..."); + writeCenteredStringToDisplay("BMV080 Failure"); + while (1) + ; + } + Serial.println("BMV080 found!"); + writeCenteredStringToDisplay("BMV080 Found"); + + // wirePort.setClock(400000); //Increase I2C data rate to 400kHz + + /* Initialize the Sensor (read driver, open, reset, id etc.)*/ + bmv080.init(); + + /* Set the sensor mode to continuous mode */ + if (bmv080.setMode(SFE_BMV080_MODE_CONTINUOUS) == true) + { + Serial.println("BMV080 set to continuous mode"); + writeCenteredStringToDisplay("Continuous Mode Set"); + } + else + { + Serial.println("Error setting BMV080 mode"); + writeCenteredStringToDisplay("BMV080 Mode Error"); + } +} + +void loop() +{ + if (bmv080.dataAvailable()) + { + pm25Value = bmv080.getPM25(); + pm1Value = bmv080.getPM1(); + + if (bmv080.getIsObstructed() == true) + { + Serial.print("\tObstructed"); + writeCenteredStringToDisplay("Obstructed"); + } + else + { + Serial.print(pm1Value); + Serial.print("\t"); + Serial.print(pm25Value); + writeStaticDisplayItems(); + writeValuesToDisplay(); + myOLED.display(); // actually command the display to show the scene + } + + Serial.println(); + toggleHeartbeat(); + } + delay(100); +} + +void showSplash() +{ + int x0 = (width - QW_BMP_SPARKFUN.width) / 2; + if (x0 < 0) + x0 = 0; + + int y0 = (height - QW_BMP_SPARKFUN.height) / 2; + if (y0 < 0) + y0 = 0; + + myOLED.erase(); + myOLED.bitmap(x0, y0, QW_BMP_SPARKFUN); + myOLED.display(); + delay(2000); + + // Clear the screen + myOLED.erase(); + myOLED.display(); +} + +// Write the static display items to the screen +void writeStaticDisplayItems() +{ + // clear the screen + myOLED.erase(); + + myOLED.setFont(&QW_FONT_5X7); + + // draw the PM1 static text label + // calculate the x position of the PM1 label + // this is 1/4 the screen width minus 1/2 the width of the label + int xPosPM1Text = myOLED.getWidth() / 4 - myOLED.getStringWidth("PM1") / 2; + myOLED.text(xPosPM1Text, 0, "PM1", 1); + + // draw the PM2.5 static text label + // calculate the x position of the PM2.5 label + // this is 3/4 the screen width minus 1/2 the width of the label + int xPosPM25Text = (myOLED.getWidth() / 4) * 3 - myOLED.getStringWidth("PM2.5") / 2; + myOLED.text(xPosPM25Text, 0, "PM2.5", 1); + + // // draw the vertical separator line + // myOLED.line(myOLED.getWidth() / 2, 0, myOLED.getWidth() / 2, myOLED.getHeight(), 1); + // // draw a second line to make it more visible + // myOLED.line(myOLED.getWidth() / 2 + 1, 0, myOLED.getWidth() / 2 + 1, myOLED.getHeight(), 1); + +} + +// Write the PM1 and PM2.5 values to the display +void writeValuesToDisplay() +{ + // set the font to the large number font + myOLED.setFont(&QW_FONT_LARGENUM); + + // draw the PM1 value + String toPrint = "blank"; + toPrint = String(int(pm1Value)); + + // calculate the x position of the PM1 value + // we want it to be centered in the left half of the screen + int xPosPM1Value = (myOLED.getWidth() / 4) - (myOLED.getStringWidth(toPrint) / 2); + myOLED.text(xPosPM1Value, 10, toPrint, 1); + + // draw the PM2.5 value + // calculate the x position of the PM2.5 value + // we want it to be centered in the right half of the screen + int xPosPM25Value = (myOLED.getWidth() / 4) * 3 - (myOLED.getStringWidth(toPrint) / 2); + toPrint = String(int(pm25Value)); + myOLED.text(xPosPM25Value, 10, toPrint, 1); +} + +// Write a string to the display that is centered horizontally and vertically +void writeCenteredStringToDisplay(String toPrint) +{ + // clear the screen + myOLED.erase(); + + // set the font to the 8x16 font + myOLED.setFont(&QW_FONT_5X7); + + // calculate the x position of the toPrint text + // we want it to be centered in the screen horizontally + // and vertically + int xPosToPrint = (myOLED.getWidth() / 2) - (myOLED.getStringWidth(toPrint) / 2); + int yPosToPrint = (myOLED.getHeight() / 2) - (myOLED.getStringHeight(toPrint) / 2); + + // draw the string as text + myOLED.text(xPosToPrint, yPosToPrint, toPrint, 1); + myOLED.display(); +} + +// blink the status LED +void blinkStatLed() +{ + digitalWrite(StatLedPin, HIGH); + delay(10); + digitalWrite(StatLedPin, LOW); +} + +// toggle "heartbeat" rectangle in the upper right corner of the screen +void toggleHeartbeat() +{ + static bool bHeartbeat = false; + + // heartbeat rectangle is 3x3 pixels + uint8_t rectWidth = 3; + uint8_t rectHeight = 3; + + // heartbeat rectangle is in the upper right corner of the screen + uint8_t rectStartX = myOLED.getWidth() - rectWidth; + uint8_t rectStartY = 0; + + // draw the rectangle + myOLED.rectangleFill(rectStartX, rectStartY, rectWidth, rectHeight, 1); + + // toggle the heartbeat + bHeartbeat = !bHeartbeat; + + // if the heartbeat is off, erase the rectangle + if (!bHeartbeat) + { + myOLED.rectangleFill(rectStartX, rectStartY, rectWidth, rectHeight, 0); + } + + myOLED.display(); +} \ No newline at end of file From 3da096cb3389c6112bfd623d83360c596b0b3e78 Mon Sep 17 00:00:00 2001 From: Pete Lewis <601236+lewispg228@users.noreply.github.com> Date: Tue, 17 Dec 2024 11:44:37 -0700 Subject: [PATCH 25/38] added batt level indicator to example 8 -utilizing the on-board MAX17048 Fuel Guage IC on the ESP32 Thing Plus C. -Printing battery state of charge (SOC) to terminal -drawing a battery level indicator on the bottom right of the OLED - with 3 blocks to show 33/66/100 % batt levels. --- .../Example_08_Demo_Oled.ino | 110 ++++++++++++++++++ 1 file changed, 110 insertions(+) diff --git a/examples/Example_08_Demo_Oled/Example_08_Demo_Oled.ino b/examples/Example_08_Demo_Oled/Example_08_Demo_Oled.ino index 6d8a629..3e75620 100644 --- a/examples/Example_08_Demo_Oled/Example_08_Demo_Oled.ino +++ b/examples/Example_08_Demo_Oled/Example_08_Demo_Oled.ino @@ -84,6 +84,12 @@ int height; // writeStaticDisplayItems() function int xPosPM25; +// Fuel Guage Specifics +#include // Click here to get the library: http://librarymanager/All#SparkFun_MAX1704x_Fuel_Gauge_Arduino_Library +SFE_MAX1704X lipo(MAX1704X_MAX17048); // Create a MAX17048 +double soc = 0; // Variable to keep track of LiPo state-of-charge (SOC) + + // Some Dev boards have their QWIIC connector on Wire or Wire1 // This #ifdef will help this sketch work across more products @@ -98,6 +104,8 @@ void setup() pinMode(StatLedPin, OUTPUT); digitalWrite(StatLedPin, LOW); + lipo.disableDebugging(); // disable debugging for the MAX1704X fuel gauge + Serial.begin(115200); while (!Serial) @@ -156,6 +164,20 @@ void setup() Serial.println("Error setting BMV080 mode"); writeCenteredStringToDisplay("BMV080 Mode Error"); } + + // Set up the MAX17048 LiPo fuel gauge: + if (lipo.begin() == false) // Connect to the MAX17043 using the default wire port + { + Serial.println(F("MAX17048 not detected. Please check wiring. Freezing.")); + writeCenteredStringToDisplay("MAX17048 Failure"); + while (1) + ; + } + Serial.println("MAX17048 found!"); + + // Quick start restarts the MAX17043 in hopes of getting a more accurate + // guess for the SOC. + lipo.quickStart(); } void loop() @@ -177,6 +199,12 @@ void loop() Serial.print(pm25Value); writeStaticDisplayItems(); writeValuesToDisplay(); + // lipo.getSOC() returns the estimated state of charge (e.g. 79%) + soc = lipo.getSOC(); + Serial.print("\tBatt: "); + Serial.print(soc); // Print the battery state of charge + Serial.print(" %"); + writeBatteryLevelToDisplay(); myOLED.display(); // actually command the display to show the scene } @@ -310,4 +338,86 @@ void toggleHeartbeat() } myOLED.display(); +} + +// Write the battery level to the display +// Create a rectangular battery level indicator on the bottom right side of the screen +// fill in the rectangle with a percentage of the battery level +// each section of the rectangle represents 25% of the battery level +void writeBatteryLevelToDisplay() +{ + // calculate the x position of the battery level indicator + // this is the right side of the screen minus 14 pixels + int xPosBatteryLevelIndicator = (myOLED.getWidth()- 14); + + // draw the battery level indicator outline + // this rectangle is an outline of the battery level indicator + // it looks like a small battery + // it is 6 pixels tall and 12 pixels wide + // the inside of the rectangle is not filled in + // the rectangle is drawn in white + // the inside of the rectangle will be filled in with the battery level + myOLED.rectangle(xPosBatteryLevelIndicator, myOLED.getHeight() - 6, 12, 6, 1); + + // draw the end shape of the battery level indicator + // this makes it look like a traditional battery level indicator + // like the end of a AA battery + // draw a filled in rectangle that will be the end shape of the battery level indicator + // it is 2 pixels tall and 2 pixels wide + // it is drawn in white + myOLED.rectangle(xPosBatteryLevelIndicator + 12, myOLED.getHeight() - 4, 2, 2, 1); + + // draw the inner sections of the battery level indicator + // There are 3 blocks inside the battery level indicator + // each block represents 33% of the battery level + // the left most block represents 0-33% of the battery level + // the middle block represents 34-66% of the battery level + // the right most block represents 67-100% of the battery level + // the blocks are filled in with white + // the blocks are 2 pixels tall and 2 pixels wide + // there is a 1 pixel gap between each block + + // calculate the y position of the battery level indicator blocks + // this is the bottom of the screen minus 4 pixels + int yPosBatteryLevelBlocks = myOLED.getHeight() - 4; + + // calculate the x position of the left most block + // this is the right side of the screen minus 12 pixels + int xPosLeftBlock = (myOLED.getWidth() - 12); + + // calculate the x position of the middle block + // this is the right side of the screen minus 9 pixels + int xPosMiddleBlock = (myOLED.getWidth() - 9); + + // calculate the x position of the right most block + // this is the right side of the screen minus 6 pixels + int xPosRightBlock = (myOLED.getWidth() - 6); + + // write all 3 battery block indicators as black rectangles + myOLED.rectangle(xPosLeftBlock, yPosBatteryLevelBlocks, 2, 2, 0); + myOLED.rectangle(xPosMiddleBlock, yPosBatteryLevelBlocks, 2, 2, 0); + myOLED.rectangle(xPosRightBlock, yPosBatteryLevelBlocks, 2, 2, 0); + + // if the battery level is at least 33% + // fill in the left most block + if (soc > 32) + { + myOLED.rectangle(xPosLeftBlock, yPosBatteryLevelBlocks, 2, 2, 1); + } + + // if the battery level is between 34% and 66% + // fill in the middle block + if (soc > 33) + { + myOLED.rectangle(xPosMiddleBlock, yPosBatteryLevelBlocks, 2, 2, 1); + } + + // if the battery level is greater than 66% + // fill in the right most block + if (soc > 66) + { + myOLED.rectangle(xPosRightBlock, yPosBatteryLevelBlocks, 2, 2, 1); + } + + } \ No newline at end of file From 9979377850987c530bcd49e08d7f4c46812109ea Mon Sep 17 00:00:00 2001 From: Pete Lewis <601236+lewispg228@users.noreply.github.com> Date: Tue, 17 Dec 2024 13:18:46 -0700 Subject: [PATCH 26/38] obstruction no longer clears screen -obstruction is "written on top" of the other stuff, so you can still read the bad data and see it's alive -increased the static PM1 and PM2.5 text, so it's more legible. --- .../Example_08_Demo_Oled.ino | 73 ++++++++++++------- 1 file changed, 46 insertions(+), 27 deletions(-) diff --git a/examples/Example_08_Demo_Oled/Example_08_Demo_Oled.ino b/examples/Example_08_Demo_Oled/Example_08_Demo_Oled.ino index 3e75620..6853e20 100644 --- a/examples/Example_08_Demo_Oled/Example_08_Demo_Oled.ino +++ b/examples/Example_08_Demo_Oled/Example_08_Demo_Oled.ino @@ -123,7 +123,7 @@ void setup() if (myOLED.begin(wirePort) == false) { Serial.println("OLED Device begin failed. Freezing..."); - writeCenteredStringToDisplay("OLED Failure"); + writeCenteredStringToDisplay("OLED Failure", true); while (true) ; } @@ -141,12 +141,12 @@ void setup() { Serial.println( "BMV080 not detected at default I2C address. Check your jumpers and the hookup guide. Freezing..."); - writeCenteredStringToDisplay("BMV080 Failure"); + writeCenteredStringToDisplay("BMV080 Failure", true); while (1) ; } Serial.println("BMV080 found!"); - writeCenteredStringToDisplay("BMV080 Found"); + writeCenteredStringToDisplay("BMV080 Found", true); // wirePort.setClock(400000); //Increase I2C data rate to 400kHz @@ -157,19 +157,19 @@ void setup() if (bmv080.setMode(SFE_BMV080_MODE_CONTINUOUS) == true) { Serial.println("BMV080 set to continuous mode"); - writeCenteredStringToDisplay("Continuous Mode Set"); + writeCenteredStringToDisplay("Continuous Mode Set", true); } else { Serial.println("Error setting BMV080 mode"); - writeCenteredStringToDisplay("BMV080 Mode Error"); + writeCenteredStringToDisplay("BMV080 Mode Error", true); } // Set up the MAX17048 LiPo fuel gauge: if (lipo.begin() == false) // Connect to the MAX17043 using the default wire port { Serial.println(F("MAX17048 not detected. Please check wiring. Freezing.")); - writeCenteredStringToDisplay("MAX17048 Failure"); + writeCenteredStringToDisplay("MAX17048 Failure", true); while (1) ; } @@ -187,25 +187,25 @@ void loop() pm25Value = bmv080.getPM25(); pm1Value = bmv080.getPM1(); + Serial.print(pm1Value); + Serial.print("\t"); + Serial.print(pm25Value); + writeStaticDisplayItems(); + writeValuesToDisplay(); + // lipo.getSOC() returns the estimated state of charge (e.g. 79%) + soc = lipo.getSOC(); + Serial.print("\tBatt: "); + Serial.print(soc); // Print the battery state of charge + Serial.print(" %"); + writeBatteryLevelToDisplay(); + myOLED.display(); // actually command the display to show the scene + if (bmv080.getIsObstructed() == true) { Serial.print("\tObstructed"); - writeCenteredStringToDisplay("Obstructed"); - } - else - { - Serial.print(pm1Value); - Serial.print("\t"); - Serial.print(pm25Value); - writeStaticDisplayItems(); - writeValuesToDisplay(); - // lipo.getSOC() returns the estimated state of charge (e.g. 79%) - soc = lipo.getSOC(); - Serial.print("\tBatt: "); - Serial.print(soc); // Print the battery state of charge - Serial.print(" %"); - writeBatteryLevelToDisplay(); - myOLED.display(); // actually command the display to show the scene + writeObstructedBoarder(); + writeCenteredStringToDisplay("Obstructed", false); // don't clear the screen + // so the obstructed message is displayed on top of the PM values } Serial.println(); @@ -240,7 +240,7 @@ void writeStaticDisplayItems() // clear the screen myOLED.erase(); - myOLED.setFont(&QW_FONT_5X7); + myOLED.setFont(&QW_FONT_8X16); // draw the PM1 static text label // calculate the x position of the PM1 label @@ -274,21 +274,28 @@ void writeValuesToDisplay() // calculate the x position of the PM1 value // we want it to be centered in the left half of the screen int xPosPM1Value = (myOLED.getWidth() / 4) - (myOLED.getStringWidth(toPrint) / 2); - myOLED.text(xPosPM1Value, 10, toPrint, 1); + + // calculate the y start position of the PM1 value + // we want the bottom of the text to align with the bottom of the screen + int yPosPM1Value = myOLED.getHeight() - myOLED.getStringHeight(toPrint); + myOLED.text(xPosPM1Value, yPosPM1Value, toPrint, 1); // draw the PM2.5 value // calculate the x position of the PM2.5 value // we want it to be centered in the right half of the screen int xPosPM25Value = (myOLED.getWidth() / 4) * 3 - (myOLED.getStringWidth(toPrint) / 2); toPrint = String(int(pm25Value)); - myOLED.text(xPosPM25Value, 10, toPrint, 1); + myOLED.text(xPosPM25Value, yPosPM1Value, toPrint, 1); // same y position as the PM1 value } // Write a string to the display that is centered horizontally and vertically -void writeCenteredStringToDisplay(String toPrint) +void writeCenteredStringToDisplay(String toPrint, bool clearScreen) { // clear the screen - myOLED.erase(); + if(clearScreen) + { + myOLED.erase(); + } // set the font to the 8x16 font myOLED.setFont(&QW_FONT_5X7); @@ -418,6 +425,18 @@ void writeBatteryLevelToDisplay() { myOLED.rectangle(xPosRightBlock, yPosBatteryLevelBlocks, 2, 2, 1); } +} + +void writeObstructedBoarder() +{ + // set fort to 5x7 + myOLED.setFont(&QW_FONT_5X7); + int xPosObstructed = (myOLED.getWidth() / 2) - (myOLED.getStringWidth("Obstructed") / 2) - 2; + int yPosObstructed = (myOLED.getHeight() / 2) - (myOLED.getStringHeight("Obstructed") / 2) - 2; + int widthObstructed = myOLED.getStringWidth("Obstructed") + 4; + int heightObstructed = myOLED.getStringHeight("Obstructed") + 4; + // draw the black filled rectangle + myOLED.rectangleFill(xPosObstructed, yPosObstructed, widthObstructed, heightObstructed, 0); } \ No newline at end of file From 4eb84ccf77943033e6382fab88a463777f3c0282 Mon Sep 17 00:00:00 2001 From: Kirk Benell Date: Thu, 6 Feb 2025 16:04:48 -0700 Subject: [PATCH 27/38] in progress changes from review; changed get() name scheme to () - more modern; Added is to DataAvailable(); formatted file; tweak some constants; added a method to get all parameter values via a passed in struct; STILL a work in progress - not tested or compiled --- src/sfeBmv080.cpp | 94 +++++++++++++++++++++++++++++++---------------- src/sfeBmv080.h | 37 +++++++++++-------- 2 files changed, 84 insertions(+), 47 deletions(-) diff --git a/src/sfeBmv080.cpp b/src/sfeBmv080.cpp index 9a9f1a6..3acb45a 100644 --- a/src/sfeBmv080.cpp +++ b/src/sfeBmv080.cpp @@ -21,7 +21,7 @@ #include "bmv080.h" #include "bmv080_defs.h" -#define SPI_CLK_FREQ ((uint32_t)(1e6)) +#define SPI_CLK_FREQ ((uint32_t)(1e6)) // Some communication functions used with the system. These are from the original code from // Bosch - so keeping them the same. It is unclear if the library they provide depends on these @@ -29,15 +29,15 @@ #define E_COMBRIDGE_OK ((int8_t)0) /*! -1: Status codes returned when memory allocation fails */ -#define E_COMBRIDGE_ERROR_MEMORY_ALLOCATION ((int8_t) - 1) +#define E_COMBRIDGE_ERROR_MEMORY_ALLOCATION ((int8_t)-1) /*! -2: Status codes returned when the read operation fails */ -#define E_COMBRIDGE_ERROR_READ ((int8_t) - 2) +#define E_COMBRIDGE_ERROR_READ ((int8_t)-2) /*! -3: Status codes returned when the write operation fails */ -#define E_COMBRIDGE_ERROR_WRITE ((int8_t) - 3) +#define E_COMBRIDGE_ERROR_WRITE ((int8_t)-3) /*! -4: Status codes returned when writing the header fails */ -#define E_COMBRIDGE_ERROR_WRITE_HEADER ((int8_t) - 4) +#define E_COMBRIDGE_ERROR_WRITE_HEADER ((int8_t)-4) /*! -5: Status codes returned when a reference is null */ -#define E_COMBRIDGE_ERROR_NULLPTR ((int8_t) - 5) +#define E_COMBRIDGE_ERROR_NULLPTR ((int8_t)-5) // C function used in this library only - so static @@ -55,7 +55,7 @@ extern "C" uint16_t payload_length) { if (handle == nullptr) - return E_COMBRIDGE_ERROR_NULLPTR; + return E_COMBRIDGE_ERROR_NULLPTR; // Our output var. size_t nRead = 0; @@ -63,13 +63,13 @@ extern "C" // Get our sparkfun toolkit bus object/interface sfeTkIBus *theBus = (sfeTkIBus *)handle; - if(theBus->type() == kBusTypeI2C) // I2C specific shift - header = header << 1; + if (theBus->type() == kBusTypeI2C) // I2C specific shift + header = header << 1; sfeTkError_t rc = theBus->readRegister(header, payload, payload_length, nRead); if (rc != kSTkErrOk || nRead != payload_length) - return E_COMBRIDGE_ERROR_READ; + return E_COMBRIDGE_ERROR_READ; return E_COMBRIDGE_OK; } @@ -85,7 +85,7 @@ extern "C" sfeTkIBus *theBus = (sfeTkIBus *)handle; - if(theBus->type() == kBusTypeI2C) // I2C specific shift + if (theBus->type() == kBusTypeI2C) // I2C specific shift header = header << 1; sfeTkError_t rc = theBus->writeRegister(header, payload, payload_length); @@ -104,6 +104,7 @@ extern "C" return E_COMBRIDGE_OK; } + //--------------------------------------------------------------------- // This function is just used in this file, so declaring it static /* Custom function for consuming sensor readings */ @@ -112,6 +113,7 @@ extern "C" ((sfeBmv080 *)callback_parameters)->setSensorValue(bmv080_output); } + //--------------------------------------------------------------------- static void bmv080_service_routine(const bmv080_handle_t handle, void *callback_parameters) { /* The interrupt is served by the BMV080 sensor driver */ @@ -119,6 +121,7 @@ extern "C" bmv080_serve_interrupt(handle, (bmv080_callback_data_ready_t)use_sensor_output, callback_parameters); if (bmv080_current_status != E_BMV080_OK) { + // TODO: libraries should not output text by default, need to add a debug mode/flag to library? printf("Fetching measurement data failed with BMV080 status %d\r\n", (int32_t)bmv080_current_status); } } @@ -127,6 +130,7 @@ extern "C" } #endif +//--------------------------------------------------------------------- sfeTkError_t sfeBmv080::begin(sfeTkIBus *theBus) { // Nullptr check @@ -139,31 +143,53 @@ sfeTkError_t sfeBmv080::begin(sfeTkIBus *theBus) return kSTkErrOk; } -float sfeBmv080::getPM25() +//--------------------------------------------------------------------- +float sfeBmv080::PM25() { return _sensorValue.pm2_5_mass_concentration; } -float sfeBmv080::getPM1() +//--------------------------------------------------------------------- +float sfeBmv080::PM1() { return _sensorValue.pm1_mass_concentration; } -bool sfeBmv080::getIsObstructed() +//--------------------------------------------------------------------- +bool sfeBmv080::isObstructed() { return _sensorValue.is_obstructed; } +//--------------------------------------------------------------------- void sfeBmv080::setSensorValue(bmv080_output_t bmv080_output) { + // TODO: should here be a mode where the library user can set register a callback function to handle the data? + // This way the end user can get all the sensor data at once - possible issue is stack/re-entrancy _dataAvailable = true; - _sensorValue.pm2_5_mass_concentration = bmv080_output.pm2_5_mass_concentration; - _sensorValue.pm1_mass_concentration = bmv080_output.pm1_mass_concentration; - _sensorValue.runtime_in_sec = bmv080_output.runtime_in_sec; - _sensorValue.is_obstructed = bmv080_output.is_obstructed; - _sensorValue.is_outside_measurement_range = bmv080_output.is_outside_measurement_range; + + // cache the latest sensor values - copy output to our class variable + _sensorValue = bmv080_output; +} + +//--------------------------------------------------------------------- +bool sfeBmv080::sensorValue(bmv080_output_t *bmv080_output, bool update_data /* default is true*/) +{ + if (!bmv080_output) + return false; + + // Get the latest sensor data ... + if (update_data) + { + _dataAvailable = false; + bmv080_service_routine(bmv080_handle_class, this); + } + if (_dataAvailable) + *bmv080_output = _sensorValue; + return _dataAvailable; } +//--------------------------------------------------------------------- bool sfeBmv080::setMode(uint8_t mode) { bmv080_status_code_t bmv080_current_status; // return status from the Bosch API function @@ -190,9 +216,11 @@ bool sfeBmv080::setMode(uint8_t mode) } } -bool sfeBmv080::dataAvailable() +//--------------------------------------------------------------------- +bool sfeBmv080::isDataAvailable() { bmv080_service_routine(bmv080_handle_class, this); + // TODO: What is the logic here? The expectation is that a user calls this before accessing any data? if (_dataAvailable == true) { _dataAvailable = false; @@ -202,6 +230,7 @@ bool sfeBmv080::dataAvailable() return false; } +//--------------------------------------------------------------------- // Our init method bool sfeBmv080::init() { @@ -215,8 +244,7 @@ bool sfeBmv080::init() return true; } - - +//--------------------------------------------------------------------- bool sfeBmv080::open() { if (_theBus == nullptr) @@ -257,7 +285,7 @@ bool sfeBmv080::reset() } } -bool sfeBmv080::getDriverVersion() +bool sfeBmv080::driverVersion() { uint16_t major = 0; uint16_t minor = 0; @@ -278,7 +306,7 @@ bool sfeBmv080::getDriverVersion() return true; } -bool sfeBmv080::getID() +bool sfeBmv080::ID() { char id[13]; memset(id, 0x00, 13); @@ -296,7 +324,7 @@ bool sfeBmv080::getID() } } -uint16_t sfeBmv080::getDutyCyclingPeriod() +uint16_t sfeBmv080::dutyCyclingPeriod() { uint16_t duty_cycling_period = 0; bmv080_status_code_t bmv080_current_status = @@ -329,13 +357,14 @@ bool sfeBmv080::setDutyCyclingPeriod(uint16_t duty_cycling_period) } } -float sfeBmv080::getVolumetricMassDensity() +float sfeBmv080::volumetricMassDensity() { float volumetric_mass_density = 0.0; bmv080_status_code_t bmv080_current_status = bmv080_get_parameter(bmv080_handle_class, "volumetric_mass_density", (void *)&volumetric_mass_density); if (bmv080_current_status != E_BMV080_OK) { +// TODO: libraries should not output text by default, need to add a debug mode/flag to library? printf("Error getting BMV080 Volumetric Mass Density: %d\n", bmv080_current_status); return 0.0; } @@ -351,6 +380,7 @@ bool sfeBmv080::setVolumetricMassDensity(float volumetric_mass_density) bmv080_set_parameter(bmv080_handle_class, "volumetric_mass_density", (void *)&volumetric_mass_density); if (bmv080_current_status != E_BMV080_OK) { + // TODO: libraries should not output text by default, need to add a debug mode/flag to library? printf("Error setting BMV080 Volumetric Mass Density: %d\n", bmv080_current_status); return false; } @@ -360,13 +390,13 @@ bool sfeBmv080::setVolumetricMassDensity(float volumetric_mass_density) } } -float sfeBmv080::getIntegrationTime() +float sfeBmv080::integrationTime() { float integration_time = 0.0; bmv080_status_code_t bmv080_current_status = bmv080_get_parameter(bmv080_handle_class, "integration_time", (void *)&integration_time); if (bmv080_current_status != E_BMV080_OK) - { + { // todo -- no printf in library printf("Error getting BMV080 Integration Time: %d\n", bmv080_current_status); return 0.0; } @@ -391,7 +421,7 @@ bool sfeBmv080::setIntegrationTime(float integration_time) } } -uint32_t sfeBmv080::getDistributionId() +uint32_t sfeBmv080::distributionId() { uint32_t distribution_id = 0; bmv080_status_code_t bmv080_current_status = @@ -422,7 +452,7 @@ bool sfeBmv080::setDistributionId(uint32_t distribution_id) } } -bool sfeBmv080::getDoObstructionDetection() +bool sfeBmv080::doObstructionDetection() { bool do_obstruction_detection = false; bmv080_status_code_t bmv080_current_status = @@ -453,7 +483,7 @@ bool sfeBmv080::setDoObstructionDetection(bool do_obstruction_detection) } } -bool sfeBmv080::getDoVibrationFiltering() +bool sfeBmv080::doVibrationFiltering() { bool do_vibration_filtering = false; bmv080_status_code_t bmv080_current_status = @@ -484,7 +514,7 @@ bool sfeBmv080::setDoVibrationFiltering(bool do_vibration_filtering) } } -uint8_t sfeBmv080::getMeasurementAlgorithm() +uint8_t sfeBmv080::measurementAlgorithm() { bmv080_measurement_algorithm_t measurement_algorithm; bmv080_status_code_t bmv080_current_status = diff --git a/src/sfeBmv080.h b/src/sfeBmv080.h index 5c0ae3d..ddbbb33 100644 --- a/src/sfeBmv080.h +++ b/src/sfeBmv080.h @@ -33,7 +33,8 @@ #define SFE_BMV080_MODE_CONTINUOUS 0 #define SFE_BMV080_MODE_DUTY_CYCLE 1 -#define SPI_CLK_FREQ ((uint32_t)(1e6)) // 1 MHz +// #define SPI_CLK_FREQ ((uint32_t)(1e6)) // 1 MHz +#define SPI_CLK_FREQ 1000000u // 1 MHz typedef struct { @@ -66,7 +67,7 @@ class sfeBmv080 /// @brief Get the version information of this sensor driver. /// @return True if successful, false otherwise - bool getDriverVersion(); + bool driverVersion(); /// @brief Open a sensor unit by initializing a new handle. /// @return True if successful, false otherwise @@ -78,7 +79,7 @@ class sfeBmv080 /// @brief Get the ID of the sensor /// @return True if successful, false otherwise - bool getID(); + bool ID(); /// @brief Set the mode of the sensor /// @param mode SFE_BMV080_MODE_CONTINUOUS, SFE_BMV080_MODE_DUTY_CYCLE @@ -87,27 +88,33 @@ class sfeBmv080 /// @brief Get the PM2.5 value /// @return The PM2.5 value as a float in ug/m3 - float getPM25(); + float PM25(); /// @brief Get the PM1 value /// @return The PM1 value as a float in ug/m3 - float getPM1(); + float PM1(); /// @brief Get the obstruction status /// @return True if obstructed, false otherwise - bool getIsObstructed(); + bool isObstructed(); void setSensorValue(bmv080_output_t bmv080_output); + /// @brief Get the sensor value + /// @param bmv080_output pointer to value output struct + /// @param update_data if true, update the data from the sensor + /// @return true on success, false if no data is available + bool sensorValue(bmv080_output_t *bmv080_output, bool update_data = true); + /// @brief Check if new data is available /// @details This function should be called in the main loop to check if new data is available - /// @details If new data is available, the data can be read using getPM25 and getIsObstructed + /// @details If new data is available, the data can be read using PM25 and isObstructed /// @return True if new data is available, false otherwise - bool dataAvailable(); + bool isDataAvailable(); /// @brief Get the duty cycling period /// @return The duty cycling period in seconds - uint16_t getDutyCyclingPeriod(); + uint16_t dutyCyclingPeriod(); /// @brief Set the duty cycling period /// @param period The duty cycling period in seconds @@ -116,7 +123,7 @@ class sfeBmv080 /// @brief Get a parameter: "volumetric_mass_density" /// @return float volumetric_mass_density - float getVolumetricMassDensity(); + float volumetricMassDensity(); /// @brief Set a parameter: "volumetric_mass_density" /// @param volumetric_mass_density @@ -125,7 +132,7 @@ class sfeBmv080 /// @brief Get a parameter: "integration_time" /// @return float integration_time - float getIntegrationTime(); + float integrationTime(); /// @brief Set a parameter: "integration_time" /// @param integration_time @@ -134,7 +141,7 @@ class sfeBmv080 /// @brief Get a parameter: "distribution_id" /// @return uint32_t distribution_id - uint32_t getDistributionId(); + uint32_t distributionId(); /// @brief Set a parameter: "distribution_id" /// @param distribution_id @@ -143,7 +150,7 @@ class sfeBmv080 /// @brief Get a parameter: "do_obstruction_detection" /// @return bool do_obstruction_detection - bool getDoObstructionDetection(); + bool doObstructionDetection(); /// @brief Set a parameter: "do_obstruction_detection" /// @param do_obstruction_detection @@ -152,7 +159,7 @@ class sfeBmv080 /// @brief Get a parameter: "do_vibration_filtering" /// @return bool do_vibration_filtering - bool getDoVibrationFiltering(); + bool doVibrationFiltering(); /// @brief Set a parameter: "do_vibration_filtering" /// @param do_vibration_filtering @@ -161,7 +168,7 @@ class sfeBmv080 /// @brief Get a parameter: "measurement_algorithm" /// @return uint8_t measurement_algorithm - uint8_t getMeasurementAlgorithm(); + uint8_t measurementAlgorithm(); /// @brief Set a parameter: "measurement_algorithm" /// @param measurement_algorithm From d62988bb96f135bce7e0b0286d6294e20198473f Mon Sep 17 00:00:00 2001 From: Kirk Benell Date: Thu, 6 Feb 2025 16:05:23 -0700 Subject: [PATCH 28/38] updated examples to use the new core changes -- not validated yet --- .../Example_01_BasicReadings.ino | 8 ++++---- .../Example_02_DutyCycle.ino | 6 +++--- .../Example_03_Interrupt.ino | 6 +++--- examples/Example_04_SPI/Example_04_SPI.ino | 6 +++--- .../Example_05_Parameters.ino | 18 +++++++++--------- .../Example_06_TwoSensors.ino | 14 +++++++------- .../Example_07_Demo_Alphanumeric.ino | 6 +++--- .../Example_08_Demo_Oled.ino | 8 ++++---- 8 files changed, 36 insertions(+), 36 deletions(-) diff --git a/examples/Example_01_BasicReadings/Example_01_BasicReadings.ino b/examples/Example_01_BasicReadings/Example_01_BasicReadings.ino index 3bd2cba..b5fdce4 100644 --- a/examples/Example_01_BasicReadings/Example_01_BasicReadings.ino +++ b/examples/Example_01_BasicReadings/Example_01_BasicReadings.ino @@ -81,16 +81,16 @@ void setup() void loop() { - if (bmv080.dataAvailable()) + if (bmv080.isDataAvailable()) { - float pm25 = bmv080.getPM25(); - float pm1 = bmv080.getPM1(); + float pm25 = bmv080.PM25(); + float pm1 = bmv080.PM1(); Serial.print(pm25); Serial.print("\t"); Serial.print(pm1); - if (bmv080.getIsObstructed() == true) + if (bmv080.isObstructed() == true) { Serial.print("\tObstructed"); } diff --git a/examples/Example_02_DutyCycle/Example_02_DutyCycle.ino b/examples/Example_02_DutyCycle/Example_02_DutyCycle.ino index 723c681..0953e2a 100644 --- a/examples/Example_02_DutyCycle/Example_02_DutyCycle.ino +++ b/examples/Example_02_DutyCycle/Example_02_DutyCycle.ino @@ -89,13 +89,13 @@ void setup() void loop() { - if(bmv080.dataAvailable()) + if(bmv080.isDataAvailable()) { - float pm25 = bmv080.getPM25(); + float pm25 = bmv080.PM25(); Serial.print(pm25); - if(bmv080.getIsObstructed() == true) + if(bmv080.isObstructed() == true) { Serial.print("\tObstructed"); } diff --git a/examples/Example_03_Interrupt/Example_03_Interrupt.ino b/examples/Example_03_Interrupt/Example_03_Interrupt.ino index 8a0168e..5f1532e 100644 --- a/examples/Example_03_Interrupt/Example_03_Interrupt.ino +++ b/examples/Example_03_Interrupt/Example_03_Interrupt.ino @@ -95,11 +95,11 @@ void loop() int_flag = false; // Reset the flag do{ Serial.println("Reading BMV080"); - if(bmv080.dataAvailable()) + if(bmv080.isDataAvailable()) { - float pm25 = bmv080.getPM25(); + float pm25 = bmv080.PM25(); Serial.print(pm25); - if(bmv080.getIsObstructed() == true) + if(bmv080.isObstructed() == true) { Serial.print("\tObstructed"); } diff --git a/examples/Example_04_SPI/Example_04_SPI.ino b/examples/Example_04_SPI/Example_04_SPI.ino index 1219d09..cf7c9e2 100644 --- a/examples/Example_04_SPI/Example_04_SPI.ino +++ b/examples/Example_04_SPI/Example_04_SPI.ino @@ -80,13 +80,13 @@ void setup() void loop() { - if(bmv080.dataAvailable()) + if(bmv080.isDataAvailable()) { - float pm25 = bmv080.getPM25(); + float pm25 = bmv080.PM25(); Serial.print(pm25); - if(bmv080.getIsObstructed() == true) + if(bmv080.isObstructed() == true) { Serial.print("\tObstructed"); } diff --git a/examples/Example_05_Parameters/Example_05_Parameters.ino b/examples/Example_05_Parameters/Example_05_Parameters.ino index f75680b..5ab826f 100644 --- a/examples/Example_05_Parameters/Example_05_Parameters.ino +++ b/examples/Example_05_Parameters/Example_05_Parameters.ino @@ -91,13 +91,13 @@ void setup() void loop() { - if(bmv080.dataAvailable()) + if(bmv080.isDataAvailable()) { - float pm25 = bmv080.getPM25(); + float pm25 = bmv080.PM25(); Serial.print(pm25); - if(bmv080.getIsObstructed() == true) + if(bmv080.isObstructed() == true) { Serial.print("\tObstructed"); } @@ -128,22 +128,22 @@ void getSetParameters(void) /* Get default parameter "volumetric_mass_density" */ - volumetric_mass_density = bmv080.getVolumetricMassDensity(); + volumetric_mass_density = bmv080.volumetricMassDensity(); Serial.print("BMV080 parameter 'volumetric_mass_density' READ: "); Serial.println(volumetric_mass_density); /* Get default parameter "integration_time" */ - integration_time = bmv080.getIntegrationTime(); + integration_time = bmv080.integrationTime(); Serial.print("BMV080 parameter 'integration_time' READ: "); Serial.println(integration_time); /* Get default parameter "distribution_id" */ - distribution_id = bmv080.getDistributionId(); + distribution_id = bmv080.distributionId(); Serial.print("BMV080 parameter 'distribution_id' READ: "); Serial.println(distribution_id); /* Get default parameter "do_obstruction_detection" */ - do_obstruction_detection = bmv080.getDoObstructionDetection(); + do_obstruction_detection = bmv080.doObstructionDetection(); Serial.print("BMV080 parameter 'do_obstruction_detection' READ: "); if(do_obstruction_detection == true) { @@ -155,7 +155,7 @@ void getSetParameters(void) } /* Get default parameter "do_vibration_filtering" */ - do_vibration_filtering = bmv080.getDoVibrationFiltering(); + do_vibration_filtering = bmv080.doVibrationFiltering(); Serial.print("BMV080 parameter 'do_vibration_filtering' READ: "); if(do_vibration_filtering == true) { @@ -167,7 +167,7 @@ void getSetParameters(void) } /* Get default parameter "measurement_algorithm" */ - measurementAlgorithm = bmv080.getMeasurementAlgorithm(); + measurementAlgorithm = bmv080.measurementAlgorithm(); Serial.print("BMV080 parameter 'measurement_algorithm' READ: "); switch (measurementAlgorithm) { diff --git a/examples/Example_06_TwoSensors/Example_06_TwoSensors.ino b/examples/Example_06_TwoSensors/Example_06_TwoSensors.ino index 9237465..48dd8a2 100644 --- a/examples/Example_06_TwoSensors/Example_06_TwoSensors.ino +++ b/examples/Example_06_TwoSensors/Example_06_TwoSensors.ino @@ -121,26 +121,26 @@ void setup() void loop() { - if (bmv080.dataAvailable()) + if (bmv080.isDataAvailable()) { - pm25 = bmv080.getPM25(); - isObstructed = bmv080.getIsObstructed(); + pm25 = bmv080.PM25(); + isObstructed = bmv080.isObstructed(); newDataAvailable = true; //Serial.println("Sensor 1 data available"); } delay(200); // needs a ~200ms delay in between talking to each sensor - if (bmv080_2.dataAvailable()) + if (bmv080_2.isDataAvailable()) { - pm25_2 = bmv080_2.getPM25(); - isObstructed2 = bmv080_2.getIsObstructed(); + pm25_2 = bmv080_2.PM25(); + isObstructed2 = bmv080_2.isObstructed(); newDataAvailable2 = true; //Serial.println("Sensor 2 data available"); } delay(200); // needs a ~200ms delay in between talking to each sensor - if (newDataAvailable & newDataAvailable2) + if (newDataAvailable && newDataAvailable2) { //Serial.print("Sensor 1: "); diff --git a/examples/Example_07_Demo_Alphanumeric/Example_07_Demo_Alphanumeric.ino b/examples/Example_07_Demo_Alphanumeric/Example_07_Demo_Alphanumeric.ino index c882507..fc22e82 100644 --- a/examples/Example_07_Demo_Alphanumeric/Example_07_Demo_Alphanumeric.ino +++ b/examples/Example_07_Demo_Alphanumeric/Example_07_Demo_Alphanumeric.ino @@ -100,14 +100,14 @@ void setup() void loop() { - if (bmv080.dataAvailable()) + if (bmv080.isDataAvailable()) { - float pm25 = bmv080.getPM25(); + float pm25 = bmv080.PM25(); Serial.print(pm25); display.print(int(pm25)); - if (bmv080.getIsObstructed() == true) + if (bmv080.isObstructed() == true) { Serial.print("\tObstructed"); display.print("Obst"); diff --git a/examples/Example_08_Demo_Oled/Example_08_Demo_Oled.ino b/examples/Example_08_Demo_Oled/Example_08_Demo_Oled.ino index 6853e20..e3010e4 100644 --- a/examples/Example_08_Demo_Oled/Example_08_Demo_Oled.ino +++ b/examples/Example_08_Demo_Oled/Example_08_Demo_Oled.ino @@ -182,10 +182,10 @@ void setup() void loop() { - if (bmv080.dataAvailable()) + if (bmv080.isDataAvailable()) { - pm25Value = bmv080.getPM25(); - pm1Value = bmv080.getPM1(); + pm25Value = bmv080.PM25(); + pm1Value = bmv080.PM1(); Serial.print(pm1Value); Serial.print("\t"); @@ -200,7 +200,7 @@ void loop() writeBatteryLevelToDisplay(); myOLED.display(); // actually command the display to show the scene - if (bmv080.getIsObstructed() == true) + if (bmv080.isObstructed() == true) { Serial.print("\tObstructed"); writeObstructedBoarder(); From 77d47741b560f1d799e3e429277f804bb187c03b Mon Sep 17 00:00:00 2001 From: Kirk Benell Date: Fri, 7 Feb 2025 13:38:09 -0700 Subject: [PATCH 29/38] updated examples to use the new core changes -- not validated yet --- .../Example_01_BasicReadings.ino | 10 +++++----- examples/Example_02_DutyCycle/Example_02_DutyCycle.ino | 2 +- examples/Example_03_Interrupt/Example_03_Interrupt.ino | 2 +- examples/Example_04_SPI/Example_04_SPI.ino | 2 +- .../Example_05_Parameters/Example_05_Parameters.ino | 2 +- .../Example_06_TwoSensors/Example_06_TwoSensors.ino | 4 ++-- .../Example_07_Demo_Alphanumeric.ino | 2 +- examples/Example_08_Demo_Oled/Example_08_Demo_Oled.ino | 2 +- 8 files changed, 13 insertions(+), 13 deletions(-) diff --git a/examples/Example_01_BasicReadings/Example_01_BasicReadings.ino b/examples/Example_01_BasicReadings/Example_01_BasicReadings.ino index b5fdce4..a020041 100644 --- a/examples/Example_01_BasicReadings/Example_01_BasicReadings.ino +++ b/examples/Example_01_BasicReadings/Example_01_BasicReadings.ino @@ -27,16 +27,16 @@ #include "SparkFun_BMV080_Arduino_Library.h" // CTRL+Click here to get the library: http://librarymanager/All#SparkFun_BMV080 #include -SparkFunBMV080I2C bmv080; // Create an instance of the BMV080 class -#define BMV080_ADDR 0x57 // SparkFun BMV080 Breakout defaults to 0x57 +SparkFunBMV080I2C bmv080; // Create an instance of the BMV080 class +#define BMV080_ADDR 0x57 // SparkFun BMV080 Breakout defaults to 0x57 // Some Dev boards have their QWIIC connector on Wire or Wire1 // This #ifdef will help this sketch work across more products #ifdef ARDUINO_SPARKFUN_THINGPLUS_RP2040 -#define wirePort Wire1 +#define wirePort Wire1 #else -#define wirePort Wire +#define wirePort Wire #endif void setup() @@ -81,7 +81,7 @@ void setup() void loop() { - if (bmv080.isDataAvailable()) + if (bmv080.readSensor()) { float pm25 = bmv080.PM25(); float pm1 = bmv080.PM1(); diff --git a/examples/Example_02_DutyCycle/Example_02_DutyCycle.ino b/examples/Example_02_DutyCycle/Example_02_DutyCycle.ino index 0953e2a..0a3ffc6 100644 --- a/examples/Example_02_DutyCycle/Example_02_DutyCycle.ino +++ b/examples/Example_02_DutyCycle/Example_02_DutyCycle.ino @@ -89,7 +89,7 @@ void setup() void loop() { - if(bmv080.isDataAvailable()) + if(bmv080.readSensor()) { float pm25 = bmv080.PM25(); diff --git a/examples/Example_03_Interrupt/Example_03_Interrupt.ino b/examples/Example_03_Interrupt/Example_03_Interrupt.ino index 5f1532e..4d33066 100644 --- a/examples/Example_03_Interrupt/Example_03_Interrupt.ino +++ b/examples/Example_03_Interrupt/Example_03_Interrupt.ino @@ -95,7 +95,7 @@ void loop() int_flag = false; // Reset the flag do{ Serial.println("Reading BMV080"); - if(bmv080.isDataAvailable()) + if(bmv080.readSensor()) { float pm25 = bmv080.PM25(); Serial.print(pm25); diff --git a/examples/Example_04_SPI/Example_04_SPI.ino b/examples/Example_04_SPI/Example_04_SPI.ino index cf7c9e2..9af981a 100644 --- a/examples/Example_04_SPI/Example_04_SPI.ino +++ b/examples/Example_04_SPI/Example_04_SPI.ino @@ -80,7 +80,7 @@ void setup() void loop() { - if(bmv080.isDataAvailable()) + if(bmv080.readSensor()) { float pm25 = bmv080.PM25(); diff --git a/examples/Example_05_Parameters/Example_05_Parameters.ino b/examples/Example_05_Parameters/Example_05_Parameters.ino index 5ab826f..ec61c4f 100644 --- a/examples/Example_05_Parameters/Example_05_Parameters.ino +++ b/examples/Example_05_Parameters/Example_05_Parameters.ino @@ -91,7 +91,7 @@ void setup() void loop() { - if(bmv080.isDataAvailable()) + if(bmv080.readSensor()) { float pm25 = bmv080.PM25(); diff --git a/examples/Example_06_TwoSensors/Example_06_TwoSensors.ino b/examples/Example_06_TwoSensors/Example_06_TwoSensors.ino index 48dd8a2..d067c6a 100644 --- a/examples/Example_06_TwoSensors/Example_06_TwoSensors.ino +++ b/examples/Example_06_TwoSensors/Example_06_TwoSensors.ino @@ -121,7 +121,7 @@ void setup() void loop() { - if (bmv080.isDataAvailable()) + if (bmv080.readSensor()) { pm25 = bmv080.PM25(); isObstructed = bmv080.isObstructed(); @@ -130,7 +130,7 @@ void loop() } delay(200); // needs a ~200ms delay in between talking to each sensor - if (bmv080_2.isDataAvailable()) + if (bmv080_2.readSensor()) { pm25_2 = bmv080_2.PM25(); isObstructed2 = bmv080_2.isObstructed(); diff --git a/examples/Example_07_Demo_Alphanumeric/Example_07_Demo_Alphanumeric.ino b/examples/Example_07_Demo_Alphanumeric/Example_07_Demo_Alphanumeric.ino index fc22e82..6f1f7d7 100644 --- a/examples/Example_07_Demo_Alphanumeric/Example_07_Demo_Alphanumeric.ino +++ b/examples/Example_07_Demo_Alphanumeric/Example_07_Demo_Alphanumeric.ino @@ -100,7 +100,7 @@ void setup() void loop() { - if (bmv080.isDataAvailable()) + if (bmv080.readSensor()) { float pm25 = bmv080.PM25(); diff --git a/examples/Example_08_Demo_Oled/Example_08_Demo_Oled.ino b/examples/Example_08_Demo_Oled/Example_08_Demo_Oled.ino index e3010e4..afd58cc 100644 --- a/examples/Example_08_Demo_Oled/Example_08_Demo_Oled.ino +++ b/examples/Example_08_Demo_Oled/Example_08_Demo_Oled.ino @@ -182,7 +182,7 @@ void setup() void loop() { - if (bmv080.isDataAvailable()) + if (bmv080.readSensor()) { pm25Value = bmv080.PM25(); pm1Value = bmv080.PM1(); From f0e45bc23ca996a8c4e7647d9612250f92013c46 Mon Sep 17 00:00:00 2001 From: Kirk Benell Date: Fri, 7 Feb 2025 13:38:57 -0700 Subject: [PATCH 30/38] changed include order - helps with header file location when using arduino --- src/SparkFun_BMV080_Arduino_Library.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/SparkFun_BMV080_Arduino_Library.h b/src/SparkFun_BMV080_Arduino_Library.h index ce482d2..999037d 100644 --- a/src/SparkFun_BMV080_Arduino_Library.h +++ b/src/SparkFun_BMV080_Arduino_Library.h @@ -21,8 +21,9 @@ #pragma once -#include "sfeBmv080.h" + #include +#include "sfeBmv080.h" // The BMV080 Bosch API requires a larger than usual stack size // In particular, bmv080_serve_interrupt is the culprit. From 5d3e83f837e248b35a494a8b851aeebc2eea4176 Mon Sep 17 00:00:00 2001 From: Kirk Benell Date: Fri, 7 Feb 2025 13:40:26 -0700 Subject: [PATCH 31/38] some refactor; cleanup any use of arduino; simplify the get data method/change method name; move callbacks to static methods - cleaner for c++; remove all print statments and simplify return logic from methods --- src/sfeBmv080.cpp | 443 ++++++++++++++++------------------------------ src/sfeBmv080.h | 68 ++++--- 2 files changed, 189 insertions(+), 322 deletions(-) diff --git a/src/sfeBmv080.cpp b/src/sfeBmv080.cpp index 3acb45a..242cda8 100644 --- a/src/sfeBmv080.cpp +++ b/src/sfeBmv080.cpp @@ -21,7 +21,10 @@ #include "bmv080.h" #include "bmv080_defs.h" -#define SPI_CLK_FREQ ((uint32_t)(1e6)) +// need our bus I2C type for some I2C specific features +#include "sfeTk/sfeTkII2C.h" + +#include // Some communication functions used with the system. These are from the original code from // Bosch - so keeping them the same. It is unclear if the library they provide depends on these @@ -41,95 +44,82 @@ // C function used in this library only - so static -#ifdef __cplusplus -extern "C" -{ -#endif /* __cplusplus */ - - /* Our bus read and write functions */ +/* Our bus read and write functions */ - // -------------------------------------------------------------------------------------------- - // Callback for reading data-- called from the Bosch supplied library - // - static int8_t device_read_16bit_CB(bmv080_sercom_handle_t handle, uint16_t header, uint16_t *payload, +// -------------------------------------------------------------------------------------------- +// BOSCH API Callbacks +// -------------------------------------------------------------------------------------------- +// Callback for reading data-- called from the Bosch supplied library +// +// static int8_t device_read_16bit_CB(bmv080_sercom_handle_t handle, uint16_t header, uint16_t *payload, +int8_t sfeBmv080::device_read_16bit_CB(bmv080_sercom_handle_t handle, uint16_t header, uint16_t *payload, uint16_t payload_length) - { - if (handle == nullptr) - return E_COMBRIDGE_ERROR_NULLPTR; +{ + if (handle == nullptr) + return E_COMBRIDGE_ERROR_NULLPTR; - // Our output var. - size_t nRead = 0; + // Our output var. + size_t nRead = 0; - // Get our sparkfun toolkit bus object/interface - sfeTkIBus *theBus = (sfeTkIBus *)handle; + // Get our sparkfun toolkit bus object/interface + sfeTkIBus *theBus = (sfeTkIBus *)handle; - if (theBus->type() == kBusTypeI2C) // I2C specific shift - header = header << 1; + if (theBus->type() == kBusTypeI2C) // I2C specific shift + header = header << 1; - sfeTkError_t rc = theBus->readRegister(header, payload, payload_length, nRead); + sfeTkError_t rc = theBus->readRegister(header, payload, payload_length, nRead); - if (rc != kSTkErrOk || nRead != payload_length) - return E_COMBRIDGE_ERROR_READ; + if (rc != kSTkErrOk || nRead != payload_length) + return E_COMBRIDGE_ERROR_READ; - return E_COMBRIDGE_OK; - } + return E_COMBRIDGE_OK; +} - // -------------------------------------------------------------------------------------------- - // Callback for reading data-- called from the Bosch supplied library - // - static int8_t device_write_16bit_CB(bmv080_sercom_handle_t handle, uint16_t header, const uint16_t *payload, +// -------------------------------------------------------------------------------------------- +// Callback for reading data-- called from the Bosch supplied library +// +int8_t sfeBmv080::device_write_16bit_CB(bmv080_sercom_handle_t handle, uint16_t header, const uint16_t *payload, uint16_t payload_length) - { - if (handle == nullptr) - return E_COMBRIDGE_ERROR_NULLPTR; - - sfeTkIBus *theBus = (sfeTkIBus *)handle; +{ + if (handle == nullptr) + return E_COMBRIDGE_ERROR_NULLPTR; - if (theBus->type() == kBusTypeI2C) // I2C specific shift - header = header << 1; + sfeTkIBus *theBus = (sfeTkIBus *)handle; - sfeTkError_t rc = theBus->writeRegister(header, payload, payload_length); + if (theBus->type() == kBusTypeI2C) // I2C specific shift + header = header << 1; - // okay, not okay? - return rc == kSTkErrOk ? E_COMBRIDGE_OK : E_COMBRIDGE_ERROR_WRITE; - } + sfeTkError_t rc = theBus->writeRegister(header, payload, payload_length); - // -------------------------------------------------------------------------------------------- - // Delay callback function for the Bosch library - // - static int8_t device_delay_CB(uint32_t period) - { - delay(period); - - return E_COMBRIDGE_OK; - } + // okay, not okay? + return rc == kSTkErrOk ? E_COMBRIDGE_OK : E_COMBRIDGE_ERROR_WRITE; +} - //--------------------------------------------------------------------- - // This function is just used in this file, so declaring it static +// -------------------------------------------------------------------------------------------- +// Delay callback function for the Bosch library +// +int8_t sfeBmv080::device_delay_CB(uint32_t period) +{ + sfeToolkit::delay_ms(period); + // delay(period); - /* Custom function for consuming sensor readings */ - static void use_sensor_output(bmv080_output_t bmv080_output, void *callback_parameters) - { - ((sfeBmv080 *)callback_parameters)->setSensorValue(bmv080_output); - } + return E_COMBRIDGE_OK; +} - //--------------------------------------------------------------------- - static void bmv080_service_routine(const bmv080_handle_t handle, void *callback_parameters) - { - /* The interrupt is served by the BMV080 sensor driver */ - bmv080_status_code_t bmv080_current_status = - bmv080_serve_interrupt(handle, (bmv080_callback_data_ready_t)use_sensor_output, callback_parameters); - if (bmv080_current_status != E_BMV080_OK) - { - // TODO: libraries should not output text by default, need to add a debug mode/flag to library? - printf("Fetching measurement data failed with BMV080 status %d\r\n", (int32_t)bmv080_current_status); - } - } +//--------------------------------------------------------------------- +// This function is just used in this file, so declaring it static -#ifdef __cplusplus +/* Custom function for consuming sensor readings */ +void sfeBmv080::set_sensor_value(bmv080_output_t bmv080_output, void *callback_parameters) +{ + ((sfeBmv080 *)callback_parameters)->setSensorValue(bmv080_output); } -#endif +//--------------------------------------------------------------------- +// End CB functions +//--------------------------------------------------------------------- +//--------------------------------------------------------------------- +// Core object implementation //--------------------------------------------------------------------- sfeTkError_t sfeBmv080::begin(sfeTkIBus *theBus) { @@ -173,19 +163,18 @@ void sfeBmv080::setSensorValue(bmv080_output_t bmv080_output) } //--------------------------------------------------------------------- -bool sfeBmv080::sensorValue(bmv080_output_t *bmv080_output, bool update_data /* default is true*/) +// Read the latest values from the sensor. +// +// Stash the values internally. If the +bool sfeBmv080::readSensor(bmv080_output_t *bmv080_output /* default is nullptr*/) { - if (!bmv080_output) + _dataAvailable = false; + if (!sensorServiceRoutine()) return false; - // Get the latest sensor data ... - if (update_data) - { - _dataAvailable = false; - bmv080_service_routine(bmv080_handle_class, this); - } - if (_dataAvailable) + if (_dataAvailable && bmv080_output != nullptr) *bmv080_output = _sensorValue; + return _dataAvailable; } @@ -196,13 +185,13 @@ bool sfeBmv080::setMode(uint8_t mode) if (mode == SFE_BMV080_MODE_CONTINUOUS) { - bmv080_current_status = bmv080_start_continuous_measurement(bmv080_handle_class); + bmv080_current_status = bmv080_start_continuous_measurement(_bmv080_handle_class); } else if (mode == SFE_BMV080_MODE_DUTY_CYCLE) { bmv080_duty_cycling_mode_t duty_cycling_mode = E_BMV080_DUTY_CYCLING_MODE_0; bmv080_current_status = bmv080_start_duty_cycling_measurement( - bmv080_handle_class, (bmv080_callback_tick_t)millis, duty_cycling_mode); + _bmv080_handle_class, (bmv080_callback_tick_t)sfeToolkit::ticks_ms(), duty_cycling_mode); } // check if the mode was set correctly @@ -217,17 +206,18 @@ bool sfeBmv080::setMode(uint8_t mode) } //--------------------------------------------------------------------- -bool sfeBmv080::isDataAvailable() +// Called to pump the service routine of the BMV080 sensor driver +// + +bool sfeBmv080::sensorServiceRoutine(void) { - bmv080_service_routine(bmv080_handle_class, this); - // TODO: What is the logic here? The expectation is that a user calls this before accessing any data? - if (_dataAvailable == true) - { - _dataAvailable = false; - return true; - } - else + if (_bmv080_handle_class == NULL) return false; + /* The interrupt is served by the BMV080 sensor driver */ + bmv080_status_code_t bmv080_current_status = + bmv080_serve_interrupt(_bmv080_handle_class, (bmv080_callback_data_ready_t)set_sensor_value, (void *)this); + + return (bmv080_current_status == E_BMV080_OK); } //--------------------------------------------------------------------- @@ -238,7 +228,9 @@ bool sfeBmv080::init() if (_theBus == nullptr) return false; - if (!getDriverVersion() || !open() || !reset() || !getID()) + uint16_t major, minor, patch; + char id[kBMV800IDLength]; + if (!driverVersion(major, minor, patch) || !open() || !reset() || !ID(id)) return false; return true; @@ -253,295 +245,174 @@ bool sfeBmv080::open() // Open the device - pass in the data read, data write and delay functions callbacks. Note - the "secrom_handle_t" // is just a pointer to our Tookkit communication bus objects - bmv080_status_code_t status = - bmv080_open(&bmv080_handle_class, (bmv080_sercom_handle_t)_theBus, (bmv080_callback_read_t)device_read_16bit_CB, - (bmv080_callback_write_t)device_write_16bit_CB, (bmv080_callback_delay_t)device_delay_CB); + bmv080_status_code_t status = bmv080_open( + &_bmv080_handle_class, (bmv080_sercom_handle_t)_theBus, (bmv080_callback_read_t)device_read_16bit_CB, + (bmv080_callback_write_t)device_write_16bit_CB, (bmv080_callback_delay_t)device_delay_CB); - if (status != E_BMV080_OK) - { - Serial.println("BMV080 open failed"); - return false; - } - else - { - Serial.println("BMV080 open successfully"); - return true; - } + return (status == E_BMV080_OK); } +//--------------------------------------------------------------------- bool sfeBmv080::reset() { - bmv080_status_code_t bmv080_current_status = bmv080_reset(bmv080_handle_class); + bmv080_status_code_t bmv080_current_status = bmv080_reset(_bmv080_handle_class); - if (bmv080_current_status != E_BMV080_OK) - { - Serial.println("BMV080 reset failed"); - return false; - } - else - { - Serial.println("BMV080 reset successfully"); - return true; - } + return (bmv080_current_status == E_BMV080_OK); } - -bool sfeBmv080::driverVersion() +//--------------------------------------------------------------------- +bool sfeBmv080::driverVersion(uint16_t &major, uint16_t &minor, uint16_t &patch) { - uint16_t major = 0; - uint16_t minor = 0; - uint16_t patch = 0; char git_hash[12]; int32_t commits_ahead = 0; bmv080_status_code_t bmv080_current_status = bmv080_get_driver_version(&major, &minor, &patch, git_hash, &commits_ahead); - if (bmv080_current_status != E_BMV080_OK) - { - printf("Error getting BMV080 driver version: %d\n", bmv080_current_status); - return false; - } - - printf("BMV080 driver version: %d.%d.%d\n", major, minor, patch); - return true; + return (bmv080_current_status == E_BMV080_OK); } -bool sfeBmv080::ID() +//--------------------------------------------------------------------- + +// Method to get the ID +bool sfeBmv080::ID(char idOut[kBMV800IDLength]) { - char id[13]; - memset(id, 0x00, 13); - bmv080_status_code_t bmv080_current_status = bmv080_get_sensor_id(bmv080_handle_class, id); + memset(idOut, 0x00, kBMV800IDLength); + bmv080_status_code_t bmv080_current_status = bmv080_get_sensor_id(_bmv080_handle_class, idOut); - if (bmv080_current_status != E_BMV080_OK) - { - printf("Error getting BMV080 sensor ID: %d\n", bmv080_current_status); - return false; - } - else - { - printf("BMV080 sensor ID: %s\n", id); - return true; - } + return (bmv080_current_status == E_BMV080_OK); } +//--------------------------------------------------------------------- uint16_t sfeBmv080::dutyCyclingPeriod() { uint16_t duty_cycling_period = 0; bmv080_status_code_t bmv080_current_status = - bmv080_get_parameter(bmv080_handle_class, "duty_cycling_period", (void *)&duty_cycling_period); - if (bmv080_current_status != E_BMV080_OK) - { - printf("Error getting BMV080 Duty Cycling Period: %d\n", bmv080_current_status); - return 0; - } - else - { - printf("BMV080 Duty Cycling Period Read: %d\n", duty_cycling_period); - return duty_cycling_period; - } + bmv080_get_parameter(_bmv080_handle_class, "duty_cycling_period", (void *)&duty_cycling_period); + + return (bmv080_current_status == E_BMV080_OK ? duty_cycling_period : 0); } +//--------------------------------------------------------------------- bool sfeBmv080::setDutyCyclingPeriod(uint16_t duty_cycling_period) { bmv080_status_code_t bmv080_current_status = - bmv080_set_parameter(bmv080_handle_class, "duty_cycling_period", (void *)&duty_cycling_period); - if (bmv080_current_status != E_BMV080_OK) - { - printf("Error setting BMV080 Duty Cycling Period: %d\n", bmv080_current_status); - return false; - } - else - { - printf("BMV080 Duty Cycling Period Set: %d\n", duty_cycling_period); - return true; - } + bmv080_set_parameter(_bmv080_handle_class, "duty_cycling_period", (void *)&duty_cycling_period); + + return (bmv080_current_status == E_BMV080_OK); } +//--------------------------------------------------------------------- float sfeBmv080::volumetricMassDensity() { float volumetric_mass_density = 0.0; bmv080_status_code_t bmv080_current_status = - bmv080_get_parameter(bmv080_handle_class, "volumetric_mass_density", (void *)&volumetric_mass_density); - if (bmv080_current_status != E_BMV080_OK) - { -// TODO: libraries should not output text by default, need to add a debug mode/flag to library? - printf("Error getting BMV080 Volumetric Mass Density: %d\n", bmv080_current_status); - return 0.0; - } - else - { - return volumetric_mass_density; - } + bmv080_get_parameter(_bmv080_handle_class, "volumetric_mass_density", (void *)&volumetric_mass_density); + + return (bmv080_current_status == E_BMV080_OK ? volumetric_mass_density : 0.0); } +//--------------------------------------------------------------------- bool sfeBmv080::setVolumetricMassDensity(float volumetric_mass_density) { bmv080_status_code_t bmv080_current_status = - bmv080_set_parameter(bmv080_handle_class, "volumetric_mass_density", (void *)&volumetric_mass_density); - if (bmv080_current_status != E_BMV080_OK) - { - // TODO: libraries should not output text by default, need to add a debug mode/flag to library? - printf("Error setting BMV080 Volumetric Mass Density: %d\n", bmv080_current_status); - return false; - } - else - { - return true; - } + bmv080_set_parameter(_bmv080_handle_class, "volumetric_mass_density", (void *)&volumetric_mass_density); + + return (bmv080_current_status == E_BMV080_OK); } +//--------------------------------------------------------------------- float sfeBmv080::integrationTime() { float integration_time = 0.0; bmv080_status_code_t bmv080_current_status = - bmv080_get_parameter(bmv080_handle_class, "integration_time", (void *)&integration_time); - if (bmv080_current_status != E_BMV080_OK) - { // todo -- no printf in library - printf("Error getting BMV080 Integration Time: %d\n", bmv080_current_status); - return 0.0; - } - else - { - return integration_time; - } + bmv080_get_parameter(_bmv080_handle_class, "integration_time", (void *)&integration_time); + + return (bmv080_current_status == E_BMV080_OK ? integration_time : 0.0); } +//--------------------------------------------------------------------- bool sfeBmv080::setIntegrationTime(float integration_time) { bmv080_status_code_t bmv080_current_status = - bmv080_set_parameter(bmv080_handle_class, "integration_time", (void *)&integration_time); - if (bmv080_current_status != E_BMV080_OK) - { - printf("Error setting BMV080 Integration Time: %d\n", bmv080_current_status); - return false; - } - else - { - return true; - } + bmv080_set_parameter(_bmv080_handle_class, "integration_time", (void *)&integration_time); + + return (bmv080_current_status == E_BMV080_OK); } +//--------------------------------------------------------------------- uint32_t sfeBmv080::distributionId() { uint32_t distribution_id = 0; bmv080_status_code_t bmv080_current_status = - bmv080_get_parameter(bmv080_handle_class, "distribution_id", (void *)&distribution_id); - if (bmv080_current_status != E_BMV080_OK) - { - printf("Error getting BMV080 Distribution ID: %d\n", bmv080_current_status); - return 0; - } - else - { - return distribution_id; - } + bmv080_get_parameter(_bmv080_handle_class, "distribution_id", (void *)&distribution_id); + + return (bmv080_current_status == E_BMV080_OK ? distribution_id : 0); } +//--------------------------------------------------------------------- + bool sfeBmv080::setDistributionId(uint32_t distribution_id) { bmv080_status_code_t bmv080_current_status = - bmv080_set_parameter(bmv080_handle_class, "distribution_id", (void *)&distribution_id); - if (bmv080_current_status != E_BMV080_OK) - { - printf("Error setting BMV080 Distribution ID: %d\n", bmv080_current_status); - return false; - } - else - { - return true; - } + bmv080_set_parameter(_bmv080_handle_class, "distribution_id", (void *)&distribution_id); + + return (bmv080_current_status == E_BMV080_OK); } +//--------------------------------------------------------------------- bool sfeBmv080::doObstructionDetection() { bool do_obstruction_detection = false; bmv080_status_code_t bmv080_current_status = - bmv080_get_parameter(bmv080_handle_class, "do_obstruction_detection", (void *)&do_obstruction_detection); - if (bmv080_current_status != E_BMV080_OK) - { - printf("Error getting BMV080 Obstruction Detection: %d\n", bmv080_current_status); - return false; - } - else - { - return do_obstruction_detection; - } + bmv080_get_parameter(_bmv080_handle_class, "do_obstruction_detection", (void *)&do_obstruction_detection); + + return (bmv080_current_status == E_BMV080_OK ? do_obstruction_detection : false); } +//--------------------------------------------------------------------- bool sfeBmv080::setDoObstructionDetection(bool do_obstruction_detection) { bmv080_status_code_t bmv080_current_status = - bmv080_set_parameter(bmv080_handle_class, "do_obstruction_detection", (void *)&do_obstruction_detection); - if (bmv080_current_status != E_BMV080_OK) - { - printf("Error setting BMV080 Obstruction Detection: %d\n", bmv080_current_status); - return false; - } - else - { - return true; - } + bmv080_set_parameter(_bmv080_handle_class, "do_obstruction_detection", (void *)&do_obstruction_detection); + + return (bmv080_current_status == E_BMV080_OK); } +//--------------------------------------------------------------------- bool sfeBmv080::doVibrationFiltering() { bool do_vibration_filtering = false; bmv080_status_code_t bmv080_current_status = - bmv080_get_parameter(bmv080_handle_class, "do_vibration_filtering", (void *)&do_vibration_filtering); - if (bmv080_current_status != E_BMV080_OK) - { - printf("Error getting BMV080 Vibration Filtering: %d\n", bmv080_current_status); - return false; - } - else - { - return do_vibration_filtering; - } + bmv080_get_parameter(_bmv080_handle_class, "do_vibration_filtering", (void *)&do_vibration_filtering); + + return (bmv080_current_status == E_BMV080_OK ? do_vibration_filtering : false); } +//--------------------------------------------------------------------- bool sfeBmv080::setDoVibrationFiltering(bool do_vibration_filtering) { bmv080_status_code_t bmv080_current_status = - bmv080_set_parameter(bmv080_handle_class, "do_vibration_filtering", (void *)&do_vibration_filtering); - if (bmv080_current_status != E_BMV080_OK) - { - printf("Error setting BMV080 Vibration Filtering: %d\n", bmv080_current_status); - return false; - } - else - { - return true; - } + bmv080_set_parameter(_bmv080_handle_class, "do_vibration_filtering", (void *)&do_vibration_filtering); + + return (bmv080_current_status == E_BMV080_OK); } +//--------------------------------------------------------------------- uint8_t sfeBmv080::measurementAlgorithm() { bmv080_measurement_algorithm_t measurement_algorithm; bmv080_status_code_t bmv080_current_status = - bmv080_get_parameter(bmv080_handle_class, "measurement_algorithm", (void *)&measurement_algorithm); - if (bmv080_current_status != E_BMV080_OK) - { - printf("Error getting BMV080 Measurement Algorithm: %d\n", bmv080_current_status); - return 0; - } - else - { - return (uint8_t)measurement_algorithm; - } + bmv080_get_parameter(_bmv080_handle_class, "measurement_algorithm", (void *)&measurement_algorithm); + + return (bmv080_current_status == E_BMV080_OK ? (uint8_t)measurement_algorithm : 0); } +//--------------------------------------------------------------------- bool sfeBmv080::setMeasurementAlgorithm(uint8_t measurement_algorithm) { bmv080_measurement_algorithm_t bmv080_measurement_algorithm = (bmv080_measurement_algorithm_t)measurement_algorithm; bmv080_status_code_t bmv080_current_status = - bmv080_set_parameter(bmv080_handle_class, "measurement_algorithm", (void *)&bmv080_measurement_algorithm); - if (bmv080_current_status != E_BMV080_OK) - { - printf("Error setting BMV080 Measurement Algorithm: %d\n", bmv080_current_status); - return false; - } - else - { - return true; - } + bmv080_set_parameter(_bmv080_handle_class, "measurement_algorithm", (void *)&bmv080_measurement_algorithm); + + return (bmv080_current_status == E_BMV080_OK); } \ No newline at end of file diff --git a/src/sfeBmv080.h b/src/sfeBmv080.h index ddbbb33..ec55fed 100644 --- a/src/sfeBmv080.h +++ b/src/sfeBmv080.h @@ -8,13 +8,11 @@ This file implements the BMV080 class, prototyped in SparkFun_BMV080_Arduino_Library.h Development environment specifics: - IDE: Arduino 2.3.3 - Hardware Platform: SparkFun IoT Redboard ESP32 BMV080 Breakout HW Version: v01 SPDX-License-Identifier: MIT - Copyright (c) 2024 SparkFun Electronics + Copyright (c) 2025 SparkFun Electronics Distributed as-is; no warranty is given. ******************************************************************************/ @@ -24,7 +22,8 @@ #include "bmv080.h" #include "bmv080_defs.h" -#include +// Include the platform independent layer of the SparkFun Toolkit +#include #include #define SFE_BMV080_DEFAULT_ADDRESS 0x57 @@ -33,19 +32,6 @@ #define SFE_BMV080_MODE_CONTINUOUS 0 #define SFE_BMV080_MODE_DUTY_CYCLE 1 -// #define SPI_CLK_FREQ ((uint32_t)(1e6)) // 1 MHz -#define SPI_CLK_FREQ 1000000u // 1 MHz - -typedef struct -{ - /*! Instance of arduino SPI protocol instance */ - SPIClass *instance; - /*! Instance of arduino SPI settings to be applied before every transmission */ - SPISettings settings; -} spi_device_t; - - - class sfeBmv080 { public: @@ -63,23 +49,29 @@ class sfeBmv080 /// @details This function initializes the sensor and should be called /// @details before any other functions. It calls Open, Reset, getDriverVersion, and getID. /// @return True if successful, false otherwise - bool init(); + bool init(void); - /// @brief Get the version information of this sensor driver. + /// @brief Get the version information of this sensor driver - the vendor supplied version. + /// @param major Major version number + /// @param minor Minor version number + /// @param patch Patch version number /// @return True if successful, false otherwise - bool driverVersion(); + bool driverVersion(uint16_t &major, uint16_t &minor, uint16_t &patch); /// @brief Open a sensor unit by initializing a new handle. /// @return True if successful, false otherwise - bool open(); + bool open(void); /// @brief Reset the sensor /// @return True if successful, false otherwise - bool reset(); + bool reset(void); + // ID Buffer len + static const size_t kBMV800IDLength = 13; /// @brief Get the ID of the sensor + /// @param idOut Buffer to return the ID in - must be 13 bytes long /// @return True if successful, false otherwise - bool ID(); + bool ID(char idOut[kBMV800IDLength]); /// @brief Set the mode of the sensor /// @param mode SFE_BMV080_MODE_CONTINUOUS, SFE_BMV080_MODE_DUTY_CYCLE @@ -88,29 +80,23 @@ class sfeBmv080 /// @brief Get the PM2.5 value /// @return The PM2.5 value as a float in ug/m3 - float PM25(); + float PM25(void); /// @brief Get the PM1 value /// @return The PM1 value as a float in ug/m3 - float PM1(); + float PM1(void); /// @brief Get the obstruction status /// @return True if obstructed, false otherwise bool isObstructed(); + // "Internal" method to set the se void setSensorValue(bmv080_output_t bmv080_output); - /// @brief Get the sensor value - /// @param bmv080_output pointer to value output struct - /// @param update_data if true, update the data from the sensor + /// @brief Get the sensor value, update internal value cache and return the value if requested + /// @param bmv080_output pointer to value output struct - if nullptr, no data is returned /// @return true on success, false if no data is available - bool sensorValue(bmv080_output_t *bmv080_output, bool update_data = true); - - /// @brief Check if new data is available - /// @details This function should be called in the main loop to check if new data is available - /// @details If new data is available, the data can be read using PM25 and isObstructed - /// @return True if new data is available, false otherwise - bool isDataAvailable(); + bool readSensor(bmv080_output_t *bmv080_output = nullptr); /// @brief Get the duty cycling period /// @return The duty cycling period in seconds @@ -176,7 +162,17 @@ class sfeBmv080 bool setMeasurementAlgorithm(uint8_t measurement_algorithm); private: - bmv080_handle_t bmv080_handle_class = NULL; + // bosch bmv080 library callback functions (static methods to be used as callbacks) + static int8_t device_read_16bit_CB(bmv080_sercom_handle_t, uint16_t, uint16_t *, uint16_t); + static int8_t device_write_16bit_CB(bmv080_sercom_handle_t, uint16_t, const uint16_t *, uint16_t); + static int8_t device_delay_CB(uint32_t); + static void set_sensor_value(bmv080_output_t, void *); + + /// @brief Called to pump the service routine of the BMV080 sensor driver + /// @return True on success, false on failure + bool sensorServiceRoutine(void); + + bmv080_handle_t _bmv080_handle_class = NULL; bool _dataAvailable = false; bmv080_output_t _sensorValue; From 162affdba7ede490f79c1d694f8f321eddc31ba1 Mon Sep 17 00:00:00 2001 From: Kirk Benell Date: Fri, 7 Feb 2025 14:53:16 -0700 Subject: [PATCH 32/38] add toolkit depenancy to library props --- library.properties | 1 + 1 file changed, 1 insertion(+) diff --git a/library.properties b/library.properties index 4a355d2..bbfe96a 100644 --- a/library.properties +++ b/library.properties @@ -8,4 +8,5 @@ category=Sensor url=https://github.com/sparkfun/SparkFun_Qwiic_OLED_Arduino_Library architectures=esp32,esp32s2,esp32s3,cortex-m33,cortex-m0plus,cortex-m4f precompiled=true +depends=SparkFun Toolkit ldflags=-lbmv080 From af45c9fa518da56a4f30bd670f773fea797729ea Mon Sep 17 00:00:00 2001 From: Kirk Benell Date: Mon, 10 Feb 2025 12:44:13 -0700 Subject: [PATCH 33/38] moved to the newer pattern for core toolkit functions --- src/sfeBmv080.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/sfeBmv080.cpp b/src/sfeBmv080.cpp index 242cda8..a07392a 100644 --- a/src/sfeBmv080.cpp +++ b/src/sfeBmv080.cpp @@ -22,6 +22,7 @@ #include "bmv080_defs.h" // need our bus I2C type for some I2C specific features +#include "sfeTk/sfeToolkit.h" #include "sfeTk/sfeTkII2C.h" #include @@ -100,7 +101,7 @@ int8_t sfeBmv080::device_write_16bit_CB(bmv080_sercom_handle_t handle, uint16_t // int8_t sfeBmv080::device_delay_CB(uint32_t period) { - sfeToolkit::delay_ms(period); + sfeTk_delay_ms(period); // delay(period); return E_COMBRIDGE_OK; @@ -191,7 +192,7 @@ bool sfeBmv080::setMode(uint8_t mode) { bmv080_duty_cycling_mode_t duty_cycling_mode = E_BMV080_DUTY_CYCLING_MODE_0; bmv080_current_status = bmv080_start_duty_cycling_measurement( - _bmv080_handle_class, (bmv080_callback_tick_t)sfeToolkit::ticks_ms(), duty_cycling_mode); + _bmv080_handle_class, (bmv080_callback_tick_t)sfeTk_ticks_ms(), duty_cycling_mode); } // check if the mode was set correctly From 28707791f089881d541450fa0b4eb7d0c890e6a4 Mon Sep 17 00:00:00 2001 From: Kirk Benell Date: Mon, 10 Feb 2025 15:52:09 -0700 Subject: [PATCH 34/38] moved core files to sfeTk/ sub-dir; changed core class name to match evolving naming pattern --- src/SparkFun_BMV080_Arduino_Library.h | 12 +-- src/{ => sfeTk}/bmv080.h | 0 src/{ => sfeTk}/bmv080_defs.h | 0 src/{sfeBmv080.cpp => sfeTk/sfeDevBMV080.cpp} | 92 +++++++++---------- src/{sfeBmv080.h => sfeTk/sfeDevBMV080.h} | 9 +- 5 files changed, 51 insertions(+), 62 deletions(-) rename src/{ => sfeTk}/bmv080.h (100%) rename src/{ => sfeTk}/bmv080_defs.h (100%) rename src/{sfeBmv080.cpp => sfeTk/sfeDevBMV080.cpp} (84%) rename src/{sfeBmv080.h => sfeTk/sfeDevBMV080.h} (98%) diff --git a/src/SparkFun_BMV080_Arduino_Library.h b/src/SparkFun_BMV080_Arduino_Library.h index 999037d..f0ee587 100644 --- a/src/SparkFun_BMV080_Arduino_Library.h +++ b/src/SparkFun_BMV080_Arduino_Library.h @@ -3,7 +3,7 @@ SparkFun BMV080 Library header file by Pete Lewis @SparkFun Electronics - September 2024 + September 2025 This file implements the BMV080 class, prototyped in SparkFun_BMV080_Arduino_Library.h @@ -23,7 +23,7 @@ #include -#include "sfeBmv080.h" +#include "sfeTk/sfeDevBMV080.h" // The BMV080 Bosch API requires a larger than usual stack size // In particular, bmv080_serve_interrupt is the culprit. @@ -33,7 +33,7 @@ SET_LOOP_TASK_STACK_SIZE(60 * 1024); // 60KB #endif -class SparkFunBMV080I2C : public sfeBmv080 +class SparkFunBMV080I2C : public sfeDevBMV080 { public: /// @brief Begins the Device @@ -47,7 +47,7 @@ class SparkFunBMV080I2C : public sfeBmv080 _theI2CBus.setByteOrder(SFTK_MSBFIRST); // Begin the sensor - sfeTkError_t rc = sfeBmv080::begin(&_theI2CBus); + sfeTkError_t rc = sfeDevBMV080::begin(&_theI2CBus); return rc == kSTkErrOk ? isConnected() : false; } @@ -63,7 +63,7 @@ class SparkFunBMV080I2C : public sfeBmv080 sfeTkArdI2C _theI2CBus; }; -class SparkFunBMV080SPI : public sfeBmv080 +class SparkFunBMV080SPI : public sfeDevBMV080 { public: /// @brief Begins the Device with SPI as the communication bus @@ -78,7 +78,7 @@ class SparkFunBMV080SPI : public sfeBmv080 _theSPIBus.init(spiPort, spiSettings, csPin, true); // Begin the sensor - sfeTkError_t rc = sfeBmv080::begin(&_theSPIBus); + sfeTkError_t rc = sfeDevBMV080::begin(&_theSPIBus); return rc == kSTkErrOk ? true : false; } diff --git a/src/bmv080.h b/src/sfeTk/bmv080.h similarity index 100% rename from src/bmv080.h rename to src/sfeTk/bmv080.h diff --git a/src/bmv080_defs.h b/src/sfeTk/bmv080_defs.h similarity index 100% rename from src/bmv080_defs.h rename to src/sfeTk/bmv080_defs.h diff --git a/src/sfeBmv080.cpp b/src/sfeTk/sfeDevBMV080.cpp similarity index 84% rename from src/sfeBmv080.cpp rename to src/sfeTk/sfeDevBMV080.cpp index a07392a..34fd80d 100644 --- a/src/sfeBmv080.cpp +++ b/src/sfeTk/sfeDevBMV080.cpp @@ -1,29 +1,26 @@ /****************************************************************************** - sfeBmv080.cpp + sfeDevBMV080.cpp SparkFun BMV080 Library CPP file by Pete Lewis @SparkFun Electronics September 2024 - Development environment specifics: - IDE: Arduino 2.3.3 - Hardware Platform: SparkFun IoT Redboard ESP32 BMV080 Breakout HW Version: v01 SPDX-License-Identifier: MIT - Copyright (c) 2024 SparkFun Electronics + Copyright (c) 2025 SparkFun Electronics Distributed as-is; no warranty is given. ******************************************************************************/ -#include "sfeBmv080.h" +#include "sfeDevBMV080.h" #include "bmv080.h" #include "bmv080_defs.h" // need our bus I2C type for some I2C specific features -#include "sfeTk/sfeToolkit.h" #include "sfeTk/sfeTkII2C.h" +#include "sfeTk/sfeToolkit.h" #include @@ -53,8 +50,8 @@ // Callback for reading data-- called from the Bosch supplied library // // static int8_t device_read_16bit_CB(bmv080_sercom_handle_t handle, uint16_t header, uint16_t *payload, -int8_t sfeBmv080::device_read_16bit_CB(bmv080_sercom_handle_t handle, uint16_t header, uint16_t *payload, - uint16_t payload_length) +int8_t sfeDevBMV080::device_read_16bit_CB(bmv080_sercom_handle_t handle, uint16_t header, uint16_t *payload, + uint16_t payload_length) { if (handle == nullptr) return E_COMBRIDGE_ERROR_NULLPTR; @@ -79,8 +76,8 @@ int8_t sfeBmv080::device_read_16bit_CB(bmv080_sercom_handle_t handle, uint16_t h // -------------------------------------------------------------------------------------------- // Callback for reading data-- called from the Bosch supplied library // -int8_t sfeBmv080::device_write_16bit_CB(bmv080_sercom_handle_t handle, uint16_t header, const uint16_t *payload, - uint16_t payload_length) +int8_t sfeDevBMV080::device_write_16bit_CB(bmv080_sercom_handle_t handle, uint16_t header, const uint16_t *payload, + uint16_t payload_length) { if (handle == nullptr) return E_COMBRIDGE_ERROR_NULLPTR; @@ -99,7 +96,7 @@ int8_t sfeBmv080::device_write_16bit_CB(bmv080_sercom_handle_t handle, uint16_t // -------------------------------------------------------------------------------------------- // Delay callback function for the Bosch library // -int8_t sfeBmv080::device_delay_CB(uint32_t period) +int8_t sfeDevBMV080::device_delay_CB(uint32_t period) { sfeTk_delay_ms(period); // delay(period); @@ -108,12 +105,12 @@ int8_t sfeBmv080::device_delay_CB(uint32_t period) } //--------------------------------------------------------------------- -// This function is just used in this file, so declaring it static +// helpful class method/callback /* Custom function for consuming sensor readings */ -void sfeBmv080::set_sensor_value(bmv080_output_t bmv080_output, void *callback_parameters) +void sfeDevBMV080::set_sensor_value(bmv080_output_t bmv080_output, void *callback_parameters) { - ((sfeBmv080 *)callback_parameters)->setSensorValue(bmv080_output); + ((sfeDevBMV080 *)callback_parameters)->setSensorValue(bmv080_output); } //--------------------------------------------------------------------- @@ -122,7 +119,7 @@ void sfeBmv080::set_sensor_value(bmv080_output_t bmv080_output, void *callback_p //--------------------------------------------------------------------- // Core object implementation //--------------------------------------------------------------------- -sfeTkError_t sfeBmv080::begin(sfeTkIBus *theBus) +sfeTkError_t sfeDevBMV080::begin(sfeTkIBus *theBus) { // Nullptr check if (theBus == nullptr) @@ -135,25 +132,25 @@ sfeTkError_t sfeBmv080::begin(sfeTkIBus *theBus) } //--------------------------------------------------------------------- -float sfeBmv080::PM25() +float sfeDevBMV080::PM25() { return _sensorValue.pm2_5_mass_concentration; } //--------------------------------------------------------------------- -float sfeBmv080::PM1() +float sfeDevBMV080::PM1() { return _sensorValue.pm1_mass_concentration; } //--------------------------------------------------------------------- -bool sfeBmv080::isObstructed() +bool sfeDevBMV080::isObstructed() { return _sensorValue.is_obstructed; } //--------------------------------------------------------------------- -void sfeBmv080::setSensorValue(bmv080_output_t bmv080_output) +void sfeDevBMV080::setSensorValue(bmv080_output_t bmv080_output) { // TODO: should here be a mode where the library user can set register a callback function to handle the data? // This way the end user can get all the sensor data at once - possible issue is stack/re-entrancy @@ -167,7 +164,7 @@ void sfeBmv080::setSensorValue(bmv080_output_t bmv080_output) // Read the latest values from the sensor. // // Stash the values internally. If the -bool sfeBmv080::readSensor(bmv080_output_t *bmv080_output /* default is nullptr*/) +bool sfeDevBMV080::readSensor(bmv080_output_t *bmv080_output /* default is nullptr*/) { _dataAvailable = false; if (!sensorServiceRoutine()) @@ -180,9 +177,9 @@ bool sfeBmv080::readSensor(bmv080_output_t *bmv080_output /* default is nullptr* } //--------------------------------------------------------------------- -bool sfeBmv080::setMode(uint8_t mode) +bool sfeDevBMV080::setMode(uint8_t mode) { - bmv080_status_code_t bmv080_current_status; // return status from the Bosch API function + bmv080_status_code_t bmv080_current_status = E_BMV080_ERROR_PARAM_INVALID_VALUE; // return status from the Bosch API function if (mode == SFE_BMV080_MODE_CONTINUOUS) { @@ -196,21 +193,14 @@ bool sfeBmv080::setMode(uint8_t mode) } // check if the mode was set correctly - if (bmv080_current_status == E_BMV080_OK) - { - return true; - } - else - { - return false; - } + return (bmv080_current_status == E_BMV080_OK); } //--------------------------------------------------------------------- // Called to pump the service routine of the BMV080 sensor driver // -bool sfeBmv080::sensorServiceRoutine(void) +bool sfeDevBMV080::sensorServiceRoutine(void) { if (_bmv080_handle_class == NULL) return false; @@ -223,7 +213,7 @@ bool sfeBmv080::sensorServiceRoutine(void) //--------------------------------------------------------------------- // Our init method -bool sfeBmv080::init() +bool sfeDevBMV080::init() { // Do we have a bus? if (_theBus == nullptr) @@ -238,7 +228,7 @@ bool sfeBmv080::init() } //--------------------------------------------------------------------- -bool sfeBmv080::open() +bool sfeDevBMV080::open() { if (_theBus == nullptr) return false; @@ -254,14 +244,14 @@ bool sfeBmv080::open() } //--------------------------------------------------------------------- -bool sfeBmv080::reset() +bool sfeDevBMV080::reset() { bmv080_status_code_t bmv080_current_status = bmv080_reset(_bmv080_handle_class); return (bmv080_current_status == E_BMV080_OK); } //--------------------------------------------------------------------- -bool sfeBmv080::driverVersion(uint16_t &major, uint16_t &minor, uint16_t &patch) +bool sfeDevBMV080::driverVersion(uint16_t &major, uint16_t &minor, uint16_t &patch) { char git_hash[12]; int32_t commits_ahead = 0; @@ -275,7 +265,7 @@ bool sfeBmv080::driverVersion(uint16_t &major, uint16_t &minor, uint16_t &patch) //--------------------------------------------------------------------- // Method to get the ID -bool sfeBmv080::ID(char idOut[kBMV800IDLength]) +bool sfeDevBMV080::ID(char idOut[kBMV800IDLength]) { memset(idOut, 0x00, kBMV800IDLength); bmv080_status_code_t bmv080_current_status = bmv080_get_sensor_id(_bmv080_handle_class, idOut); @@ -284,7 +274,7 @@ bool sfeBmv080::ID(char idOut[kBMV800IDLength]) } //--------------------------------------------------------------------- -uint16_t sfeBmv080::dutyCyclingPeriod() +uint16_t sfeDevBMV080::dutyCyclingPeriod() { uint16_t duty_cycling_period = 0; bmv080_status_code_t bmv080_current_status = @@ -294,7 +284,7 @@ uint16_t sfeBmv080::dutyCyclingPeriod() } //--------------------------------------------------------------------- -bool sfeBmv080::setDutyCyclingPeriod(uint16_t duty_cycling_period) +bool sfeDevBMV080::setDutyCyclingPeriod(uint16_t duty_cycling_period) { bmv080_status_code_t bmv080_current_status = bmv080_set_parameter(_bmv080_handle_class, "duty_cycling_period", (void *)&duty_cycling_period); @@ -303,7 +293,7 @@ bool sfeBmv080::setDutyCyclingPeriod(uint16_t duty_cycling_period) } //--------------------------------------------------------------------- -float sfeBmv080::volumetricMassDensity() +float sfeDevBMV080::volumetricMassDensity() { float volumetric_mass_density = 0.0; bmv080_status_code_t bmv080_current_status = @@ -313,7 +303,7 @@ float sfeBmv080::volumetricMassDensity() } //--------------------------------------------------------------------- -bool sfeBmv080::setVolumetricMassDensity(float volumetric_mass_density) +bool sfeDevBMV080::setVolumetricMassDensity(float volumetric_mass_density) { bmv080_status_code_t bmv080_current_status = bmv080_set_parameter(_bmv080_handle_class, "volumetric_mass_density", (void *)&volumetric_mass_density); @@ -322,7 +312,7 @@ bool sfeBmv080::setVolumetricMassDensity(float volumetric_mass_density) } //--------------------------------------------------------------------- -float sfeBmv080::integrationTime() +float sfeDevBMV080::integrationTime() { float integration_time = 0.0; bmv080_status_code_t bmv080_current_status = @@ -332,7 +322,7 @@ float sfeBmv080::integrationTime() } //--------------------------------------------------------------------- -bool sfeBmv080::setIntegrationTime(float integration_time) +bool sfeDevBMV080::setIntegrationTime(float integration_time) { bmv080_status_code_t bmv080_current_status = bmv080_set_parameter(_bmv080_handle_class, "integration_time", (void *)&integration_time); @@ -341,7 +331,7 @@ bool sfeBmv080::setIntegrationTime(float integration_time) } //--------------------------------------------------------------------- -uint32_t sfeBmv080::distributionId() +uint32_t sfeDevBMV080::distributionId() { uint32_t distribution_id = 0; bmv080_status_code_t bmv080_current_status = @@ -352,7 +342,7 @@ uint32_t sfeBmv080::distributionId() //--------------------------------------------------------------------- -bool sfeBmv080::setDistributionId(uint32_t distribution_id) +bool sfeDevBMV080::setDistributionId(uint32_t distribution_id) { bmv080_status_code_t bmv080_current_status = bmv080_set_parameter(_bmv080_handle_class, "distribution_id", (void *)&distribution_id); @@ -361,7 +351,7 @@ bool sfeBmv080::setDistributionId(uint32_t distribution_id) } //--------------------------------------------------------------------- -bool sfeBmv080::doObstructionDetection() +bool sfeDevBMV080::doObstructionDetection() { bool do_obstruction_detection = false; bmv080_status_code_t bmv080_current_status = @@ -371,7 +361,7 @@ bool sfeBmv080::doObstructionDetection() } //--------------------------------------------------------------------- -bool sfeBmv080::setDoObstructionDetection(bool do_obstruction_detection) +bool sfeDevBMV080::setDoObstructionDetection(bool do_obstruction_detection) { bmv080_status_code_t bmv080_current_status = bmv080_set_parameter(_bmv080_handle_class, "do_obstruction_detection", (void *)&do_obstruction_detection); @@ -380,7 +370,7 @@ bool sfeBmv080::setDoObstructionDetection(bool do_obstruction_detection) } //--------------------------------------------------------------------- -bool sfeBmv080::doVibrationFiltering() +bool sfeDevBMV080::doVibrationFiltering() { bool do_vibration_filtering = false; bmv080_status_code_t bmv080_current_status = @@ -390,7 +380,7 @@ bool sfeBmv080::doVibrationFiltering() } //--------------------------------------------------------------------- -bool sfeBmv080::setDoVibrationFiltering(bool do_vibration_filtering) +bool sfeDevBMV080::setDoVibrationFiltering(bool do_vibration_filtering) { bmv080_status_code_t bmv080_current_status = bmv080_set_parameter(_bmv080_handle_class, "do_vibration_filtering", (void *)&do_vibration_filtering); @@ -399,7 +389,7 @@ bool sfeBmv080::setDoVibrationFiltering(bool do_vibration_filtering) } //--------------------------------------------------------------------- -uint8_t sfeBmv080::measurementAlgorithm() +uint8_t sfeDevBMV080::measurementAlgorithm() { bmv080_measurement_algorithm_t measurement_algorithm; bmv080_status_code_t bmv080_current_status = @@ -409,7 +399,7 @@ uint8_t sfeBmv080::measurementAlgorithm() } //--------------------------------------------------------------------- -bool sfeBmv080::setMeasurementAlgorithm(uint8_t measurement_algorithm) +bool sfeDevBMV080::setMeasurementAlgorithm(uint8_t measurement_algorithm) { bmv080_measurement_algorithm_t bmv080_measurement_algorithm = (bmv080_measurement_algorithm_t)measurement_algorithm; bmv080_status_code_t bmv080_current_status = diff --git a/src/sfeBmv080.h b/src/sfeTk/sfeDevBMV080.h similarity index 98% rename from src/sfeBmv080.h rename to src/sfeTk/sfeDevBMV080.h index ec55fed..adade22 100644 --- a/src/sfeBmv080.h +++ b/src/sfeTk/sfeDevBMV080.h @@ -1,13 +1,12 @@ /****************************************************************************** - sfeBmv080.h + sfeDevBMV080.h SparkFun BMV080 Library header file by Pete Lewis @SparkFun Electronics - September 2024 + September 2025 This file implements the BMV080 class, prototyped in SparkFun_BMV080_Arduino_Library.h - Development environment specifics: BMV080 Breakout HW Version: v01 SPDX-License-Identifier: MIT @@ -32,11 +31,11 @@ #define SFE_BMV080_MODE_CONTINUOUS 0 #define SFE_BMV080_MODE_DUTY_CYCLE 1 -class sfeBmv080 +class sfeDevBMV080 { public: /// @brief Default constructor - sfeBmv080() : _theBus{nullptr} + sfeDevBMV080() : _theBus{nullptr} { } From eb639241c1f7621c51ce2e60fac5cc4cc892b068 Mon Sep 17 00:00:00 2001 From: Kirk Benell Date: Tue, 11 Feb 2025 11:27:41 -0700 Subject: [PATCH 35/38] move to use new toolkit function names --- src/sfeTk/sfeDevBMV080.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/sfeTk/sfeDevBMV080.cpp b/src/sfeTk/sfeDevBMV080.cpp index 34fd80d..f2394ae 100644 --- a/src/sfeTk/sfeDevBMV080.cpp +++ b/src/sfeTk/sfeDevBMV080.cpp @@ -98,7 +98,7 @@ int8_t sfeDevBMV080::device_write_16bit_CB(bmv080_sercom_handle_t handle, uint16 // int8_t sfeDevBMV080::device_delay_CB(uint32_t period) { - sfeTk_delay_ms(period); + sftk_delay_ms(period); // delay(period); return E_COMBRIDGE_OK; @@ -189,7 +189,7 @@ bool sfeDevBMV080::setMode(uint8_t mode) { bmv080_duty_cycling_mode_t duty_cycling_mode = E_BMV080_DUTY_CYCLING_MODE_0; bmv080_current_status = bmv080_start_duty_cycling_measurement( - _bmv080_handle_class, (bmv080_callback_tick_t)sfeTk_ticks_ms(), duty_cycling_mode); + _bmv080_handle_class, (bmv080_callback_tick_t)sftk_ticks_ms(), duty_cycling_mode); } // check if the mode was set correctly @@ -233,8 +233,8 @@ bool sfeDevBMV080::open() if (_theBus == nullptr) return false; - // Open the device - pass in the data read, data write and delay functions callbacks. Note - the "secrom_handle_t" - // is just a pointer to our Tookkit communication bus objects + // Open the device - pass in the data read, data write and delay functions callbacks. Note - the "sercom_handle_t" + // is just a pointer to our Toolkit communication bus objects bmv080_status_code_t status = bmv080_open( &_bmv080_handle_class, (bmv080_sercom_handle_t)_theBus, (bmv080_callback_read_t)device_read_16bit_CB, From b6b4224cf1a969aa6627762f1369637b3f2be0f4 Mon Sep 17 00:00:00 2001 From: Kirk Benell Date: Wed, 12 Feb 2025 10:29:30 -0700 Subject: [PATCH 36/38] fix comment --- src/sfeTk/sfeDevBMV080.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sfeTk/sfeDevBMV080.cpp b/src/sfeTk/sfeDevBMV080.cpp index f2394ae..0a57986 100644 --- a/src/sfeTk/sfeDevBMV080.cpp +++ b/src/sfeTk/sfeDevBMV080.cpp @@ -163,7 +163,7 @@ void sfeDevBMV080::setSensorValue(bmv080_output_t bmv080_output) //--------------------------------------------------------------------- // Read the latest values from the sensor. // -// Stash the values internally. If the +// Return the value if a struct is passed in. bool sfeDevBMV080::readSensor(bmv080_output_t *bmv080_output /* default is nullptr*/) { _dataAvailable = false; From bc8edc2f79344ae7dc074f44031965f80f2ec507 Mon Sep 17 00:00:00 2001 From: Kirk Benell Date: Wed, 12 Feb 2025 19:30:00 -0700 Subject: [PATCH 37/38] copilot-fu on the method doxygen comments --- src/sfeTk/sfeDevBMV080.h | 568 ++++++++++++++++++++++++++++++++++----- 1 file changed, 498 insertions(+), 70 deletions(-) diff --git a/src/sfeTk/sfeDevBMV080.h b/src/sfeTk/sfeDevBMV080.h index adade22..30c4bce 100644 --- a/src/sfeTk/sfeDevBMV080.h +++ b/src/sfeTk/sfeDevBMV080.h @@ -39,136 +39,564 @@ class sfeDevBMV080 { } - /// @brief Begins the Device - /// @param theBus SparkFun Toolkit bus to use for communication - /// @return 0 for succuss, negative for errors, positive for warnings + /** + * @brief Begins communication with the BMV080 sensor + * + * This method initializes the communication interface with the sensor. + * It must be called before init() and any other operations with the sensor. + * + * @param theBus SparkFun Toolkit bus interface to use for communication. + * + * @return sfeTkError_t Status code: + * - 0: Success + * - Negative: Error occurred + * - Positive: Warning condition + * + * @see init() + * @see open() + */ sfeTkError_t begin(sfeTkIBus *theBus = nullptr); - /// @brief Initialize the sensor - /// @details This function initializes the sensor and should be called - /// @details before any other functions. It calls Open, Reset, getDriverVersion, and getID. - /// @return True if successful, false otherwise + /** + * @brief Initializes the BMV080 sensor + * + * This method performs complete initialization of the sensor by: + * - Opening communication with the sensor + * - Performing a soft reset + * - Getting driver version information + * - Reading the sensor ID + * + * It must be called after begin() and before attempting any other operations. + * + * @return true if initialization was successful + * @return false if any initialization step failed + * + * @see begin() + * @see open() + * @see reset() + * @see driverVersion() + * @see ID() + */ bool init(void); - /// @brief Get the version information of this sensor driver - the vendor supplied version. - /// @param major Major version number - /// @param minor Minor version number - /// @param patch Patch version number - /// @return True if successful, false otherwise + /** + * @brief Gets the version information of the BMV080 sensor driver + * + * This method retrieves the vendor-supplied version information for the + * sensor driver software. The version follows semantic versioning format + * with major, minor, and patch numbers. + * + * @param[out] major Major version number indicating incompatible API changes + * @param[out] minor Minor version number indicating backwards-compatible functionality + * @param[out] patch Patch version number indicating backwards-compatible bug fixes + * + * @return true if the version information was successfully retrieved + * @return false if there was an error getting the version information + * + * @see init() + */ bool driverVersion(uint16_t &major, uint16_t &minor, uint16_t &patch); - /// @brief Open a sensor unit by initializing a new handle. - /// @return True if successful, false otherwise + /** + * @brief Opens and initializes communication with the BMV080 sensor + * + * This method initializes a new handle for communicating with the sensor. + * It must be called before attempting to configure or read from the sensor. + * + * @return true if the sensor was successfully opened and handle created + * @return false if the sensor could not be opened or handle creation failed + * + * @note This method is automatically called by init() + * + * @see init() + * @see begin() + */ bool open(void); - /// @brief Reset the sensor - /// @return True if successful, false otherwise + /** + * @brief Resets the BMV080 sensor to its default state + * + * This method performs a soft reset of the sensor, returning all settings + * to their default values. The sensor will need to be reconfigured after + * a reset. + * + * @return true if the reset was successful + * @return false if the reset failed + * + * @note After reset, you may need to reinitialize settings like operational mode + * and duty cycling period + * + * @see init() + * @see setMode() + */ bool reset(void); - // ID Buffer len + /** + * @brief Length of the BMV080 sensor ID string buffer + * + * This constant defines the required buffer size for storing the sensor's + * unique identification string. The buffer must be at least this size + * when calling the ID() method. + * + * @see ID() + */ static const size_t kBMV800IDLength = 13; - /// @brief Get the ID of the sensor - /// @param idOut Buffer to return the ID in - must be 13 bytes long - /// @return True if successful, false otherwise + /** + * @brief Gets the unique identifier of the BMV080 sensor + * + * This method retrieves the sensor's unique identification string. + * The ID can be used to distinguish between different BMV080 sensors + * or verify the sensor's authenticity. + * + * @param[out] idOut Buffer to store the sensor's ID string. + * Must be at least kBMV800IDLength (13) bytes long. + * + * @return true if the ID was successfully retrieved + * @return false if there was an error reading the ID + * + * @note The buffer must be pre-allocated with at least kBMV800IDLength bytes + * + * @see kBMV800IDLength + */ bool ID(char idOut[kBMV800IDLength]); - /// @brief Set the mode of the sensor - /// @param mode SFE_BMV080_MODE_CONTINUOUS, SFE_BMV080_MODE_DUTY_CYCLE - /// @return True if successful, false otherwise + /** + * @brief Sets the operational mode of the BMV080 sensor + * + * This method configures how the sensor takes measurements. It supports two modes: + * continuous measurement or duty-cycled measurement. + * + * @param mode The desired operational mode: + * - SFE_BMV080_MODE_CONTINUOUS: Sensor takes measurements continuously + * - SFE_BMV080_MODE_DUTY_CYCLE: Sensor takes measurements at specified intervals + * + * @return true if the mode was set successfully + * @return false if setting the mode failed + * + * @note When using duty cycle mode, the measurement interval can be configured + * using setDutyCyclingPeriod() + * + * @see setDutyCyclingPeriod() + * @see readSensor() + * @see bmv080_output_t + */ bool setMode(uint8_t mode); - /// @brief Get the PM2.5 value - /// @return The PM2.5 value as a float in ug/m3 + /** + * @brief Gets the PM2.5 (particulate matter ≤2.5 µm) concentration + * + * This method returns the latest PM2.5 reading from the sensor's internal cache. + * The value represents the mass concentration of particles with a diameter + * of 2.5 micrometers or less. + * + * @return The PM2.5 concentration in micrograms per cubic meter (µg/m³) + * + * @note The PM2.5 value is updated when readSensor() is called + * + * @see readSensor() + * @see PM1() + * @see bmv080_output_t + */ float PM25(void); - /// @brief Get the PM1 value - /// @return The PM1 value as a float in ug/m3 + /** + * @brief Gets the PM1 (particulate matter ≤1.0 µm) concentration + * + * This method returns the latest PM1 reading from the sensor's internal cache. + * The value represents the mass concentration of particles with a diameter + * of 1.0 micrometers or less. + * + * @return The PM1 concentration in micrograms per cubic meter (µg/m³) + * + * @note The PM1 value is updated when readSensor() is called + * + * @see readSensor() + * @see PM25() + * @see bmv080_output_t + */ float PM1(void); - /// @brief Get the obstruction status - /// @return True if obstructed, false otherwise + /** + * @brief Checks if the BMV080 sensor is obstructed + * + * This method returns the obstruction status from the latest sensor reading. + * An obstruction could be caused by dust, debris, or other particles + * blocking the sensor's optical path. + * + * @return true if the sensor is obstructed + * @return false if the sensor is not obstructed + * + * @note The obstruction status is updated when readSensor() is called + * + * @see readSensor() + * @see bmv080_output_t + */ bool isObstructed(); - // "Internal" method to set the se + /** + * @brief Internal method to set sensor values from callback + * + * This method is called by the BMV080 driver callback to update internal sensor data. + * It stores the latest sensor readings and sets the data available flag. + * + * @param bmv080_output The sensor output structure containing the latest readings + * including PM2.5, PM1, and obstruction status + * + * @note This is primarily an internal method used as part of the callback mechanism + * from the Bosch BMV080 driver. It should not typically be called directly + * by library users. + * + * @see set_sensor_value() + * @see bmv080_output_t + */ void setSensorValue(bmv080_output_t bmv080_output); - /// @brief Get the sensor value, update internal value cache and return the value if requested - /// @param bmv080_output pointer to value output struct - if nullptr, no data is returned - /// @return true on success, false if no data is available + /** + * @brief Reads the latest sensor values from the BMV080 + * + * This method triggers a sensor reading and updates the internal data cache. + * If a pointer to a bmv080_output_t struct is provided, it will be populated + * with the latest sensor values. + * + * @param[out] bmv080_output Optional pointer to a bmv080_output_t struct to store the sensor readings. + * If nullptr (default), the values are only stored internally. + * + * @return true if new data was successfully read from the sensor + * @return false if the sensor read failed or no new data is available + * + * @note This method clears the _dataAvailable flag before attempting to read new data + * + * @see sensorServiceRoutine() + * @see bmv080_output_t + */ bool readSensor(bmv080_output_t *bmv080_output = nullptr); - /// @brief Get the duty cycling period - /// @return The duty cycling period in seconds + /** + * @brief Gets the current duty cycling period setting + * + * Returns the time interval between measurements when the sensor is in + * duty cycle mode. This setting has no effect when the sensor is in + * continuous measurement mode. + * + * @return The duty cycling period in seconds + * + * @note This setting only affects the sensor when in SFE_BMV080_MODE_DUTY_CYCLE mode + * + * @see setDutyCyclingPeriod() + * @see setMode() + */ uint16_t dutyCyclingPeriod(); - /// @brief Set the duty cycling period - /// @param period The duty cycling period in seconds - /// @return True if successful, false otherwise + /** + * @brief Sets the time interval between measurements in duty cycle mode + * + * This method configures how frequently the sensor takes measurements when + * operating in duty cycle mode. A longer period reduces power consumption + * but provides less frequent updates. + * + * @param duty_cycling_period The time between measurements in seconds + * + * @return true if the period was successfully set + * @return false if setting the period failed + * + * @note This setting only takes effect when the sensor is in SFE_BMV080_MODE_DUTY_CYCLE mode + * + * @see dutyCyclingPeriod() + * @see setMode() + */ bool setDutyCyclingPeriod(uint16_t duty_cycling_period); - /// @brief Get a parameter: "volumetric_mass_density" - /// @return float volumetric_mass_density + /** + * @brief Gets the volumetric mass density setting + * + * This method returns the current volumetric mass density setting used for + * particle concentration calculations. This value affects how the sensor + * converts between particle counts and mass concentrations. + * + * @return The volumetric mass density in grams per cubic centimeter (g/cm³) + * + * @see setVolumetricMassDensity() + * @see PM25() + * @see PM1() + */ float volumetricMassDensity(); - /// @brief Set a parameter: "volumetric_mass_density" - /// @param volumetric_mass_density - /// @return True if successful, false otherwise + /** + * @brief Sets the volumetric mass density for particle concentration calculations + * + * This method configures the density value used to convert between particle + * counts and mass concentrations. This setting affects the accuracy of + * PM2.5 and PM1 measurements based on the expected particle density. + * + * @param volumetric_mass_density The particle density in grams per cubic centimeter (g/cm³) + * + * @return true if the density was successfully set + * @return false if setting the density failed + * + * @see volumetricMassDensity() + * @see PM25() + * @see PM1() + */ bool setVolumetricMassDensity(float volumetric_mass_density); - /// @brief Get a parameter: "integration_time" - /// @return float integration_time + /** + * @brief Gets the sensor's integration time setting + * + * This method returns the current integration time setting used for + * particle measurements. The integration time affects the sensor's + * measurement accuracy and response time. + * + * @return The integration time in milliseconds (ms) + * + * @see setIntegrationTime() + * @see readSensor() + */ float integrationTime(); - /// @brief Set a parameter: "integration_time" - /// @param integration_time - /// @return True if successful, false otherwise + /** + * @brief Sets the sensor's integration time for measurements + * + * This method configures the integration time used for particle measurements. + * Longer integration times can improve measurement accuracy but increase + * response time and power consumption. + * + * @param integration_time The measurement integration time in milliseconds (ms) + * + * @return true if the integration time was successfully set + * @return false if setting the integration time failed + * + * @see integrationTime() + * @see readSensor() + */ bool setIntegrationTime(float integration_time); - /// @brief Get a parameter: "distribution_id" - /// @return uint32_t distribution_id + /** + * @brief Gets the current distribution ID setting + * + * This method returns the distribution ID used by the sensor for particle + * size classification. The distribution ID affects how particles are + * categorized into different size bins. + * + * @return The current distribution ID value + * + * @see setDistributionId() + * @see PM25() + * @see PM1() + */ uint32_t distributionId(); - /// @brief Set a parameter: "distribution_id" - /// @param distribution_id - /// @return True if successful, false otherwise + /** + * @brief Sets the distribution ID for particle size classification + * + * This method configures which particle size distribution model the sensor + * uses for classifying particles. Different distribution IDs are optimized + * for different types of particles and environments. + * + * @param distribution_id The distribution ID to use for particle classification + * + * @return true if the distribution ID was successfully set + * @return false if setting the distribution ID failed + * + * @see distributionId() + * @see PM25() + * @see PM1() + */ bool setDistributionId(uint32_t distribution_id); - /// @brief Get a parameter: "do_obstruction_detection" - /// @return bool do_obstruction_detection + /** + * @brief Gets the obstruction detection setting + * + * This method returns whether the sensor's obstruction detection feature + * is enabled. When enabled, the sensor will monitor for any blockages + * in its optical path. + * + * @return true if obstruction detection is enabled + * @return false if obstruction detection is disabled + * + * @see setDoObstructionDetection() + * @see isObstructed() + */ bool doObstructionDetection(); - /// @brief Set a parameter: "do_obstruction_detection" - /// @param do_obstruction_detection - /// @return True if successful, false otherwise + /** + * @brief Enables or disables the sensor's obstruction detection feature + * + * This method controls whether the sensor actively monitors for obstructions + * in its optical path. When enabled, the sensor will report blockages + * through the isObstructed() method. + * + * @param do_obstruction_detection true to enable obstruction detection, + * false to disable it + * + * @return true if the setting was successfully changed + * @return false if changing the setting failed + * + * @see doObstructionDetection() + * @see isObstructed() + */ bool setDoObstructionDetection(bool do_obstruction_detection); - /// @brief Get a parameter: "do_vibration_filtering" - /// @return bool do_vibration_filtering + /** + * @brief Gets the vibration filtering setting + * + * This method returns whether the sensor's vibration filtering feature + * is enabled. When enabled, the sensor applies algorithms to reduce + * measurement noise caused by mechanical vibrations. + * + * @return true if vibration filtering is enabled + * @return false if vibration filtering is disabled + * + * @see setDoVibrationFiltering() + * @see readSensor() + */ bool doVibrationFiltering(); - /// @brief Set a parameter: "do_vibration_filtering" - /// @param do_vibration_filtering - /// @return True if successful, false otherwise + /** + * @brief Enables or disables vibration filtering + * + * This method controls whether the sensor applies vibration filtering + * algorithms to reduce measurement noise caused by mechanical vibrations. + * Enabling this feature can improve measurement accuracy in environments + * with significant vibration. + * + * @param do_vibration_filtering true to enable vibration filtering, + * false to disable it + * + * @return true if the setting was successfully changed + * @return false if changing the setting failed + * + * @see doVibrationFiltering() + * @see readSensor() + */ bool setDoVibrationFiltering(bool do_vibration_filtering); - /// @brief Get a parameter: "measurement_algorithm" - /// @return uint8_t measurement_algorithm + /** + * @brief Gets the current measurement algorithm setting + * + * This method returns the measurement algorithm used by the sensor for + * particle analysis. Different algorithms can be optimized for specific + * measurement conditions or particle types. + * + * @return The current measurement algorithm identifier + * + * @see setMeasurementAlgorithm() + * @see readSensor() + */ uint8_t measurementAlgorithm(); - /// @brief Set a parameter: "measurement_algorithm" - /// @param measurement_algorithm - /// @return True if successful, false otherwise + /** + * @brief Sets the measurement algorithm for particle analysis + * + * This method configures which algorithm the sensor uses for analyzing + * particle measurements. Different algorithms can be optimized for + * specific types of particles or measurement environments. + * + * @param measurement_algorithm The algorithm identifier to use for measurements + * + * @return true if the algorithm was successfully set + * @return false if setting the algorithm failed + * + * @see measurementAlgorithm() + * @see readSensor() + */ bool setMeasurementAlgorithm(uint8_t measurement_algorithm); private: // bosch bmv080 library callback functions (static methods to be used as callbacks) + /** + * @brief Callback function for reading 16-bit values from the BMV080 sensor + * + * This static method serves as a callback for the Bosch BMV080 driver to read + * 16-bit registers from the sensor over the communication bus. + * + * @param handle The SERCOM handle for communication with the sensor + * @param reg_addr The register address to read from + * @param[out] reg_data Pointer to store the read data + * @param len Number of 16-bit words to read + * + * @return int8_t Status code: + * - 0: Success + * - Negative: Error occurred + * + * @note This is an internal callback used by the Bosch BMV080 driver + * + * @see device_write_16bit_CB() + */ static int8_t device_read_16bit_CB(bmv080_sercom_handle_t, uint16_t, uint16_t *, uint16_t); + + /** + * @brief Callback function for writing 16-bit values to the BMV080 sensor + * + * This static method serves as a callback for the Bosch BMV080 driver to write + * 16-bit registers to the sensor over the communication bus. + * + * @param handle The SERCOM handle for communication with the sensor + * @param reg_addr The register address to write to + * @param[in] reg_data Pointer to the data to write + * @param len Number of 16-bit words to write + * + * @return int8_t Status code: + * - 0: Success + * - Negative: Error occurred + * + * @note This is an internal callback used by the Bosch BMV080 driver + * + * @see device_read_16bit_CB() + */ static int8_t device_write_16bit_CB(bmv080_sercom_handle_t, uint16_t, const uint16_t *, uint16_t); + + /** + * @brief Callback function for implementing delays in the BMV080 sensor driver + * + * This static method serves as a callback for the Bosch BMV080 driver to + * implement timing delays required by the sensor operations. + * + * @param delay_ms The delay duration in milliseconds + * + * @return int8_t Status code: + * - 0: Success + * - Negative: Error occurred + * + * @note This is an internal callback used by the Bosch BMV080 driver + * + * @see device_read_16bit_CB() + * @see device_write_16bit_CB() + */ static int8_t device_delay_CB(uint32_t); + + /** + * @brief Static callback for updating sensor values from the BMV080 driver + * + * This static method serves as a callback function for the Bosch BMV080 driver + * to update sensor readings. It receives new measurement data and passes it + * to the appropriate instance through the void pointer to user data. + * + * @param bmv080_output The sensor output structure containing the latest readings + * @param[in] user_data Pointer to the sfeDevBMV080 instance (cast from void*) + * + * @note This is an internal callback used by the Bosch BMV080 driver + * + * @see setSensorValue() + * @see bmv080_output_t + */ static void set_sensor_value(bmv080_output_t, void *); - /// @brief Called to pump the service routine of the BMV080 sensor driver - /// @return True on success, false on failure + /** + * @brief Services the BMV080 sensor driver + * + * This method pumps the service routine of the BMV080 sensor driver, + * allowing it to process measurements and update sensor values. + * It is called internally by readSensor() to maintain proper + * sensor operation. + * + * @return true if the service routine completed successfully + * @return false if an error occurred during servicing + * + * @note This is an internal method used by the driver + * + * @see readSensor() + * @see set_sensor_value() + */ bool sensorServiceRoutine(void); bmv080_handle_t _bmv080_handle_class = NULL; From 8c2215b4466ffef1f59e838fb5f6d8b81704abdd Mon Sep 17 00:00:00 2001 From: Kirk Benell Date: Thu, 13 Feb 2025 11:45:08 -0700 Subject: [PATCH 38/38] add IBus include file --- src/sfeTk/sfeDevBMV080.h | 1 + 1 file changed, 1 insertion(+) diff --git a/src/sfeTk/sfeDevBMV080.h b/src/sfeTk/sfeDevBMV080.h index 30c4bce..3ee5b2e 100644 --- a/src/sfeTk/sfeDevBMV080.h +++ b/src/sfeTk/sfeDevBMV080.h @@ -23,6 +23,7 @@ // Include the platform independent layer of the SparkFun Toolkit #include +#include #include #define SFE_BMV080_DEFAULT_ADDRESS 0x57