コード例 #1
0
 def test_changing_port(self):
     """ Validate port parsing """
     led = LedController("127.0.0.1", port=123)
     self.assertEqual(led.gateway_port, 123)
     led = LedController("127.0.0.1", port="123")
     self.assertEqual(led.gateway_port, 123)
     with self.assertRaises(ValueError):
         LedController("127.0.0.1", port=0)
コード例 #2
0
 def test_sleep(self):  # pylint: disable=no-self-use
     """ Verify sleeps between subsequent commands """
     led = LedController("127.0.0.1", pause_between_commands=0.5, repeat_commands=1)
     start_time = time.time()
     led.on()
     self.assertLess(time.time() - start_time, 0.45)  # there is no sleep for a single command
     led.off()  # this command needs to wait almost 0.5 seconds
     self.assertGreater(time.time() - start_time, 0.45)
コード例 #3
0
 def test_when_no_tag_outputs_zeros(self):
     device = Mock()
     controller = LedController(device)
     controller.show()
     device.show.assert_called_with([[0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0],
                           [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0],
                           [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0],
                           [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0],
                           [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0]])
コード例 #4
0
 def test_changing_repeat_commands(self):
     """ Change number of repeated commands """
     led = LedController("127.0.0.1", repeat_commands=0)
     self.assertEqual(led.repeat_commands, 1)
     led = LedController("127.0.0.1", repeat_commands=1)
     self.assertEqual(led.repeat_commands, 1)
     led = LedController("127.0.0.1", repeat_commands=2)
     self.assertEqual(led.repeat_commands, 2)
     with self.assertRaises(ValueError):
         LedController("127.0.0.1", repeat_commands=-1)
コード例 #5
0
def run_timed_actions():
    """ Runs light programs """
    led = LedController(settings.MILIGHT_IP)
    now = timezone.now()

    allowed_groups = set()
    for group in range(1, 5):
        if redis_instance.get("lightcontrol-no-automatic-%s" % group) is None:
            allowed_groups.add(group)

    for item in LightAutomation.objects.filter(running=True):
        if not item.is_running(now):
            continue
        percent_done = item.percent_done(now)
        logger.debug("Running %s, done %s%%", item.action, percent_done)

        brightness = None # Set brightness

        if item.action == "evening" or item.action == "evening-weekend":
            brightness = int((1-percent_done)*100)
        elif item.action == "morning" or item.action == "morning-weekend":
            brightness = int(percent_done * 100)

        if not item.action_if_off:
            # Don't turn on lights
            for group in list(allowed_groups): # cast to list to avoid "Set changed size during iteration"
                group_item, _ = LightGroup.objects.get_or_create(group_id=group)
                if group_item.on == False:
                    allowed_groups.remove(group)
        logger.debug("Only run on %s", allowed_groups)

        if item.set_white:
            for group in allowed_groups:
                led.white(group)
                logger.debug("Set %s to white", group)
                update_lightstate(group, None, "white", important=False)
        if brightness:
            logger.debug("Setting brightness to %s%%", brightness)
            publish_ws("lightcontrol-timed-brightness-%s" % item.action, brightness)
            for group in allowed_groups:
                group_brightness = brightness
                group_item, _ = LightGroup.objects.get_or_create(group_id=group)
                if item.no_brighten:
                    logger.debug("Current brightness: %s%%", group_item.current_brightness)
                    if group_item.current_brightness is not None:
                        group_brightness = min(group_item.current_brightness, group_brightness)
                if item.no_dimming:
                    logger.debug("Current brightness: %s%%", group_item.current_brightness)
                    if group_item.current_brightness is not None:
                        group_brightness = max(group_item.current_brightness, group_brightness)
                if group_item.current_brightness:
                    if led.get_brightness_level(group_brightness) == led.get_brightness_level(group_item.current_brightness):
                        logger.debug("Not sending brightness update to %s: no difference in brightness level", group)
                        continue
                logger.debug("Setting %s to %s", (group, group_brightness))
                led.set_brightness(group_brightness, group)
                update_lightstate(group, group_brightness, important=False)
            set_destination_brightness()
コード例 #6
0
 def test_default_constructor(self):
     """ Verify default settings """
     led = LedController("127.0.0.1")
     self.assertEqual(led.gateway_ip, "127.0.0.1")
     self.assertEqual(led.gateway_port, 8899)
     self.assertEqual(led.repeat_commands, 3)
     self.assertEqual(led.pause_between_commands, 0.1)
コード例 #7
0
 def setUp(self):
     self.led = LedController("127.0.0.1",
                              pause_between_commands=0,
                              repeat_commands=0,
                              group_1="rgbw",
                              group_2="white",
                              group_3="rgbw",
                              group_4="white")
コード例 #8
0
 def test_when_tacking_tag_set_then_cleared_will_show_zero(self):
     device = Mock()
     controller = LedController(device)
     controller.set_have_tracking_tag()
     controller.clear_tag()
     controller.show()
     device.show.assert_called_with([[0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0],
                           [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0],
                           [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0],
                           [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0],
                           [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0]])
コード例 #9
0
 def test_when_progress_tag_set_then_cleared_will_show_zero(self):
     device = Mock()
     controller = LedController(device)
     controller.set_progress(60, 30)
     controller.clear_tag()
     controller.show()
     device.show.assert_called_with([[0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0],
                           [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0],
                           [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0],
                           [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0],
                           [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0]])
コード例 #10
0
 def test_sleep(self):  # pylint: disable=no-self-use
     """ Verify sleeps between subsequent commands """
     led = LedController("127.0.0.1",
                         pause_between_commands=0.5,
                         repeat_commands=1)
     start_time = time.time()
     led.on()
     self.assertLess(time.time() - start_time,
                     0.45)  # there is no sleep for a single command
     led.off()  # this command needs to wait almost 0.5 seconds
     self.assertGreater(time.time() - start_time, 0.45)
コード例 #11
0
 def test_when_set_unknown_tag_it_calls_show_unknown_tag(self):
     device = Mock()
     controller = LedController(device)
     controller.set_unknown_tag()
     controller.show()
     device.show.assert_called_once()
     device.show.assert_called_with([[0, 0, 255], [255, 0, 0], [0, 0, 255], [255, 0, 0], [0, 0, 255],
                           [255, 0, 0], [0, 0, 255], [255, 0, 0], [0, 0, 255], [255, 0, 0],
                           [0, 0, 255], [255, 0, 0], [0, 0, 255], [255, 0, 0], [0, 0, 255],
                           [255, 0, 0], [0, 0, 255], [255, 0, 0], [0, 0, 255], [255, 0, 0],
                           [0, 0, 255], [255, 0, 0], [0, 0, 255], [255, 0, 0]])
コード例 #12
0
 def test_when_set_have_tracking_tag_it_calls_show_tracking_display(self):
     device = Mock()
     controller = LedController(device)
     controller.set_have_tracking_tag()
     controller.show()
     controller.show()
     self.assertEqual(device.show.call_count, 2)
     device.show.assert_called_with([[0, 0, 255], [0, 0, 255], [0, 0, 255], [0, 0, 255], [0, 0, 255],
                           [0, 0, 255], [0, 0, 255], [0, 0, 255], [0, 0, 255], [0, 0, 255],
                           [0, 0, 255], [0, 0, 255], [0, 0, 255], [0, 0, 255], [0, 0, 255],
                           [0, 0, 255], [0, 0, 255], [0, 0, 255], [0, 0, 255], [0, 0, 255],
                           [0, 0, 255], [0, 0, 255], [0, 0, 255], [0, 0, 255]])
コード例 #13
0
 def test_sleep(self):
     led = LedController("127.0.0.1")
     led.on()
     led.off()
コード例 #14
0
from django.conf import settings
from django.core import serializers
from django.db import models
from django.db.models.signals import post_save, post_delete
from django.dispatch import receiver
from django.utils import timezone
from homedisplay.utils import publish_ws
from ledcontroller import LedController
import datetime
import json
import logging
import redis

__all__ = ["LightGroup", "LightAutomation", "update_lightstate", "is_any_timed_running", "get_serialized_timed_action", "get_serialized_lightgroup"]

led = LedController(settings.MILIGHT_IP)
redis_instance = redis.StrictRedis()
logger = logging.getLogger(__name__)


def get_morning_light_level(group_id=None):
    # TODO: this is called relatively often, and this fetches all LightGroup objects on every iteration.
    max_brightness = 0
    items = LightGroup.objects.filter(on=True)
    if group_id is None or group_id == 0:
        # Process all groups
        for g in items:
            max_brightness = max(g.current_brightness or 0, max_brightness)
        return min(10, max_brightness)
    else:
        # Process only a single group
コード例 #15
0
ファイル: led.py プロジェクト: Chris-Johnston/ledcap
"""
LED Driver

This is the actual thing that drives the LEDS
"""

from patternmanager import PatternManager
from ledcontroller import LedController
from ledview import LedView

LED_DIMENSIONS = (14, 14)
colors = []
for row in range(LED_DIMENSIONS[0]):
    new = []
    for col in range(LED_DIMENSIONS[1]):
        new.append(0xff00ff)
    colors.append(new)

pm = PatternManager(colors, LED_DIMENSIONS)
lv = LedView(colors, LED_DIMENSIONS, pm.update)
lc = LedController(pm)
lv.draw()

コード例 #16
0
class TestRgbwLights(unittest.TestCase):  # pylint: disable=too-many-public-methods
    """
    Common tests for different setups (light combinations). Also default tests (rgbw only).
    """

    def setUp(self):
        self.led = LedController("127.0.0.1", pause_between_commands=0, repeat_commands=0)

    def test_on(self):
        """ Turn on lights """
        self.led.on()
        for group_id in range(5):
            self.led.on(group_id)

    def test_off(self):
        """ Turn off lights """
        self.led.off()
        for group_id in range(5):
            self.led.off(group_id)

    def test_white(self):
        """ Set lights to white """
        self.led.white()
        for group_id in range(5):  # intentionally includes 0-4, as 0 is a special case
            self.led.white(group_id)
        self.led.white(None)

    def test_set_color(self):
        """ Set lights to predefined colors """
        self.led.set_color("white")
        self.led.set_color("red")

    def test_set_color_by_int(self):
        """ Set lights to color (int) """
        self.led.set_color(0)
        self.led.set_color(1)
        self.led.set_color(156)
        self.led.set_color(255)
        with self.assertRaises(AttributeError):
            self.led.set_color(-1)
        with self.assertRaises(AttributeError):
            self.led.set_color(256)

    def test_set_brightness(self):
        """ Set brightness """
        self.assertEqual(self.led.set_brightness(-1), 0, "negative brightness not clamped properly")
        self.assertEqual(self.led.set_brightness(101), 100, ">100 brightness not clamped properly")
        self.assertEqual(self.led.set_brightness(50), 50, "50% outputs != 50%")

    def test_set_brightness_float(self):
        """ Set brightness (float) """
        self.assertEqual(self.led.set_brightness(0.1), 10, "float(0.1) not parsed to 10%")
        self.assertEqual(self.led.set_brightness(1.0), 100, "float(1.0) not parsed to 100%")
        self.assertEqual(self.led.set_brightness(50.0), 50, "float(50.0) not parsed to 50%")

    def test_disco(self):
        """ Enable disco mode """
        self.led.disco()
        for group_id in range(5):
            self.led.disco(group_id)

    def test_disco_faster(self):
        """ Increase disco mode speed """
        self.led.disco_faster()
        for group_id in range(5):
            self.led.disco_faster(group_id)

    def test_disco_slower(self):
        """ Decrease disco mode speed """
        self.led.disco_slower()
        for group_id in range(5):
            self.led.disco_slower(group_id)

    def test_nightmode(self):
        """ Enable nightmode """
        self.led.nightmode()
        for group_id in range(5):
            self.led.nightmode(group_id)

    def test_warmer(self):
        """ Test white light -> warmer """
        self.led.warmer()
        for group_id in range(5):
            self.led.warmer(group_id)

    def test_cooler(self):
        """ Test white light -> cooler """
        self.led.cooler()
        for group_id in range(5):
            self.led.cooler(group_id)

    def test_brightness_up(self):
        """ Increase brightness """
        self.led.brightness_up()
        for group_id in range(5):
            self.led.brightness_up(group_id)

    def test_brightness_down(self):
        """ Decrease brightness """
        self.led.brightness_down()
        for group_id in range(5):
            self.led.brightness_down(group_id)

    def test_batch_run(self):
        """ Batch run multiple commands """
        led = self.led
        led.batch_run((led.set_brightness, 10, 3), (led.set_color, "red"), (led.off,))

    def test_invalid_group_type(self):
        """ Set invalid group type """
        self.assertRaises(AttributeError, self.led.set_group_type, 1, "asdf")

    def test_invalid_group_number(self):
        """ Set invalid group number """
        self.assertRaises(AttributeError, self.led.on, 5)
コード例 #17
0
 def setUp(self):
     self.led = LedController("127.0.0.1",
                              pause_between_commands=0,
                              repeat_commands=0)
コード例 #18
0
class TestRgbwLights(unittest.TestCase):
    def setUp(self):
        self.led = LedController("127.0.0.1",
                                 pause_between_commands=0,
                                 repeat_commands=0)

    def test_default_constructor(self):
        led = LedController("127.0.0.1")
        self.assertEqual(led.gateway_ip, "127.0.0.1")
        self.assertEqual(led.gateway_port, 8899)
        self.assertEqual(led.repeat_commands, 3)
        self.assertEqual(led.pause_between_commands, 0.1)

    def test_changing_port(self):
        led = LedController("127.0.0.1", port=123)
        self.assertEqual(led.gateway_port, 123)
        led = LedController("127.0.0.1", port="123")
        self.assertEqual(led.gateway_port, 123)

    def test_sleep(self):
        led = LedController("127.0.0.1")
        led.on()
        led.off()

    def test_changing_pause(self):
        led = LedController("127.0.0.1", pause_between_commands=0.8)
        self.assertEqual(led.pause_between_commands, 0.8)

    def test_changing_repeat_commands(self):
        led = LedController("127.0.0.1", repeat_commands=0)
        self.assertEqual(led.repeat_commands, 1)

    def test_on(self):
        self.led.on()
        self.led.on(1)

    def test_off(self):
        self.led.off()
        self.led.off(2)

    def test_white(self):
        self.led.white()
        for a in range(5):
            self.led.white(a)
        self.led.white(None)

    def test_set_color(self):
        self.led.set_color("white")
        self.led.set_color("red")

    def test_set_brightness(self):
        self.assertEquals(self.led.set_brightness(-1), 0,
                          "negative brightness not clamped properly")
        self.assertEquals(self.led.set_brightness(101), 100,
                          ">100 brightness not clamped properly")
        self.assertEquals(self.led.set_brightness(50), 50,
                          "50% outputs != 50%")

    def test_set_brightness_float(self):
        self.assertEquals(self.led.set_brightness(0.1), 10,
                          "float(0.1) not parsed to 10%")
        self.assertEquals(self.led.set_brightness(1.0), 100,
                          "float(1.0) not parsed to 100%")
        self.assertEquals(self.led.set_brightness(50.0), 50,
                          "float(50.0) not parsed to 50%")

    def test_disco(self):
        self.led.disco(1)
        self.led.disco()

    def test_disco_faster(self):
        self.led.disco_faster(1)
        self.led.disco_faster()

    def test_disco_slower(self):
        self.led.disco_slower(1)
        self.led.disco_slower()

    def test_nightmode(self):
        self.led.nightmode()
        self.led.nightmode(1)

    def test_warmer(self):
        self.led.warmer()
        self.led.warmer(1)

    def test_cooler(self):
        self.led.cooler()
        self.led.cooler(4)

    def test_brightness_up(self):
        self.led.brightness_up()
        self.led.brightness_up(4)

    def test_brightness_down(self):
        self.led.brightness_down()
        self.led.brightness_down(4)

    def test_batch_run(self):
        led = self.led
        led.batch_run((led.set_brightness, 10, 3), (led.set_color, "red"),
                      (led.off, ))

    def test_invalid_group_type(self):
        self.assertRaises(AttributeError, self.led.set_group_type, 1, "asdf")

    def test_invalid_group_number(self):
        self.assertRaises(AttributeError, self.led.on, 5)
コード例 #19
0
 def test_changing_repeat_commands(self):
     led = LedController("127.0.0.1", repeat_commands=0)
     self.assertEqual(led.repeat_commands, 1)
コード例 #20
0
 def test_changing_pause(self):
     led = LedController("127.0.0.1", pause_between_commands=0.8)
     self.assertEqual(led.pause_between_commands, 0.8)
コード例 #21
0
 def test_sleep(self):
     led = LedController("127.0.0.1")
     led.on()
     led.off()
コード例 #22
0
 def test_changing_port(self):
     led = LedController("127.0.0.1", port=123)
     self.assertEqual(led.gateway_port, 123)
     led = LedController("127.0.0.1", port="123")
     self.assertEqual(led.gateway_port, 123)
コード例 #23
0
 def test_changing_pause(self):
     """ Change pause times """
     led = LedController("127.0.0.1", pause_between_commands=0.8)
     self.assertEqual(led.pause_between_commands, 0.8)
     with self.assertRaises(ValueError):
         LedController("127.0.0.1", pause_between_commands=-0.1)
コード例 #24
0
ファイル: homer.py プロジェクト: ekwoodrich/nirha
				{
					'group_id' : 3,
					'color':'white'
				},
				{
					'group_id' : 4,
					'color':'white'
				}
			]
	}
]
	
ledcontroller_list = []

for bridge in bridge_list:
	controller = LedController(bridge['ip'])
	for group in bridge['group_list']:
		controller.set_group_type(group['group_id'], group['color'])
	ledcontroller_list.append(controller)

comm_manager = CommManager(ledcontroller_list)


living_room_lz = LightZone('Living Room - All', ledcontroller_list[0], 1)
kitchen_lz = LightZone('Kitchen - All', ledcontroller_list[1], 2)
bedroom_lz = LightZone('Bedroom', ledcontroller_list[1], 3)
bedside_lz = LightZone('Bedside Lamp', ledcontroller_list[0], 2)
bathroom_lz = LightZone('Bathroom - Overhead',ledcontroller_list[1], 4)
front_door_lz = LightZone('Front Door - Overhead', ledcontroller_list[0], 3, special = True)

コード例 #25
0
class TestRgbwLights(unittest.TestCase):
    def setUp(self):
        self.led = LedController("127.0.0.1", pause_between_commands=0, repeat_commands=0)

    def test_default_constructor(self):
        led = LedController("127.0.0.1")
        self.assertEqual(led.gateway_ip, "127.0.0.1")
        self.assertEqual(led.gateway_port, 8899)
        self.assertEqual(led.repeat_commands, 3)
        self.assertEqual(led.pause_between_commands, 0.1)

    def test_changing_port(self):
        led = LedController("127.0.0.1", port=123)
        self.assertEqual(led.gateway_port, 123)
        led = LedController("127.0.0.1", port="123")
        self.assertEqual(led.gateway_port, 123)

    def test_sleep(self):
        led = LedController("127.0.0.1")
        led.on()
        led.off()

    def test_changing_pause(self):
        led = LedController("127.0.0.1", pause_between_commands=0.8)
        self.assertEqual(led.pause_between_commands, 0.8)

    def test_changing_repeat_commands(self):
        led = LedController("127.0.0.1", repeat_commands=0)
        self.assertEqual(led.repeat_commands, 1)

    def test_on(self):
        self.led.on()
        self.led.on(1)

    def test_off(self):
        self.led.off()
        self.led.off(2)

    def test_white(self):
        self.led.white()
        for a in range(5):
            self.led.white(a)
        self.led.white(None)

    def test_set_color(self):
        self.led.set_color("white")
        self.led.set_color("red")

    def test_set_brightness(self):
        self.assertEquals(self.led.set_brightness(-1), 0, "negative brightness not clamped properly")
        self.assertEquals(self.led.set_brightness(101), 100, ">100 brightness not clamped properly")
        self.assertEquals(self.led.set_brightness(50), 50, "50% outputs != 50%")

    def test_set_brightness_float(self):
        self.assertEquals(self.led.set_brightness(0.1), 10, "float(0.1) not parsed to 10%")
        self.assertEquals(self.led.set_brightness(1.0), 100, "float(1.0) not parsed to 100%")
        self.assertEquals(self.led.set_brightness(50.0), 50, "float(50.0) not parsed to 50%")

    def test_disco(self):
        self.led.disco(1)
        self.led.disco()

    def test_disco_faster(self):
        self.led.disco_faster(1)
        self.led.disco_faster()

    def test_disco_slower(self):
        self.led.disco_slower(1)
        self.led.disco_slower()

    def test_nightmode(self):
        self.led.nightmode()
        self.led.nightmode(1)

    def test_warmer(self):
        self.led.warmer()
        self.led.warmer(1)

    def test_cooler(self):
        self.led.cooler()
        self.led.cooler(4)

    def test_brightness_up(self):
        self.led.brightness_up()
        self.led.brightness_up(4)

    def test_brightness_down(self):
        self.led.brightness_down()
        self.led.brightness_down(4)

    def test_batch_run(self):
        led = self.led
        led.batch_run((led.set_brightness, 10, 3), (led.set_color, "red"), (led.off,))

    def test_invalid_group_type(self):
        self.assertRaises(AttributeError, self.led.set_group_type, 1, "asdf")

    def test_invalid_group_number(self):
        self.assertRaises(AttributeError, self.led.on, 5)
コード例 #26
0
class TestRgbwLights(unittest.TestCase):  # pylint: disable=too-many-public-methods
    """
    Common tests for different setups (light combinations). Also default tests (rgbw only).
    """
    def setUp(self):
        self.led = LedController("127.0.0.1",
                                 pause_between_commands=0,
                                 repeat_commands=0)

    def test_on(self):
        """ Turn on lights """
        self.led.on()
        for group_id in range(5):
            self.led.on(group_id)

    def test_off(self):
        """ Turn off lights """
        self.led.off()
        for group_id in range(5):
            self.led.off(group_id)

    def test_white(self):
        """ Set lights to white """
        self.led.white()
        for group_id in range(
                5):  # intentionally includes 0-4, as 0 is a special case
            self.led.white(group_id)
        self.led.white(None)

    def test_set_color(self):
        """ Set lights to predefined colors """
        self.led.set_color("white")
        self.led.set_color("red")

    def test_set_color_by_int(self):
        """ Set lights to color (int) """
        self.led.set_color(0)
        self.led.set_color(1)
        self.led.set_color(156)
        self.led.set_color(255)
        with self.assertRaises(AttributeError):
            self.led.set_color(-1)
        with self.assertRaises(AttributeError):
            self.led.set_color(256)

    def test_set_brightness(self):
        """ Set brightness """
        self.assertEqual(self.led.set_brightness(-1), 0,
                         "negative brightness not clamped properly")
        self.assertEqual(self.led.set_brightness(101), 100,
                         ">100 brightness not clamped properly")
        self.assertEqual(self.led.set_brightness(50), 50, "50% outputs != 50%")

    def test_set_brightness_float(self):
        """ Set brightness (float) """
        self.assertEqual(self.led.set_brightness(0.1), 10,
                         "float(0.1) not parsed to 10%")
        self.assertEqual(self.led.set_brightness(1.0), 100,
                         "float(1.0) not parsed to 100%")
        self.assertEqual(self.led.set_brightness(50.0), 50,
                         "float(50.0) not parsed to 50%")

    def test_disco(self):
        """ Enable disco mode """
        self.led.disco()
        for group_id in range(5):
            self.led.disco(group_id)

    def test_disco_faster(self):
        """ Increase disco mode speed """
        self.led.disco_faster()
        for group_id in range(5):
            self.led.disco_faster(group_id)

    def test_disco_slower(self):
        """ Decrease disco mode speed """
        self.led.disco_slower()
        for group_id in range(5):
            self.led.disco_slower(group_id)

    def test_nightmode(self):
        """ Enable nightmode """
        self.led.nightmode()
        for group_id in range(5):
            self.led.nightmode(group_id)

    def test_warmer(self):
        """ Test white light -> warmer """
        self.led.warmer()
        for group_id in range(5):
            self.led.warmer(group_id)

    def test_cooler(self):
        """ Test white light -> cooler """
        self.led.cooler()
        for group_id in range(5):
            self.led.cooler(group_id)

    def test_brightness_up(self):
        """ Increase brightness """
        self.led.brightness_up()
        for group_id in range(5):
            self.led.brightness_up(group_id)

    def test_brightness_down(self):
        """ Decrease brightness """
        self.led.brightness_down()
        for group_id in range(5):
            self.led.brightness_down(group_id)

    def test_batch_run(self):
        """ Batch run multiple commands """
        led = self.led
        led.batch_run((led.set_brightness, 10, 3), (led.set_color, "red"),
                      (led.off, ))

    def test_invalid_group_type(self):
        """ Set invalid group type """
        self.assertRaises(AttributeError, self.led.set_group_type, 1, "asdf")

    def test_invalid_group_number(self):
        """ Set invalid group number """
        self.assertRaises(AttributeError, self.led.on, 5)
コード例 #27
0
 def setUp(self):
     self.led = LedController("127.0.0.1", pause_between_commands=0, repeat_commands=0)
コード例 #28
0
    def log_tag(self, tag_id, start, end):
        self.tag_repository.log_tag(tag_id, self.device_id, start, end)


if __name__ == "__main__":
    from ledcontroller import LedController

    if len(sys.argv) == 2 and sys.argv[1] == "test":
        from timeularapi import TimularApi
        from tagrepository import TagRepository
        from mockleddevice import MockLedDevice
        from mockrfireader import MockRfiReader
        logging.basicConfig(level=logging.DEBUG)
        led_device = MockLedDevice()
        led_controller = LedController(led_device)
        reader = MockRfiReader()
        configuration = Configuration("debug_config.json")
        tag_repository = TagRepository(configuration)
        api = TimularApi(configuration, tag_repository)
    else:
        if len(sys.argv) == 2 and sys.argv[1] == "debug":
            logging.basicConfig(level=logging.DEBUG)
        if len(sys.argv) == 2 and sys.argv[1] == "info":
            logging.basicConfig(level=logging.INFO)
        from rfidevice import RfiDevice
        from timeularapi import TimularApi
        from leddevice import LedDevice
        from tagrepository import TagRepository
        configuration = Configuration("configuration.json")
        led_device = LedDevice(configuration)