0
私は数日前からBLEサービス特性値のデータにアクセスしようとしています。私はTemperature Sensorの例をSwiftに翻訳する方法を理解することが役に立ちましたと思っていましたが、私は同じ場所で立ち往生しています。Swift 3のデータからInt16を抽出する方法
- (CGFloat) maximumTemperature
{
CGFloat result = NAN;
int16_t value = 0;
if (maxTemperatureCharacteristic) {
[[maxTemperatureCharacteristic value] getBytes:&value length:sizeof (value)];
result = (CGFloat)value/10.0f;
}
return result;
}
スウィフト3:
は、どのように私はOBJの-Cを翻訳していますか?代わりCGFloatの
は、私のコードで私は構造体を使用しています:
struct MPUData {
let x: Int16
let y: Int16
let z: Int16
}
及び第6は、x、y及びz成分(すなわち、あると特性から8バイトの値を受信してい最後のバイトが未使用であるx = 0x0D
、y = 0x0E
、z = 0x0F
と0x0D0E0F00
)
私はどのようにビットを横断し、そのInt16型の値として保存には考えています。どんな助けでも大歓迎です。
私は追加したい唯一のことは、私は初期化(データ:データ)でそれを固執するだろうということです?コンストラクタとあなたが予想されません場合はnilを返しますこれは通常あなたが間違ったデータを持っているので、バッファサイズです:guard data.count == MemoryLayout .size * 3 else {return nil} –
これはうまくいくようです。うまくいけば今日私はテスト/投票するチャンスを得るでしょう。 – jjatie