Program Listing for File xensiv_pas_gas_ino.hpp
↰ Return to documentation for file (src/xensiv_pas_gas_ino.hpp)
#ifndef PAS_CO2_INO_HPP_
#define PAS_CO2_INO_HPP_
#include "corelib/xensiv_pas_gas.h"
#include "corelib/xensiv_pas_gas_a2l.h"
#include "corelib/xensiv_pas_gas_co2.h"
#include "corelib/xensiv_pas_gas_r290.h"
#include <Arduino.h>
#include <HardwareSerial.h>
#include <Wire.h>
typedef int32_t Error_t;
typedef xensiv_pas_gas_status_t Diag_t;
typedef xensiv_pas_gas_boc_cfg_t ABOC_t;
typedef enum
{
SENSOR_CO2,
SENSOR_R290,
SENSOR_A2L
} GasType_t;
#ifndef XENSIV_PAS_GAS_INVALID_SENSOR_TYPE
#define XENSIV_PAS_GAS_INVALID_SENSOR_TYPE 10
#endif
class XENSIV_PAS_GASIno
{
public:
static constexpr uint8_t unusedPin = 0xFFU;
XENSIV_PAS_GASIno(GasType_t gasType, TwoWire *wire = &Wire, uint8_t intPin = unusedPin);
XENSIV_PAS_GASIno(GasType_t gasType, HardwareSerial *serial, uint8_t intPin = unusedPin);
~XENSIV_PAS_GASIno();
Error_t begin();
Error_t end();
Error_t startMeasure(int16_t periodInSec = 0, int16_t alarmTh = 0, void (*cback)(void *) = nullptr,
bool earlyNotification = false);
Error_t stopMeasure();
Error_t getDiagnosis(Diag_t &diagnosis);
Error_t setABOC(ABOC_t aboc, int16_t abocRef);
Error_t setPressRef(uint16_t pressRef);
Error_t performForcedCompensation(uint16_t GASRef);
Error_t reset();
Error_t getProductID(uint8_t &prodID, uint8_t &revID);
Error_t getRegister(uint8_t regAddr, uint8_t *data, uint8_t len);
Error_t setRegister(uint8_t regAddr, const uint8_t *data, uint8_t len);
Error_t clearForcedCompensation();
Error_t getGasConcentration(float &value);
const char *getGasConcentrationUnitStr();
const char *getPasGasErrorStr(Error_t err);
protected:
TwoWire *i2c;
HardwareSerial *uart;
uint8_t intPin;
static constexpr uint16_t baudrateBps = 9600;
static constexpr uint32_t freqHz = 100000;
xensiv_pas_gas_t dev;
GasType_t gasType;
};
#endif