/* * TfHumidityBricklet.cpp * * Created on: 12.06.2014 * Author: matzman */ #include #include namespace tfcppsimple { TfHumidityBricklet::TfHumidityBricklet(TfConnection& connection, std::string uid, std::string connected_uid, TfDevicePosition position, TfVersion hardware_version, TfVersion firmware_version, TfDevice* parent ) : TfBricklet(connection, uid, connected_uid, position, hardware_version, firmware_version, (uint16_t)TfDeviceIdentifier::HUMIDITY, TfDeviceIdentifier::HUMIDITY, parent) { } TfHumidityBricklet::~TfHumidityBricklet() { // TODO Auto-generated destructor stub } std::string TfHumidityBricklet::getDeviceName(bool extended) { std::ostringstream ss; ss << "Humidity Bricklet"; if (extended) { ss << " [" << uid << "]"; } return ss.str(); } void TfHumidityBricklet::doConfigureDevice() { humidity_create(&humidityObj, uid.c_str(), &connection.getTfIpConnection()); int ret = humidity_set_response_expected_all(&humidityObj, true); if (ret != E_OK) { std::ostringstream ss; ss << "Error while configuring: " << ret << "."; throw TfError(ss.str(), (TfErrorCode)ret); } else { TfDevice::doConfigureDevice(); } } void TfHumidityBricklet::doReconfigureDevice() { humidity_destroy(&humidityObj); humidity_create(&humidityObj, uid.c_str(), &connection.getTfIpConnection()); int ret = humidity_set_response_expected_all(&humidityObj, true); if (ret != E_OK) { std::ostringstream ss; ss << "Error while reconfiguring: " << ret << "."; throw TfError(ss.str(), (TfErrorCode)ret); } else { TfDevice::doReconfigureDevice(); } } void TfHumidityBricklet::doConnectionLost() { TfDevice::doConnectionLost(); } void TfHumidityBricklet::doShutdown() { humidity_destroy(&humidityObj); TfDevice::doShutdown(); } uint16_t TfHumidityBricklet::getHumidity() { uint16_t retval; int ret = humidity_get_humidity(&humidityObj, &retval); if (ret != E_OK) { std::ostringstream ss; ss << "Error while reading humidity: " << ret << "."; throw TfError(ss.str(), (TfErrorCode)ret); } return retval; } uint16_t TfHumidityBricklet::getHumidityRaw() { uint16_t retval; int ret = humidity_get_analog_value(&humidityObj, &retval); if (ret != E_OK) { std::ostringstream ss; ss << "Error while reading raw humidity: " << ret << "."; throw TfError(ss.str(), (TfErrorCode)ret); } return retval; } } /* namespace tfcppsimple */