2013-08-29 4 views
5

मैं आईफोन पर एक बीएलई केंद्रीय डिवाइस को कार्यान्वित कर रहा हूं, परिधीय कस्टम बीएलई डिवाइस विकसित किया गया है (जिसका फर्मवेयर एक सहयोगी द्वारा लिखा गया है)।क्या CoreBluetooth द्वारा लॉग इन किए गए त्रुटि कोड को प्रोग्रामेटिक रूप से एक्सेस करना संभव है?

कुछ ऑपरेशन के लिए परिधीय बीएलई विनिर्देशों में परिभाषित मानक ब्लूटूथ एटीटी त्रुटि कोड के अनुरूप एक बीएलई त्रुटि कोड लौटाएगा।

CoreBluetooth [चेतावनी] अज्ञात त्रुटि:: XX

iPhone पक्ष पर, जहाँ मैं CoreBluetooth ढेर का उपयोग कर रहा केंद्रीय डिवाइस विकसित करने के लिए, मैं ऐसी त्रुटियों के रूप में Xcode के डिबगर उत्पादन खिड़की पर अधिसूचित कर रहा हूँ

और फिर मुझे कॉलबैक में एक सीबीईआरर * ऑब्जेक्ट प्राप्त होता है। मेरी समस्या यह है कि सीबीईआरआर * ऑब्जेक्ट जो मुझे कॉलबैक में मिलता है (उदाहरण के लिए, सीबीपीरफेरल डिलेगेट के ड्रिडवाइट्यूफोर कैरिएक्टीस्टिक कॉलबैक में) में कोड = 0 और स्थानीयकृत डिस्क्रिप्शन = "अज्ञात त्रुटि" शामिल है।

क्या किसी भी तरह से त्रुटि कोड पुनर्प्राप्त करना संभव है जो CoreBluetooth स्टैक द्वारा डीबगर आउटपुट विंडो पर लॉग ऑन है?

मेरे शोध से ऐसा लगता है कि कोरब्लूटूथ मानचित्र लगभग सभी बीएलई मानक त्रुटि कोड "अज्ञात त्रुटियों" में (आंतरिक कोड 0 के साथ, CBError reference देखें); मैं अधिक विस्तृत त्रुटि कोड प्राप्त करना चाहता हूं, जैसे CBAttError द्वारा कोडित।

+0

क्या आप इस मुद्दे के साथ आगे गए हैं? – allprog

उत्तर

4

किसी एप्लिकेशन में आप केवल CoreBluetooth API का उपयोग कर सकते हैं। वे केवल सीबीईआरर का पर्दाफाश करते हैं, जैसा कि आप इसे कई मामलों में देखते हैं, वास्तविक त्रुटि को मुखौटा कर सकते हैं। इसलिए आधिकारिक तौर पर स्रोत त्रुटियों तक पहुंचने का उत्तर यह है कि आप इसे नहीं कर सकते हैं।

हालांकि, अगर आप चाहते हैं, तो आप ऐप्पल सिस्टम लॉग प्रोग्रामेटिक रूप से एक्सेस कर सकते हैं। (पोस्ट देखें: Using Objective C to read log messages posted to the device console) आप अपनी रुचि रखने वाली वस्तुओं को वापस करने के लिए एक क्वेरी को परिभाषित कर सकते हैं और त्रुटि के वास्तविक कारण को कम करने का प्रयास कर सकते हैं। यह एक उदारवादी विधि है लेकिन फिलहाल, दुर्भाग्य से, हमारे पास ऐसा करने का कोई और तरीका नहीं है।

संबंधित मुद्दे