1. 程式人生 > >命令框架概述

命令框架概述

bat 顯示 設定 條件 範例 框架概述 fcm src blog

你可以使用命令框架服務向設備上正在運行的應用程序發送命令。

例如,Predix雲中的EdgeManager設備管理應用程序能夠向任何使用命令框架服務設備的單獨的應用程序發送命令。

為了傳遞EdgeManager的命令,Predix機器需要得到想要達到的每個它所訪問的應用程序的命令處理程序程序。應執行每個命令處理程序程序需要被實現以與具體的應用程序進行通信。

註:

參見創建命令處理程序

工作流

本範例展示了機器命令處理程序程序執行 getlogs 命令的工作流。
1. 雲網關依據根據以下三大條件之一與邊緣網關進行同步:
- 1.Sever-Sent Events服務器發送事件 (SSE)
- 2.在雲網關配置中設置的時間間隔
- 3.機器上運行的應用程序發送一個同步請求
2. 邊緣網關向 get logs推送一項任務。
3. 雲網關將命令傳遞給命令調度程序。
4. 命令調度程序將命令識別為機器命令,並向機器處理程序發送消息。
5. 機器處理程序通過向邊緣網關端點發表日誌執行所需的操作。
6. 機器處理程序向雲網關發送成功狀態消息。
7. 雲網關儲存狀態消息直到下一次同步周期。
8. 將狀態消息上傳至雲端。

下圖顯示了工作流。

命令框架消費者配置

Maven依賴項

消費進行命令框架服務時需要下列Maven依賴項:
技術分享

OSGI導入

在消費消耗捆綁包中時,需要導入下列OSGI:
技術分享

在Predix機器中安裝命令框架

為了使用命令框架服務,你必須生成一個Predix機器供應容器,包括命令框架和雲網關捆綁包。

你可以使用命令行腳本或Predix機器SDK在Eclipse中生成容器。
? 使用命令行生成容器。
例如,GenerateContainers.bat D\users\16.4.0\SDK\eclipse-jee-mars-SR2-win32-x8-64.zip -PROV

註:

欲了解使用腳本生成容器的完整說明,參見用命令行腳本生成Predix機器運行時容器。
? 用Predix機器SDK生成容器,並在Predix功能組捆綁包類型中添加Predix供應支持捆綁包。

註:

欲了解使用Eclipse生成容器的完整說明,參見用Eclipse生成Predix機器運行時容器。

創建命令處理程序程序

為了使用命令框架服務,你必須生成一個Predix機器供應容器,包括命令框架和雲網關捆綁包。

你可以使用命令行腳本或Predix機器SDK在Eclipse中生成容器。
? 使用命令行生成容器。
例如,GenerateContainers.bat D\users\16.4.0\SDK\eclipse-jee-mars-SR2-win32-x8-64.zip -PROV

註:

欲了解使用腳本生成容器的完整說明,參見用命令行腳本生成Predix機器運行時容器。
? 用Predix機器SDK生成容器,並在Predix功能組捆綁包類型中添加Predix供應支持捆綁包。

註:

欲了解使用Eclipse生成容器的完整說明,參見用Eclipse生成Predix機器運行時容器。

創建命令處理程序程序

要訂閱命令,應用程序必須註冊命令處理程序程序服務實現執行 ICommandHandler 接口。調度新命令時,在調度程序中註冊並調用這項服務。

下列範例顯示了如何執行一個命令處理程序:
技術分享

命令和命令格式

命令格式

EdgeCommand Protobuf對象發送至機器
技術分享

CommandStatus Protobuf Object 返回至CloudGateway。
技術分享

命令

Predix機器命令處理程序提供下列命令。

技術分享
技術分享
技術分享
技術分享
技術分享
技術分享

命令輸出

應通過下列一種方式返回命令輸出。如果一個命令有兩種執行方式,只有CommandStatus對象(第一種方式) 中的輸出會在EdgeManager UI中顯示。

1.通過輸出字段中的 CommandStatus 對象發送輸出。

註:

限制為< 1KB的字符串輸出。

2.通過提供的URL上傳輸出。

命令狀態枚舉

下表描述了 CommandStatus 對象中的枚舉值和設定值描述。
技術分享

向命令處理程序發布一條命令

用聲明服務註入命令框架服務,例如:
技術分享

機器命令處理程序

你可以使用機器命令處理程序與Predix機器進行通信。例如,EdgeManager將命令發送至機器命令處理程序,可以啟用或禁用Predix機器網絡控制臺。

配置機器命令處理程序

你可以配置機器命令處理程序。

格式化.config文件(不是.cfg文件)內的屬性值時,使用類型字符,之後跟加引號引用的值字符串值表示。例如,一個布爾型屬性=B”true”。小寫類型字符表示基本數據。字符串的類型可以省略。下表列出了類型和對應的類型字符:
技術分享
數組格式為屬性=<類型>[”<值1>”,”<值2>”]。例如,整型數組屬性=I[“1”, “2”, “3”].清晰起見,可使用反斜杠分隔換行。

  1. 找到並打開下列文件:
    技術分享
  2. 打開com.ge.dspmicro.device.commandhandler.machinecomm.config 文件並設置下列屬性:
    技術分享

命令框架概述