diff options
Diffstat (limited to 'peripheral/libupm/src/t8100/t8100.hpp')
-rw-r--r-- | peripheral/libupm/src/t8100/t8100.hpp | 379 |
1 files changed, 0 insertions, 379 deletions
diff --git a/peripheral/libupm/src/t8100/t8100.hpp b/peripheral/libupm/src/t8100/t8100.hpp deleted file mode 100644 index bc53d82..0000000 --- a/peripheral/libupm/src/t8100/t8100.hpp +++ /dev/null @@ -1,379 +0,0 @@ -/* - * Author: Jon Trulson <jtrulson@ics.com> - * Copyright (c) 2016 Intel Corporation. - * - * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files (the - * "Software"), to deal in the Software without restriction, including - * without limitation the rights to use, copy, modify, merge, publish, - * distribute, sublicense, and/or sell copies of the Software, and to - * permit persons to whom the Software is furnished to do so, subject to - * the following conditions: - * - * The above copyright notice and this permission notice shall be - * included in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE - * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION - * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION - * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - */ -#pragma once - -#include <string> -#include <map> - -#include "bacnetmstp.hpp" -#include "bacnetutil.hpp" - -namespace upm { - - /** - * @brief Amphenol Telaire Ventostat T8100 Ventilation Controller - * @defgroup t8100 libupm-t8100 - * @ingroup uart temp gaseous - */ - - /** - * @library t8100 - * @sensor t8100 - * @comname UPM API for the Amphenol Telaire Ventostat T8100 - * Ventilation Controller - * @type gaseous temp - * @man amphenol - * @con uart - * @web https://www.instrumart.com/products/configure/18180?quantity=1 - * - * @brief UPM API for the Amphenol Telaire Ventostat T8100 - * Ventilation Controller - * - * This module implements support for the Amphenol Telaire Ventostat - * T8100 Ventilation Controller with BACnet interface. It may also - * support the T8200 and T8300 models, but they have not been - * tested. - * - * The Telaire Ventostat T8100 reports Temperature, Humidity and CO2 - * concentrations. It supports an optional relay with a settable - * trigger point. The unit this driver was tested under did not - * support the optional relay. The temperature range supported is - * 0-50C, humidity is 0-100% non-condensing, and CO2 range is - * appoximately 0-2000 PPM for the T8100. Other sensors in this - * family support wider ranges. - * - * This module was developed using the upm::BACNETMSTP library, - * based on libbacnet-stack 0.8.3. Both libbacnet 0.8.3 and the - * upm::BACNETMSTP libraries must be present in order to build this - * module. - * - * It was connected using an RS232->RS485 interface. You cannot use - * the built in MCU TTL UART pins for accessing this device -- you - * must use a full Serial RS232->RS485 or USB-RS485 interface - * connected via USB. - * - * @snippet t8100.cxx Interesting - */ - - class T8100 : public BACNETUTIL { - public: - - // Supported Analog Value Objects. These are readable and writable. - typedef enum : uint32_t { - AV_Temperature_Offset = 1, - AV_RH_Offset = 2, - AV_Relay_Set_Point = 3, - AV_Relay_Hysteresis = 4, - AV_Elevation = 5, - AV_Calibration_Single_Point = 6, - AV_Baud_Rate = 7, - AV_MAC_Address = 8 - } ANALOG_VALUES_T; - - // Supported Analog Input Objects. These are read only. - typedef enum : uint32_t { - AI_CO2 = 1, - AI_Relative_Humidity = 2, - AI_Temperature_ChipCap = 3, - AI_Temperature_Thermistor = 4 - } ANALOG_INPUTS_T; - - // Supported Binary Value Objects. These are readable and writable. - typedef enum : uint32_t { - BV_Temperature_Units = 1, - BV_ABC_Logic_State = 2, - BV_ABC_Logic_Reset = 3, - BV_CO2_Calibration = 4 - } BINARY_VALUES_T; - - // Supported Binary Input Objects. These are read only. - typedef enum : uint32_t { - BI_Relay_State = 1 - } BINARY_INPUTS_T; - - - /** - * T8100 constructor - * - * @param targetDeviceObjectID the unique Instance ID of the - * Device Object. This number is used to uniquely identify - * devices on the BACnet network, and ranges from 1 to 4194302. - * This is not the device's MAC address, though on some devices, - * the MAC address may be used as part of this number. On the - * T8100, this number is 568XXX, where XXX are the 3 digits of the - * set MAC address. The MAC address is configured via DIP switches - * within the device. - */ - T8100(uint32_t targetDeviceObjectID); - - /** - * T8100 Destructor - */ - ~T8100(); - - /** - * Read current values from the sensor and update internal stored - * values for temperature, humidity, CO2 concentration and relay - * state. This method must be called prior to querying any - * of the aforementioned values. - */ - void update(); - - /** - * Get the current relative humidity. update() must have been - * called prior to calling this method. - * - * @return The last humidity reading - */ - float getHumidity() - { - return m_humidity; - } - - /** - * Get the current CO2 concentration in Parts per Million (PPM). - * update() must have been called prior to calling this method. - * - * @return The last CO2 reading - */ - float getCO2() - { - return m_co2; - } - - /** - * Get the current temperature. update() must have been called - * prior to calling this method. - * - * @param fahrenheit true to return the temperature in degrees - * fahrenheit, false to return the temperature in degrees celcius. - * The default is false (degrees Celcius). - * @return The last temperature reading in Celcius or Fahrenheit. - */ - float getTemperature(bool fahrenheit=false); - - /** - * Return the current state of the relay. This function will - * always return false if the relay option is not installed. - * update() must have been called prior to calling this method. - * - * @return true if the relay is active, false if inactive. - */ - bool getRelayState() - { - return m_relayState; - } - - /** - * Set the device temperature scale to Celcius of Fahrenheit. For - * devices with an LCD display, this will affect which scale is - * displayed. When changing the scale, it may take several - * seconds for the setting to take effect. - * - * @param fahrenheit true to set the scale to fahrenheit, false - * for celcius. - */ - void setTemperatureScale(bool fahrenheit); - - /** - * Get the device temperature scale. - * - * @return true if scale is fahrenheit, false for celcius. - */ - bool getTemperatureScale(); - - /** - * Get the current temperature offset. - * - * @return The configured temperature offset. - */ - float getTemperatureOffset(); - - /** - * Set the device temperature offset. The offset is applied by - * the device internally to the temperature reading. The offset - * must always be specified in degrees Celcius. Valid values must - * be between -50 and 50. - * - * @param value The temperature offset to configure. - */ - void setTemperatureOffset(float value); - - /** - * Get the current humidity offset. - * - * @return The configured humidity offset. - */ - float getHumidityOffset(); - - /** - * Set the device humidity offset. The offset is applied by the - * device internally to the humidity reading. Valid values must - * be between -100 and 100. - * - * @param value The humidity offset to configure. - */ - void setHumidityOffset(float value); - - /** - * Return the current relay set point (in PPM). This set point is - * the CO2 concentration point in PPM that causes the relay to - * trigger. - * - * @return The relay set point value. - */ - float getRelaySetPoint(); - - /** - * Set the relay set point in PPM. This set point is the CO2 - * concentration point in PPM that causes the relay to trigger. - * Valid values are between 0-65535. - * - * @param value The desired relay set point value. - */ - void setRelaySetPoint(float value); - - /** - * Return the current relay hysteresis. - * - * @return The relay hysteresis value. - */ - float getRelayHysteresis(); - - /** - * Set the relay hysteresis. Valid values are between 0-65535. - * - * @param value The desired relay set point value. - */ - void setRelayHysteresis(float value); - - /** - * Return the current elevation setting (in meters). - * - * @return The current elevation setting. - */ - float getElevation(); - - /** - * Set the elevation setting in meters. Valid values are between - * 0-65535. - * - * @param value The desired elevation setting in meters. - */ - void setElevation(float value); - - /** - * Return the current calibration single point value (in PPM). - * - * @return The current calibration single point value. - */ - float getCalibrationSinglePoint(); - - /** - * Set the calibration single point value in PPM. Valid values - * are between 0-65535. - * - * @param value The desired calibration single point value in PPM. - */ - void setCalibrationSinglePoint(float value); - - /** - * Return the current baud rate. - * - * @return The current baud rate. - */ - float getBaudRate(); - - /** - * Return the current MAC address. The MAC address is configured - * via DIP switches within the device. - * - * @return The current MAC address. - */ - float getMACAddress(); - - /** - * Return the current ABC (Automatic Background Calibration) - * logic state. See the datasheet for details. - * - * @return The current ABC logic state. - */ - bool getABCLogicState(); - - /** - * Set the ABC (Automatic Background Calibration) logic state. - * Valid values are true for ON, false for OFF. - * - * @param value The desired ABC logic state. - */ - void setABCLogicState(bool value); - - /** - * Return the current ABC (Automatic Background Calibration) - * reset state. See the datasheet for details. - * - * @return The current ABC reset state. - */ - bool getABCLogicReset(); - - /** - * Set the ABC (Automatic Background Calibration) reset state. - * Valid values are true for Reset, false for Normal. - * - * @param value The desired ABC reset state. - */ - void setABCLogicReset(bool value); - - /** - * Return the current CO2 calibration state. See the datasheet - * for details. - * - * @return The current CO2 calibration state. - */ - bool getCO2Calibration(); - - /** - * Set the CO2 calibration state. - * Valid values are true for Calibrate, false for Normal. - * - * @param value The desired ABC reset state. - */ - void setCO2Calibration(bool value); - - - protected: - float m_humidity; - // always stored in C - float m_temperature; - float m_co2; - bool m_relayState; - - private: - // Have we checked the device's temperature unit setting yet - bool m_isTempInitialized; - - // Is the device configured for Celcius? - bool m_isCelcius; - }; -} |