Get OTA Job¶
查询一个固件OTA升级job详情。
操作权限¶
需授权的资源 |
所需操作权限 |
---|---|
设备管理 |
Read |
请求格式¶
GET https://{apigw-address}/connect-service/v2.1/ota-jobs?action=get
请求参数(URI)¶
名称 |
位置(Path/Query) |
必需/可选 |
数据类型 |
描述 |
---|---|---|---|---|
orgId |
Query |
必需 |
String |
资产所属的组织ID。如何获取orgId信息>> |
jobId |
Query |
必需 |
String |
需要获取详情的OTA job的ID。 |
响应参数¶
名称 |
数据类型 |
描述 |
---|---|---|
data |
JobInfo结构体 |
OTA job的详情。JobInfo结构体的结构参见 JobInfo结构体>> |
JobInfo结构体 ¶
名称 |
数据类型 |
描述 |
---|---|---|
orgId |
String |
组织ID。 |
productKey |
String |
设备的Product key。 |
jobId |
String |
OTA Job ID。 |
name |
StringI18n |
Job名称。 |
firmwareId |
String |
固件ID。 |
type |
String |
任务类型。
|
enableUpgradeRequest |
Boolean |
是否允许设备主动请求升级。 |
upgradePolicy |
String |
升级策略。
其含义参见 升级策略>> |
upgradeScope |
UpgradeScope结构体 |
待升级的设备及其固件版本号等信息,待升级的设备及版本号等信息,其结构见 UpgradeScope结构体>> |
upgradeTimeout |
Long |
升级超时时间,当OTA task进入 |
retryPolicy |
RetryPolicy结构体 |
失败OTA任务重试的策略,其结构见 RetryPolicy结构体>> |
schedulePolicy |
SchedulePolicy结构体 |
OTA任务调度的策略,其结构见 SchedulePolicy结构体>> |
maximumConcurrency |
Integer |
升级任务最大并发量。 |
status |
String |
任务状态。
|
createTime |
Long |
任务的创建时间。 |
错误码¶
代码 |
错误信息 |
描述 |
---|---|---|
24404 |
Job not found |
找不到OTA job。 |
示例¶
请求示例¶
url: https://{apigw-address}/connect-service/v2.1/ota-jobs?action=get&orgId=yourOrgId&jobId=yourJobId
method: GET
返回示例¶
{
"code":0,
"msg":"OK",
"requestId":"42fc4dcd-636b-48ac-a69b-4d2f95d0c3de",
"data":{
"orgId":"o15475466766371",
"productKey":"BXwU4kMk",
"jobId":"5ed758ca49f032b4663063aa",
"name":{
"defaultValue":"name",
"i18nValue":{
}
},
"firmwareId":"5ed0dd4a646542001b3d113f",
"type":"upgrade",
"enableUpgradeRequest":true,
"upgradePolicy":null,
"upgradeScope":{
"type":"total",
"versionNumbers":[
"1.0"
],
"deviceKeys":null,
"attributes":null,
"tags":null,
"assetTrees":null
},
"startSchedule":0,
"endSchedule":86399,
"status":"started",
"createTime":1591171274788,
"startAfterCreate":true
}
}
Java SDK调用示例¶
package com.envisioniot.enos.connect_service.ota.job;
import com.envision.apim.poseidon.config.PConfig;
import com.envision.apim.poseidon.core.Poseidon;
import com.envisioniot.enos.connect_service.v2_1.ota.job.GetJobRequest;
import com.envisioniot.enos.connect_service.v2_1.ota.job.GetJobResponse;
public class GetJob {
public static void main(String[] args) {
final String appKey = "yourAppKey";
final String appSecret = "yourAppSecret";
String serverUrl = "yourServerUrl";
String orgId = "yourOrgId";
String jobId = "yourJobId";
GetJobRequest request = new GetJobRequest();
request.setOrgId(orgId);
request.setJobId(jobId);
GetJobResponse response = Poseidon
.config(PConfig.init().appKey(appKey).appSecret(appSecret).debug())
.url(serverUrl)
.getResponse(request, GetJobResponse.class);
}
}