Re: [討論] 有誰懂這位對岸RD在說什麼 ?

作者: SmallBeeWayn (喵喵叫的蜜蜂貓)   2014-11-04 18:59:44
※ 引述《azureshin (azureshin)》之銘言:
: 是這樣....我們買了一個亮度偵測儀器,是透過藍牙接收的.
: 得到的是16進制8e000000
a b c d
: 我問對方這要怎麼轉換成流明 ? 對方是這樣回的..
: 『需要将第二个字节的数据先左移8位再加上第一个字节的数据,再乘以 64000/65536』
: 『二进制的左移』
: 『现在是两个8位的数据,要变成一个16位的数据』
: 『第二个字节是高位』
: ..........就這樣,四句話打完他就不回我了...
: 我知道進制轉換,但我就是看不懂他們在說什麼,有誰懂得??
觀察:
1. 明明這是個4 Byte 數據,第一句話卻只對其中2 Byte做移位
2. 第三句話有提到是把兩個8bit合成
3. 這是LSB還是MSB排列,第一第二是從右邊數還左邊數?
解說:
1. 第一句跟第四句意義重疊,但不知道資料順序所以沒意義
2. 第二句完全是贅字,在第一句就講過了
3. 第一句後面*64000/65536有用,前面說的跟第三句意義重疊
4. 總之公式是 ((int32)High Byte<<8+Low Byte)*64000/65536
5. 總之這"8e"幾乎肯定是Low Byte或High Byte
但到底'b','c','d'哪個是另外的Byte不明
預測:
1. 先假定第三句話是對的,那數據中應該有2Byte無意義
2. 這是單純的資料串接再等比縮放,所以從原始數據就可以看到結果
確認:
1. 設計一個光源可控的環境,持續取得偵測值
若得到的值有兩個Byte恆為零,則證明假說1為真
2. 承1, 在過程中也能得知這是MSB還是LSB
3. 承1,2 高低位都知道了,就合併成16bit數據即可
4. 若預測1證實為假,4個Byte都有變動那就必須取得進一步資訊
對方工程師理解錯誤"字節=1Byte=8bit"的機率太低
第一三句以及公式都顯示這是一個16bit的分數分子
必須考慮資料取得有誤

Links booklink

Contact Us: admin [ a t ] ucptt.com