def command_set_param(self, cmd, param): deps = bytearray() deps.append(0x46) deps.append(0x49) deps.append(0x31) deps.append(cmd) deps.append(param) try: AvcGeneral.set_vendor_dependent(self.fcp, self.company_ids, deps) except Exception as e: if str(e) != 'Unknown status': raise e
def __command_set(cls, fcp, cmd, key, name): if key not in cls.__PARAMS[cmd]: raise ValueError('Invalid argument for {0}.'.format(name)) data = bytearray() data.extend(cls.__PREFIX) data.append(cmd.value) data.append(cls.__PARAMS[cmd][key]) try: AvcGeneral.set_vendor_dependent(fcp, cls.__OUI, data) # The response frame includes wrong __OUI and __PREFIX. except Exception as e: # The response code is 0x0c, against control requect (0x00). if str(e) != 'Unknown status': raise e
def command_set(cls, fcp: Hinawa.FwFcp, cmd: VendorCmd, args: bytearray): data = bytearray() data.append(cmd.value) if len(args) > 0: data.extend(args) # At least, 6 bytes should be required to align to 3 quadlets. # Unless, target unit is freezed. if len(data) < 6: for i in range(6 - len(data)): data.append(0x00) resps = AvcGeneral.set_vendor_dependent(fcp, cls.__OUI, data) if resps[0] != data[0]: raise OSError('Unexpected value for vendor-dependent command.') return resps[1:]