def from_payload(self, payload):
     """Init frame from binary data."""
     self.node_id = payload[0]
     self.name = bytes_to_string(payload[1:65])
     self.order = payload[65] * 256 + payload[66]
     self.placement = payload[67]
     self.node_variation = NodeVariation(payload[68])
Esempio n. 2
0
 def from_payload(self, payload):
     """Init frame from binary data."""
     self.node_id = payload[0]
     self.order = payload[1] * 256 + payload[2]
     self.placement = payload[3]
     self.name = bytes_to_string(payload[4:68])
     self.velocity = Velocity(payload[68])
     self.node_type = NodeTypeWithSubtype(payload[69] * 256 + payload[70])
     self.product_group = payload[71]
     self.product_type = payload[72]
     self.node_variation = NodeVariation(payload[73])
     self.power_mode = payload[74]
     self.build_number = payload[
         75]  # <-- hey @VELUX: your documentation is wrong here
     self._serial_number = payload[76:84]
     self.state = payload[84]
     self.current_position = Parameter(payload[85:87])
     self.target = Parameter(payload[87:89])
     self.current_position_fp1 = Parameter(payload[89:91])
     self.current_position_fp2 = Parameter(payload[91:93])
     self.current_position_fp3 = Parameter(payload[93:95])
     self.current_position_fp4 = Parameter(payload[95:97])
     self.remaining_time = payload[97] * 256 + payload[98]
     self.timestamp = struct.unpack(">I", payload[99:103])[0]
     self.alias_array = AliasArray(payload[103:125])
Esempio n. 3
0
 def from_payload(self, payload):
     """Init frame from binary data."""
     number_of_objects = payload[0]
     self.remaining_scenes = payload[-1]
     predicted_len = number_of_objects * 65 + 2
     if len(payload) != predicted_len:
         raise PyVLXException('scene_list_notification_wrong_length')
     self.scenes = []
     for i in range(number_of_objects):
         scene = payload[(i*65+1):(i*65+66)]
         number = scene[0]
         name = bytes_to_string(scene[1:])
         self.scenes.append((number, name))
Esempio n. 4
0
 def test_decode_utf8(self):
     """Test decoding a string with special characters."""
     self.assertEqual(bytes_to_string(b'Fenster B\xc3\xbcro\x00\x00\x00'),
                      'Fenster Büro')
Esempio n. 5
0
 def test_decoding_without_padding(self):
     """Test decoding of string without padding."""
     self.assertEqual(bytes_to_string(b'fnord'), 'fnord')
Esempio n. 6
0
 def test_decoding(self):
     """Test decoding of string."""
     self.assertEqual(bytes_to_string(b'fnord' + bytes(5)), 'fnord')
Esempio n. 7
0
 def from_payload(self, payload):
     """Init frame from binary data."""
     self.password = bytes_to_string(payload)
Esempio n. 8
0
 def from_payload(self, payload):
     """Init frame from binary data."""
     self.currentpassword = bytes_to_string(payload[0:32])
     self.newpassword = bytes_to_string(payload[32:])
Esempio n. 9
0
 def from_payload(self, payload):
     """Init frame from binary data."""
     self.node_id = payload[0]
     self.name = bytes_to_string(payload[1:65])