基本的に言えば、クロスプラットフォームアプリケーションにはnativescriptを使用しています。このアプリケーションはBLEデバイスと対話します。 BLEデバイスは、広告パケットの後にスキャン応答を送信します。これは、iOS側でNSDataオブジェクトとして取得できます。リトルエンディアンバイトオーダー(iOS、BLEスキャンレスポンス)
descriptionプロパティの出力(疑似)は、< 54fca267 0b00>です。
出力は、周辺機器のハードウェアアドレスを表します。
ハードウェアの人は、これはリトルエンディアンであると私に伝えています。私はそれが48ビットの文字列であることを知っています。それは周辺機器から来ており、そのファームウェアはC言語で書かれています。
これを文字列(正しいエンディアン)に変換しようとしています。 - しかし、エレガントなソリューションを考え出すことができません。
私が思いついた解決策は、NSDataオブジェクトの:descriptionプロパティを読み取ってから、手動で(javascriptで)それを 'デコード'することでした。私は、このソリューションが実稼働環境に十分適しているとは思わないし、代わりにネイティブユーティリティを使用したいと考えています。私が使って試してみました
:ドキュメントのTHISページから、すべてのエンコードの種類..with
NSString.alloc().initWithDataEncoding(mac, NSUTF8StringEncoding);
。私は何も返さない、または間違った文字を取得しています。
これまで説明したように、これはNativeScriptで書かれています。しかし、私は客観的なCについてよく理解しているので、その言語で提供されているすべての例を変換できるはずです。
すべての入力をいただければ幸いです。前もって感謝します!
これは正しい住所です、私の申し訳ありません。 OUIはsi-labsに登録する必要があります。 – AzraelPwnz
Rob、この質問をご覧ください: https://stackoverflow.com/questions/46518084/nativescript-get-string-from-interop-reference 私がobj-cで作業していた場合、あなたのソリューションは黄金かった!つまり、NativeScript(可能な)制限のためにstringWithFormatメソッドを実装することができません。 – AzraelPwnz