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进入 upgrading 状态时开始计算。单位是秒。你可以使用 Search OTA Task 来查询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);
}
}