@@ -204,59 +204,57 @@ def gesture(self): #pylint: disable-msg=too-many-branches
204
204
up_down_diff = 0
205
205
left_right_diff = 0
206
206
gesture_received = 0
207
-
208
207
time .sleep (0.030 ) # 30 ms
209
208
210
209
n_recs = self ._read8 (APDS9960_GFLVL )
211
- if not n_recs :
212
- continue
213
-
214
- with self .i2c_device as i2c :
215
- i2c .write (buffer , end = 1 , stop = False )
216
- i2c .readinto (buffer , start = 1 , end = min (129 , 1 + n_recs * 4 ))
217
- upp , down , left , right = buffer [1 :5 ]
218
-
219
- if abs (upp - down ) > 13 :
220
- up_down_diff = upp - down
221
-
222
- if abs (left - right ) > 13 :
223
- left_right_diff = left - right
224
-
225
- if up_down_diff != 0 :
226
- if up_down_diff < 0 :
227
- # either leading edge of down movement
228
- # or trailing edge of up movement
229
- if self ._saw_up_start :
230
- gesture_received = 0x01 # up
231
- else :
232
- self ._saw_down_start += 1
233
- elif up_down_diff > 0 :
234
- # either leading edge of up movement
235
- # or trailing edge of down movement
236
- if self ._saw_down_start :
237
- gesture_received = 0x02 # down
238
- else :
239
- self ._saw_up_start += 1
240
-
241
- if left_right_diff != 0 :
242
- if left_right_diff < 0 :
243
- # either leading edge of right movement
244
- # trailing edge of left movement
245
- if self ._saw_left_start :
246
- gesture_received = 0x03 # left
247
- else :
248
- self ._saw_right_start += 1
249
- elif left_right_diff > 0 :
250
- # either leading edge of left movement
251
- # trailing edge of right movement
252
- if self ._saw_right_start :
253
- gesture_received = 0x04 #right
254
- else :
255
- self ._saw_left_start += 1
256
-
257
- # saw a leading or trailing edge; start timer
258
- if up_down_diff != 0 or left_right_diff != 0 :
259
- time_mark = time .monotonic ()
210
+ if n_recs :
211
+
212
+ with self .i2c_device as i2c :
213
+ i2c .write (buffer , end = 1 , stop = False )
214
+ i2c .readinto (buffer , start = 1 , end = min (129 , 1 + n_recs * 4 ))
215
+ upp , down , left , right = buffer [1 :5 ]
216
+
217
+ if abs (upp - down ) > 13 :
218
+ up_down_diff = upp - down
219
+
220
+ if abs (left - right ) > 13 :
221
+ left_right_diff = left - right
222
+
223
+ if up_down_diff != 0 :
224
+ if up_down_diff < 0 :
225
+ # either leading edge of down movement
226
+ # or trailing edge of up movement
227
+ if self ._saw_up_start :
228
+ gesture_received = 0x01 # up
229
+ else :
230
+ self ._saw_down_start += 1
231
+ elif up_down_diff > 0 :
232
+ # either leading edge of up movement
233
+ # or trailing edge of down movement
234
+ if self ._saw_down_start :
235
+ gesture_received = 0x02 # down
236
+ else :
237
+ self ._saw_up_start += 1
238
+
239
+ if left_right_diff != 0 :
240
+ if left_right_diff < 0 :
241
+ # either leading edge of right movement
242
+ # trailing edge of left movement
243
+ if self ._saw_left_start :
244
+ gesture_received = 0x03 # left
245
+ else :
246
+ self ._saw_right_start += 1
247
+ elif left_right_diff > 0 :
248
+ # either leading edge of left movement
249
+ # trailing edge of right movement
250
+ if self ._saw_right_start :
251
+ gesture_received = 0x04 #right
252
+ else :
253
+ self ._saw_left_start += 1
254
+
255
+ # saw a leading or trailing edge; start timer
256
+ if up_down_diff or left_right_diff :
257
+ time_mark = time .monotonic ()
260
258
261
259
# finished when a gesture is detected or ran out of time (300ms)
262
260
if gesture_received or time .monotonic () - time_mark > 0.300 :
0 commit comments