mac
2023-10-10 6e418105015e0ca91fe2240bb4a3584fd165ddd7
app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java
@@ -113,6 +113,224 @@
                switch (type) {
                    //添加逆变器到云端
                    case HDLUniMP.UNI_EVENT_REPLY_DEVICE_ADD: {
                        this.uniAddInverterDeviceToCloud(data, callback);
                    }
                    //删除云端逆变器
                    case HDLUniMP.UNI_EVENT_REPLY_DEVICE_DEL: {
                        this.uniDelInverterDevice(data, callback);
                    }
                    break;
                    //局域网搜索逆变器列表
                    case HDLUniMP.UNI_EVENT_REPLY_DEVICE_NET_LIST: {
                        this.uniSearchGateway(callback);
                    }
                    break;
                    //获取逆变器列表
                    case HDLUniMP.UNI_EVENT_REPLY_DEVICE_LIST: {
                        this.uniGetCurrentHomeLocalAndCloudGatewayList(callback);
                    }
                    break;
                    case HDLUniMP.UNI_EVENT_REPLY_DEVICE_MODBUS_SEND: {
                        sendModBus(data, callback);
                    }
                    break;
                    //获取oid列表
                    case HDLUniMP.UNI_EVENT_REPLY_DEVICE_OID: {
                        this.uniGetInverterOidList(data, callback);
                    }
                    break;
                    //逆变器时间读取
                    case HDLUniMP.UNI_EVENT_REPLY_DEVICE_TIME: {
                        this.uniGetInverterTime(data, callback);
                    }
                    break;
                    //逆变器时间编辑
                    case HDLUniMP.UNI_EVENT_REPLY_DEVICE_TIME_EDIT: {
                        this.uniEditInverterTime(data, callback);
                    }
                    break;
                    //逆变器上传数据到云端
                    case HDLUniMP.UNI_EVENT_REPLY_DEVICE_UPLOADING_DATA: {
                        this.uniUploadDataToCloud(data, callback);
                    }
                    break;
                    //逆变器清空住宅id
                    case HDLUniMP.UNI_EVENT_REPLY_DEVICE_CLEAR_DATA: {
                        this.uniClearInverterHomeId(data, callback);
                    }
                    break;
                }
            } else if (HDLUniMP.UNI_EVENT_REPLY_WIFI_MODEL.equals(event)) {
                WifiUtils wifiUtils = new WifiUtils(HDLApp.getInstance());
                //wifi模块
                switch (type) {
                    //获取wifi列表
                    case HDLUniMP.UNI_EVENT_REPLY_WIFI_LIST: {
                        if (callback != null) {
                            uniCallbackData(wifiUtils.getScanResult(), callback);
                        }
                    }
                    break;
                    //当前wifi详情
                    case HDLUniMP.UNI_EVENT_REPLY_WIFI_INFO: {
                        if (callback != null) {
                            uniCallbackData(wifiUtils.getCurrentConnectWifiInfo(), callback);
                        }
                    }
                    break;
                    //wifi连接
                    case HDLUniMP.UNI_EVENT_REPLY_WIFI_CONNECT: {
                    }
                    break;
                }
            }
            HdlLogLogic.print("uni===原生接收uni发来的数据", event + "\r\n" + data);
        } catch (Exception e) {
            HdlLogLogic.print("uni===原生接收uni发来的数据", e.getMessage());
        }
    }
    /**
     * 原生打开uni指定页面
     *
     * @param path       打开路径
     * @param jsonObject 附件数据(没有数据填null)
     */
    public void openUniMP(String path, JSONObject jsonObject) {
        JSONObject json = this.createdJsonDate(jsonObject, true);
        HdlLogLogic.print("uni===组装uni发送数据格式", json.toString());
        HDLUniMPSDKManager.getInstance().openUniMP(HDLUniMP.UNI_APP_ID, path, json, HdlUniLogic.this);
    }
    /**
     * 原生【主动】向小程序发送通知事件
     * 注意:需要提前小程序在运行才可成功
     *
     * @param topic            主题大类(如:UNI_EVENT_REPLY_HOME_MODEL)
     * @param callBackBaseBean ——
     */
    public void sendUni(String topic, HDLUniMP.UniCallBackBaseBean callBackBaseBean) {
        try {
            HDLUniMPSDKManager.getInstance().sendUniMPEvent(HDLUniMP.UNI_APP_ID, topic, getJSONObject(callBackBaseBean));
        } catch (Exception e) {
            HdlLogLogic.print("uni===原生主动向小程序发送通知事件", e.getMessage());
        }
    }
    /**
     * 检测是否当前页面注册的callback,是的话则移除
     */
    public void checkRemoveOtherUniMPEventCallBack() {
        HDLUniMPSDKManager.getInstance().checkRemoveOtherUniMPEventCallBack(this);
    }
    //endregion
    //region ******uni逻辑方法******
    /**
     * 逆变器清空住宅id
     *
     * @param data     uni数据
     * @param callback uni回调
     */
    private void uniClearInverterHomeId(Object data, DCUniMPJSCallback callback) {
        String mac = getKeyValue("mac", getKeyValue("data", data));
        HdlDeviceLogic.getInstance().clearInverterHomeId(mac, new LinkCallBack<Boolean>() {
            @Override
            public void onSuccess(Boolean obj) {
                uniCallbackData(null, callback);
            }
            @Override
            public void onError(HDLLinkException e) {
                uniCallbackData(null, -100, e.getMessage(), callback);
            }
        });
    }
    /**
     * 逆变器上传数据到云端
     *
     * @param data     uni数据
     * @param callback uni回调
     */
    private void uniUploadDataToCloud(Object data, DCUniMPJSCallback callback) {
        String mac = getKeyValue("mac", getKeyValue("data", data));
        HdlDeviceLogic.getInstance().uploadDataToCloud(mac, null);
    }
    /**
     * 编辑逆变器时间
     *
     * @param data     uni数据
     * @param callback uni回调
     */
    private void uniEditInverterTime(Object data, DCUniMPJSCallback callback) {
        String mac = getKeyValue("mac", getKeyValue("data", data));
        HdlDeviceLogic.getInstance().editGatewayTime(mac, new JsonObject(), null);
    }
    /**
     * 获取逆变器时间
     *
     * @param data     uni数据
     * @param callback uni回调
     */
    private void uniGetInverterTime(Object data, DCUniMPJSCallback callback) {
        String mac = getKeyValue("mac", getKeyValue("data", data));
        HdlDeviceLogic.getInstance().getGatewayTime(mac, new LinkCallBack<Boolean>() {
            @Override
            public void onSuccess(Boolean obj) {
            }
            @Override
            public void onError(HDLLinkException e) {
            }
        });
    }
    /**
     * 获取oid列表
     *
     * @param data     uni数据
     * @param callback uni回调
     */
    private void uniGetInverterOidList(Object data, DCUniMPJSCallback callback) {
        String mac = getKeyValue("mac", getKeyValue("data", data));
        HdlDeviceLogic.getInstance().getInverterOidList(mac, new LinkCallBack<List<OidBean>>() {
            @Override
            public void onSuccess(List<OidBean> list) {
                if (callback != null) {
                    uniCallbackData(list, callback);
                }
            }
            @Override
            public void onError(HDLLinkException e) {
                uniCallbackData(null, -2, e.getMsg(), callback);
            }
        });
    }
    /**
     * 逆变器添加到云端上
     *
     * @param data     uni数据
     * @param callback uni回调
     */
    private void uniAddInverterDeviceToCloud(Object data, DCUniMPJSCallback callback) {
                        String mac = getKeyValue("mac", getKeyValue("data", data));
                        HdlDeviceLogic.getInstance().setGatewayRemoteParam(mac, new LinkCallBack<Boolean>() {
                            @Override
@@ -155,12 +373,36 @@
                                uniCallbackData(null, -100, e.getMessage(), callback);
                            }
                        });
                    }
                    break;
                    //局域网搜索逆变器列表
                    case HDLUniMP.UNI_EVENT_REPLY_DEVICE_NET_LIST: {
    /**
     * 逆变器添加到云端上
     *
     * @param data     uni数据
     * @param callback uni回调
     */
    private void uniDelInverterDevice(Object data, DCUniMPJSCallback callback) {
        String deviceId = getKeyValue("deviceId", getKeyValue("data", data));
        HdlDeviceLogic.getInstance().delInverterDevice(deviceId, new CloudCallBeak<Boolean>() {
            @Override
            public void onSuccess(Boolean obj) {
                uniCallbackData(null, callback);
            }
            @Override
            public void onFailure(HDLException e) {
                uniCallbackData(null, -100, e.getMessage(), callback);
            }
        });
    }
    /**
     * 局域网搜索逆变器列表
     *
     * @param callback uni回调
     */
    private void uniSearchGateway(DCUniMPJSCallback callback) {
                        HdlDeviceLogic.getInstance().searchGateway(new GatewayCallBack() {
                            @Override
                            public void onSuccess(List<GatewayBean> gatewayBeanList) {
@@ -173,10 +415,15 @@
                                uniCallbackData(null, e.getCode(), "", callback);
                            }
                        });
                    }
                    break;
                    //获取逆变器列表
                    case HDLUniMP.UNI_EVENT_REPLY_DEVICE_LIST: {
    /**
     * 获取逆变器列表
     *
     * @param callback uni回调
     */
    private void uniGetCurrentHomeLocalAndCloudGatewayList(DCUniMPJSCallback callback) {
                        HdlDeviceLogic.getInstance().getCurrentHomeLocalAndCloudGatewayList(new CloudCallBeak<List<GatewayBean>>() {
                            @Override
                            public void onSuccess(List<GatewayBean> list) {
@@ -197,89 +444,9 @@
                                }
                            }
                        });
                    }
                    break;
                    case HDLUniMP.UNI_EVENT_REPLY_DEVICE_MODBUS_SEND: {
                        sendModBus(data, callback);
                    }
                    break;
                    //获取oid列表
                    case HDLUniMP.UNI_EVENT_REPLY_DEVICE_OID: {
                        String mac = getKeyValue("mac", getKeyValue("data", data));
                        HdlDeviceLogic.getInstance().getGatewayOidList(mac, new LinkCallBack<List<OidBean>>() {
                            @Override
                            public void onSuccess(List<OidBean> list) {
                                if (callback != null) {
                                    uniCallbackData(list, callback);
                                }
                            }
                            @Override
                            public void onError(HDLLinkException e) {
                                uniCallbackData(null, -2, e.getMsg(), callback);
                            }
                        });
                    }
                    break;
                    //逆变器时间读取
                    case HDLUniMP.UNI_EVENT_REPLY_DEVICE_TIME: {
                        String mac = getKeyValue("mac", getKeyValue("data", data));
                        HdlDeviceLogic.getInstance().getGatewayTime(mac, new LinkCallBack<Boolean>() {
                            @Override
                            public void onSuccess(Boolean obj) {
                            }
                            @Override
                            public void onError(HDLLinkException e) {
                            }
                        });
                    }
                    break;
                    //逆变器时间编辑
                    case HDLUniMP.UNI_EVENT_REPLY_DEVICE_TIME_EDIT: {
                        String mac = getKeyValue("mac", getKeyValue("data", data));
                        HdlDeviceLogic.getInstance().editGatewayTime(mac, new JsonObject(), null);
                    }
                    break;
                }
            } else if (HDLUniMP.UNI_EVENT_REPLY_WIFI_MODEL.equals(event)) {
                WifiUtils wifiUtils = new WifiUtils(HDLApp.getInstance());
                //wifi模块
                switch (type) {
                    //获取wifi列表
                    case HDLUniMP.UNI_EVENT_REPLY_WIFI_LIST: {
                        if (callback != null) {
                            uniCallbackData(wifiUtils.getScanResult(), callback);
                        }
                    }
                    break;
                    //当前wifi详情
                    case HDLUniMP.UNI_EVENT_REPLY_WIFI_INFO: {
                        if (callback != null) {
                            uniCallbackData(wifiUtils.getCurrentConnectWifiInfo(), callback);
                        }
                    }
                    break;
                    //wifi连接
                    case HDLUniMP.UNI_EVENT_REPLY_WIFI_CONNECT: {
                    }
                    break;
                }
            }
            HdlLogLogic.print("uni===原生接收uni发来的数据", event + "\r\n" + data);
        } catch (Exception e) {
            HdlLogLogic.print("uni===原生接收uni发来的数据", e.getMessage());
        }
    }
    /**
     * 发送modbus协议数据
@@ -321,42 +488,7 @@
        });
    }
    /**
     * 原生打开uni指定页面
     *
     * @param path       打开路径
     * @param jsonObject 附件数据(没有数据填null)
     */
    public void openUniMP(String path, JSONObject jsonObject) {
        JSONObject json = this.createdJsonDate(jsonObject, true);
        HdlLogLogic.print("uni===组装uni发送数据格式", json.toString());
        HDLUniMPSDKManager.getInstance().openUniMP(HDLUniMP.UNI_APP_ID, path, json, HdlUniLogic.this);
    }
    /**
     * 原生【主动】向小程序发送通知事件
     * 注意:需要提前小程序在运行才可成功
     *
     * @param topic            主题大类(如:UNI_EVENT_REPLY_HOME_MODEL)
     * @param callBackBaseBean ——
     */
    public void sendUni(String topic, HDLUniMP.UniCallBackBaseBean callBackBaseBean) {
        try {
            HDLUniMPSDKManager.getInstance().sendUniMPEvent(HDLUniMP.UNI_APP_ID, topic, getJSONObject(callBackBaseBean));
        } catch (Exception e) {
            HdlLogLogic.print("uni===原生主动向小程序发送通知事件", e.getMessage());
        }
    }
    /**
     * 检测是否当前页面注册的callback,是的话则移除
     */
    public void checkRemoveOtherUniMPEventCallBack() {
        HDLUniMPSDKManager.getInstance().checkRemoveOtherUniMPEventCallBack(this);
    }
    //endregion
    //region ******一般方法******