যেকোনো OpenThread নোডে সিগন্যাল জ্যামিং সনাক্তকরণের জন্য একটি কনফিগারযোগ্য প্রক্রিয়া প্রদান করতে, জ্যাম সনাক্তকরণ বৈশিষ্ট্য সক্রিয় করুন।
এই বৈশিষ্ট্যটি ডিভাইস সার্টিফিকেশনের জন্য উপযোগী যার জন্য একটি নির্দিষ্ট চ্যানেলে সিগন্যাল জ্যামিং সনাক্ত করার ক্ষমতা প্রয়োজন। প্রতিটি ধরনের সার্টিফিকেশনের প্রয়োজনীয়তা মেটাতে এটি কনফিগার করা যেতে পারে।
এটা কিভাবে কাজ করে
জ্যাম সনাক্তকরণ চ্যানেলটি জ্যাম করা হয়েছে কিনা তা নির্ধারণ করতে নির্দিষ্ট সময়ে একটি নোডের RSSI (প্রাপ্ত সংকেত শক্তি নির্দেশক) পর্যবেক্ষণ করে।
যখন জ্যাম সনাক্তকরণ সক্ষম করা হয়:
- জ্যাম সনাক্তকরণের অবস্থা
false
সেট করা হয়েছে। - নোড প্রতিটি এক সেকেন্ডের ব্যবধানে একাধিকবার RSSI নমুনা করে।
- যদি RSSI পুরো এক সেকেন্ডের ব্যবধানে প্রতিটি নমুনার জন্য কনফিগার করা RSSI থ্রেশহোল্ডের উপরে থাকে, তাহলে সেই এক সেকেন্ডের ব্যবধানকে জ্যাম করা বলে মনে করা হয়।
- জ্যাম করা এক সেকেন্ডের ব্যবধানের সামগ্রিক সংখ্যা যেকোনো সময়ে পূর্ববর্তী কনফিগার করা সনাক্তকরণ উইন্ডো সেকেন্ডের মধ্যে কনফিগার করা ব্যস্ত সময়ের সেকেন্ডের সমষ্টি সংখ্যার বেশি বা সমান হলে, সেই সময়ে জ্যাম সনাক্তকরণের অবস্থা
true
হিসাবে সেট করা হয়। - জ্যাম করা এক সেকেন্ডের ব্যবধানের সামগ্রিক সংখ্যা পূর্ববর্তী কনফিগার করা ডিটেকশন উইন্ডো সেকেন্ডের মধ্যে যেকোন সময়ে কনফিগার করা ব্যস্ত সময়ের সেকেন্ডের মোট সংখ্যার চেয়ে কম হলে, সেই সময়ে জ্যাম সনাক্তকরণের অবস্থা
false
সেট করা হয়।
ইতিহাস বিটম্যাপ
OpenThread API এবং wpantund
বৈশিষ্ট্যে , পূর্ববর্তী 63 সেকেন্ডের একটি বিটম্যাপ পুনরুদ্ধারের জন্য উপলব্ধ। এই বিটম্যাপটি নির্দেশ করে যে RSSI পূর্ববর্তী 63 সেকেন্ডের প্রতিটিতে কনফিগার করা RSSI থ্রেশহোল্ড অতিক্রম করেছে কিনা।
উদাহরণস্বরূপ, আপনি নিম্নলিখিত বিটম্যাপ পুনরুদ্ধার করতে পারেন:
0xC248068C416E7FF0
বাইনারিতে রূপান্তর করার ফলে RSSI পূর্ববর্তী 63 সেকেন্ডে কনফিগার করা RSSI থ্রেশহোল্ডের উপরে চলে যাওয়া প্রতিটি উদাহরণ তৈরি করে:
11000010 01001000 00000110 10001100 01000001 01101110 01111111 11110000
যদি সনাক্তকরণ উইন্ডোটি 16 সেকেন্ডে সেট করা হয়, এবং ব্যস্ত সময়কাল 8 সেকেন্ডে সেট করা হয়, তবে জ্যাম সনাক্তকরণের অবস্থা 51 সেকেন্ডে true
হয়ে যায়, কারণ এটিই প্রথম উদাহরণ যেখানে RSSI থ্রেশহোল্ড পূর্ববর্তী সময়ে কমপক্ষে 8 সম্পূর্ণ সেকেন্ড অতিক্রম করেছিল 16 সেকেন্ড। এই উদাহরণে, জ্যাম সনাক্তকরণ অবস্থা পরবর্তী 13 সেকেন্ডের জন্য true
থাকে।
11000010 01001000 00000110 10001100 01000001 01101110 01111111 11110000 [00001 01101110 011] = 8 in 16
এই বিটম্যাপ নিম্নলিখিত গ্রাফ দ্বারা প্রতিনিধিত্ব করা যেতে পারে, যদি -45 dBm কনফিগার করা RSSI থ্রেশহোল্ড হয়:
কিভাবে সক্রিয় করতে হবে
এই বৈশিষ্ট্যটি ডিফল্টরূপে অক্ষম করা হয়৷
সংজ্ঞায়িত করে
জ্যাম সনাক্তকরণ সক্ষম করতে, OpenThread তৈরি করার আগে openthread/src/core/config/openthread-core-default-config.h
ফাইলে OPENTHREAD_CONFIG_JAM_DETECTION_ENABLE
1
হিসাবে সংজ্ঞায়িত করুন :
#ifndef OPENTHREAD_CONFIG_JAM_DETECTION_ENABLE
#define OPENTHREAD_CONFIG_JAM_DETECTION_ENABLE 1
#endif
বিকল্প দ্বারা
বিকল্পভাবে, OpenThread তৈরি করার সময় -DOT_JAM_DETECTION=ON
বিল্ড বিকল্পটি ব্যবহার করুন:
./script/build -DOT_JAM_DETECTION=ON
পরামিতি
জ্যাম সনাক্তকরণ পরামিতি শুধুমাত্র OpenThread API, Spinel প্রোটোকল, অথবা wpanctl
, নেটওয়ার্ক কো-প্রসেসর (NCP) পরিচালনার জন্য wpantund
কমান্ড লাইন টুলের মাধ্যমে কনফিগার করা যেতে পারে। পরবর্তী কনফিগারেশন ছাড়াই বৈশিষ্ট্যটি সক্ষম হলে ডিফল্ট মান প্রয়োগ করা হয়।
নিম্নলিখিত পরামিতি ব্যবহার করে এই বৈশিষ্ট্যটি কাস্টমাইজ করুন:
পরামিতি | |||||
---|---|---|---|---|---|
RSSI থ্রেশহোল্ড |
| ||||
সনাক্তকরণ উইন্ডো |
| ||||
ব্যস্ত সময়কাল |
|
API
ওপেন থ্রেড
আপনার OpenThread অ্যাপ্লিকেশনে সরাসরি জ্যাম সনাক্তকরণ বৈশিষ্ট্য পরিচালনা করতে জ্যাম সনাক্তকরণ API ব্যবহার করুন। OpenThread API নিম্নলিখিত কার্যকারিতা প্রদান করে:
- বৈশিষ্ট্যটি শুরু করুন এবং বন্ধ করুন
- জ্যাম সনাক্তকরণ অবস্থা দেখুন
- সমস্ত পরামিতি পরিচালনা করুন
- বর্তমান জ্যাম সনাক্তকরণ ইতিহাস বিটম্যাপ পুনরুদ্ধার করুন
- যখন একটি জ্যাম সনাক্ত করা হয় তখন একটি কলব্যাক ফাংশন নিবন্ধন করুন৷
স্পিনেল
স্পিনেল প্রোটোকল একটি হোস্ট ডিভাইসকে NCP এর সাথে সরাসরি যোগাযোগ করতে সক্ষম করে। এই প্রোটোকল openthread/src/lib/spinel/spinel.h
এ জ্যাম সনাক্তকরণ বৈশিষ্ট্যগুলিকে প্রকাশ করে যা নিম্নলিখিত কার্যকারিতা প্রদান করে:
- বৈশিষ্ট্যটি শুরু করুন এবং বন্ধ করুন
- জ্যাম সনাক্তকরণ অবস্থা দেখুন
- সমস্ত পরামিতি পরিচালনা করুন
- বর্তমান জ্যাম সনাক্তকরণ ইতিহাস বিটম্যাপ পুনরুদ্ধার করুন
সিএলআই
ওপেন থ্রেড
এই বৈশিষ্ট্যের সাথে সম্পর্কিত কোন OpenThread CLI কমান্ড নেই।
wpantund
একটি OpenThread NCP কনফিগারেশনের জন্য জ্যাম সনাক্তকরণ বৈশিষ্ট্য পরিচালনা করতে wpanctl
CLI ব্যবহার করুন। wpantund
NCP রিসেট করার পরে সমস্ত জ্যাম সনাক্তকরণ কনফিগারেশন ধরে রাখে।
wpanctl
নিম্নলিখিত wpantund
বৈশিষ্ট্যগুলিতে অ্যাক্সেস প্রদান করে:
বৈশিষ্ট্য | |||||
---|---|---|---|---|---|
JamDetection:Status |
| ||||
JamDetection:Enable |
| ||||
JamDetection:RssiThreshold |
| ||||
JamDetection:Window |
| ||||
JamDetection:BusyPeriod |
| ||||
JamDetection:Debug:HistoryBitmap |
|
উদাহরণস্বরূপ, একটি NCP-এর জন্য জ্যাম সনাক্তকরণ রাজ্য পেতে:
sudo wpanctl getprop JamDetection:Status
JamDetection:Status = false
একটি NCP-তে জ্যাম সনাক্তকরণ RSSI থ্রেশহোল্ড -45 dBm-এ সেট করতে:
sudo wpanctl setprop JamDetection:RssiThreshold -45
sudo wpanctl getprop JamDetection:RssiThreshold
JamDetection:RssiThreshold = -45
wpantund
বৈশিষ্ট্য সম্পর্কে আরও তথ্যের জন্য, wpantund
GitHub সংগ্রহস্থল দেখুন।