firmware_Cr50CCDServoCap: wait until ccdstate is done debouncing

Sometimes the test sees 'debouncing' as a state and fails, because that
doesn't fit into the off and on categories. This changes get_ccdstate to
wait until the state is done debouncing

BUG=none
BRANCH=none
TEST=run firmware_Cr50CCDServoCap

Change-Id: I5495f6df9f446058722ea414a31eca5968a7389b
Signed-off-by: Mary Ruthven <mruthven@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/autotest/+/1612286
Reviewed-by: Kevin Shelton <kmshelton@chromium.org>
diff --git a/server/site_tests/firmware_Cr50CCDServoCap/firmware_Cr50CCDServoCap.py b/server/site_tests/firmware_Cr50CCDServoCap/firmware_Cr50CCDServoCap.py
index 9e1e8d2..6c61292 100644
--- a/server/site_tests/firmware_Cr50CCDServoCap/firmware_Cr50CCDServoCap.py
+++ b/server/site_tests/firmware_Cr50CCDServoCap/firmware_Cr50CCDServoCap.py
@@ -159,8 +159,13 @@
 
     def get_ccdstate(self):
         """Get the current Cr50 CCD states"""
-        rv = self.cr50.send_command_get_output('ccdstate',
-                                               ['ccdstate(.*)>'])[0][0]
+        for i in range(self.cr50.MAX_RETRY_COUNT):
+            rv = self.cr50.send_command_get_output('ccdstate',
+                                                   ['ccdstate(.*)>'])[0][0]
+            if 'debouncing' not in rv:
+                break
+            time.sleep(self.cr50.SHORT_WAIT)
+
         # I2C isn't a reliable flag, because the hardware often doesn't support
         # it. Remove any I2C flags from the ccdstate output.
         rv = rv.replace(' I2C', '')