Akvelon(Ivanovo)のsgrebnovによる記事の作成、 AllJoynの直接開発者およびIoT / Windowsの専門家としてこの記事を執筆するのに役立つことを非常に感謝しています。 IoT関連の残りの記事は、 iotweekタグに記載されています。
こんにちは
少し前のことですが、前回のWinHEC(Hardware Engineering Conference)2015のフレームワークで、 IoTまたは「 モノのインターネット」のトピックについて既に触れました 。
多くの懸念される主な問題の1つは、接続を確保し、異なる言語やプロトコルなどを話すデバイスを発見する問題です。この問題は、AllJoynフレームワークとスレッドプロトコルを組み合わせて解決するように設計されており、Microsoftは7月1日にワーキンググループに参加しました。 AllJoynについて、私たちは話します。
それとは別に、Windows 10のコンテキストでこの概念の非常に重要な部分の1つを検討することにしました(もちろん、このOSに限定されません)-デバイスの相互作用のための一般的なプロトコルAllJoynは 、すでに事実上の標準になっています。 さらに、 Windows 10および付属のWindows 10 SDKは、このプロトコルの特別なサポートを提供します。
AllJoynとは何ですか?
AllJoynは、アプリケーション、デバイス、およびユーザーがデバイスの種類に関係なくWiFiおよびBluetooth(およびその他の種類のネットワーク)を介して対話できるように設計されたオープンソースフレームワーク(およびプロトコル)です。
このプロトコルの主なメリットは、特別なレベルの抽象化です。これにより、デバイスとアプリケーションは、特定のサービスのプロバイダーとして自分自身を提供し、追加の機器と特別なサーバーを使用せずに他のデバイスとアプリケーションを見つけることができます。
アーキテクチャ的には、このように見えます-AllJoynネットワークは、仮想ルーター(ルーター)とアプリケーション(アプリ)で構成されています。 アプリケーションはルーターと通信し、ルーターは他のルーターとこのルーターに関連する他のアプリケーションと順番に通信します。 したがって、アプリケーションはこれらの仮想ルーターのネットワークを介して互いに通信できます。 同時に、アプリケーションとそれが接続されている仮想ルーターは、異なる物理デバイスに配置できます。
AllJoynアーキテクチャの詳細については、 こちら (一般情報)およびこちら (Windows 10 IoT)をご覧ください 。
Windows 10 IoT AllJoyn
急いでください-Windows 10では、このプロトコルの完全なサポートが含まれています。
まず、Windows 10には、アプリケーションとネットワーク上の他のデバイスの両方で使用できる特別なAllJoynルーターサービスが含まれているため、上記のAllJoynルーターについて心配する必要はありません。
次に、Windows 10には、Windows.Devices.AllJoyn名前空間(https://msdn.microsoft.com/en-us/library/windows/apps/windows.devices)にあるAllJoynプロトコルを操作するための特別なAPIが含まれています.alljoyn.aspx)(C ++、C#、JavaScriptサポート)。 したがって、追加のSDKやツールをインストールする必要はありません。すべての準備が整い、動作します。
そして、もちろん、開発者向けの追加ツール:
- AllJoynCodeGen - Windows 10 SDKの一部(C:\ Program Files(x86)\ Windows Kits \ 10 \ bin \ x64 \にあります)により、xml形式のサービス記述を使用してAllJoynサービスを操作するための完全に完成したWindowsランタイムライブラリを生成できます( AllJoyn Introspection XML )。 より詳細に表示して聞きます 。
- getajxmlは、ネットワーク上のすべてのAllJoynデバイスを検出し、自動生成コードに使用できるAllJoyn Introspection XMLの生成などの詳細情報を取得できる特別なユーティリティです。 詳細については、上記のビデオをご覧ください。
- AllJoyn Explorerは、Windowsアプリケーションとして実行される同様のユーティリティであり、インターフェイスを表示できるだけでなく、メソッドを動的に呼び出すこともできます。 こちらからダウンロードできます。
Windows 10でAllJoynアプリケーションを作成する例
以下では、 Windows 10 Insider PreviewとVisual Studio 2015 Community Edition(RC)の無料バージョンを使用します ( ダウンロード )。
AllJoynの一般的な例の1つにConnected Lighting Projectがあります。これは、情報を受信してデバイスを制御するためのAllJoynインターフェイスを実装する電球に過ぎません。
以下では、このようなスマート電球を制御するWindows 10クライアントを作成するプロセスを見ていきます。
アプリケーションの完全なソースコードはGitHubにあります 。 だから...
手順1.新しいWidows Runtime C ++コンポーネントを作成し、コードの自動生成にAllJoynCodeGen (上記を参照)を使用します。
このプロジェクトの公開AllJoyn Introspection XMLは、 ここにあります 。
詳細な手順はこちらです。
ステップ2 新しいWindows 10 C#/ XAMLアプリケーションを作成し、それに応じてWindowsランタイムによって作成されたコンポーネントを追加します。
ステップ3 これで電球を見つけて制御するロジックを実装できます
電球を見つけて接続するには:
明るさを変更するには:
これは本当にすべてのコードです:)主なAllJoynクラスはWindows 10 APIによって提供され、残りはAllJoynCodeGenを使用して生成されます。
ステップ4.テスト:
テストライトとして、ランプシミュレータアプリケーション(Android、 ダウンロード )を使用できます。 そのため、Windows Phone 10 Phoneでアプリケーションを起動し、AndroidでLamp Simulatorを起動して、すべてがどのように連携するかを確認します。
資源
AllJoynとWindows10
AllJoynアーキテクチャ
Windows 10でAllJoynアプリを構築する
Windows 10のAllJoynインターフェイス
AllJoyn Connected Lightingプロジェクト