1
我有一個藍牙模塊發送10 BYTE陣列數據包到我的手機。獲取數組中的字節值併合並它們。
我需要得到前兩個字節(0,1)並將它們合併在一起並將它們發送給圖形查看器。 (0 =高字節1 =低字節)。
字節長度爲12位。
這是迄今爲止我嘗試:
// streamDelegate gave us some data, hand it over to print out
- (void)receivedData:(uint8_t *)data length:(NSUInteger)len {
uint16_t iChanI = 0;
uint16_t iChanQ = 0;
iChanI = ((data[0] <<8) + data[1]);
iChanQ = ((data[4] <<8) + data[5]);
[sView Update: iChanI : iChanQ];
[sView setNeedsDisplay];
}
我不確定如果unit8_t是在數據未來的正確格式
目前從圖形輸出的值是比我大很多期望。
任何幫助表示讚賞。
到目前爲止,這看起來不錯。對於這種操作,uint8_t是一個合理的類型,您不應該遇到帶符號數字和位移的意外。你確定「[sView更新:iChanI:iChanQ];」是正確的(我的目標-C有點生疏,但我不記得帶有兩個未命名參數的調用) – Nicholaz
sView update正在輸出一個雙通道圖。我是否正確地移動了數據,應該是8還是12? – user1845029
「字節長度爲12位」?那不是一個字節,那麼,是嗎? [我故意忽略C標準定義,它說「一個char是一個字節,並且char的大小可以是任意大小的」,因爲我嚴重懷疑這個代碼是在具有12,24或36位字的機器上運行的,每字符12位] –