J'écris une caractéristique HomeKit (donc peut-être Bluetooth) au format TLV8. doc Apple ditPréparation des données dans TLV8
La valeur est un objet NSData contenant un ensemble d'une ou plusieurs années TLV8, qui sont emballés des éléments-longueur-valeur du type avec un type 8 bits, longueur de 8 bits , et N- valeur d'octet.
Selon Wikipeida une valeur de longueur de type est
Type de
Un code binaire, souvent simplement alphanumérique, qui indique le type de champ que cette partie du message représente;
Longueur
La taille du champ de valeur (typiquement en octets);
Valeur
série d'octets de taille variable qui contient des données pour cette partie du message.
Je n'ai aucune idée de comment emballer un. Je suppose que je peux écrire des octets bruts à NSData, mais qu'est-ce que j'écris pour le pad, si j'ai besoin de n'importe quel padding, etc. Donc est-il un exemple de la façon de faire cela?
Swift semble ne pas être en mesure de déduire le type plus du code ci-dessus. Cela semble fonctionner si: code 'laisser tag: UInt8 = 0x02 laisser longueur: UInt8 = 0x01 valeur let: UInt8 = 0x01 laisser octets: [UInt8] = [étiquette, la longueur, la valeur]' – addzo
Le 8 dans TLV8 indique que le type et la longueur sont 8 bits –