Add auto-fingertip management support for Touchbot

This CL adds in the code to automatically manage which fingertips are
loaded on the robot during the test.  By adding the "require"
function to each of the gestures, the touchbot object's internal
state can keep track of which tips are loaded and swap them out for
us when needed, without extra work in the FW test.

BUG=chromium:474709
TEST=manual testing.  When I ran it the robot got all the fingertips
it needed without any problems.

Change-Id: I39c1df7fa4a25dc2b1aa2f0926232c2541c472ed
Signed-off-by: Charlie Mooney <charliemooney@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/269772
Reviewed-by: Shyh-In Hwang <josephsih@chromium.org>
diff --git a/gesture_interpreter.py b/gesture_interpreter.py
index 7496bcc..e18039b 100644
--- a/gesture_interpreter.py
+++ b/gesture_interpreter.py
@@ -17,6 +17,7 @@
 from touchbot import Touchbot
 
 
+NOISE_TESTING_FINGERTIP = '1round_12mm'
 STANDARD_FINGERTIP = '1round_9mm'
 STANDARD_SECONDARY_FINGERTIP = '2round_9mm'
 
@@ -110,7 +111,7 @@
 def _PerformStationaryNoiseTest(variation, robot, device_spec):
   frequency, amplitude, waveform, location = variation
   tap_position = LOCATION_COORDINATES[location]
-  fingertip = robot.fingertips[STANDARD_FINGERTIP]
+  fingertip = robot.fingertips[NOISE_TESTING_FINGERTIP]
   robot.Tap(device_spec, [fingertip], tap_position, touch_time_s=4)
 
 
@@ -186,7 +187,10 @@
   else:
     start_distance, end_distance = min_spread, max_spread
 
+  fingertips = [robot.fingertips[STANDARD_FINGERTIP],
+                robot.fingertips[STANDARD_SECONDARY_FINGERTIP]]
+
   robot.PushSpeed(SPEEDS[tests.GV.NORMAL])
-  robot.Pinch(device_spec, (CENTER, CENTER), ANGLES[angle],
+  robot.Pinch(device_spec, fingertips, (CENTER, CENTER), ANGLES[angle],
               start_distance, end_distance)
   robot.PopSpeed()