Initial commit.

This commit is contained in:
matzman
2014-06-16 11:16:21 +02:00
commit 1768f7b41c
42 changed files with 2656 additions and 0 deletions
+97
View File
@@ -0,0 +1,97 @@
/*
* TfHumidityBricklet.cpp
*
* Created on: 12.06.2014
* Author: matzman
*/
#include <tfcppsimple/devices/TfHumidityBricklet.h>
#include <tfcppsimple/TfException.h>
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 */