接続されている LED を別の色に変更するために、コマンドを BLE アダプターに送信する Xcode で Swift アプリを作成しています。
SOに関する以前の投稿への返信から確立したように、配列内の16進整数に関してコマンドを送信する必要があります。これを行うために、次のコードを使用しています。
let bytes : [UInt8] = [ 0x52, 0x13, 0x00, 0x56, 0xFF, 0x00, 0x00, 0x00, 0xAA ]
let data = NSData(bytes: bytes, length: bytes.count)
したがって、これには上記のように UInt8 フォームが必要です。
ただし、BLE レシーバーに接続されている LED ストリップの R、G、および B の色を設定するために、Swift アプリでスライダーをカラー ピッカーとして使用しようとしています。これを行うために、R、G、B の 3 つのスライダーをそれぞれ作成し、それぞれの最小値を 0 に、最大値を 255 に設定しました (255 は 16 進数で FF に変換されるため)。次に、次の関数を使用してこれらを 16 進形式に変換し、上記のコマンドで実装できるようにします。
func colorToHex(input: Int) -> UInt8 {
var st = NSString(format: "%2X", input)
return st
}
これに関する問題は、UInt8 値を再度返さなければならないという事実です。「st」は NSString であるため、Xcode は「NSString は UInt8 に変換できません」というエラーをスローします。
私はSwiftにかなり慣れていません。ここでの質問は、UInt8 値を返す関数を取得するにはどうすればよいですか? UInt8 値を形成するにはどうすればよいですか?
どんな助けでも大歓迎です!