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

任务类型。

  • verify : 固件验证job
  • upgrade : 固件升级job
enableUpgradeRequest Boolean 是否允许设备主动请求升级。
upgradePolicy String

升级策略。

  • snapshot : 快照式升级
  • incremental : 增量式升级

其含义参见 升级策略>>

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

任务状态。

  • started :已启动
  • stopped :已停止
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);
    }
}