package com.hdl.linkpm.sdk.ota; import com.google.gson.JsonObject; import com.hdl.linkpm.sdk.core.callback.IDefaultCallBack; import com.hdl.linkpm.sdk.core.callback.IResponseCallBack; import com.hdl.linkpm.sdk.ota.bean.CloudDeviceFirmwaresBean; import com.hdl.linkpm.sdk.ota.bean.CloudGatewayDriversBean; import com.hdl.linkpm.sdk.ota.bean.DeviceFirmwareBean; import com.hdl.linkpm.sdk.ota.bean.DownloadUrlBean; import com.hdl.linkpm.sdk.ota.bean.FirmwareBean; import com.hdl.linkpm.sdk.ota.bean.GatewayDriverBean; import com.hdl.linkpm.sdk.ota.controller.HDLPMOtaController; import java.util.List; import io.reactivex.rxjava3.disposables.Disposable; import okhttp3.ResponseBody; /** * Created by jlchen on 12/17/21. * OTA 网关、设备固件查询和下载相关管理 */ public class HDLLinkPMOta { //instance private volatile static HDLLinkPMOta instance; /** * getInstance * * @return HDLLinkPMOta */ public static synchronized HDLLinkPMOta getInstance() { if (instance == null) { synchronized (HDLLinkPMOta.class) { if (instance == null) { instance = new HDLLinkPMOta(); } } } return instance; } /** * 原生设备获取固件升级包下载地址 * * @param firmwareVersionId 固件版本Id * @return */ public void getNativeDeviceFirmwareDownloadUrl(String firmwareVersionId, IResponseCallBack callBack) { HDLPMOtaController.getInstance().getNativeDeviceFirmwareDownloadUrl(firmwareVersionId, callBack); } /** * Link设备驱动列表获取 * * @param homeId 住宅id * @param oid 网关设备oid * @param callBack * @return */ public void getGatewayDrivers(String homeId, String oid, IResponseCallBack> callBack) { HDLPMOtaController.getInstance().getGatewayDrivers(homeId, oid, callBack); } /** * Link网关驱动->获取存储在云端的驱动分页列表 * * @param driveCode 驱动编号或驱动名称 * @param osImageId 驱动类型id * @param callBack * @return */ public void getCloudGatewayDrivers(String driveCode, String osImageId, IResponseCallBack callBack) { HDLPMOtaController.getInstance().getCloudGatewayDrivers(driveCode, osImageId, callBack); } /** * Link网关驱动升级OTA命令下发 * * @param homeId 住宅id * @param oid 网关设备oid * @param driverVersionId 驱动版本id * @param callBack * @return */ public void upgradeGatewayDriver(String homeId, String oid, String driverVersionId, IDefaultCallBack callBack) { HDLPMOtaController.getInstance().upgradeGatewayDriver(homeId, oid, driverVersionId, callBack); } /** * 获取IARCC三方固件分页 * @param json 请求数据 * @param callBack 回调 * @return */ public void getACIARCCFirmware(String json, IResponseCallBack> callBack) { HDLPMOtaController.getInstance().getACIARCCFirmware(json, callBack); } /** * 获取IARCC三方固件分类 * @param json 请求数据 * @param callBack 回调 * @return */ public void getACIARCCFirmwareList(String json, IResponseCallBack> callBack) { HDLPMOtaController.getInstance().getACIARCCFirmwareList(json, callBack); } /** * 下载IARCC固件 * @param requestUrl 请求地址 * @param callBack 回调 * @return */ public void downloadCloudACIARCCFirmware(String requestUrl, IResponseCallBack callBack) { HDLPMOtaController.getInstance().downloadCloudACIARCCFirmware(requestUrl, callBack); } /** * LINK设备获取驱动升级包下载地址 * * @param driverVersionId 驱动版本Id * @return */ public void getLinkDeviceDriverDownloadUrl(String driverVersionId, IResponseCallBack callBack) { HDLPMOtaController.getInstance().getLinkDeviceDriverDownloadUrl(driverVersionId, callBack); } /** * 获取设备固件列表获取 * * @param homeId 住宅id * @param deviceOidId oid云端id * @param callBack * @return */ public void getDeviceFirmwares(String homeId, String deviceOidId, IResponseCallBack> callBack) { HDLPMOtaController.getInstance().getDeviceFirmwares(homeId, deviceOidId, callBack); } /** /** * 获取设备固件列表获取->获取存储在云端的固件分页列表 * * @param hardwareModel 硬件型号 * @param osImageId 系统镜像id * @param callBack * @return */ public void getCloudDeviceFirmwares(String hardwareModel, String osImageId, IResponseCallBack> callBack) { HDLPMOtaController.getInstance().getCloudDeviceFirmwares(hardwareModel, osImageId, callBack); } /** * Link设备固件升级OTA命令下发 * * @param homeId 住宅id * @param deviceOidId 设备id * @param firmwareVersionId 固件版本id * @param callBack * @return */ public void upgradeDeviceFirmware(String homeId, String deviceOidId, String firmwareVersionId, IDefaultCallBack callBack) { HDLPMOtaController.getInstance().upgradeDeviceFirmware(homeId, deviceOidId, firmwareVersionId, callBack); } /** * LINK设备获取固件升级包下载地址 * * @param firmwareVersionId 固件版本Id * @return */ public void getLinkDeviceFirmwareDownloadUrl(String firmwareVersionId, IResponseCallBack callBack) { HDLPMOtaController.getInstance().getLinkDeviceFirmwareDownloadUrl(firmwareVersionId, callBack); } }