この記事では、学びます。
ケース:コールGPIO制御LEDストロボ
クラウドからデバイスに展開> - ローカル開発とデバッグ - >クラウドに公開
まず、VSコード開発によると、高度な応用例Azureの球をデバッグ
この手順では、LEDのストロボ制御を呼び出し、GPIO
第二に、クラウドから展開
製品を作成します。
「アップデートを受け入れるために、クラウド・ベースのアプリケーション」などのデバイスを設定します。
展開を作成します。
トリガー展開。
「デバッグ有効にする」に再設定デバイス;
ビデオチュートリアル:
あなたはB駅を説明するビデオを見ることができます。https://www.bilibili.com/video/av98276348/
またはサイトで見て:
写真の説明:
まず、VSコード開発によると、高度な応用例Azureの球をデバッグ
Microsoftの公式ドキュメントを参照します:
https://docs.microsoft.com/zh-cn/azure-sphere/install/qs-blink-vscode
サンプルコードを使用しました:
https://github.com/Azure/azure-sphere-samples
1. Visual StudioのコードとAzureの球HelloWorld_HighLevelApp例リポジトリからフォルダを開きます。 上位レベルのフォルダを開けないでください。 VSコードは一度だけのソリューションを生成します。 VSコードはCMakeの利用できないキットを示すダイアログを表示する場合は、選択 Do not use a kit
。
2.設定ファイルのサンプル・コードを変更します。
オープン.vscode / settings.json。
更新AZURE_SPHERE_TARGET_HARDWARE_DEFINITION_DIRECTORY CMakeの変数には、ディレクトリが含まれているターゲットハードウェアデバイスの定義を指すようにします。 マイクロソフトは、金庫のハードウェアカタログAzureの球の例では、ターゲットハードウェアの定義を提供します。 例えば:
<path-to-cloned-samples>/Hardware/mt3620_rdb
ターゲットハードウェアJSONファイル・ディレクトリの定義にAZURE_SPHERE_TARGET_HARDWARE_DEFINITION CMakeの変数のポイントを確認してください。 サンプルアプリケーションでは、使用してください
sample_hardware.json
。
3. F5キーを押してプロジェクトをデバッグします。 あなたが前にプロジェクトをビルドしていない場合、またはファイルが変更されているとニーズを再生成する場合は、デバッグを開始する前に、VSのコードは、プロジェクトをビルドします。
、イメージパッケージを作成し、アプリケーションをコンパイルするVisual Studioのコードのために数分を待って、プレートに展開し、デバッグモードで起動4。
5.短い遅延の後、LEDが点滅を参照すべきです。
main.cの中に6セットのアプリケーションを介してブレークポイントやステップで場所あなたがAzureの球の機能をデバッグVSCodeを閲覧することができますので。
第二に、クラウドから展開
製品の作成1.
アズール球に接続された製品識別装置に組み込まれ、特定の機能MCUを実行します。 メーカーとしては、(例えば食器洗浄機やコーヒーマシンのような)接続されたデバイスの各タイプの製品を作成することができます。 各製品は、テナント内で一意のGUIDを持っており、変更することはできません。
各接続装置は、単一の製品を有するが、単一の製品は、複数のデバイスに関連付けることができます。 各製品には、固有の名前、およびテナントの記述を持っている必要があります。 製品名や他の製品とユーザが読める形を区別するために説明。 あなたは、製品の名前と説明を変更することができます。
azsphere製品は--name MYPRODUCT --description「私の最初の製品」を作成します
このコマンドは、自動的にこの新製品のデフォルトのデバイスグループを作成します。
開発(開発):開発中の開発者向けの開発グループの目的は次の使用にアプリケーションをロードします。 デフォルトでは、このグループは、装置の小売OSのソースを受信するステップと、アプリケーションの更新が無効になっています。 異なるOSのバージョンをテストするために、デフォルトのOSグループを変更することができます。
フィールドテスト(フィールド、試験):フィールド・テスト・セットは、テスト機器における実験室またはフィールド試験開発における使用のために意図されています。 デフォルトでは、このグループは、装置の小売ソースOSおよびすべてのアプリケーションの更新を受けました。
プロダクション(制作者):製造装置の生産グループ。 デフォルトでは、このグループは、装置の小売ソースOSおよびすべてのアプリケーションの更新を受けました。 これは、生産設備の特定のセットに適用されます。
OS(OSフィールド、試験評価)のフィールド試験評価:フィールド試験評価チームOSがデバイス上に新しいアズール球OSとアプリケーションを検証するために実験室またはフィールド試験のために意図され、開発者と互換性があります。 デフォルトでは、ソース機器は、このグループとすべてのアプリケーションのアップデートの小売OSの評価を受けます。
生産は、OS(OSプロダクションの評価)を評価:評価は、新しいAzureの球OSを確認するOSの生産のために意図されており、生産性アプリケーションには互換性があります。 デフォルトでは、ソース機器は、このグループとすべてのアプリケーションのアップデートの小売OSの評価を受けます。
其中,开发设备组会禁用基于云的更新。 其他组支持基于云的更新。
产品名称在租户中必须唯一,并且不区分大小写。 如果名称包含空格,则在命令中将其用双引号括起来。
如下图,生成了5个设备组:
2.配置设备为“接受基于云的应用程序更新”
之前的步骤中,设备处于“开发状态”,开发状态的设备无法从云端接收更新,所以,此时需要先将设备配置为“接受基于云的应用程序更新”。
使用 azsphere device enable-cloud-test 准备设备 :
azsphere device enable-cloud-test --productname "MyProduct"
此命令:
禁用 SDK 将应用程序加载到设备上的功能,以便只能加载基于云的应用程序
根据需要将设备分配给产品。
将设备分配到启用基于云的应用程序更新的设备组。 如果未指定设备组,则会将设备分配给其产品的默认“现场测试(Field Test)”设备组。
Azure Sphere 安全服务使用设备组和产品来确定是否在设备上更新应用程序。
此时可以通过如下命令查询Field Test group 的信息:
azsphere device-group show --devicegroupid “Field Group ID” 其中Field Group ID 在创建Product后显示过
3.上传映像并创建部署
此步骤可以通过一个命令执行,也可以分部执行,
本文中,分布执行,1. 上传;2. 创建部署
1.上传:
azsphere image add --filepath Path\HelloWorld_HighLevelApp.imagepackage --temporary
本例中Path见下图所示:
参数 | 说明 |
---|---|
-t, --temporary | 将映像包标记为临时。 此参数适合在生产过程中使用。 |
2.部署规定了某个产品的某个产品组部署某个映像。
azsphere device-group deployment create 命令将创建部署 。
有如下两种方案:本例中选择第二种方案,其中 imageid为 上一步 上传映像后返回值中的Image ID:
azsphere device-group deployment create --devicegroupname "Field Test" --productname MyProduct --filepath c:\temp\blink.imagepackage
azsphere device-group deployment create --devicegroupname "Field Test" --productname MyProduct --imageid "例1bd8f03f-297e-43ab-819b-d2b0d05d0230"注意,映像ID 不带引号
4. 触发部署
若要立即触发下载,请在 Azure Sphere 设备上按“重置”按钮 。 应用程序应在几分钟内下载并启动,然后应看到 LED 开始闪烁。
可通过如下命令查看部署结果:
azsphere device show-deployment-status
5. 重新配置设备为“启用调试”;
あなたがオープンにVSのコードでデバッグにF5を使用する場合は、この時点で、次のエラーが「提出されたテスト」グループは、デバッガは、デフォルトでは、ローカルのWindowsコンピュータから起動することができないことのデバッグ上にないため、デバイスはこのグループを受け、報告されます小売ソースOSおよびすべてのアプリケーションの更新。
あなたがデバッグを開始したい場合は、以下のコマンドを実行し、「デバイスグループの開発」に切り替える必要があります。
azsphereデバイスがイネーブルの開発を