modified to work with MultiTech mDot on UDK2.0

Dependents:   HelloWorld_53L0A1 unh-hackathon-example unh-hackathon-example-raw

Fork of X_NUCLEO_53L0A1 by ST

Revision:
2:58b5e9097aa3
Parent:
0:c523920bcc09
Child:
3:613d7f1ef60e
--- a/Components/VL53L0X/vl53l0x_class.h	Mon Nov 28 14:52:49 2016 +0000
+++ b/Components/VL53L0X/vl53l0x_class.h	Thu Dec 01 14:17:46 2016 +0000
@@ -1,5 +1,5 @@
 /*******************************************************************************
- Copyright © 2016, STMicroelectronics International N.V.
+ Copyright © 2016, STMicroelectronics International N.V.
  All rights reserved.
 
  Redistribution and use in source and binary forms, with or without
@@ -327,7 +327,7 @@
        Device=&MyDevice;
        gpio0=NULL;		
        if (pin_gpio1 != NC) { gpio1Int = new InterruptIn(pin_gpio1); }
-       	else { gpio1Int = NULL; } 		 
+       	else { gpio1Int = NULL; }
     }  	 
     
    /** Destructor
@@ -369,15 +369,8 @@
 	/**
 	 * @brief       Initialize the sensor with default values
 	 * @return      0 on Success
-	 */					 
+	 */
     int InitSensor(uint8_t NewAddr);
-    
-    int RawInitSensor(void);
-    int initDevice(VL53L0X_DEV Dev);
-    int setLongRangePresets(VL53L0X_DEV Dev);
-    int DoRanging(VL53L0X_Dev_t *pMyDevice);
-
-
 
 
 	/**
@@ -491,11 +484,50 @@
  * @param void
  * @return     0 on success,  @a #CALIBRATION_WARNING if failed
  */		
-    virtual int Init() 
+//    virtual int Init()
+    virtual int Init(void * NewAddr)
     {
-       return VL53L0X_DataInit(&MyDevice);
-//       return VL53L0X_DataInit(Device);
-//			return 1;
+//       return VL53L0X_DataInit(&MyDevice);
+       return VL53L0X_DataInit(Device);
+/*
+       int status;
+
+       VL6180x_Off();
+       VL6180x_On();
+
+       status=VL6180x_WaitDeviceBooted(Device);
+       if(status) {
+          VL6180x_ErrLog("WaitDeviceBooted fail\n\r");
+       }
+       status=IsPresent();
+       if(!status)
+       {
+          Device->Present=1;
+          VL6180x_InitData(Device);
+          if(status)
+          {
+             printf("Failed to init VL6180X sensor!\n\r");
+             return status;
+          }
+          status=Prepare();
+          if(status)
+          {
+             printf("Failed to prepare VL6180X!\n\r");
+             return status;
+          }
+          if(*(uint8_t*)NewAddr!=DEFAULT_DEVICE_ADDRESS)
+          {
+             status=SetI2CAddress(*(uint8_t*)NewAddr);
+             if(status)
+             {
+                printf("Failed to change I2C address!\n\r");
+                return status;
+             }
+          }
+          Device->Ready=1;
+       }
+       return status;
+*/
     }
 
 /**
@@ -687,10 +719,19 @@
  * @param pRange_mm  Pointer to range distance
  * @return           0 on success
  */		
-    virtual int GetRange(int32_t *piData)
+    virtual int GetDistance(uint32_t *piData)
     {
 //       return VL6180x_RangeGetResult(Device, piData);
-			return 1;
+        int status=0;
+        VL53L0X_RangingMeasurementData_t pRangingMeasurementData;
+
+        status=StartMeasurement(range_single_shot_polling, NULL);
+        if (!status) {
+            status=GetMeasurement(range_single_shot_polling, &pRangingMeasurementData);
+        }
+        StopMeasurement(range_single_shot_polling);
+        *piData = pRangingMeasurementData.RangeMilliMeter;
+        return status;
     }
 		
 /**
@@ -1325,7 +1366,8 @@
     		VL53L0X_DeviceInfo_t *pVL53L0X_DeviceInfo);
 
     /* Read function of the ID device */
-    virtual int ReadID();
+//    virtual int ReadID();
+    virtual int ReadID(uint8_t *id);
     
     VL53L0X_Error WaitMeasurementDataReady(VL53L0X_DEV Dev);
     VL53L0X_Error WaitStopCompleted(VL53L0X_DEV Dev);
@@ -1351,8 +1393,9 @@
     int IsPresent()
     {
        int status;
+       uint8_t id;
 			
-       status=ReadID();
+       status=ReadID(&id);
        if(status)
           VL53L0X_ErrLog("Failed to read ID device. Device not present!\n\r");
        return status;