BLEデバイスと連携するiOSアプリを作っています。
デバイスと接続してキャラクタリスティックを読み込みをしたところ、NSDataのdescriptionの表記通りにint型の変数に代入する方法がわからず、質問をいたしました。
今以下の様なメソッドを実装しています。
lang
1//データの読み出しが完了すると呼ばれる 2-(void) peripheral:(CBPeripheral *)peripheral 3didUpdateValueForCharacteristic:(CBCharacteristic *)characteristic 4 error:(NSError *)error 5{ 6//指定のキャラクタリスティックの時だけ実行 7if ([characteristic.UUID isEqual:[CBUUID UUIDWithString:kUUIDforCharacteristics]]){ 8 9 int byte; 10 NSLog(@"データ:%@", [characteristic.value description]); 11 12 //バイト取り出す 13 [characteristic.value getBytes:&byte length:characteristic.value.length]; 14 15 NSLog(@"バイト表示:%d", byte); 16 }
実行結果は以下です。
2015-11-25 15:55:40.794 XXXX[6760:1485566] データ:<00000271 001b> 2015-11-25 15:55:50.066 XXXX[6760:1485566] バイト表示:1895956480
int型変数byteの1895956480を16進数に直すと71020000になります。
順番が異なっているのも変ですが、とりあえず、characteristic.valueの<00000271 001b>の下4桁,
001bのデータがbyte変数に代入されていません。
この下4桁の数値も変数へ代入する方法を教えていただきたく思います。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/11/25 08:28