コード例 #1
0
 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
コード例 #2
0
 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
コード例 #3
0
    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:]