INSAT Mini Project

Dependencies:   ST_INTERFACES X_NUCLEO_COMMON

Fork of X_NUCLEO_6180XA1 by ST

Files at this revision

API Documentation at this revision

Comitter:
nikapov
Date:
Mon Aug 21 15:44:34 2017 +0000
Parent:
57:fa4c622b04a7
Child:
59:f1110f5e3d90
Commit message:
Make compatible with non-copyable version of I2C.

Changed in this revision

Components/STMPE1600/STMPE1600.h Show annotated file Show diff for this revision Revisions of this file
Components/VL6180X/VL6180X.cpp Show annotated file Show diff for this revision Revisions of this file
Components/VL6180X/VL6180X.h Show annotated file Show diff for this revision Revisions of this file
--- a/Components/STMPE1600/STMPE1600.h	Mon Mar 13 19:08:10 2017 +0000
+++ b/Components/STMPE1600/STMPE1600.h	Mon Aug 21 15:44:34 2017 +0000
@@ -104,7 +104,7 @@
      * @param[in] lvl the default ot pin level  
      */ 
 	    STMPE1600DigiOut (DevI2C &i2c, exp_gpio_pin_name outpinname, uint8_t DevAddr=STMPE1600_DEF_DEVICE_ADDRESS, bool lvl=STMPE1600_DEF_DIGIOUT_LVL):
-    _dev_i2c(i2c),
+    _dev_i2c(&i2c),
     _expdevaddr(DevAddr),
     _exppinname(outpinname) 
     {
@@ -113,11 +113,11 @@
             return;
         }
         /* set the _exppinname as output */
-        _dev_i2c.i2c_read(data, _expdevaddr, GPDR_0_7, 1);
-        _dev_i2c.i2c_read(&data[1], _expdevaddr, GPDR_8_15, 1);			
+        _dev_i2c->i2c_read(data, _expdevaddr, GPDR_0_7, 1);
+        _dev_i2c->i2c_read(&data[1], _expdevaddr, GPDR_8_15, 1);			
         *(uint16_t*)data = *(uint16_t*)data | (1<<(uint16_t)_exppinname);  // set gpio as out 			
-        _dev_i2c.i2c_write(data, _expdevaddr, GPDR_0_7, 1);
-        _dev_i2c.i2c_write(&data[1], _expdevaddr, GPDR_8_15, 1);			
+        _dev_i2c->i2c_write(data, _expdevaddr, GPDR_0_7, 1);
+        _dev_i2c->i2c_write(&data[1], _expdevaddr, GPDR_8_15, 1);			
         write (lvl);
     }   
 
@@ -131,10 +131,10 @@
         uint8_t data[2];			
 			  if (_exppinname == NOT_CON) return;			
         /* set the _exppinname state to lvl */
-        _dev_i2c.i2c_read(data, _expdevaddr, GPSR_0_7, 2);
+        _dev_i2c->i2c_read(data, _expdevaddr, GPSR_0_7, 2);
         *(uint16_t*)data = *(uint16_t*)data & (uint16_t)(~(1<<(uint16_t)_exppinname));  // set pin mask 			
         if (lvl) *(uint16_t*)data = *(uint16_t*)data | (uint16_t)(1<<(uint16_t)_exppinname);
-        _dev_i2c.i2c_write(data, _expdevaddr, GPSR_0_7, 2);
+        _dev_i2c->i2c_write(data, _expdevaddr, GPSR_0_7, 2);
     }
 
   	/**
@@ -147,7 +147,7 @@
     }		
 		
 private:
-    DevI2C &_dev_i2c;
+    DevI2C *_dev_i2c;
     uint8_t _expdevaddr;
     exp_gpio_pin_name _exppinname; 	
 };
@@ -163,14 +163,14 @@
      * @param[in] inpinname the desired input pin name to be created
      * @param[in] DevAddr the stmpe1600 I2C device addres (deft STMPE1600_DEF_DEVICE_ADDRESS)
      */ 
-    STMPE1600DigiIn (DevI2C &i2c, exp_gpio_pin_name inpinname, uint8_t DevAddr=STMPE1600_DEF_DEVICE_ADDRESS): _dev_i2c(i2c), _expdevaddr(DevAddr), _exppinname(inpinname) 
+    STMPE1600DigiIn (DevI2C &i2c, exp_gpio_pin_name inpinname, uint8_t DevAddr=STMPE1600_DEF_DEVICE_ADDRESS): _dev_i2c(&i2c), _expdevaddr(DevAddr), _exppinname(inpinname) 
     {
         uint8_t data[2];
         if (_exppinname == NOT_CON) return;			
         /* set the _exppinname as input pin direction */
-        _dev_i2c.i2c_read(data, _expdevaddr, GPDR_0_7, 2);
+        _dev_i2c->i2c_read(data, _expdevaddr, GPDR_0_7, 2);
         *(uint16_t*)data = *(uint16_t*)data & (uint16_t)(~(1<<(uint16_t) _exppinname));  // set gpio as in			
-        _dev_i2c.i2c_write(data, _expdevaddr, GPDR_0_7, 2);
+        _dev_i2c->i2c_write(data, _expdevaddr, GPDR_0_7, 2);
     }         
 
   	/**
@@ -184,7 +184,7 @@
         }
 
         /* read the _exppinname */
-        _dev_i2c.i2c_read(data, _expdevaddr, GPMR_0_7, 2);
+        _dev_i2c->i2c_read(data, _expdevaddr, GPMR_0_7, 2);
         *(uint16_t*)data = *(uint16_t*)data & (uint16_t)(1<<(uint16_t)_exppinname);  // mask the in gpio
 
         if (data[0] || data[1]) {
@@ -198,7 +198,7 @@
     }		
 		
 private:
-    DevI2C &_dev_i2c; 
+    DevI2C *_dev_i2c; 
     uint8_t _expdevaddr;
     exp_gpio_pin_name _exppinname;      
 };
@@ -215,9 +215,9 @@
     * @param[in] &i2c device I2C to be used for communication
     * @param[in] DevAddr the stmpe1600 I2C device addres (deft STMPE1600_DEF_DEVICE_ADDRESS)
     */ 
-    STMPE1600 (DevI2C &i2c, uint8_t DevAddr=STMPE1600_DEF_DEVICE_ADDRESS ) : _dev_i2c(i2c)
+    STMPE1600 (DevI2C &i2c, uint8_t DevAddr=STMPE1600_DEF_DEVICE_ADDRESS ) : _dev_i2c(&i2c)
     { 
-        _dev_i2c = i2c;								
+        _dev_i2c = &i2c;								
         _expdevaddr = DevAddr;
         write_sys_ctrl (SOFT_RESET);
 			
@@ -233,7 +233,7 @@
   	 */		
     void write_sys_ctrl (uint8_t data)     // data = SOFT_RESET reset the device
     {
-        _dev_i2c.i2c_write((uint8_t*)SYS_CTRL, _expdevaddr, data, 1);
+        _dev_i2c->i2c_write((uint8_t*)SYS_CTRL, _expdevaddr, data, 1);
     }
       
   	/**
@@ -303,7 +303,7 @@
   	 */					
     void read_16_bit_reg (uint8_t reg_16_addr, uint16_t *reg_16_data)
     {
-        _dev_i2c.i2c_read((uint8_t*)reg_16_data, _expdevaddr, reg_16_addr, 2);	
+        _dev_i2c->i2c_read((uint8_t*)reg_16_data, _expdevaddr, reg_16_addr, 2);	
     }				
 
   	/**
@@ -313,11 +313,11 @@
   	 */							
     void write_16_bit_reg (uint8_t reg_16_addr, uint16_t *reg_16_data)
     {
-        _dev_i2c.i2c_write((uint8_t*)reg_16_data, _expdevaddr, reg_16_addr, 2);	
+        _dev_i2c->i2c_write((uint8_t*)reg_16_data, _expdevaddr, reg_16_addr, 2);	
     }		
 
 private:					
-    DevI2C &_dev_i2c; 	 
+    DevI2C *_dev_i2c; 	 
     uint16_t _gpdro_15;   // local copy of bit direction reg 
     uint16_t _gpsro_15;   // local copy of bit status reg 
     uint8_t _expdevaddr; // expander device i2c addr
--- a/Components/VL6180X/VL6180X.cpp	Mon Mar 13 19:08:10 2017 +0000
+++ b/Components/VL6180X/VL6180X.cpp	Mon Aug 21 15:44:34 2017 +0000
@@ -2611,7 +2611,7 @@
    {    
       memcpy(tmp+sizeof(RegisterAddr), pBuffer, NumByteToWrite);
    }
-   ret = _dev_i2c.write(WriteDeviceAddr, (const char*)tmp, NumByteToWrite+sizeof(RegisterAddr), false);
+   ret = _dev_i2c->write(WriteDeviceAddr, (const char*)tmp, NumByteToWrite+sizeof(RegisterAddr), false);
  
    if(ret) 
       return -1;
@@ -2631,12 +2631,12 @@
    *(((uint8_t*)&myRegisterAddrBE)+1) = (uint8_t)myRegisterAddr;
     
    /* Send 8 bits device address and 16 bits register address in BE format, with no STOP condition */
-   ret = _dev_i2c.write(ReadDeviceAddr, (const char*)&myRegisterAddrBE, sizeof(RegisterAddr), true);
+   ret = _dev_i2c->write(ReadDeviceAddr, (const char*)&myRegisterAddrBE, sizeof(RegisterAddr), true);
    if(!ret) 
    {
       ReadDeviceAddr|=0x001;
       /* Read data, with STOP condition  */
-      ret = _dev_i2c.read(ReadDeviceAddr, (char*)tmp, NumByteToRead, false);
+      ret = _dev_i2c->read(ReadDeviceAddr, (char*)tmp, NumByteToRead, false);
    }    
    if(ret) 
       return -1;
--- a/Components/VL6180X/VL6180X.h	Mon Mar 13 19:08:10 2017 +0000
+++ b/Components/VL6180X/VL6180X.h	Mon Aug 21 15:44:34 2017 +0000
@@ -130,7 +130,7 @@
      * @param[in] &pin_gpio1 pin Mbed InterruptIn PinName to be used as component GPIO_1 INT
      * @param[in] DevAddr device address, 0x29 by default  
      */
-    VL6180X(DevI2C &i2c, DigitalOut &pin, PinName pin_gpio1, uint8_t DevAddr=DEFAULT_DEVICE_ADDRESS) : RangeSensor(), LightSensor(), _dev_i2c(i2c), _gpio0(&pin)
+    VL6180X(DevI2C &i2c, DigitalOut &pin, PinName pin_gpio1, uint8_t DevAddr=DEFAULT_DEVICE_ADDRESS) : RangeSensor(), LightSensor(), _dev_i2c(&i2c), _gpio0(&pin)
     {
         _my_device.I2cAddr=DevAddr;		 
         _my_device.Present=0;
@@ -149,7 +149,7 @@
      * @param[in] pin_gpio1 pin Mbed InterruptIn PinName to be used as component GPIO_1 INT
      * @param[in] device address, 0x29 by default  
      */		
-    VL6180X(DevI2C &i2c, STMPE1600DigiOut &pin, PinName pin_gpio1, uint8_t DevAddr=DEFAULT_DEVICE_ADDRESS) : RangeSensor(), LightSensor(), _dev_i2c(i2c), _expgpio0(&pin)
+    VL6180X(DevI2C &i2c, STMPE1600DigiOut &pin, PinName pin_gpio1, uint8_t DevAddr=DEFAULT_DEVICE_ADDRESS) : RangeSensor(), LightSensor(), _dev_i2c(&i2c), _expgpio0(&pin)
     {
         _my_device.I2cAddr=DevAddr;		 
         _my_device.Present=0;
@@ -1256,7 +1256,7 @@
     int AlsGetThresholds(VL6180XDev_t dev, lux_t *low, lux_t *high);
 
 	/* IO _device */
-    DevI2C &_dev_i2c;
+    DevI2C *_dev_i2c;
     /* Digital out pin */
     DigitalOut *_gpio0;
     /* GPIO expander */