Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
self.device.release()
def _write(self, data):
padding = [0x0]*(self._WRITE_LENGTH - len(data))
LOGGER.debug('write %s (and %i padding bytes)',
' '.join(format(i, '02x') for i in data), len(padding))
self.device.write(data + padding)
def _write_colors(self, cid, mode, colors, sval):
raise NotImplementedError()
def _write_fixed_duty(self, cid, duty):
raise NotImplementedError()
class SmartDeviceDriver(CommonSmartDeviceDriver):
"""liquidctl driver for the NZXT Smart Device (V1) and Grid+ V3."""
SUPPORTED_DEVICES = [
(0x1e71, 0x1714, None, 'NZXT Smart Device (V1)', {
'speed_channel_count': 3,
'color_channel_count': 1
}),
(0x1e71, 0x1711, None, 'NZXT Grid+ V3', {
'speed_channel_count': 6,
'color_channel_count': 0
}),
]
_READ_LENGTH = 21
_WRITE_LENGTH = 65
# but in super mode there is a single step and each color directly controls a led
if 'super' in mode:
steps = [list(itertools.chain(*colors))]
else:
steps = [color*40 for color in colors]
for i, leds in enumerate(steps):
seq = i << 5
byte4 = sval | seq | mod4
self._write([0x2, 0x4b, mval, mod3, byte4] + leds[0:57])
self._write([0x3] + leds[57:])
def _write_fixed_duty(self, cid, duty):
self._write([0x2, 0x4d, cid, 0, duty])
class SmartDeviceV2Driver(CommonSmartDeviceDriver):
"""liquidctl driver for the NZXT Smart Device V2, NZXT HUE 2 and NZXT HUE 2 Ambient."""
SUPPORTED_DEVICES = [
(0x1e71, 0x2006, None, 'NZXT Smart Device V2 (experimental)', {
'speed_channel_count': 3,
'color_channel_count': 2
}),
(0x1e71, 0x2001, None, 'NZXT HUE 2 (experimental)', {
'speed_channel_count': 0,
'color_channel_count': 4
}),
(0x1e71, 0x2002, None, 'NZXT HUE 2 Ambient (experimental)', {
'speed_channel_count': 0,
'color_channel_count': 2
}),
]