Sweep a servo according to Proximity sensor measure

Dependencies:   Servo X_NUCLEO_6180XA1 mbed

Fork of HelloWorld_6180XA1 by ST

Revision:
17:68515d0667af
Parent:
16:fbf61b7c65ba
Child:
18:6312be3b32d9
--- a/main.cpp	Wed Oct 28 13:09:32 2015 +0000
+++ b/main.cpp	Wed Oct 28 14:56:58 2015 +0000
@@ -16,7 +16,7 @@
 //#define ALS_SINGLE_SHOT_POLLING
 //#define RANGE_CONTINUOUS_POLLING
 //#define ALS_CONTINUOUS_POLLING
-//#define RANGE_CONTINUOUS_INTERRUPT
+#define RANGE_CONTINUOUS_INTERRUPT
 //#define ALS_CONTINUOUS_INTERRUPT
 //#define INTERLEAVED_MODE_INTERRUPT
 //#define RANGE_CONTINUOUS_POLLING_LOW_THRESHOLD
@@ -31,7 +31,6 @@
 //#define ALS_CONTINUOUS_INTERRUPT_LOW_THRESHOLD
 //#define ALS_CONTINUOUS_INTERRUPT_HIGH_THRESHOLD
 //#define ALS_CONTINUOUS_INTERRUPT_OUT_OF_WINDOW
-#define HAND_GESTURE
 
 /* timer and digital out pin used for debugging */
 //Timer timer;
@@ -41,7 +40,7 @@
 DevI2C device_i2c(VL6180X_I2C_SDA, VL6180X_I2C_SCL);
 static X_NUCLEO_6180XA1 *board=X_NUCLEO_6180XA1::Instance(&device_i2c);
 
-HmiBBGesture gesture_reco;
+//HmiBBGesture gesture_reco;
 
 MeasureData_t data_sensor_top, data_sensor_bottom, data_sensor_left, data_sensor_right;
 	
@@ -268,99 +267,6 @@
       printf("Failed to stop measurement!\n\r");
 #endif
 
-/* Hand Gesture test application  */
-#ifdef HAND_GESTURE
-#define ALS_DELAY       5000
-   int gest_code, prev_gest_code, gest_duration;
-   char str[5];
-   char valLeft[] = {'E'};
-   char valRight[] = {'3'};		 
-   char valTap[] = {'0'};
-   unsigned int timeout = 10000;
-   
-   status_l=board->sensor_left->StartMeasurement(range_continuous_interrupt, SensorLeftIRQ, &data_sensor_left, NULL, NULL);	
-   status_r=board->sensor_right->StartMeasurement(range_continuous_interrupt, SensorRightIRQ, &data_sensor_right, NULL, NULL);
-   status_t=board->sensor_top->StartMeasurement(als_continuous_polling, NULL, &data_sensor_top, NULL, NULL);
-   gesture_reco.Init(150, 100, 200, 60, 500);
-   if((!status_l)&&(!status_r)&&(!status_t))
-   {
-      while(1)
-      {
-         if(flag_sensor_left)
-         {
-            flag_sensor_left=false;
-	    status_l=board->sensor_left->HandleIRQ(range_continuous_interrupt, &data_sensor_left);
-         }
-         if(flag_sensor_right)
-         {
-            flag_sensor_right=false;
-            status_r=board->sensor_right->HandleIRQ(range_continuous_interrupt, &data_sensor_right);
-         }
-         if(data_sensor_left.range_mm>400) 
-            data_sensor_left.range_mm=400;
-    	 if(data_sensor_right.range_mm>400)
-            data_sensor_right.range_mm=400;
-         gest_code=gesture_reco.Update(data_sensor_right.range_mm, data_sensor_left.range_mm, &gest_duration);
-         if(timeout==ALS_DELAY && gest_code==-1)
-         {
-            status=board->sensor_top->GetMeasurement(als_continuous_polling, &data_sensor_top);
-            if(!status_t)
-	       printf("Light measure: %d lux\n\r",data_sensor_top.lux);
-	    else
-	       printf("Invalid light value!\n\r");
-         }
-         switch(gest_code)
-         {
-            case -1:
-              timeout++;
-              if(timeout>=ALS_DELAY)
-                 timeout=ALS_DELAY;
-              break;
-            case 0: //tap and start timer
-              if(gest_code!=prev_gest_code)
-              {
-                 prev_gest_code=gest_code;
-                 sprintf(str,"%s","0-");
-                 board->display->DisplayDigit(valTap, 1); 
-              }
-              else
-              {
-                 if(strcmp(str,"0-")==0)
-                 {
-                   sprintf(str,"-0");
-                   board->display->DisplayDigit(valTap, 2);
-                 }
-                 else
-                 {
-                   sprintf(str,"0-");
-                   board->display->DisplayDigit(valTap, 1); 
-                 }
-              }
-              timeout=0;
-              break;
-            case 1: //left to right
-              board->display->DisplayDigit(valRight, 3);
-              timeout=0;
-              break;
-            case 2: //right to left
-              board->display->DisplayDigit(valLeft, 0);
-              timeout=0;
-              break;
-            default:
-              printf("Errore!\n\r");
-         }
-      }
-   }
-   else 
-      printf("Failed to start measurement!\n\r");
-   status_t=board->sensor_top->StopMeasurement(range_continuous_interrupt_low_threshold);
-   if(status_t)
-      printf("Failed to stop measurement!\n\r");
-   status_t=board->sensor_top->StopMeasurement(als_continuous_interrupt);
-   if(status_t)
-      printf("Failed to stop measurement!\n\r");
-#endif
-
 delete board;   
    
 }