আইআর প্রোটোকল ডিকোড করার জন্য সহায়তা বা ইঙ্গিতগুলি


10

কিছু সময় আগে আমি একটি সহজ এবং সস্তা সামান্য আইআর-নিয়ন্ত্রিত খেলনা হেলিকপ্টার কেনা (হিসাবে একই এই এক - এটা "ডায়মন্ড জাইরো" বা "ডায়মন্ড ফোর্স" বলা হয়)। মজা করার জন্য, আমি এটি একটি আরডুইনোর মাধ্যমে নিয়ন্ত্রণ করতে চেয়েছিলাম।

আপডেট: প্রোটোকল খুঁজে পেয়েছি; উত্তর দেখুন

অন্যরা ইতিমধ্যে ভিন্ন আইআর খেলনা হেলিকপ্টার হ্যাক করার এবং এর আইআর প্রোটোকল ডিকোড করার বিষয়ে ইতিমধ্যে তাদের ফলাফল ভাগ করে নিয়েছে । সত্যিই দুর্দান্ত, তবে দুর্ভাগ্যক্রমে আমার হেলিকপ্টারটি একটি আলাদা প্রোটোকল ব্যবহার করে। একটি যে আমি বেশ বুঝতে পারি না। (আমার যুক্ত করা উচিত যে ইলেক্ট্রনিক্সগুলি আমার পক্ষে নিখুঁতভাবে একটি শখের শখ, তাই আমি স্পষ্টত কিছু উপেক্ষা করে থাকতে পারি)।

ঠিক উপরের ২ য় লিঙ্কের মতোই, আমি কন্ট্রোলারটিকে পৃথক করে নিয়েছিলাম, আইসি পিনটি এলইডিগুলি নিয়ন্ত্রণ করে (আইসির চিহ্নগুলি মুছে ফেলা হয়েছে, উপায় দ্বারা) এবং একটি যুক্তি বিশ্লেষককে জড়িয়ে ধরেছিলাম।

প্রচুর ভাল ডেটা পেয়েছি, তবে আমি এখনও প্রোটোকলটি বের করতে পারি না। এই সাইটটি একটি দুর্দান্ত সংস্থান, তবে তালিকাভুক্ত প্রোটোকলগুলির মধ্যে কোনওটিই উপযুক্ত বলে মনে হচ্ছে না। আর আমি যে কিছু খুঁজে পেয়েছি তার মধ্যে সিগন্যালটি আমি ক্যাপচার করেছি fit যদিও আমাকে ধারণা করতে হবে যে এটি একটি সহজ, অফ-শেল্ফ প্রোটোকল, কেবল এটি সস্তা সস্তা খেলনা হিসাবে।

সুতরাং আমি আপনার যে কোন ধারণার প্রশংসা করব। সম্ভবত আমি এটি ভুল দেখছি।
(চিত্রের নীচে আরও তথ্য)

চ্যানেল এ থেকে নমুনা

সিগন্যাল / প্রোটোকল বৈশিষ্ট্য

আমি এটি চ্যানেল এতে নিয়ামক সেট করে 16MHz এ ধারণ করেছি; সঠিক, সময় অনুযায়ী হতে হবে। (3 টি আইআর চ্যানেল রয়েছে যা থেকে আপনি বেছে নিতে পারেন, তবে অন্য দুটি চ্যানেল ব্যবহার করে বৈশিষ্ট্যগুলি পরিবর্তন হয় না, কেবল প্যাকেটের কিছু অংশ।) সময়গুলি খুব সামঞ্জস্যপূর্ণ (+/- 10µ সর্বাধিক)। প্যাকেটগুলি বিভিন্ন ব্যবধানের সাথে পুনরাবৃত্তি করা হয় তবে সর্বনিম্ন তারা প্রায় 100 মাইল দূরে।

ক্যারিয়ার: 38kHz @ 50% শুল্ক-চক্র


নিম্ন : - সংক্ষিপ্ত: 285µs
- দীর্ঘ: 795µs

উচ্চতা:
- সংক্ষিপ্ত: 275µs
- দীর্ঘ: 855µs

সর্বদা প্যাকেট 17 উচ্চ।

নিয়ন্ত্রণ / ইনপুট

হেলির 3 টি নিয়ন্ত্রণ রয়েছে: "থ্রোটল" (যেমন: লিফট / রটারের গতি), পিচ (সামনের / পিছনে) এবং ইয়াও (রটার অক্ষের চারপাশে ঘূর্ণন) সমস্ত 2 টি থাম্বস্টিক দিয়ে নিয়ন্ত্রিত হয়। তাদের সকলেরই কিছু প্রকারের ব্যাপ্তি রয়েছে (কেবল চালু বা বন্ধ নয়) এবং যতদূর আমি বলতে পারি, সমস্তই একক প্যাকেটে সংক্রমণিত। বাম / ডান ইনপুটগুলি কেবল তখনই পাঠানো হয় যদি অন্য কিছু প্রেরণ করা হয়, তাই আমি নমুনা দেওয়ার সময় সর্বোচ্চ থ্রোটল প্রয়োগ করেছি। তার নিজস্ব ট্রিগার প্যাকেটগুলিতে থ্রটল এবং পিচ ইনপুট প্রেরণ করা হচ্ছে, আপনি যত তাড়াতাড়ি থাম্বস্টিকগুলি কিছু প্রান্তিক / ডেডব্যান্ড পেরিয়ে যান ("মিনিট" লেবেলের নীচে গ্রাফটি প্রথম প্যাকেটের জন্য প্রেরণ করা হয় যখন ধীরে ধীরে তার ডেডব্যান্ডের অতীত নিয়ন্ত্রণের দিকে এগিয়ে যায়)।

এছাড়া ছাঁটাই (বাম & ডান হেলিকপ্টারের হিসেবে নয় একটি স্পষ্টতা উপকরণের বোতাম পেয়েছে এ সব ) এবং ধীরে ধীরে অন্যথায় ঘুর্ণন থাকে। দুর্ভাগ্যক্রমে বাম / ডান ট্রিম বোতামগুলি এমন কোনও সংকেত প্রেরণ করছে যা প্রতিটি প্রেসের জন্য কিছু বাড়িয়ে তুলছে / হ্রাস পাচ্ছে (যা প্রোটোকলটি সনাক্ত করার পক্ষে কার্যকর হবে); এটি কেবল একক কমান্ড বলে মনে হচ্ছে, হেলিকপ্টারটিকে বাম / ডান ট্রিম করতে বলছে এবং তারপরে এটি ট্র্যাক করে।


আপনার ইতিমধ্যে প্যাকেটগুলি কাঁচা লিখতে হবে এমন সিগন্যাল ট্রেসগুলি ব্যবহার করবেন না কেন?
Ignacio Vazquez-Abram

@ ইগনাসিও ওয়াজকেজ-আব্রামস বলতে কি বোঝানো হয়েছে হেলিকপ্টারটিতে রেকর্ড করা সংকেতগুলি কেবল প্লে করা?
ফ্লাম্বিনো

অবশ্যই। হেলিকপ্টারটি পার্থক্যটি বলতে সক্ষম হবে এমন নয় ...
Ignacio Vazquez-Abram

@ IgnacioVazquez-Abram সত্য তবে যতদূর আমি বলতে পারি, প্যাকেটে হেলি এর নিয়ন্ত্রণের মধ্যে সমস্ত 3 টি নিয়ন্ত্রণ (থ্রোটল / পিচ / ইয়াও) রয়েছে, কোনওটিই কেবল চালু / বন্ধ নয়। রিপ্লে করে জিনিসটি চালিত করার জন্য, আমাকে প্রতিটি কনফিগারেশন ক্যাপচার করতে হবে ... এছাড়াও আমি প্রোটোকলটি বুঝতে চাই
Flambino

@ IgnacioVazquez-Abram ওহো, আমি কোনওভাবে আমার শেষ মন্তব্যটি প্রকাশ করেছি। বলার অর্থ: "... প্যাকেটে সমস্ত 3 টি নিয়ন্ত্রণ রয়েছে (থ্রোটল / পিচ / ইয়াও) এবং সেগুলির কোনওটি কেবল চালু / বন্ধ নয়"।
ফ্ল্যাম্বিনো

উত্তর:


8

আমি আমার নিজের প্রশ্নের উত্তর দেওয়ার স্বাধীনতা নিচ্ছি যেহেতু আমি এটির বেশিরভাগ সন্ধান পেয়েছি এবং এটি আমার অনুসন্ধানগুলি ভাগ করার একটি ভাল উপায়। আমাকে শুরু করার জায়গা এবং কিছু ধারণা দেওয়ার চেষ্টা করার জন্য অলিন ল্যাথ্রপকে আমার ধন্যবাদ, তবে শেষ পর্যন্ত, প্রোটোকল অলিনের অনুমানের থেকে একেবারেই আলাদা হয়ে গেছে, এই কারণেই আমি এই উত্তরটি পোস্ট করছি।


আপডেট: আমি সর্বশেষ 8 টি বিট সম্পর্কিত একটি ফলো-আপ প্রশ্ন পোস্ট করেছি , যা আমি পুরোপুরি বুঝতে পারি নি, এবং ডেভ ট্যুইড এটি বের করে ফেলেছে । আমি এখানে বিশদগুলি অন্তর্ভুক্ত করব, সুতরাং এই উত্তরটি সম্পূর্ণ প্রোটোকল অনুমান হিসাবে কাজ করতে পারে তবে ডেভের উত্তরটি পরীক্ষা করে দেখুন।


এই চিত্রটি বের করার জন্য আমাকে কিছু ভিন্ন জিনিস চেষ্টা করতে হয়েছিল, তবে আমি যথেষ্ট আত্মবিশ্বাসী যে আমি এটি পেয়েছি। অদ্ভুতভাবে, আমি অন্য কোথাও এই প্রোটোকলের অনুরূপ কিছু পাইনি, তবে এটি খুব ভাল একটি সাধারণ প্রোটোকল হতে পারে যা আমি কেবল জানি না I

যাইহোক, আমি যা পেয়েছি তা এখানে:

প্রোটোকল / এনকোডিং

ডাল এবং এর মধ্যে ফাঁকা উভয়ই ডেটা এনকোড করতে ব্যবহৃত হয়। একটি দীর্ঘ নাড়ি / স্থান হ'ল বাইনারি এক (1), এবং একটি সংক্ষিপ্ত নাড়ি / স্থান বাইনারি শূন্য (0)। ডালগুলি 50% শুল্ক-চক্র @ স্ট্যান্ডার্ড কনজিউমার ইনফ্রারেড 38kHz মডুলেশন ব্যবহার করে পাঠানো হয়।

নাড়ি / স্থানের সময়গুলি মূল প্রশ্নে থাকে তবে আমি তাদের এখানে পূর্ণতার জন্য পুনরাবৃত্তি করব:

 Bit    Pulse     Space
-----+---------+---------
  0  |  275µs  |  285µs
  1  |  855µs  |  795µs

সমস্ত ± 10µs সর্বোচ্চ।, 5 typ টাইপ টাইপ .. এটি 16MHz এ লজিক বিশ্লেষক দ্বারা ধরা নমুনাগুলির উপর ভিত্তি করে; আমার কাছে একটি অসিলোস্কোপ নেই, তাই সঠিক প্রোফাইলটি আমি জানি না (যেমন উত্থান / পতনের সময়)।

নিয়ন্ত্রণের ইনপুটগুলি প্রয়োগ করা হয় এবং প্যাকেজগুলি যতক্ষণ না পুনরাবৃত্তি করা হয় এবং সর্বনিম্ন 100 মিমি ব্যবধানে উপস্থিত থাকে।

প্যাকেট সংক্রমণ একটি "পালস 1" উপস্থাপনের সাথে শুরু হয়, যা স্থির এবং ডেটার অংশ নয়। নীচের স্থানটি প্যাকেটের প্রথম ডেটা বিটকে এনকোড করে এবং শেষ নাড়িটি শেষ বিটকে এনকোড করে।

প্রতিটি প্যাকেট 32 বিট দীর্ঘ, এবং প্রতিটি ইনপুট রিমোট কন্ট্রোল সরবরাহ করতে পারে contains মানগুলি ছোট এন্ডিয়ান হিসাবে প্রথমে পড়া হয়, অর্থাৎ এমএসবি প্রথমে।

তথ্য কাঠামো

নীচে পৃথক প্যাকেটগুলির মূল কাঠামোটি দেওয়া হচ্ছে। শেষ 8 টি বিট আমাকে বিভ্রান্ত করেছিল, তবে এটি এখনই বের করা হয়েছে (নীচে দেখুন)।

 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2
--+---------------------------+-----------+---+-------+-----------
 P|    Yaw    |   Throttle    |   Pitch   | T | Chan. |   Check

P: Preamble (always a pulse-1), T: Trim, Chan.: Channel

Bit    Length    Description (see note below)
-----------------------------------------------
0      1         Preamble. High 1
1-6    6         Yaw. Range 0-36 for left-right, 17 being neutral
7-14   8         Throttle. Range 0-134
15-20  6         Pitch. Range 0-38 for forward-back, 17 being neutral
21-22  2         Trim. Left = 1, right = 2, no trim = 0
23-26  4         Channel. A = 5, B = 2, C = 8
27-32  6         Check bits

দ্রষ্টব্য: সীমাগুলি আমি যে সর্বোচ্চ পঠন পেয়েছি তার উপর ভিত্তি করে। প্রোটোকল বৃহত্তর ব্যাপ্তিগুলিতে সক্ষম - থ্রোটলের জন্য 255 অবধি, পিচ / ইয়াওয়ের জন্য 63 - তবে প্রায় অর্ধেকের মধ্যে ক্যাপ আউট করে।
পিচ মানটির 14-21 (অন্তর্ভুক্ত) থেকে ডেডব্যান্ড রয়েছে বলে মনে হয়; কেবলমাত্র উপরে বা নীচের মানগুলি হেলিকপ্টারটি প্রতিক্রিয়া তৈরি করে। আমি জানি না যে এটি ইয়াওয়ার জন্য একই কিনা (বলা মুশকিল, হেলিকপ্টার যেভাবেই অস্থির এবং এটি কেবল নিজের থেকে কিছুটা স্পিন করতে পারে)।

এখানে এটি গ্রাফিকাল পদে রয়েছে (মূল প্রশ্নের গ্রাফিকের সাথে তুলনা করুন)

প্যাকেট কাঠামো

Check টি চেক বিট পূর্ববর্তী সমস্ত মানগুলি XOR' দ্বারা গণনা করা হয়। প্রতিটি মান 6 বিট হিসাবে বিবেচনা করা হয়। এর অর্থ হ'ল 8-বিট থ্রোটল মানের 2 টি এমএসবি সহজভাবে উপেক্ষা করা হবে। অর্থাত

check = yaw ^ (throttle & 0x3F) ^ pitch ^ trim ^ channel

ব্যবহারিক নোট

সিগন্যাল সময় এবং মড্যুলেশন সুপার নির্ভুল হতে হবে না। এমনকি আমার অরডিনো-অ-সঠিক-সঠিক সময়টি ডজি মড্যুলেশন সত্ত্বেও এবং রিমোট কন্ট্রোলের তুলনায় নাড়ি / স্থানের সময়সীমাগুলিতে কিছুটা হিট এন্ড মিস করে।

আমি বিশ্বাস করি - তবে পরীক্ষিত হয়নি - হেলিকপ্টারটি যে প্রথম সংকেত এটি খুঁজে পেয়েছে কেবল তার চ্যানেলে ল্যাচ করবে। যদি এটি খুব দীর্ঘ (কয়েক সেকেন্ডের) জন্য সিগন্যাল ছাড়াই ছেড়ে যায় তবে এটি আবার "সংকেত" অর্জন না করা অবধি তার "অনুসন্ধান" মোডে ফিরে যেতে দেখা যায়।

থ্রোটল শূন্য হলে হেলিকপ্টারটি পিচ এবং ইয়া মানগুলিকে উপেক্ষা করবে।

ট্রিম কমান্ডগুলি রিমোট কন্ট্রোলের প্রতি বোতাম-টিপুন কেবল একবার প্রেরণ করা হয়। সম্ভবত ট্রিমের মান হেলিকপ্টারটির নিজস্ব নিয়ামক হিসাবে কেবল একটি মূল্য বৃদ্ধি / হ্রাস করে; এটি রিমোট কন্ট্রোলের উপর নজর রাখে এমন কিছু নয়। সুতরাং এটির যে কোনও বাস্তবায়ন সম্ভবত সেই স্কিমের সাথে লেগে থাকবে এবং কেবলমাত্র মাঝে মাঝে ছাঁটাই বাম / ডান মান প্রেরণ করে তবে অন্যথায় প্যাকেটের শূন্য ট্রিম মানকে ডিফল্ট করে।

আমি একটি কিল সুইচ থাকার পরামর্শ দিচ্ছি যা কেবল থ্রোটলকে শূন্যে সেট করে। এর ফলে হেলিকপ্টারটি আকাশ থেকে ছিটকে পড়বে, তবে এটি যখন মোটরগুলি ঘুরছে না তখন এটি কম ক্ষতি বজায় রাখবে। সুতরাং আপনি যদি কিছুটা ক্র্যাশ বা আঘাত করতে চলেছেন তবে গিয়ারগুলি ছিনিয়ে নেওয়া বা ব্লেডগুলি না ভাঙতে কিল সুইচটি চাপুন।

আসল রিমোট কন্ট্রোলের আইআর এলইডিগুলিতে>> 900nm তরঙ্গদৈর্ঘ্য রয়েছে বলে মনে হয় তবে 850nm এলইডি ব্যবহার করে আমার কোনও সমস্যা হয়নি got

হেলিকপ্টারের আইআর রিসিভার ঠিক আছে, তবে সুপার সংবেদনশীল নয়, তাই আপনার আইআর উত্স যত উজ্জ্বল হবে তত ভাল। রিমোট কন্ট্রোলটি সিরিজে 3 টি এলইডি ব্যবহার করে, যুক্তিতে ব্যবহৃত 5 ভি রেলের পরিবর্তে 9 ভি রেলটিতে বসে। তাদের বর্তমান ড্র খুব সুনির্দিষ্টভাবে পরীক্ষা করে দেখেনি, তবে আমি এটি 50 এমএ বাজি ধরেছিলাম।

নমুনা তথ্য

আগ্রহী প্রত্যেকের জন্য এখানে একগুচ্ছ প্যাকেট রয়েছে (হ্যাঁ, আমি একটি ডিকোডার স্ক্রিপ্ট করেছি; আমি এই সমস্তটি হ্যান্ড-ডিকোড করি নি)। চ্যানেল এ প্যাকেটগুলি আসল প্রশ্নের গ্রাফগুলির মতো একই ক্যাপচার থেকে আসে।

Channel A                                                       
Yaw     Throttle  Pitch   Tr  Chan  Check     Description
-----------------------------------------------------------
000100  10000100  000000  00  0101  000101    Left Mid + Throttle
000000  10000110  010001  00  0101  010010    Left Max + Throttle 
100001  10000110  000000  00  0101  100010    Right Mid + Throttle 
100100  10000100  010001  00  0101  110100    Right Max + Throttle
010001  00000000  001011  00  0101  011111    Forward Min 
010001  00000000  000000  00  0101  010100    Forward Max 
010001  00000000  011000  00  0101  001100    Back Min 
010001  00000000  100101  00  0101  110001    Back Max
010001  00000000  010001  01  0101  010101    Left Trim 
010001  00000000  010001  10  0101  100101    Right Trim 
010001  00000011  010001  00  0101  000110    Throttle 01 (min)
010001  00010110  010001  00  0101  010011    Throttle 02
010001  00011111  010001  00  0101  011010    Throttle 03
010001  00101111  010001  00  0101  101010    Throttle 04
010001  00111110  010001  00  0101  111011    Throttle 05
010001  01010101  010001  00  0101  010000    Throttle 06
010001  01011111  010001  00  0101  011010    Throttle 07
010001  01101100  010001  00  0101  101001    Throttle 08
010001  01111010  010001  00  0101  111111    Throttle 09
010001  10000101  010001  00  0101  000000    Throttle 10 (max)

Channel B
Yaw     Throttle  Pitch   Tr  Chan  Check     Description
-----------------------------------------------------------
000000  10000110  010001  00  0010  010101    Left Max + Throttle 
100100  10000110  010001  00  0010  110001    Right Max + Throttle 
010001  00000000  001001  00  0010  011010    Forward Min 
010001  00000000  000000  00  0010  010011    Forward Max 
010001  00000000  010111  00  0010  000100    Back Min 
010001  00000000  100110  00  0010  110101    Back Max
010001  00000000  010001  01  0010  010010    Left Trim 
010001  00000000  010001  10  0010  100010    Right Trim 
010001  00000001  010001  00  0010  000011    Throttle Min 
010001  00110100  010001  00  0010  110110    Throttle Mid 
010001  01100111  010001  00  0010  100101    Throttle High 
010001  10001111  010001  00  0010  001101    Throttle Max 

Channel C
Yaw     Throttle  Pitch   Tr  Chan  Check     Description
-----------------------------------------------------------
000000  10000101  010001  00  1000  011100    Left Max + Throttle 
100100  10000101  010001  00  1000  111000    Right Max + Throttle 
010001  00000000  001010  00  1000  010011    Forward Min 
010001  00000000  000000  00  1000  011001    Forward Max 
010001  00000000  010111  00  1000  001110    Back Min 
010001  00000000  100110  00  1000  111111    Back Max
010001  00000000  010001  01  1000  011000    Left Trim 
010001  00000000  010001  10  1000  101000    Right Trim 
010001  00000001  010001  00  1000  001001    Throttle Min 
010001  00110100  010001  00  1000  111100    Throttle Mid 
010001  01100110  010001  00  1000  101110    Throttle High 
010001  10000101  010001  00  1000  001101    Throttle Max

উপরে উল্লিখিত হিসাবে, শেষ 8 টি বিটগুলি বের করা হয়েছে তবে কেবল উত্তরোত্তর জন্য এখানে আমার আসল চিন্তাভাবনা রয়েছে। এটিকে সম্পূর্ণ উপেক্ষা করতে দ্বিধা বোধ করুন, কারণ আমার অনুমানের দিক থেকে আমি বেশ ভুল ছিল।

শেষ 8 বিট

প্যাকেটের শেষ 8 টি বিট এখনও কিছুটা রহস্য।

বিট 23 থেকে 26 পর্যন্ত 4 টি বিটগুলি সম্পূর্ণরূপে রিমোট কন্ট্রোলের চ্যানেল সেটিং দ্বারা নির্ধারিত হয়। রিমোট কন্ট্রোলে চ্যানেল পরিবর্তন করা কোনওভাবেই প্রোটোকল বা মড্যুলেশনকে পরিবর্তন করে না; এটি কেবল সেই 4 বিট পরিবর্তন করে।

তবে 4 টি বিট দ্বিগুণ যা চ্যানেল সেটিংটি এনকোড করার জন্য প্রয়োজন; এখানে কেবল তিনটি চ্যানেল রয়েছে, সুতরাং 2 বিট প্রচুর। সুতরাং, উপরের কাঠামোর বিবরণে, আমি কেবলমাত্র প্রথম 2 বিটকে "চ্যানেল" হিসাবে লেবেল করেছি এবং অন্য দুটিটিকে "এক্স" হিসাবে লেবেল রেখেছি, তবে এটি অনুমান করা যায়।

নীচে প্রতিটি চ্যানেল সেটিংয়ের জন্য প্রাসঙ্গিক বিটের একটি নমুনা দেওয়া আছে।

Chan.   Bits 23-26
-----+-------------
  A  |  0  1  0  1
  B  |  0  0  1  0
  C  |  1  0  0  0

মূলত, চ্যানেল সেটিংটি প্রেরণ করতে প্রয়োজনের তুলনায় 2 টি বিট বেশি রয়েছে। সম্ভবত আরও চ্যানেলগুলির জন্য পরে প্রোটোকলটিতে 4 টি বিট রেখে দেওয়া হয়েছে, বা প্রোটোকলটি সম্পূর্ণ আলাদা খেলনাগুলিতে ব্যবহার করা যেতে পারে, তবে আমি কেবল জানি না। বৃহত্তর মানগুলির জন্য, প্রোটোকল অতিরিক্ত বিট ব্যবহার করে যা বাদ যায় (ইয়া / থ্রোটল / পিচ প্রতিটি আরও কিছুটা কমিয়ে পেতে পারে), তবে ছাঁটাইয়ের জন্য - যার 3 টি রাজ্য রয়েছে - মাত্র 2 বিট ব্যবহৃত হয়। সুতরাং কেউ সন্দেহ করতে পারে যে চ্যানেলটিও মাত্র 2 বিট, তবে পরবর্তী 2 টি অ্যাকাউন্টবিহীন হয়ে যায় leaves

অন্য সম্ভাবনাটি হ'ল প্যাকেটের চেকসামটি 8 টি বিট দীর্ঘ, "এক্স বিটস" দিয়ে শুরু হয় এবং - চেকসামিং ম্যাজিকের মাধ্যমে - এগুলি কেবল চ্যানেল সেটিংসকে সর্বদা প্রতিফলিত করে। তবে আবার: আমি জানি না।

এবং কথা বলছি: এই চেক বিটগুলি কীভাবে গঠিত হয় আমার কোনও ধারণা নেই। আমি বলতে চাচ্ছি তারা হয় , চেক বিট, যেহেতু তারা কোন একক নিয়ন্ত্রণ ইনপুট সাথে সঙ্গতিপূর্ণ নয় এবং যদি আমি তাদের সাথে বেহালা হেলিকপ্টার সাড়া বলে মনে হচ্ছে না। আমি অনুমান করছি এটি কোনও ধরণের সিআরসি, তবে আমি এটি বের করতে সক্ষম হইনি। আপনি "এক্স বিটস" কীভাবে ব্যাখ্যা করেন তার উপর নির্ভর করে চেকটি 6-8 বিট দীর্ঘ হয়, তাই অনেকগুলি উপায় রয়েছে যা একসাথে রাখা যেতে পারে।


6

এটি এত খারাপ দেখাচ্ছে না। প্রথমে লক্ষ্য করুন যে সমস্ত বার্তায় হ'ল 17 টি ডাল রয়েছে contain এটি অবিলম্বে আমাদের একটি দৃ a় ধারণা দেয় যে কোনও বার্তার অভ্যন্তরে সংক্ষিপ্ত স্থানগুলি অপ্রাসঙ্গিক। মনে হয় ডালগুলি সংক্ষিপ্ত বা লম্বা হওয়ার কারণে ডেটা এনকোড করা হয়েছে এবং এই ডালের মধ্যে কিছু পরিসরের ব্যবধান গ্রহণযোগ্য।

স্পষ্টতই, প্রতিটি বার্তা একটি প্রারম্ভ বিট হিসাবে একটি দীর্ঘ নাড়ি দিয়ে শুরু হয়। এটি 16 ডেটা বিট ফেলে। সম্ভবত প্রাথমিক বিটগুলির কয়েকটি হ'ল একটি অপকোড, সম্ভবত পরিবর্তনশীল দৈর্ঘ্য। যদি আমি এটি করি, শেষ বিটগুলির কয়েকটি একটি চেকসাম হবে। ফার্মওয়্যারটি লিখেছেন এমন প্রকৌশলীরা চিত্রগুলি নিজের জন্য সহজ রাখতে চেয়েছিলেন, তাই কোথাও কোথাও 8 টি ডেটা বিট রয়েছে বলে ধরে ধরে আপনি শুরু করতে পারেন। এখন দেখুন যে কোনও বার্তাটি বোঝায় কি না।

আসুন একটি দীর্ঘ 1 এবং একটি সংক্ষিপ্ত একটি 0 কল করুন এটি অন্য উপায়ে হতে পারে, তবে আমাদের কোথাও শুরু করতে হবে। প্রারম্ভ বিট পাতা ছিটানো:

1010001101011010 মিনিট থ্রোটল
1010011101011000 সর্বোচ্চ থ্রোটল
1010000001011111 মিনিট ফরোয়ার্ড
1010000000011110 সর্বোচ্চ এগিয়ে
1010000011011101 সর্বোচ্চ ফিরে
1010000100011010 মিনিট পিছনে
0000010101011100 সর্বোচ্চ বাম + সর্বোচ্চ থ্রোটল
0100010101011110 সর্বোচ্চ ডান + সর্বোচ্চ থ্রোটল
1010000101111111 ট্রিম বাকি
1010000101011011 সঠিকভাবে ট্রিম করুন

কিছু জিনিস এখনই পপ আউট। স্পষ্টত বিট 0 একটি সমতা বিট। অন্যথায় এখানে 3 বিট ক্ষেত্র <15:13>, একটি 8 বিটের ডেটা মান <12: 5> এবং অন্য 4 বিট ক্ষেত্র <4: 1> উপস্থিত হবে।

দেখে মনে হচ্ছে যে ডেটা মানটি নিম্ন থেকে উচ্চ বিট ক্রমে প্রেরণ করা হচ্ছে, তাই সম্ভবত আমি যা দেখাব সেগুলি থেকে পুরো 16 বিটগুলি উল্টানো অর্থ ব্যাখ্যা করে আরও বোধগম্য হয়।

আমি এতে বেশি সময় ব্যয় করার মতো বোধ করি না তবে আশা করি এটি আপনাকে একটি সূচনা দিয়েছে। আমি প্যারিটি বিট ছিটকে দিয়ে উপরে তালিকাটি পুনরায় লেখার দ্বারা এগিয়ে চলব, পুরো নম্বরটি এমএসবিতে এলএসবিতে উল্টিয়ে গেল এবং প্রতিটি ধরে নেওয়া ক্ষেত্র পৃথকভাবে দেখানো হবে এটির এবং অপসারণের ক্ষেত্রের মধ্যবর্তী স্থানের সাথে। এটি আপনাকে আরও পপ আউট করার অনুমতি দিতে পারে। এছাড়াও মনে রাখবেন যে আমাদের প্রতিটি বিটের পিছনে পিছনে 1/0 সংজ্ঞা থাকতে পারে। সম্ভবত প্রতিটি উপায়ে নতুন টেবিলটি লিখুন এবং দেখুন যে কোনও উপায়ে একতরফা বোঝা যায়।


ধন্যবাদ, এটি দুর্দান্ত! আমি ঠিক এটি পেয়ে যাব, এবং আমি যা খুঁজে পাই তা দেখতে পাবো। অন্যান্য প্রোটোকল দেখার পরে, আমি ভাবতে শুরু করেছিলাম যে সম্ভবত স্থানগুলি অপ্রাসঙ্গিক ছিল, তবে যেহেতু তাদের দুটি খুব সুসংগত সময় ছিল, তাই আমি এতটা নিশ্চিত ছিলাম না। আমি অনুভব করেছি যে তারা গুরুত্বপূর্ণ না হলে তারা আরও পরিবর্তিত হবে। যাইহোক, আমি এটি চেষ্টা করে দেখুন। আবার ধন্যবাদ
ফ্লাম্বিনো

হাহ ... যতটা আমি বলতে পারেন, স্পেস কি ব্যাপার। আমি থ্রোটলে ফোকাস করেছি এবং 10 টি বিভিন্ন থ্রোটল অবস্থানের উপর আরও কিছু নমুনা ক্যাপচার করেছি। স্থানগুলি বাদ দিয়ে আমি কীভাবে রূপান্তরগুলি করেছি তা নির্বিশেষে আমাকে কোনও অর্থবহ সংখ্যা দেয়নি। তবে এগুলি দীর্ঘ = 1 হিসাবে অন্তর্ভুক্ত করলে সংক্ষিপ্ত = 0 টি 1 থেকে 134 (ছোট এন্ডিয়ান) এর থ্রোটাল মানটির মসৃণ অগ্রগতি অর্জন করে। এখনও অন্যান্য পরামিতিগুলিতে কাজ করা হচ্ছে
ফ্ল্যাম্বিনো

আমি প্রোটোকলটি প্রায় পুরোপুরি নির্ধারণ করেছি, তবে এখনও রহস্যের কিছুটা আছে। আপনি যদি এটিতে দোল নিতে চান তবে আমার প্রশ্নের সাথে একটি টন স্টাফ যুক্ত করেছেন। যাইহোক, এখন পর্যন্ত আপনাকে সহায়তার জন্য ধন্যবাদ! আমাকে সঠিক পথে কাজ করতে পেয়েছি।
ফ্ল্যাম্বিনো

@ ফ্লেম্বিনো: দেখে মনে হচ্ছে যে আমি যেটা শুরু করতে চেয়েছিলাম তা থেকে তুমি বেশ এগিয়ে আছ, যা অন্ধকারের দৃষ্টিতে বেশিরভাগ ভুল অনুমান হিসাবে প্রমাণিত হয়েছিল। আমি আপনার আপডেট হওয়া প্রশ্নটি পড়েছি তবে স্পেসগুলির দৈর্ঘ্যটি ঠিক কীভাবে ব্যবহৃত হয় তা এখনও বুঝতে পারি না। আপনি কি দেখালেন যে সমস্ত নিদর্শনগুলিতে ঠিক 17 টি ডাল ছিল এবং এটি কেবলমাত্র ডালকে 0 বা 1 হিসাবে নেওয়া হলে সমতা নির্দেশ করার জন্য শেষ ঘটনাটি ছিল?
অলিন ল্যাথ্রপ

সত্যি বলতে, এটি বেশিরভাগ ক্ষেত্রে আমার পক্ষে বিচার এবং ত্রুটি ছিল। যেহেতু স্পেসগুলির জন্য ব্যবহৃত 2 টি সময় নাড়ির সময়গুলির মতো ঠিক ঠিক তাই আমি বুঝতে পেরেছিলাম সেগুলি অর্থবহ হতে পারে। এবং, স্পেসগুলি উপেক্ষা করার সময় দরকারী বাইনারি ডেটা পাওয়া যায় নি, আমি সবেমাত্র লম্বা নাড়ি = 1 এবং দীর্ঘ স্থান = 1 (এবং স্বল্প স্থান / নাড়ি = 0) ধরেছিলাম, যা আমাকে অবিলম্বে খুব দরকারী ডেটা দিয়েছে useful সুতরাং উপস্থাপিত নাড়ির পরে প্রথম স্থানটি প্রথম বিট হয় (সর্বাধিক ডান + সর্বাধিক থ্রোটল গ্রাফ প্রথম বিট হিসাবে "স্পেস 1" দেখায়) এর পরে আরও 15 টি স্পেস সহ 16 টি ডাল থাকে; 32 বিট।
ফ্লাম্বিনো
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.