Combine AS7000 into BNO055

Fork of BNO055 by Sog Yang

Revision:
10:1914e07be563
Parent:
9:f04b0a4c8057
--- a/BNO055.cpp	Thu May 04 02:37:08 2017 +0000
+++ b/BNO055.cpp	Mon May 22 08:03:56 2017 +0000
@@ -1,6 +1,9 @@
 #include "BNO055.h"
 #include "mbed.h"
 
+DigitalOut AS7000_GPIO8(p5); //NNN50-P5 map to GPIO-8 for AS7000 on/off
+DigitalInOut AS7000_INT(p4); //NNN50-P4 GPIO-5 for AS7000 INT
+
 BNO055::BNO055(PinName SDA, PinName SCL) : _i2c(SDA,SCL){
     //Set I2C fast and bring reset line high
     _i2c.frequency(400000);
@@ -9,6 +12,19 @@
     rate_scale = 1.0f/16.0f;
     angle_scale = 1.0f/16.0f;
     temp_scale = 1;
+    
+    //Set I2C fast and bring reset line high
+    //_i2c.frequency(400000);
+    //address = AS7000Address;
+    
+    AS7000_INT.mode(PullNone);
+    
+    AS7000_INT.output();
+     
+    AS7000_GPIO8.write(1); // Power OFF AS7000
+    AS7000_INT.write(1); // AS7000 GPIO OUTPUT LOW
+    AS7000_INT.input();
+    wait_ms(100);    
     }
     
 void BNO055::reset(){
@@ -277,4 +293,42 @@
             writechar(BNO055_AXIS_MAP_CONFIG_ADDR,0x24);
             writechar(BNO055_AXIS_MAP_SIGN_ADDR,0x00);
         }
+}
+
+//AS7000::AS7000(PinName SDA, PinName SCL) : _i2c(SDA,SCL){
+//
+//}
+    
+void BNO055::enable(void){
+        char cmd[2];
+        
+        AS7000_GPIO8.write(0); //Power ON AS7000
+        wait_ms(280);    //Wait for > 250ms for booting
+          
+        cmd[0] = AS7000_STARTUP; //0x04;       
+        cmd[1] = 0x02;
+        _i2c.write(AS7000Address, cmd, 2);
+         wait_ms(35);  
+    
+}
+
+void BNO055::update(void){
+
+}
+
+void BNO055::hr_only(void){
+    char cmd[2];
+     cmd[0] = HR_ONLY;
+     if(AS7000_INT == 0) {
+        _i2c.write(AS7000Address, cmd, 1);
+        _i2c.read(AS7000Address, rawdata, 7, false);
+        wait_ms(10);
+        //update();
+    hrm.transaction_id = rawdata[0];
+    hrm.status         = rawdata[1];
+    hrm.hreat_rate     = rawdata[2];
+    hrm.signal_QA      = rawdata[3];
+    hrm.LED_current    = ((rawdata[4]<<8)+rawdata[5]);
+    hrm.SYNC           = rawdata[6];            
+    }           
 }
\ No newline at end of file