from test.helpers.syscmd import SysCommand import unittest import uuid import time class Qbutton(unittest.TestCase): def __init__(self, testname, testfunc, gpio): if gpio == "SOPA": super(Qbutton, self).__init__("buttonSopa") else: super(Qbutton, self).__init__("buttonGpio") self._testMethodDoc = testname def buttonGpio(self): print("normal-button-test-using-gpio") self.fail("failed: GPIO BUTTON FAIL") def buttonSopa(self): str_cmd = "i2cset -f -y 1 0x2d 0x40 0x31" disable_pmic = SysCommand("disable_pmic", str_cmd) disable_pmic.execute() # BUG: REPEAT THIS EXECUTION TWICE BECAUSE FIRST TIME IT RETURNS AN ERROR led_on="echo 1 > /sys/class/leds/red\:usbhost/brightness" ledon = SysCommand("led_on", led_on) ledon.execute() time.sleep(0.1) disable_pmic.execute() if disable_pmic.execute() == 0: str_cmd = "i2cset -f -y 1 0x2d 0x50 0xff" reset_button = SysCommand("reset_button", str_cmd) if reset_button.execute() == 0: str_cmd = "i2cget -f -y 1 0x2d 0x50" get_button_val = SysCommand("get_button_val", str_cmd) print("\n\t --> PRESS button for 1 sec (TIMEOUT: 10s) \n") timeout = 0 while timeout < 20: if get_button_val.execute() == 0: get_button_val.execute() button_value = get_button_val.getOutput() button_value=button_value.decode('ascii').split("x") if int(button_value[1]) == 4: timeout = 20 time.sleep(0.5) timeout = timeout + 1 if timeout==20 and int(button_value[1]) == 0: self.fail("failed: timeout exceeded") else: timeout = 20 self.fail("failed: not button input") else: self.fail("failed: could not complete i2c reset button state") else: self.fail("failed: could not complete i2c disable PMIC")