রানটাইমে ক্ষমতা পরিবর্তন করুন

যেহেতু প্রোভাইডারে ফার্মওয়্যার আপগ্রেড করে নতুন বৈশিষ্ট্যগুলি (যেমন ডাইনামিক বাফার সাইজিং) সক্ষম করা যেতে পারে, তাই আমরা রানটাইমে প্রদানকারীর ক্ষমতাগুলি পেতে একটি উপায় প্রদান করতে চাই৷ বারবার কোয়েরি করার ক্ষমতা এড়াতে, প্রথমে, প্রদানকারীর উচিত ফার্মওয়্যার রিভিশনটি সিকারকে মেসেজ স্ট্রীমের মাধ্যমে পাঠাতে হবে যখন সংযুক্ত থাকবে। তাই আমরা বিদ্যমান বার্তা গ্রুপ, ডিভাইস তথ্য ইভেন্টে একটি নতুন বার্তা কোড যোগ করি।

বার্তা গ্রুপের নাম মান
ডিভাইস তথ্য ইভেন্ট 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 ঠিকানা পরিবর্তিত হয়