A multifunctional and modular Firmware for Multitech's mDot based on ARM mBed provides a widerange of functionality for several Sensors such as MAX44009, BME280, MPU9250, SI1143 and uBlox. It allows you to quickly build a Sensornode that measures specific data with its sensors and sends it via LoRaWAN.

Dependencies:   mDot_LoRa_Sensornode_Flowmeter_impl mbed-rtos mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers BME280Config.cpp Source File

BME280Config.cpp

00001 /*
00002  * BME280Config.cpp
00003  *
00004  *  Created on: 24.05.2016
00005  *      Author: Adrian
00006  */
00007 
00008 #include "BME280Config.h "
00009 
00010 
00011 BME280Config::BME280Config() {
00012     // TODO Auto-generated constructor stub
00013 
00014 }
00015 
00016 BME280Config::~BME280Config() {
00017     // TODO Auto-generated destructor stub
00018 }
00019 
00020 void BME280Config::build(BME280_MODE desiredMode){
00021     switch(desiredMode){
00022     case BME280_MODE_0:
00023         setOversamplingTemperature(BME280_TEMP_OVRS_1);
00024         setOversamplingPressure(BME280_PRESS_OVRS_1);
00025         setOversamplingHumidity(BME280_HUM_OVRS_1);
00026         setMode(BME280_FORCED_MODE);
00027         break;
00028     case BME280_MODE_1:
00029         setOversamplingTemperature(BME280_TEMP_OVRS_1);
00030         setOversamplingPressure(BME280_PRESS_OVRS_1);
00031         setOversamplingHumidity(BME280_HUM_OVRS_1);
00032         setMode(BME280_NORMAL_MODE);
00033         break;
00034     case BME280_MODE_2:
00035         setOversamplingTemperature(BME280_TEMP_OVRS_2);
00036         setOversamplingPressure(BME280_PRESS_OVRS_2);
00037         setOversamplingHumidity(BME280_HUM_OVRS_2);
00038         setMode(BME280_FORCED_MODE);
00039         break;
00040     case BME280_MODE_3:
00041         setOversamplingTemperature(BME280_TEMP_OVRS_2);
00042         setOversamplingPressure(BME280_PRESS_OVRS_2);
00043         setOversamplingHumidity(BME280_HUM_OVRS_2);
00044         setMode(BME280_NORMAL_MODE);
00045         break;
00046     case BME280_MODE_4:
00047         setOversamplingTemperature(BME280_TEMP_OVRS_4);
00048         setOversamplingPressure(BME280_PRESS_OVRS_4);
00049         setOversamplingHumidity(BME280_HUM_OVRS_4);
00050         setMode(BME280_FORCED_MODE);
00051         break;
00052     case BME280_MODE_5:
00053         setOversamplingTemperature(BME280_TEMP_OVRS_4);
00054         setOversamplingPressure(BME280_PRESS_OVRS_4);
00055         setOversamplingHumidity(BME280_HUM_OVRS_4);
00056         setMode(BME280_NORMAL_MODE);
00057         break;
00058     case BME280_MODE_6:
00059         setOversamplingTemperature(BME280_TEMP_OVRS_8);
00060         setOversamplingPressure(BME280_PRESS_OVRS_8);
00061         setOversamplingHumidity(BME280_HUM_OVRS_8);
00062         setMode(BME280_FORCED_MODE);
00063         break;
00064     case BME280_MODE_7:
00065         setOversamplingTemperature(BME280_TEMP_OVRS_8);
00066         setOversamplingPressure(BME280_PRESS_OVRS_8);
00067         setOversamplingHumidity(BME280_HUM_OVRS_8);
00068         setMode(BME280_NORMAL_MODE);
00069         break;
00070     case BME280_MODE_8:
00071         setOversamplingTemperature(BME280_TEMP_OVRS_16);
00072         setOversamplingPressure(BME280_PRESS_OVRS_16);
00073         setOversamplingHumidity(BME280_HUM_OVRS_16);
00074         setMode(BME280_FORCED_MODE);
00075         break;
00076     case BME280_MODE_9:
00077         setOversamplingTemperature(BME280_TEMP_OVRS_16);
00078         setOversamplingPressure(BME280_PRESS_OVRS_16);
00079         setOversamplingHumidity(BME280_HUM_OVRS_16);
00080         setMode(BME280_NORMAL_MODE);
00081         break;
00082     default:
00083         setOversamplingTemperature(BME280_TEMP_OVRS_1);
00084         setOversamplingPressure(BME280_PRESS_OVRS_1);
00085         setOversamplingHumidity(BME280_HUM_OVRS_1);
00086         setMode(BME280_NORMAL_MODE);
00087         break;
00088     }
00089 }
00090 
00091 void BME280Config::setOversamplingTemperature(uint8_t oversamplingTemperature){
00092     this->oversamplingTemperature = oversamplingTemperature;
00093 }
00094 
00095 void BME280Config::setOversamplingPressure(uint8_t oversamplingPressure){
00096     this->oversamplingPressure = oversamplingPressure;
00097 }
00098 
00099 void BME280Config::setOversamplingHumidity(uint8_t oversamplingHumidity){
00100     this->oversamplingHumidity = oversamplingHumidity;
00101 }
00102 
00103 void BME280Config::setMode(uint8_t mode){
00104     this->mode = mode;
00105 }
00106 
00107 uint8_t BME280Config::getOversamplingTemperature(){
00108     return this->oversamplingTemperature;
00109 }
00110 
00111 uint8_t BME280Config::getOversamplingPressure(){
00112     return this->oversamplingPressure;
00113 }
00114 
00115 uint8_t BME280Config::getOversamplingHumidity(){
00116     return this->oversamplingHumidity;
00117 }
00118 
00119 uint8_t BME280Config::getMode(){
00120     return this->mode;
00121 }
00122