BME280にアクセスするためのライブラリ

Revision:
3:df1107ddf502
Parent:
2:42725d11023b
Child:
4:4c4e3ec9a2c4
--- a/BME280.h	Tue Jul 10 07:59:58 2018 +0000
+++ b/BME280.h	Tue Jul 10 08:57:26 2018 +0000
@@ -6,74 +6,123 @@
 
 #include "BME280_reg.h"     //レジスタ関連の定義
 
+//BME280クラス
 class BME280{
 
 public:
     /**
-         @brief Create a new i2c sensor.
-         @param sda   SDA pin name (Defined in PinName.h)
-         @param sck   SCK pin name (Defined in PinName.h)
+         @brief BME280クラスの作成
+         @param[in] sda             SDAピン名 (PinName.hに定義)
+         @param[in] sck             SCKピン名 (PinName.hに定義)
+         @param[in] mode            測定動作モード(BME_reg.hに定義)
+         @param[in] press_sample    気圧のオーバーサンプリング(BME_reg.hに定義)
+         @param[in] temp_sample     温度のオーバーサンプリング(BME_reg.hに定義)
+         @param[in] hum_sample      湿度のオーバーサンプリング(BME_reg.hに定義)
+         @param[in] filter          IIRフィルタの時定数設定(BME_reg.hに定義)
+         @param[in] stanby          測定後休止時間の設定(ノーマルモードのみ有効,BME_reg.hに定義)         
     */
-    BME280(PinName sda, PinName scl);
+    BME280(PinName sda, PinName scl, 
+    char mode           = BME280_FORCE_MODE, 
+    char press_sample   = BME280_PRESS_OVER_SAMPL1, 
+    char temp_sample    = BME280_TEMP_OVER_SAMPL1, 
+    char hum_sample     = BME280_HUM_OVER_SAMPL1,
+    char filter         = BME280_IIR_OFF,
+    char stanby         = 0);
+
     /**
-         @brief Create a new i2c sensor.
-         @param &i2c_obj   i2c name
+         @brief BME280クラスの作成.
+         @param &i2c_obj            i2c名
+         @param[in] mode            測定動作モード(BME_reg.hに定義)
+         @param[in] press_sample    気圧のオーバーサンプリング(BME_reg.hに定義)
+         @param[in] temp_sample     温度のオーバーサンプリング(BME_reg.hに定義)
+         @param[in] hum_sample      湿度のオーバーサンプリング(BME_reg.hに定義)
+         @param[in] filter          IIRフィルタの時定数設定(BME_reg.hに定義)
+         @param[in] stanby          測定後休止間の設定(ノーマルモードのみ有効,BME_reg.hに定義)         
     */
-    BME280(GEN_I2C &i2c_obj);
+    BME280(GEN_I2C &i2c_obj,
+    char mode           = BME280_FORCE_MODE, 
+    char press_sample   = BME280_PRESS_OVER_SAMPL1, 
+    char temp_sample    = BME280_TEMP_OVER_SAMPL1, 
+    char hum_sample     = BME280_HUM_OVER_SAMPL1,
+    char filter         = BME280_IIR_OFF,
+    char stanby         = 0);
     
     /**
-         @brief Disable the i2c sensor.
-         @param No parameters.
+         @brief BME280クラスのデストラクタ
+         @param パラメータなし.
     */
     virtual ~BME280();
 
-    const char hum_reg_value    = BMP280_HUM_OVER_SAMPL1;
-    const char meas_reg_value   = BMP280_TEMP_OVER_SAMPL1 | BMP280_PRESS_OVER_SAMPL1 | BMP280_SLEEP_MODE;
-    const char config_reg_value = BMP280_IIR_OFF;
 
+    /**
+         @brief 気圧(単位:Pa)
+    */
+    double press;
+    /**
+         @brief 温度(単位:℃)
+    */
     float  temp;
-    double press;
+    /**
+         @brief 湿度(単位:%)
+    */
     float  hum;
+
     
+    /**
+         @brief センサからデータを読み取って気圧、温度、湿度データ更新
+         @param パラメータなし.
+    */
     void read_sensor(void);
-    bool data_is_ready(void);
-    void set_sleep_mode(void);
-    void set_force_mode(void);
-    void set_normal_mode(void);
 
 private:
 
+    //i2c用
     GEN_I2C *i2c_p;
     GEN_I2C &sensor;
 
+    //初期化関数
+    void init(void);    
+
+    //設定保持用
+    char _mode;
+    char _press_sample;
+    char _temp_sample;
+    char _hum_sample;
+    char _filter;
+    char _stanby;
+
+    //強制測定モードをセットする関数。
+    inline void set_force_mode(void);
+
+//データ補正用関数とそこで使う変数(データシートより)
     long signed int t_fine;
     long signed int BME280_compensate_T_int32(long signed int adc_T);
     long unsigned int BME280_compensate_P_int64(long signed int adc_P);
     long unsigned int BME280_compensate_H_int32(long signed int adc_H);
-    
-    void init(void);    
-    
-    //データシートより,補正定数
+
+    //温度補正係数
     unsigned short dig_T1;
-      signed short dig_T2;
-      signed short dig_T3;
+    signed short   dig_T2;
+    signed short   dig_T3;
 
+    //気圧補正係数
     unsigned short dig_P1;
-      signed short dig_P2;
-      signed short dig_P3;
-      signed short dig_P4;
-      signed short dig_P5;
-      signed short dig_P6;
-      signed short dig_P7;
-      signed short dig_P8;
-      signed short dig_P9;
+    signed short   dig_P2;
+    signed short   dig_P3;
+    signed short   dig_P4;
+    signed short   dig_P5;
+    signed short   dig_P6;
+    signed short   dig_P7;
+    signed short   dig_P8;
+    signed short   dig_P9;
 
+    //湿度補正係数
     unsigned char  dig_H1;
-      signed short dig_H2;
+    signed short   dig_H2;
     unsigned char  dig_H3;
-      signed short dig_H4;
-      signed short dig_H5;
-      signed char  dig_H6;
+    signed short   dig_H4;
+    signed short   dig_H5;
+    signed char    dig_H6;
 
 };