Python LimitlessLED via RF

Check-in [4631f6c93e]
Login
Overview
Comment:Corrected color computation
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA3-256: 4631f6c93e45ee32b651a5dd861c6fdb360ad7ff0bd626b4940929a8cef9149b
User & Date: rkeene on 2020-04-28 16:39:53
Other Links: manifest | tags
Context
2020-04-28
16:58
Ensure on/off are delivered check-in: 1b6d5a2023 user: rkeene tags: trunk
16:39
Corrected color computation check-in: 4631f6c93e user: rkeene tags: trunk
16:31
Added ignores check-in: 4e8659777a user: rkeene tags: trunk
Changes

Modified __init__.py from [1d38bdb4f5] to [d36207e003].

1
2
3
4
5
6
7
8
9
10
11
12
1
2
3
4

5
6
7
8
9
10
11




-







#! /usr/bin/env python3

import random
import time
import math

class remote:
	_remote_type_alias_map = {
		'fut089': 'rgb+cct'
	}
	_remote_type_parameters_map = {
		'rgbw': {
436
437
438
439
440
441
442



443
444
445


446
447



448

449
450
451
452
453
454
455
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463







+
+
+



+
+


+
+
+

+







		return h

	def _rgb_to_color(self, rgb):
		r = (rgb >> 16) & 0xff
		g = (rgb >>  8) & 0xff
		b =  rgb        & 0xff

		# If the value is really a shade of white
		# encode the brightness as a negative value
		# where 0 is -1, 1 is -2, etc
		if r == g and g == b:
			return (r * -1) - 1

		# Compute the hue of the RGB value (ignore
		# luminance and saturation)
		h = self._rgb_to_hue(r, g, b)

		# Convert the hue into a LimitlessLED value
		# which is really just the position along the
		# color strip, offset
		color = ((h / 360.0) * 255.0) + 26
		color = color % 256

		color = int(color + 0.5)

		self._debug("RGB = \x1b[38;2;%i;%i;%im%06x\x1b[0m; Hue = %s; Color = %i" % (r, g, b, rgb, str(h * 360), color))

		return color