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])
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])
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))
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')
def test_decoding_without_padding(self): """Test decoding of string without padding.""" self.assertEqual(bytes_to_string(b'fnord'), 'fnord')
def test_decoding(self): """Test decoding of string.""" self.assertEqual(bytes_to_string(b'fnord' + bytes(5)), 'fnord')
def from_payload(self, payload): """Init frame from binary data.""" self.password = bytes_to_string(payload)
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:])
def from_payload(self, payload): """Init frame from binary data.""" self.node_id = payload[0] self.name = bytes_to_string(payload[1:65])