Esempio n. 1
0
def encode_volume_direct_command(zone, volume):
    if zone == 1:
        message_type = MSGTYPE_VOLUME_DIRECT_COMMANDS
    elif zone == 2:
        message_type = MSGTYPE_ZONE_2_VOLUME_DIRECT_COMMANDS
    elif zone == 3:
        message_type = MSGTYPE_ZONE_3_VOLUME_DIRECT_COMMANDS
    elif zone == 4:
        message_type = MSGTYPE_ZONE_4_VOLUME_DIRECT_COMMANDS
    else:
        raise ValueError("Invalid zone: {}".format(zone))

    if volume < MIN_VOLUME or volume > MAX_VOLUME:
        raise ValueError("Volume out of range: {}".format(volume))

    return encode_payload([DEVICE_ID_RSP1570, message_type, volume])
Esempio n. 2
0
 async def test_encode_decode_with_meta(self):
     message = encode_payload(b'\xa3\x30\x28')
     decoder = ProtocolDecoder(StreamProxy(message))
     data = await decoder.read_payload()
     self.assertEqual(data, b'\xa3\x30\x28')
Esempio n. 3
0
 def test_meta_encoding_of_start_byte(self):
     self.assertEqual(encode_payload(b'\xa3\x33\x24'),
                      b'\xfe\x03\xa3\x33\x24\xfd\x00')
Esempio n. 4
0
 def test_meta_encoding_of_escape_byte(self):
     self.assertEqual(encode_payload(b'\xa3\x30\x28'),
                      b'\xfe\x03\xa3\x30\x28\xfd\x01')
Esempio n. 5
0
 def test_encode_payload(self):
     self.assertEqual(encode_payload(b'\xa3\x10\x0a'),
                      b'\xfe\x03\xa3\x10\x0a\xc0')
Esempio n. 6
0
def encode_command(command_name):
    [message_type, key] = messages[command_name]
    return encode_payload([DEVICE_ID_RSP1570, message_type, key])
Esempio n. 7
0
 def encode_feedback_message(self):
     payload = bytearray([DEVICE_ID_RSP1570, MSGTYPE_FEEDBACK_STRING])
     payload.extend(self.display_line_1.encode())
     payload.extend(self.info.encode())
     payload.extend(icon_list_to_flags(self.icon_list))
     return encode_payload(payload)