import sh from sh import flashcp from sh import flash_erase from sh import ErrorReturnCode from sh import Command from test.helpers.gpio import gpio class dcpPLC(object): __nReset = None __Phy = None __Plc = None __mtd_device = None __factool = None __myConfigTool = None def __init__(self, plcfactool, mtd_device): # default save firmware self.__nRest = gpio('75', 'out', '0') self.__nRest = gpio('69', 'out', '0') self.__nRest = gpio('78', 'out', '1') self.__factool = plcfactool self.__mtd_device = mtd_device self.__myConfigTool = Command(self.__factool) def setSaveFirmwareMode(self): self.__nRest = gpio('75', 'out', '0') self.__nRest = gpio('69', 'out', '0') self.__nRest = gpio('78', 'out', '1') def setBootMode(self): self.__nRest = gpio('78', 'out', '0') self.__nRest = gpio('75', 'out', '1') self.__nRest = gpio('69', 'out', '1') def SaveFirmware(self, firmare): self.setSaveFirmwareMode() try: flash_erase(self.__mtd_device) flashcp(firmare, self.__mtd_device) except ErrorReturnCode as Error: return False, "plc flash firmware failed {} ".format(Error.exit_code) return True, '' def set_plc (self, var, value, password): try: self.__myConfigTool("-o", "SET", "-p", "{}".format(var), '{}'.format(value), "-w", "{}".format(password)) except ErrorReturnCode as Error: return False, "set var failed {} {}".format(var,Error.exit_code) return True, '' def get_plc (self, var, value, password): try: self.__myConfigTool("-o", "GET", "-p", "{}".format(var), '{}'.format(value), "-w", "{}".format(password)) except ErrorReturnCode as Error: return False, "set var failed {} {}".format(var,Error.exit_code) return True, ''