Example #1
0
File: OnAir.py Project: maxf/home
    def send(self, payload, radio_config=None):
        #   payload is just a list of bytes, or a byte buffer
        #   radio_config is an overlay on top of radio tx defaults

        house_address = payload["house_address"]
        device_index  = payload["device_index"]
        state         = payload["on"]
        bytes = TwoBit.encode_switch_message(state, device_index, house_address)
        radio.modulation(ook=True)

        # Set radio defaults, if no override
        outer_times = self.tx_defaults.outer_times
        outer_delay = self.tx_defaults.outer_delay
        inner_times = self.tx_defaults.inner_times

        # Merge any wanted radio params, if provided
        if radio_config != None:
            try:
                outer_times = radio_config.outer_times
            except AttributeError: pass
            try:
                outer_delay = radio_config.outer_delay
            except AttributeError: pass
            try:
                inner_times = radio_config.inner_times
            except AttributeError: pass

        ##print("inner times %s" % inner_times)
        radio.transmit(bytes, outer_times=outer_times, inner_times=inner_times, outer_delay=outer_delay)
Example #2
0
    def _send2(self, payload, radio_config=None):
        """Actually send a payload"""
        #   payload is just a list of bytes, or a byte buffer
        #   radio_config is an overlay on top of radio tx defaults

        house_address = payload["house_address"]
        device_index = payload["device_index"]
        state = payload["on"]
        bytes = TwoBit.encode_switch_message(state, device_index,
                                             house_address)
        radio.modulation(ook=True)

        # Set radio defaults, if no override
        outer_times = self.tx_defaults.outer_times
        outer_delay = self.tx_defaults.outer_delay
        inner_times = self.tx_defaults.inner_times

        # Merge any wanted radio params, if provided
        if radio_config != None:
            try:
                outer_times = radio_config.outer_times
            except AttributeError:
                pass
            try:
                outer_delay = radio_config.outer_delay
            except AttributeError:
                pass
            try:
                inner_times = radio_config.inner_times
            except AttributeError:
                pass

        ##print("inner times %s" % inner_times)
        radio.transmit(bytes,
                       outer_times=outer_times,
                       inner_times=inner_times,
                       outer_delay=outer_delay)
Example #3
0
class TestTwoBit(unittest.TestCase):
    ALL_ON = TwoBit.encode_switch_message(True)
    ALL_OFF = TwoBit.encode_switch_message(False)
    ONE_ON = TwoBit.encode_switch_message(True, device_address=1)
    ONE_OFF = TwoBit.encode_switch_message(False, device_address=1)
    TWO_ON = TwoBit.encode_switch_message(True, device_address=2)
    TWO_OFF = TwoBit.encode_switch_message(False, device_address=2)
    THREE_ON = TwoBit.encode_switch_message(True, device_address=3)
    THREE_OFF = TwoBit.encode_switch_message(False, device_address=3)
    FOUR_ON = TwoBit.encode_switch_message(True, device_address=4)
    FOUR_OFF = TwoBit.encode_switch_message(False, device_address=4)
    MYHOUSE_ALL_ON = TwoBit.encode_switch_message(True, house_address=0x12345)

    tests = [
        ALL_ON, ALL_OFF, ONE_ON, ONE_OFF, TWO_ON, TWO_OFF, THREE_ON, THREE_OFF,
        FOUR_ON, FOUR_OFF, MYHOUSE_ALL_ON
    ]

    def test_all(self):
        for t in self.tests:
            print('')
            print(ashex(t))