mac
2024-01-02 d1ebb94e1a17b7c25d4fcf73d85345d92cc86b5c
app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java
@@ -18,6 +18,7 @@
import com.hdl.photovoltaic.HDLApp;
import com.hdl.photovoltaic.R;
import com.hdl.photovoltaic.bean.ModBusBean;
import com.hdl.photovoltaic.config.AppConfigManage;
import com.hdl.photovoltaic.config.UserConfigManage;
import com.hdl.photovoltaic.internet.HttpServer.MyNanoHttpServer;
import com.hdl.photovoltaic.listener.CloudCallBeak;
@@ -155,7 +156,7 @@
                    break;
                    //获取逆变器列表
                    case HDLUniMP.UNI_EVENT_REPLY_DEVICE_LIST: {
                        this.uniGetCurrentHomeLocalAndCloudGatewayList(callback);
                        this.uniGetCurrentHomeLocalAndCloudGatewayList(data, callback);
                    }
                    break;
                    //modBus协议专用
@@ -351,7 +352,7 @@
        try {
            HDLUniMPSDKManager.getInstance().sendUniMPEvent(HDLUniMP.UNI_APP_ID, topic, getJSONObject(callBackBaseBean));
        } catch (Exception e) {
            HdlLogLogic.print("uni===原生主动向小程序发送通知事件===" + e.getMessage(), false);
            HdlLogLogic.print("uni--->原生主动向小程序发送通知事件--->" + e.getMessage(), false);
        }
    }
@@ -509,6 +510,7 @@
     * 向云端发起【设备固件】升级OTA指令
     */
    private void uniUpgradeDeviceFirmware(Object data, DCUniMPJSCallback callback) {
        String homeId = UserConfigManage.getInstance().getHomeId();
        String deviceMac = getKeyValue("mac", getKeyValue("data", data));//逆变器设备mac(查找socket)
        String deviceOidId = getKeyValue("deviceOidId", getKeyValue("data", data));//云端上设备id
        String oid = getKeyValue("oid", getKeyValue("data", data));//升级固件的oid
@@ -564,7 +566,7 @@
                } else {
                    HdlLogLogic.print("在线升级--->", true);
                    //远程升级需要检测在逆变器有没有连接上云
                    HdlDeviceLogic.getInstance().checkInverterConnectedCloud(deviceMac, new CloudCallBeak<CloudInverterDeviceBean>() {
                    HdlDeviceLogic.getInstance().checkInverterConnectedCloud(homeId, deviceMac, new CloudCallBeak<CloudInverterDeviceBean>() {
                        @Override
                        public void onSuccess(CloudInverterDeviceBean cloudInverterDeviceBean) {
                            //1:连接中,2:故障,3:运行,4:离线,6:逆变器连不上云(自定义)
@@ -603,7 +605,7 @@
            public void onFailure(HDLException e) {
                HdlLogLogic.print("在线升级--->", true);
                //远程升级需要检测在逆变器有没有连接上云
                HdlDeviceLogic.getInstance().checkInverterConnectedCloud(deviceMac, new CloudCallBeak<CloudInverterDeviceBean>() {
                HdlDeviceLogic.getInstance().checkInverterConnectedCloud(homeId, deviceMac, new CloudCallBeak<CloudInverterDeviceBean>() {
                    @Override
                    public void onSuccess(CloudInverterDeviceBean cloudInverterDeviceBean) {
                        //1:连接中,2:故障,3:运行,4:离线,6:逆变器连不上云(自定义)
@@ -766,6 +768,7 @@
     */
    private void uniUpgradeGatewayDriver(Object data, DCUniMPJSCallback callback) {
        String homeId = UserConfigManage.getInstance().getHomeId();
        String deviceMac = getKeyValue("mac", getKeyValue("data", data));//逆变器设备mac(查找socket)
        String deviceOid = getKeyValue("oid", getKeyValue("data", data));//逆变器设备oid
        String driverVersionId = getKeyValue("driverVersionId", getKeyValue("data", data));//驱动版本id
@@ -819,7 +822,7 @@
                } else {
                    HdlLogLogic.print("在线升级--->", true);
                    //远程升级需要【检测】在逆变器有没有连接上云
                    HdlDeviceLogic.getInstance().checkInverterConnectedCloud(deviceMac, new CloudCallBeak<CloudInverterDeviceBean>() {
                    HdlDeviceLogic.getInstance().checkInverterConnectedCloud(homeId, deviceMac, new CloudCallBeak<CloudInverterDeviceBean>() {
                        @Override
                        public void onSuccess(CloudInverterDeviceBean cloudInverterDeviceBean) {
                            //1:连接中,2:故障,3:运行,4:离线,6:逆变器连不上云(自定义)
@@ -858,7 +861,7 @@
            public void onFailure(HDLException e) {
                HdlLogLogic.print("在线升级--->", true);
                //远程升级需要【检测】在逆变器有没有连接上云
                HdlDeviceLogic.getInstance().checkInverterConnectedCloud(deviceMac, new CloudCallBeak<CloudInverterDeviceBean>() {
                HdlDeviceLogic.getInstance().checkInverterConnectedCloud(homeId, deviceMac, new CloudCallBeak<CloudInverterDeviceBean>() {
                    @Override
                    public void onSuccess(CloudInverterDeviceBean cloudInverterDeviceBean) {
                        //1:连接中,2:故障,3:运行,4:离线,6:逆变器连不上云(自定义)
@@ -994,7 +997,7 @@
     */
    private void uniUploadDataToCloud(Object data, DCUniMPJSCallback callback) {
        String mac = getKeyValue("mac", getKeyValue("data", data));
        HdlDeviceLogic.getInstance().uploadDataToCloud(mac, null);
        HdlDeviceLogic.getInstance().uploadDataToCloud(UserConfigManage.getInstance().getHomeId(), mac, null);
    }
    /**
@@ -1064,6 +1067,7 @@
                uniCallbackData(null, e.getCode(), e.getMsg(), callback);
            }
        });
    }
    /**
@@ -1074,7 +1078,8 @@
     */
    private void uniAddInverterDeviceToCloud(Object data, DCUniMPJSCallback callback) {
        String mac = getKeyValue("mac", getKeyValue("data", data));
        HdlDeviceLogic.getInstance().setGatewayRemoteParam(mac, new LinkCallBack<Boolean>() {
        String homeId = UserConfigManage.getInstance().getHomeId();
        HdlDeviceLogic.getInstance().setGatewayRemoteParam(homeId, mac, new LinkCallBack<Boolean>() {
            @Override
            public void onSuccess(Boolean obj) {
                HdlDeviceLogic.getInstance().editGatewayParam(mac, new LinkCallBack<Boolean>() {
@@ -1083,9 +1088,10 @@
                        GatewayBean gatewayBean = HDLLinkLocalGateway.getInstance().getLocalGateway(mac);
                        if (gatewayBean == null) {
                            uniCallbackData(null, -100, "本地找不到网关", callback);
                            return;
                        }
                        HdlDeviceLogic.getInstance().addInverterDeviceToCloud(mac, gatewayBean.getGatewayType(), gatewayBean.getSid(), gatewayBean.getOid(), gatewayBean.getDevice_name(), new CloudCallBeak<Boolean>() {
                        HdlDeviceLogic.getInstance().addInverterDeviceToCloud(homeId, mac, gatewayBean.getGatewayType(), gatewayBean.getSid(), gatewayBean.getOid(), gatewayBean.getDevice_name(), new CloudCallBeak<Boolean>() {
                            @Override
                            public void onSuccess(Boolean obj) {
                                uniCallbackData(null, callback);
@@ -1120,7 +1126,8 @@
     */
    private void uniDelInverterDevice(Object data, DCUniMPJSCallback callback) {
        String deviceId = getKeyValue("deviceId", getKeyValue("data", data));
        HdlDeviceLogic.getInstance().delInverterDevice(deviceId, new CloudCallBeak<Boolean>() {
        String homeId = UserConfigManage.getInstance().getHomeId();
        HdlDeviceLogic.getInstance().delInverterDevice(homeId, deviceId, new CloudCallBeak<Boolean>() {
            @Override
            public void onSuccess(Boolean obj) {
                uniCallbackData(null, callback);
@@ -1160,25 +1167,27 @@
     *
     * @param callback uni回调
     */
    private void uniGetCurrentHomeLocalAndCloudGatewayList(DCUniMPJSCallback callback) {
        HdlDeviceLogic.getInstance().getCurrentHomeLocalAndCloudGatewayList(UserConfigManage.getInstance().getHomeId(), new CloudCallBeak<List<GatewayBean>>() {
    private void uniGetCurrentHomeLocalAndCloudGatewayList(Object data, DCUniMPJSCallback callback) {
        String homeId = getKeyValue("homeId", getKeyValue("data", data));
        HdlDeviceLogic.getInstance().getCurrentHomeLocalAndCloudGatewayList(homeId, new CloudCallBeak<List<GatewayBean>>() {
            @Override
            public void onSuccess(List<GatewayBean> list) {
                GatewayBean gatewayBean = HdlDeviceLogic.getInstance().queryCurrentHomeMainGateway(list, homeId);
                if (gatewayBean != null) {
                    //进来住宅详情都要上传一次oid列表到云端;
                    HdlDeviceLogic.getInstance().uploadDataToCloud(homeId, gatewayBean.getDevice_mac(), null);
                }
                //EventBus事件分发,进入住宅开始订阅主题
                BaseEventBus baseEventBus = new BaseEventBus();
                baseEventBus.setType(HDLUniMP.UNI_EVENT_REPLY_DEVICE_LIST);
                baseEventBus.setData(list);
                EventBus.getDefault().post(baseEventBus);
                if (callback != null) {
                    uniCallbackData(list, callback);
                    //EventBus事件分发,进入住宅开始订阅主题
                    BaseEventBus baseEventBus = new BaseEventBus();
                    baseEventBus.setType(HDLUniMP.UNI_EVENT_REPLY_DEVICE_LIST);
                    baseEventBus.setData(list);
                    EventBus.getDefault().post(baseEventBus);
                    GatewayBean gatewayBean = HdlDeviceLogic.getInstance().queryCurrentHomeMainGateway(list);
                    if (gatewayBean != null) {
                        //进来住宅详情都要上传一次oid列表到云端;
                        HdlDeviceLogic.getInstance().uploadDataToCloud(gatewayBean.getDevice_mac(), null);
                    }
                }
            }
            @Override
@@ -1258,13 +1267,17 @@
                data = new JSONObject();
            }
            if (isTokenAndRefreshToken) {
                //小程序那里有自己的请求方法,需要这些数据
                data.put("token", UserConfigManage.getInstance().getToken());
                data.put("refreshToken", UserConfigManage.getInstance().getRefreshToken());
                data.put("serverAddress", AppConfigManage.getUserRegionUrl());
                data.put("appKey", AppConfigManage.getAppKey());
                data.put("appSecret", AppConfigManage.getAppSecret());
            }
            uniCallBackBaseBean.setData(data);
            return getJSONObject(uniCallBackBaseBean);
        } catch (Exception e) {
            HdlLogLogic.print("uni===组装uni发送数据格式===" + e.getMessage(), false);
            HdlLogLogic.print("uni--->组装uni发送数据格式有异常--->" + e.getMessage(), false);
        }
        return new JSONObject();
    }
@@ -1288,6 +1301,7 @@
            if (callback != null) {
                callback.invoke(getJSONObject(uniCallBackBaseBean));
//                callback.invoke(uniCallBackBaseBean);
                HdlLogLogic.print("uni--->组装uni发送数据格式--->" + new Gson().toJson(uniCallBackBaseBean), false);
            }
        } catch (Exception e) {