* @author Gilman Tolle <gtolle@archrock.com>
*/
+enum {
+ SHT11_TEMPERATURE_BITS = 14,
+ SHT11_HUMIDITY_BITS = 12,
+};
+
enum {
SHT11_STATUS_LOW_RES_BIT = 1 << 0,
SHT11_STATUS_NO_RELOAD_BIT = 1 << 1,
* @version $Revision$ $Date$
*/
+#include <SensirionSht11.h>
+
generic module SensirionSht11ReaderP() {
+ provides interface DeviceMetadata as TemperatureMetadata;
provides interface Read<uint16_t> as Temperature;
+ provides interface DeviceMetadata as HumidityMetadata;
provides interface Read<uint16_t> as Humidity;
uses interface Resource as TempResource;
uses interface SensirionSht11 as Sht11Hum;
}
implementation {
+
+ command uint8_t TemperatureMetadata.getSignificantBits() { return SHT11_TEMPERATURE_BITS; }
+
command error_t Temperature.read() {
call TempResource.request();
return SUCCESS;
signal Temperature.readDone( result, val );
}
+ command uint8_t HumidityMetadata.getSignificantBits() { return SHT11_HUMIDITY_BITS; }
+
command error_t Humidity.read() {
call HumResource.request();
return SUCCESS;
*/
generic configuration HamamatsuS1087ParC() {
+ provides interface DeviceMetadata;
provides interface Read<uint16_t>;
provides interface ReadStream<uint16_t>;
}
ReadStream = AdcReadStreamClientC;
components HamamatsuS1087ParP;
+ DeviceMetadata = HamamatsuS1087ParP;
AdcReadClientC.AdcConfigure -> HamamatsuS1087ParP;
AdcReadStreamClientC.AdcConfigure -> HamamatsuS1087ParP;
}
*/
module HamamatsuS1087ParP {
+ provides interface DeviceMetadata;
provides interface AdcConfigure<const msp430adc12_channel_config_t*>;
}
implementation {
sampcon_ssel: SAMPCON_SOURCE_SMCLK,
sampcon_id: SAMPCON_CLOCK_DIV_1
};
-
+
+ command uint8_t DeviceMetadata.getSignificantBits() { return 12; }
+
async command const msp430adc12_channel_config_t* AdcConfigure.getConfiguration() {
return &config;
}
*/
generic configuration HamamatsuS10871TsrC() {
+ provides interface DeviceMetadata;
provides interface Read<uint16_t>;
provides interface ReadStream<uint16_t>;
}
ReadStream = AdcReadStreamClientC;
components HamamatsuS10871TsrP;
+ DeviceMetadata = HamamatsuS10871TsrP;
AdcReadClientC.AdcConfigure -> HamamatsuS10871TsrP;
AdcReadStreamClientC.AdcConfigure -> HamamatsuS10871TsrP;
}
*/
module HamamatsuS10871TsrP {
+ provides interface DeviceMetadata;
provides interface AdcConfigure<const msp430adc12_channel_config_t*>;
}
implementation {
sampcon_ssel: SAMPCON_SOURCE_SMCLK,
sampcon_id: SAMPCON_CLOCK_DIV_1
};
+
+ command uint8_t DeviceMetadata.getSignificantBits() { return 12; }
async command const msp430adc12_channel_config_t* AdcConfigure.getConfiguration() {
return &config;
generic configuration SensirionSht11C() {
provides interface Read<uint16_t> as Temperature;
+ provides interface DeviceMetadata as TemperatureMetadata;
provides interface Read<uint16_t> as Humidity;
+ provides interface DeviceMetadata as HumidityMetadata;
}
implementation {
components new SensirionSht11ReaderP();
Temperature = SensirionSht11ReaderP.Temperature;
+ TemperatureMetadata = SensirionSht11ReaderP.TemperatureMetadata;
Humidity = SensirionSht11ReaderP.Humidity;
+ HumidityMetadata = SensirionSht11ReaderP.HumidityMetadata;
components HalSensirionSht11C;