simple CCS811 driver

Dependencies:   AMS_ENS210_temp_humid_sensor

Dependents:   TBSense2_Sensor_Demo

Fork of AMS_CCS811_gas_sensor by Marcus Lee

Revision:
1:acfca1d3256d
Parent:
0:5edbf3550350
Child:
2:e394671ef5f6
--- a/AMS_CCS811.h	Thu Jan 19 09:06:31 2017 +0000
+++ b/AMS_CCS811.h	Thu Jan 19 12:46:58 2017 +0000
@@ -11,9 +11,9 @@
 #include "mbed.h"
 
 /* Library defaults */
-#define CONFIG_OP_MODE      OP_MODES::TEN_SECOND    // Every 10 seconds
+#define CONFIG_OP_MODE      TEN_SECOND              // Every 10 seconds
 #define CONFIG_INTR         0                       // Interupt off
-#define CONFIG_ADDR         0                       // ADDR n_wake_pin pulled low
+#define CONFIG_ADDR_DIR     0                       // ADDR n_wake_pin pulled low
 
 /* Library Constants */
 #define SLAVE_ADDR_RAW_H    0x5B
@@ -198,7 +198,7 @@
             _int_data(pin);
             _int_data.fall(this, &AMS_CCS811::_isr_data());
     
-            return enable_interupts(true);
+            return enable_interupt(true);
         }
     
         /** Attach a member function to be called when data is ready.
@@ -217,15 +217,23 @@
             //_int_data(pin);
             //_int_data.fall(this, &AMS_CCS811::_isr_data());
     
-            return enable_interupts(true);
+            return enable_interupt(true);
         }
     
-        /** Get whether the sensor has collected new data.
-         *  Use when interupts are disabled
+        /** Set whether the data ready interupt is enabled.
+         * 
+         * @param enabled    True for enabled, false for disabled
          *
          * @return Write success
          */
-        bool enable_interupts(bool enable);
+        bool enable_interupt(bool enable);
+        
+        /** Get whether the data ready interupt is enabled.
+         * 
+         *
+         * @return True for enabled, false for disabled
+         */
+        bool interupt_enabled();
         
         /** Set the nINT pin
          *
@@ -246,23 +254,29 @@
     
     private:
         I2C* _i2c;
-        bool _addr;
+        bool _addr_dir;
         int slave_addr;
         I2C* _ens210_i2c;
         bool _ens210_enable;
         OP_MODES _mode;
-        void set_defaults();
+        bool set_defaults();
         
-        DigitalIn _n_wake_in;
-        DigitalIn _addr_in;
+        DigitalOut *_n_wake_out;
+        DigitalOut *_addr_out;
         
     
         FunctionPointer _isr_data_fp;
-        bool _int_data_active;
-        InterruptIn _int_data;
+        bool _int_data_enabled;
+        InterruptIn *_int_data;
         void _isr_data();
     
-        bool write_config(bool mode = true, bool int_data = true, bool int_thresh = true);
+        bool write_config();
+        
+        struct read_config_result {
+            bool success;
+            uint8_t byte;
+        }
+        read_config_result read_config();
 
 };