hxb
2024-10-24 d723fee177238df0dbab80eb788876ebd154927d
HDLLinkPMSdk/src/main/java/com/hdl/linkpm/sdk/ota/HDLLinkPMOta.java
New file
@@ -0,0 +1,176 @@
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<DownloadUrlBean> callBack) {
        HDLPMOtaController.getInstance().getNativeDeviceFirmwareDownloadUrl(firmwareVersionId, callBack);
    }
    /**
     * Link设备驱动列表获取
     *
     * @param homeId   住宅id
     * @param oid      网关设备oid
     * @param callBack
     * @return
     */
    public void getGatewayDrivers(String homeId, String oid, IResponseCallBack<List<GatewayDriverBean>> callBack) {
        HDLPMOtaController.getInstance().getGatewayDrivers(homeId, oid, callBack);
    }
    /**
     * Link网关驱动->获取存储在云端的驱动分页列表
     *
     * @param driveCode   驱动编号或驱动名称
     * @param osImageId      驱动类型id
     * @param callBack
     * @return
     */
    public void getCloudGatewayDrivers(String driveCode, String osImageId, IResponseCallBack<CloudGatewayDriversBean> 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<List<FirmwareBean>> callBack) {
        HDLPMOtaController.getInstance().getACIARCCFirmware(json, callBack);
    }
    /**
     * 获取IARCC三方固件分类
     * @param json 请求数据
     * @param callBack 回调
     * @return
     */
    public void getACIARCCFirmwareList(String json, IResponseCallBack<List<FirmwareBean>> callBack) {
        HDLPMOtaController.getInstance().getACIARCCFirmwareList(json, callBack);
    }
    /**
     * 下载IARCC固件
     * @param requestUrl 请求地址
     * @param callBack 回调
     * @return
     */
    public void downloadCloudACIARCCFirmware(String requestUrl, IResponseCallBack<ResponseBody> callBack) {
        HDLPMOtaController.getInstance().downloadCloudACIARCCFirmware(requestUrl, callBack);
    }
    /**
     * LINK设备获取驱动升级包下载地址
     *
     * @param driverVersionId 驱动版本Id
     * @return
     */
    public void getLinkDeviceDriverDownloadUrl(String driverVersionId, IResponseCallBack<DownloadUrlBean> callBack) {
        HDLPMOtaController.getInstance().getLinkDeviceDriverDownloadUrl(driverVersionId, callBack);
    }
    /**
     * 获取设备固件列表获取
     *
     * @param homeId      住宅id
     * @param deviceOidId oid云端id
     * @param callBack
     * @return
     */
    public void getDeviceFirmwares(String homeId, String deviceOidId, IResponseCallBack<List<DeviceFirmwareBean>> callBack) {
        HDLPMOtaController.getInstance().getDeviceFirmwares(homeId, deviceOidId, callBack);
    }
    /**
     /**
     * 获取设备固件列表获取->获取存储在云端的固件分页列表
     *
     * @param hardwareModel      硬件型号
     * @param osImageId 系统镜像id
     * @param callBack
     * @return
     */
    public void getCloudDeviceFirmwares(String hardwareModel, String osImageId, IResponseCallBack<List<CloudDeviceFirmwaresBean>> 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<DownloadUrlBean> callBack) {
        HDLPMOtaController.getInstance().getLinkDeviceFirmwareDownloadUrl(firmwareVersionId, callBack);
    }
}