2017-05-19 1 views
6

में डेटा तैयार करना मैं टीएलवी 8 प्रारूप में होमकिट (इसलिए शायद ब्लूटूथ) विशेषता लिख ​​रहा हूं। एप्पल डॉक कहतेटीएलवी 8

मूल्य एक या अधिक TLV8 की, जो एक 8 बिट प्रकार, 8-बिट लंबाई के साथ प्रकार-लंबाई-मूल्य आइटम भरे होते हैं का एक सेट से युक्त एक NSData वस्तु है, और N- बाइट मूल्य

Wikipeida के अनुसार एक प्रकार-लंबाई मूल्य

प्रकार

एक बाइनरी कोड, अक्सर बस अक्षरांकीय, जो क्षेत्र है कि संदेश के इस हिस्से का प्रतिनिधित्व करता है की तरह इंगित करता है;

लंबाई

मूल्य क्षेत्र (आमतौर पर बाइट में) के आकार;

मूल्य

बाइट्स की चर आकार श्रृंखला जो संदेश के इस हिस्से के लिए डेटा है।

मुझे नहीं पता कि एक को कैसे पैक किया जाए। मुझे लगता है कि मैं एनएसडीटा को कच्चे बाइट्स लिख सकता हूं, लेकिन मुझे पैड के लिए क्या लिखना चाहिए, अगर मुझे किसी भी पैडिंग की आवश्यकता है, तो क्या ऐसा करने का एक उदाहरण है?

उत्तर

2

ओह मैंने इसे समझ लिया। टीएलवी 8 में तीन खंड शामिल हैं: "टैग", "लंबाई", और "मान"। मुझे नहीं पता कि 8 का क्या मतलब है।

दोनों टैग और लंबाई UInt8 हैं। मेरा मानना ​​है कि टैग पर निर्भर किया जा सकता है कि टीएलवी 8 का उपयोग कहाँ किया जाता है। लंबाई मूल्य की लंबाई है। मूल्य वह सामग्री है जो स्वयं है।

तो जब मैं एक साधारण 1 एक मूल्य के रूप में भेजना चाहते हैं, मैं का उपयोग करें:

let tag = 0x02 // For example 
let length = 0x01 
let value = 0x01 
let data = Data(bytes: [tag, length, value]) // NSData 
+0

स्विफ्ट नहीं ऊपर कोड से अब और प्रकार लगा सकते हो रहा है। UInt8 = 0x01 देना मूल्य:: UInt8 = 0x01 बाइट्स करते हैं: UInt8 = 0x02 लंबाई है: [UInt8] = [टैग, लंबाई, मूल्य] ' – addzo

+2

' कोड टैग करते हैं: यह हालांकि काम करने के लिए लगता है टीएलवी 8 में 8 इंगित करता है कि प्रकार और लंबाई 8-बिट है –