From ec4a328b76be5a74ce84b447f564bf5311029d16 Mon Sep 17 00:00:00 2001 From: ScioSenseBot Date: Wed, 29 Oct 2025 14:40:57 +0000 Subject: [PATCH] 1.1.1 --- README.md | 2 +- library.properties | 2 +- src/lib/ens190/ScioSense_Ens190.inl.h | 2 +- ...ScioSense_IOInterface_Arduino_Ens16x_SPI.h | 74 ------------------- ...ScioSense_IOInterface_Arduino_Ens220_SPI.h | 74 ------------------- .../io/ScioSense_IOInterface_Arduino_I2C.h | 71 ------------------ 6 files changed, 3 insertions(+), 222 deletions(-) delete mode 100644 src/lib/io/ScioSense_IOInterface_Arduino_Ens16x_SPI.h delete mode 100644 src/lib/io/ScioSense_IOInterface_Arduino_Ens220_SPI.h delete mode 100644 src/lib/io/ScioSense_IOInterface_Arduino_I2C.h diff --git a/README.md b/README.md index 6fe6a80..866843b 100644 --- a/README.md +++ b/README.md @@ -39,7 +39,7 @@ For the installation of the ESP32 in the Arduino IDE, see [Arduino ESP32 Install ### General Please make sure that you use the correct supply voltage: -- The ENS190 runs at VDD = 5V. +- The ENS190 runs at VDD = 5 V. - The serial communication runs at 5V, and supports UART, RS485, and Modbus. ### Example UART with ESP32 diff --git a/library.properties b/library.properties index b41a108..d256bfe 100644 --- a/library.properties +++ b/library.properties @@ -1,5 +1,5 @@ name=ScioSense_ENS190 -version=1.1.0 +version=1.1.1 author=ScioSense maintainer=ScioSense sentence=Library for the ENS190 CO2 sensor by ScioSense diff --git a/src/lib/ens190/ScioSense_Ens190.inl.h b/src/lib/ens190/ScioSense_Ens190.inl.h index dc3b84a..088d52b 100644 --- a/src/lib/ens190/ScioSense_Ens190.inl.h +++ b/src/lib/ens190/ScioSense_Ens190.inl.h @@ -274,7 +274,7 @@ static inline Result Ens190_SetCo2Baseline(ScioSense_Ens190* ens190, uint16_t co uint8_t rbuff[ENS190_COMMAND_RESPONSE_CO2_BASELINE_LENGTH]; - result = Ens190_Invoke(ens190, commandSetCo2Baseline, ENS190_COMMAND_GET_ALARM_THRESHOLDS_LENGTH, rbuff, ENS190_COMMAND_RESPONSE_CO2_BASELINE_LENGTH); + result = Ens190_Invoke(ens190, commandSetCo2Baseline, ENS190_COMMAND_SET_CO2_BASELINE_LENGTH, rbuff, ENS190_COMMAND_RESPONSE_CO2_BASELINE_LENGTH); if (result == RESULT_OK) { diff --git a/src/lib/io/ScioSense_IOInterface_Arduino_Ens16x_SPI.h b/src/lib/io/ScioSense_IOInterface_Arduino_Ens16x_SPI.h deleted file mode 100644 index 3abe9bf..0000000 --- a/src/lib/io/ScioSense_IOInterface_Arduino_Ens16x_SPI.h +++ /dev/null @@ -1,74 +0,0 @@ -#ifndef SCIOSENSE_IO_INTERFACE_ARDUINO_SPI_H -#define SCIOSENSE_IO_INTERFACE_ARDUINO_SPI_H - -#include -#include - -typedef struct ScioSense_Arduino_Ens16x_Spi_Config -{ - SPIClass* spi; - uint8_t csPin; - bool useSpiSettings; - SPISettings settings; -} ScioSense_Arduino_Ens16x_Spi_Config; - -static inline int8_t ScioSense_Arduino_Spi_Read(void* config, const uint16_t address, uint8_t* data, const size_t size) -{ - ScioSense_Arduino_Ens16x_Spi_Config* _config = ((ScioSense_Arduino_Ens16x_Spi_Config*)config); - - if (_config->useSpiSettings) - { - _config->spi->beginTransaction(_config->settings); - } - - digitalWrite(_config->csPin, LOW); - { - _config->spi->transfer(((uint8_t)address << 1) + 1); - for (size_t i = 0; i < size; i++) - { - data[i] = _config->spi->transfer(0xff); - } - } - digitalWrite(_config->csPin, HIGH); - - if (_config->useSpiSettings) - { - _config->spi->endTransaction(); - } - - return 0; // RESULT_OK; -} - -static inline int8_t ScioSense_Arduino_Spi_Write(void* config, const uint16_t address, uint8_t* data, const size_t size) -{ - ScioSense_Arduino_Ens16x_Spi_Config* _config = ((ScioSense_Arduino_Ens16x_Spi_Config*)config); - - if (_config->useSpiSettings) - { - _config->spi->beginTransaction(_config->settings); - } - - digitalWrite(_config->csPin, LOW); - { - for (size_t i = 0; i < size; i++) - { - _config->spi->transfer(((uint8_t)address + i) << 1); - _config->spi->transfer(data[i]); - } - } - digitalWrite(_config->csPin, HIGH); - - if (_config->useSpiSettings) - { - _config->spi->endTransaction(); - } - - return 0; // RESULT_OK; -} - -static inline void ScioSense_Arduino_Spi_Wait(uint32_t ms) -{ - delay(ms); -} - -#endif // SCIOSENSE_IO_INTERFACE_ARDUINO_SPI_H \ No newline at end of file diff --git a/src/lib/io/ScioSense_IOInterface_Arduino_Ens220_SPI.h b/src/lib/io/ScioSense_IOInterface_Arduino_Ens220_SPI.h deleted file mode 100644 index 53b1f41..0000000 --- a/src/lib/io/ScioSense_IOInterface_Arduino_Ens220_SPI.h +++ /dev/null @@ -1,74 +0,0 @@ -#ifndef SCIOSENSE_IO_INTERFACE_ARDUINO_ENS220_SPI_H -#define SCIOSENSE_IO_INTERFACE_ARDUINO_ENS220_SPI_H - -#include -#include - -typedef struct ScioSense_Arduino_Ens220_Spi_Config -{ - SPIClass* spi; - uint8_t csPin; - bool useSpiSettings; - SPISettings settings; -} ScioSense_Arduino_Ens220_Spi_Config; - -static inline int8_t ScioSense_Arduino_Spi_Read(void* config, const uint16_t address, uint8_t* data, const size_t size) -{ - ScioSense_Arduino_Ens220_Spi_Config* _config = ((ScioSense_Arduino_Ens220_Spi_Config*)config); - - if (_config->useSpiSettings) - { - _config->spi->beginTransaction(_config->settings); - } - - digitalWrite(_config->csPin, LOW); - { - _config->spi->transfer(((uint8_t)address << 2) + 1); - for (size_t i = 0; i < size; i++) - { - data[i] = _config->spi->transfer(0xff); - } - } - digitalWrite(_config->csPin, HIGH); - - if (_config->useSpiSettings) - { - _config->spi->endTransaction(); - } - - return 0; // RESULT_OK; -} - -static inline int8_t ScioSense_Arduino_Spi_Write(void* config, const uint16_t address, uint8_t* data, const size_t size) -{ - ScioSense_Arduino_Ens220_Spi_Config* _config = ((ScioSense_Arduino_Ens220_Spi_Config*)config); - - if (_config->useSpiSettings) - { - _config->spi->beginTransaction(_config->settings); - } - - digitalWrite(_config->csPin, LOW); - { - _config->spi->transfer((uint8_t)address << 2); - for (size_t i = 0; i < size; i++) - { - _config->spi->transfer(data[i]); - } - } - digitalWrite(_config->csPin, HIGH); - - if (_config->useSpiSettings) - { - _config->spi->endTransaction(); - } - - return 0; // RESULT_OK; -} - -static inline void ScioSense_Arduino_Spi_Wait(uint32_t ms) -{ - delay(ms); -} - -#endif // SCIOSENSE_IO_INTERFACE_ARDUINO_ENS220_SPI_H \ No newline at end of file diff --git a/src/lib/io/ScioSense_IOInterface_Arduino_I2C.h b/src/lib/io/ScioSense_IOInterface_Arduino_I2C.h deleted file mode 100644 index a5aca1c..0000000 --- a/src/lib/io/ScioSense_IOInterface_Arduino_I2C.h +++ /dev/null @@ -1,71 +0,0 @@ -#ifndef SCIOSENSE_IO_INTERFACE_ARDUINO_I2C_H -#define SCIOSENSE_IO_INTERFACE_ARDUINO_I2C_H - -#include -#include - -//// simple example IO Interface implementation - -typedef struct ScioSense_Arduino_I2c_Config -{ - TwoWire* wire; - unsigned char address; -} ScioSense_Arduino_I2c_Config; - -static inline int8_t ScioSense_Arduino_I2c_Read(void* config, const uint16_t address, uint8_t* data, const size_t size) -{ - const uint8_t MAX_CHUNK_SIZE= 32; - TwoWire* wire = ((ScioSense_Arduino_I2c_Config*)config)->wire; - unsigned char slaveAddress = ((ScioSense_Arduino_I2c_Config*)config)->address; - - size_t len = 0; - while (len < size) - { - wire->beginTransmission(slaveAddress); - wire->write((uint8_t)(address + len)); - - if (wire->endTransmission(false) == 0) // 0 == success - { - size_t bytesToRequest = (MAX_CHUNK_SIZE < (size - len) ? MAX_CHUNK_SIZE : (size - len)); - wire->requestFrom(slaveAddress, bytesToRequest); - size_t n = wire->readBytes(data + len, bytesToRequest); - len += n; - - if (n == 0) - { - break; - } - } - - if (len == size) - { - return 0; // RESULT_OK; - } - } - - return 1; // RESULT_IO_ERROR; -} - -static inline int8_t ScioSense_Arduino_I2c_Write(void* config, const uint16_t address, uint8_t* data, const size_t size) -{ - - TwoWire* wire = ((ScioSense_Arduino_I2c_Config*)config)->wire; - unsigned char slaveAddress = ((ScioSense_Arduino_I2c_Config*)config)->address; - - wire->beginTransmission(slaveAddress); - wire->write((uint8_t)address); - wire->write(data, size); - if (wire->endTransmission() == 0) // 0 == success - { - return 0; // RESULT_OK; - } - - return 1; // RESULT_IO_ERROR; -} - -static inline void ScioSense_Arduino_I2c_Wait(uint32_t ms) -{ - delay(ms); -} - -#endif // SCIOSENSE_IO_INTERFACE_ARDUINO_I2C_H \ No newline at end of file