模塊列表
每個設備都有一個與之綁定且唯一的邏輯碼既 logic
logic 長度爲20,其字符內容只能是 0 到 9 的數字
logic 體現了設備掛接的區域,例如 成都的 logic 如果爲 51,錦江區的 logic 是 5101,此時有個設備邏輯碼爲 51010000000000000001,則此設備同時掛接在成都和錦江區下面
每個設備還有一個唯一的物理碼作爲全球唯一的識別指紋,既 physical
physical 長度爲 20,其字符內容只能是 0 到 9 的數字
12345000322410140001
12345 00032 241014 0001
上文是一個物理碼例子,每個字段依次含義如下
同一批次的產品通常只有產品號不一樣,並且它們通常是連續遞增的
此模塊提供了設備管理相關功能
函數列表
Add 函數用於添加一個設備,其簽名如下:
rpc Add (AddRequest) returns (AddResponse){
option (google.api.http) = {
post: "/api/v1/meta/device"
body: "*"
};
}
http 路徑:
/api/v1/meta/device
權限要求: root(1) or device(202)
Change 函數用於修改設備名稱,其簽名如下:
rpc Change (ChangeRequest) returns (ChangeResponse){
option (google.api.http) = {
post: "/api/v1/meta/device/change/{id}"
body: "*"
};
}
http 路徑:
/api/v1/meta/device/change/{id}
權限要求: root(1) or device(202)
Disable 用於停用一個設備。其簽名如下:
rpc Disable (DisableRequest) returns (DisableResponse){
option (google.api.http) = {
delete: "/api/v1/meta/device/{id}"
};
}
http 路徑:
/api/v1/meta/device/{id}
權限要求: root(1) or device(202)
Import 用於導入設備,其通常用於系統創建時管理員大規模的快速導入多個設備其簽名如下:
rpc Import (ImportRequest) returns (ImportResponse){
option (google.api.http) = {
post: "/api/v1/meta/device/import"
body: "*"
};
}
http 路徑:
/api/v1/meta/device/import
權限要求: root(1) or device(202)
ImportRequest.text 是要導入的內容,格式爲每行一個設備,設備的 邏輯碼 物理碼 名稱 使用空格間隔,例如:
51010100000000000001 12345678901234567891 測試設備 1
51010100000000000002 12345678901234567892 測試設備 2
51010200000000000001 22345678901234567891 測試設備 x
接口使用 json 編碼所以還需要將內容轉爲 json,你可以使用這個在線工具進行字符串到 json 的轉換
ImportFile 是爲了服務 http 接口特化的 Import 接口,ImportFile 直接接受一個上傳檔案將其內容轉爲 ImportRequest.text 傳輸給 Import 接口進行導入
http 路徑:
/api/v1/meta/device/import_file
權限要求: root(1) or device(202)
curl -X POST -F "attachment=@YourUploadFile" https://your_server/api/v1/meta/device/import_file
ExportRequest 接受一個節點邏輯碼,將以所有以此爲邏輯碼前綴的設備導出爲下載檔案,這通常用與管理員備份設備,或者下載設備後進行大規模修改以便重新導入設備。其簽名如下:
rpc Export (ExportRequest) returns (google.api.HttpBody){
option (google.api.http) = {
get: "/api/v1/meta/device/export"
};
}
http 路徑:
/api/v1/meta/device/export
ID 函數用於返回指定 id 的設備信息,不論設備是否被停用只要存在就會返回。其簽名如下:
rpc ID (IDRequest) returns (IDResponse){
option (google.api.http) = {
get: "/api/v1/meta/device/by_id"
};
}
http 路徑:
/api/v1/meta/device/by_id
Find 函數用於查詢設備。其簽名如下:
rpc Find (FindRequest) returns (FindResponse){
option (google.api.http) = {
get: "/api/v1/meta/device"
};
}
http 路徑:
/api/v1/meta/device
SetPosition 函數用於設置設備的位置信息。其簽名如下:
rpc SetPosition (SetPositionRequest) returns (SetPositionResponse){
option (google.api.http) = {
post: "/api/v1/meta/device/attribute/position/{id}"
body: "*"
};
}
http 路徑:
/api/v1/meta/device/attribute/position/{id}
權限要求: root(1) or device(202)