設備管理

模塊列表

device

logic 邏輯碼

每個設備都有一個與之綁定且唯一的邏輯碼既 logic

logic 長度爲20,其字符內容只能是 0 到 9 的數字

logic 體現了設備掛接的區域,例如 成都的 logic 如果爲 51,錦江區的 logic 是 5101,此時有個設備邏輯碼爲 51010000000000000001,則此設備同時掛接在成都和錦江區下面

每個設備還有一個唯一的物理碼作爲全球唯一的識別指紋,既 physical

physical 長度爲 20,其字符內容只能是 0 到 9 的數字

12345000322410140001

12345 00032 241014  0001

上文是一個物理碼例子,每個字段依次含義如下

同一批次的產品通常只有產品號不一樣,並且它們通常是連續遞增的

device

此模塊提供了設備管理相關功能

函數列表

Add

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

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

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

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

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

Export

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 函數用於返回指定 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

Find 函數用於查詢設備。其簽名如下:

rpc Find (FindRequest) returns (FindResponse){
    option (google.api.http) = {
        get: "/api/v1/meta/device"
    };
}

http 路徑:

/api/v1/meta/device

SetPosition

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)