私は現在、Bluetooth OBD-IIアダプターを使用してBluetooth経由で車両に接続する機能を備えたWindows Phone 8アプリケーションに取り組んでいます。私はWP8のプログラミングにかなり慣れていませんが、助けを求めようとはしていませんが、どこに行くべきか、何をすべきかを考えたり理解したりできない部分にぶつかりました。
さらに、車に接続するために私がテストしているデバイスを知りたい人がいれば、ここにいるこの人です
編集:: これまでのところ、Bluetooth アダプターが有効になっているかどうかを検出するようにコードを設定しました。現在、ペアリングされたデバイスをユーザーに表示して選択できるようにする方法を調べています (または理解しようとしています)。しかし、現時点での私の主な頭脳は、OBD-II アダプターからどのようにデータを読み取る (またはプルする) ことができるかということです。ソフトウェアのドキュメントには、次のように書かれています。
Kiwi Wifi または Kiwi Bluetooth がコマンドを処理する準備ができていることを示すために、デバイスは大なり記号 (>) を出力します。
したがって、これを正しく理解していれば、 > を確認する必要がありますよね? しかし、どのように?たくさんのソースをチェックしましたが、実際にその方法を説明しているものはありません。IBuffer のようなものに出くわしましたが、それについてはまったく理解していません。
私が言ったことが意味をなさない場合は、簡単に言えば.
- OBD アダプターからデータを読み取る
- データを OBD アダプターに書き込みます (ソフトウェアのドキュメントには、ASCII コードを送信する必要があると記載されています。それらは取得済みです)
読み取り/書き込み方法を理解できれば、データを操作してユーザーに返すことができるはずです。私は願います。
編集2::
private async void checkBluetooth()
{
SolidColorBrush statuscolor = new SolidColorBrush();
try
{
PeerFinder.AlternateIdentities["Bluetooth:Paired"] = "";
var devices = await PeerFinder.FindAllPeersAsync();
bluetoothStatus.Text = "Online";
statuscolor.Color = Colors.Green;
bluetoothStatus.Foreground = statuscolor;
if (devices.Count == 0)
{
MessageBox.Show("No paired bluetooth devices have been found, please pair your OBD adapter first!");
await Windows.System.Launcher.LaunchUriAsync(new Uri("ms-settings-bluetooth:"));
}
PeerInformation peerInfo = devices.FirstOrDefault(c => c.DisplayName.Contains("PLX"));
if (peerInfo == null)
{
MessageBox.Show("No paired PLX adapter found, please pair the PLX OBD adapter!");
await Windows.System.Launcher.LaunchUriAsync(new Uri("ms-settings-bluetooth:"));
}
StreamSocket socket = new StreamSocket();
await socket.ConnectAsync(peerInfo.HostName, "1");
await socket.ConnectAsync(peerInfo.HostName, peerInfo.ServiceName);
}
catch (Exception ex)
{
if ((uint)ex.HResult == 0x8007048F)
{
bluetoothStatus.Text = "Offline";
statuscolor.Color = Colors.Red;
bluetoothStatus.Foreground = statuscolor;
}
}
}