রানটাইমে ক্ষমতা পরিবর্তন করুন
যেহেতু প্রোভাইডারে ফার্মওয়্যার আপগ্রেড করে নতুন বৈশিষ্ট্যগুলি (যেমন ডাইনামিক বাফার সাইজিং) সক্ষম করা যেতে পারে, তাই আমরা রানটাইমে প্রদানকারীর ক্ষমতাগুলি পেতে একটি উপায় প্রদান করতে চাই৷ বারবার কোয়েরি করার ক্ষমতা এড়াতে, প্রথমে, প্রদানকারীর উচিত ফার্মওয়্যার রিভিশনটি সিকারকে মেসেজ স্ট্রীমের মাধ্যমে পাঠাতে হবে যখন সংযুক্ত থাকবে। তাই আমরা বিদ্যমান বার্তা গ্রুপ, ডিভাইস তথ্য ইভেন্টে একটি নতুন বার্তা কোড যোগ করি।
বার্তা গ্রুপের নাম | মান |
---|---|
ডিভাইস তথ্য ইভেন্ট | 0x03 |
বার্তা কোড নাম | মান |
---|---|
ফার্মওয়্যার সংশোধন | 0x09 |
ফার্মওয়্যার রিভিশন কোড পাওয়ার পরে, সিকার ক্যাশে করা কোডের বিরুদ্ধে এটি পরীক্ষা করবে। ফার্মওয়্যার রিভিশন পরিবর্তন করা হলে, সিকার ক্যাশের ফার্মওয়্যার রিভিশন আপডেট করবে এবং মেসেজ স্ট্রীমের মাধ্যমে সক্ষমতা সম্পর্কে জিজ্ঞাসা করবে।
আমরা সরবরাহকারীকে প্রথমে অনুরোধ ছাড়াই সরাসরি সক্ষমতাগুলিকে ধাক্কা দেওয়ার অনুমতি দিই, কারণ আমরা কল্পনা করি যে, ভবিষ্যতে, আরও অত্যাধুনিক ডিভাইসগুলি (সম্ভবত Android-ভিত্তিক) একই ফার্মওয়্যার সংশোধনের জন্য ফ্ল্যাগের উপর ভিত্তি করে গতিশীল কনফিগারেশন করবে৷
তাই আমরা নীচে একটি নতুন বার্তা গ্রুপ এবং বার্তা কোড যোগ করি।
বার্তা গ্রুপের নাম | মান |
---|---|
ডিভাইস ক্ষমতা সিঙ্ক ইভেন্ট | 0x06 |
বার্তা কোড নাম | মান |
---|---|
সক্ষমতা আপডেটের অনুরোধ করুন (প্রার্থীর কাছ থেকে পাঠানো হয়েছে) | 0x01 |
FMDN ট্র্যাকিং | 0x03 |
0x0601
পাওয়ার পর,
- যদি প্রদানকারী এফএমডিএন ট্র্যাকিংয়ের জন্য সমর্থন সক্ষম করে থাকে, তাহলে এটি নিম্নরূপ প্রতিক্রিয়া জানাবে:
অক্টেট | ডেটা টাইপ | বর্ণনা | মান |
---|---|---|---|
0 | uint8 | ডিভাইস ক্ষমতা সিঙ্ক ইভেন্ট | 0x06 |
1 | uint8 | FMDN ট্র্যাকিং | 0x03 |
2 - 3 | uint16 | অতিরিক্ত ডেটা দৈর্ঘ্য | 0x0007 |
4 | uint8 | FMDN প্রভিশনিং স্টেট | 0x00 যদি ব্যবস্থা না থাকে; 0x01 যদি কোনো অ্যাকাউন্ট দ্বারা প্রবিধান করা হয় |
5 - 10 | uint8[] | ডিভাইসের বর্তমান BLE MAC ঠিকানা | পরিবর্তিত হয় |