私はCypress BLE PSoC 4200で作業していましたが、自分のiPhoneにデータパケットをint32
送信するようにGATTデータベースを設定しました。ただし、uint8
個のデータでGATTデータベースに書き込むことしかできません。 、uint32_t型の変数に4バイトのデータ(uint8_t)を取得する方法
// function passes in int32 variable 'result'
uint8 array[4];
array[0] = result & 0xFF;
array[1] = (result >> 8) & 0xFF;
array[2] = (result >> 16) & 0xFF;
array[3] = (result >> 24) & 0xFF;
は、そのint32
パケットが送信される際に念頭に置いて、私は各バイトを取ることができるようにしたいことを考える:だから私はこのint32
電圧の読みを取り、uint8
バイト配列にそれを置くために、次の書きました何らかの形でそれらを元のint32値に再結合し、それを画面に出力します(たとえば、456000は0.456 Vになります)。
今、私は4つのバイトを取得して、このようなようにそれらを扱う:
NSData* data = [characteristic value];
const uint8_t *reportData = [data bytes];
// variable to hold the eventual 32-bit data
uint32_t voltage = 0;
は*reportData
の各指標を通過し、バイトを連結する方法はありますか?どんな助けでも、ありがとう。
は... –
' GetBytesメソッドをNSData' 'の' getBytes'方法を見てください。 –