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