From 05581cb7328000de65c5e8c1ef12b366b44b11b1 Mon Sep 17 00:00:00 2001 From: mac <user@users-MacBook-Pro.local> Date: 星期二, 02 四月 2024 13:47:41 +0800 Subject: [PATCH] 2024年04月02日13:47:34 --- app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java | 130 ++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 127 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java b/app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java index f9d9993..7e15422 100644 --- a/app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java +++ b/app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java @@ -18,6 +18,8 @@ import com.alibaba.fastjson.JSON; import com.google.gson.Gson; +import com.google.gson.JsonArray; +import com.google.gson.JsonObject; import com.google.gson.reflect.TypeToken; import com.hdl.linkpm.sdk.core.exception.HDLException; import com.hdl.linkpm.sdk.device.bean.DeviceOidInfoBean; @@ -25,6 +27,7 @@ import com.hdl.linkpm.sdk.ota.bean.CloudGatewayDriversBean; import com.hdl.linkpm.sdk.ota.bean.DeviceFirmwareBean; import com.hdl.linkpm.sdk.ota.bean.GatewayDriverBean; +import com.hdl.linkpm.sdk.user.HDLLinkPMUser; import com.hdl.linkpm.sdk.utils.HDLMD5Utils; import com.hdl.photovoltaic.HDLApp; import com.hdl.photovoltaic.R; @@ -32,12 +35,15 @@ import com.hdl.photovoltaic.config.AppConfigManage; import com.hdl.photovoltaic.config.UserConfigManage; import com.hdl.photovoltaic.internet.HttpServer.MyNanoHttpServer; +import com.hdl.photovoltaic.internet.TcpClient; +import com.hdl.photovoltaic.internet.api.TopicApi; import com.hdl.photovoltaic.listener.CloudCallBeak; import com.hdl.photovoltaic.listener.LinkCallBack; import com.hdl.photovoltaic.ui.bean.CUserInfo; import com.hdl.photovoltaic.ui.bean.CloudInverterDeviceBean; import com.hdl.photovoltaic.ui.bean.DeviceTimeBean; import com.hdl.photovoltaic.ui.bean.Geolocation; +import com.hdl.photovoltaic.ui.bean.LinkBean; import com.hdl.photovoltaic.ui.bean.OidBean; import com.hdl.photovoltaic.ui.me.AsRegardsActivity; import com.hdl.photovoltaic.ui.me.PersonalDataActivity; @@ -53,9 +59,12 @@ import com.hdl.sdk.link.common.exception.HDLLinkException; import com.hdl.sdk.link.core.bean.eventbus.BaseEventBus; import com.hdl.sdk.link.core.bean.gateway.GatewayBean; +import com.hdl.sdk.link.core.bean.response.BaseLocalResponse; import com.hdl.sdk.link.core.callback.GatewayCallBack; +import com.hdl.sdk.link.core.callback.HDLLinkCallBack; import com.hdl.sdk.link.core.callback.ModbusCallBack; import com.hdl.sdk.link.core.connect.HDLModBusConnect; +import com.hdl.sdk.link.core.connect.HDLUdpConnect; import com.hdl.sdk.link.gateway.HDLLinkLocalGateway; import org.greenrobot.eventbus.EventBus; @@ -132,6 +141,15 @@ uniGetImageKey(mode_type, data, callback); } break; + //鐢ㄦ埛鏈湴缂撳瓨淇℃伅 + case HDLUniMP.UNI_EVENT_REPLY_USER_LOCAL_INFO: { + JsonObject jsonObject = new JsonObject(); + jsonObject.addProperty("user_name", UserConfigManage.getInstance().getUserName()); + jsonObject.addProperty("user_image_url", UserConfigManage.getInstance().getUserImageUrl()); + jsonObject.addProperty("user_account", UserConfigManage.getInstance().getAccount()); + uniCallbackData(mode_type, jsonObject, callback); + } + break; } } else if (HDLUniMP.UNI_EVENT_REPLY_HOME_MODEL.equals(topic)) { @@ -183,11 +201,11 @@ case HDLUniMP.UNI_EVENT_REPLY_DEVICE_ADD: { this.uniAddInverterDeviceToCloud(mode_type, data, callback); } + break; //娣诲姞澶氫釜閫嗗彉鍣ㄥ埌浜戠 case HDLUniMP.UNI_EVENT_REPLY_DEVICE_ADD_All: { this.uniAddAllInverterDeviceToCloud(mode_type, data, callback); } - break; //鍒犻櫎浜戠閫嗗彉鍣� case HDLUniMP.UNI_EVENT_REPLY_DEVICE_DEL: { @@ -233,6 +251,16 @@ //閫嗗彉鍣ㄦ竻绌轰綇瀹卛d case HDLUniMP.UNI_EVENT_REPLY_DEVICE_CLEAR_DATA: { this.uniClearInverterHomeId(mode_type, data, callback); + } + break; + //spk灞炴�х紪杈� + case HDLUniMP.UNI_EVENT_REPLY_DEVICE_Link_edit_SEND: { + this.uniLinkSpkAttributeEdit(mode_type, data, callback); + } + break; + //spk灞炴�ц鍙� + case HDLUniMP.UNI_EVENT_REPLY_DEVICE_Link_read_SEND: { + this.uniLinkSpkAttributeRead(mode_type, data, callback); } break; //鑾峰彇鏈鐞�/鏈娑堟伅鏁伴噺 @@ -365,11 +393,31 @@ case HDLUniMP.UNI_EVENT_REPLY_OTHER_LOCATION_INFO: { this.uniGetLocationInfo(mode_type, data, callback); } + break; + //搴旂敤鍐茬獊 + case HDLUniMP.UNI_EVENT_REPLY_OTHER_APPLICATION_CONFLICT: { + if (callback != null) { + uniCallbackData(type, HDLUdpConnect.getInstance().isBindSuccess(), callback); + } + } + break; //涓撻棬鏀堕泦uni鏃ュ織 case HDLUniMP.UNI_EVENT_REPLY_OTHER_UNI_LOG: { String customizeContentFormat = getKeyValue("customizeContentFormat", getKeyValue("data", data)); HdlLogLogic.print("uni--->log--->" + customizeContentFormat, true); + } + break; + //uni涓婚〉鐐瑰嚮杩斿洖閫氱煡 + case HDLUniMP.UNI_EVENT_REPLY_OTHER_BACK: { + //EventBus浜嬩欢鍒嗗彂 + BaseEventBus baseEventBus = new BaseEventBus(); + baseEventBus.setTopic(HDLUniMP.UNI_EVENT_REPLY_OTHER_MODEL); + baseEventBus.setType(HDLUniMP.UNI_EVENT_REPLY_OTHER_BACK); + EventBus.getDefault().post(baseEventBus); + + } + break; } } else if (HDLUniMP.UNI_EVENT_REPLY_MINE_MODEL.equals(topic)) { //鎴戠殑妯″潡 @@ -1361,6 +1409,7 @@ // com.alibaba.fastjson.JSONArray jsonArray = JSON.parseArray(data); try { String devices = getKeyValue("devices", getKeyValue("data", data)); + String homeId = UserConfigManage.getInstance().getHomeId(); //getKeyValue("homeId", getKeyValue("data", data)); Gson gson = new Gson(); Type typeOfT = new TypeToken<List<GatewayBean>>() { }.getType(); @@ -1369,7 +1418,6 @@ uniCallbackData(type, null, -100, HDLApp.getInstance().getString(R.string.The_gateway_cannot_be_found_locally), callback); return; } - String homeId = UserConfigManage.getInstance().getHomeId(); //璁板綍鏉℃暟 AtomicInteger atomicInteger = new AtomicInteger(0); final boolean[] is_boolean = {false}; @@ -1507,6 +1555,79 @@ } + /** + * link spk 灞炴�х紪杈� + * + * @param data uni鏁版嵁 + * @param callback uni鍥炶皟 + */ + private void uniLinkSpkAttributeEdit(String type, Object data, DCUniMPJSCallback callback) { + String mac = getKeyValue("mac", getKeyValue("data", data)); + String attribute_data = getKeyValue("attribute_data", getKeyValue("data", data)); + JsonArray jay = new JsonArray(); + if (!TextUtils.isEmpty(attribute_data)) { + try { + Gson gson = new Gson(); + JsonObject jObject = gson.fromJson(attribute_data, JsonObject.class); + String objects = jObject.get("objects").toString(); + jay = gson.fromJson(objects, JsonArray.class); + } catch (Exception ignored) { + } + } + TcpClient.getInstance().sendDataToLinkGateway(mac, TopicApi.PROPERTY_DOWN, jay, "", new HDLLinkCallBack() { + @Override + public void onSuccess(String msg) { + uniCallbackData(type, msg, callback); + } + + @Override + public void onError(HDLLinkException e) { + uniCallbackData(type, null, e.getCode(), e.getMsg(), callback); + } + }); + } + + /** + * link spk 灞炴�ц鍙� + * + * @param data uni鏁版嵁 + * @param callback uni鍥炶皟 + */ + private void uniLinkSpkAttributeRead(String type, Object data, DCUniMPJSCallback callback) { + String mac = getKeyValue("mac", getKeyValue("data", data)); + String attribute_data = getKeyValue("attribute_data", getKeyValue("data", data)); + JsonArray jay = new JsonArray(); + if (!TextUtils.isEmpty(attribute_data)) { + try { + Gson gson = new Gson(); + JsonObject jObject = gson.fromJson(attribute_data, JsonObject.class); + String objects = jObject.get("objects").toString(); + jay = gson.fromJson(objects, JsonArray.class); + } catch (Exception ignored) { + } + + } + TcpClient.getInstance().sendDataToLinkGateway(mac, TopicApi.PROPERTY_READ, jay, "", new HDLLinkCallBack() { + @Override + public void onSuccess(String msg) { + try { + Gson gson = new Gson(); + Type typeOfT = new TypeToken<BaseLocalResponse<List<LinkBean>>>() { + }.getType(); + BaseLocalResponse<List<LinkBean>> baseLocalResponse = gson.fromJson(msg, typeOfT); + uniCallbackData(type, baseLocalResponse, callback); + } catch (Exception e) { + uniCallbackData(type, msg, -2, "", callback); + } + } + + @Override + public void onError(HDLLinkException e) { + uniCallbackData(type, null, e.getCode(), e.getMsg(), callback); + } + }); + } + /** * 鍙戦�乵odbus鍗忚鏁版嵁 @@ -1578,9 +1699,12 @@ data = new JSONObject(); } if (isTokenAndRefreshToken) { - //灏忕▼搴忛偅閲屾湁鑷繁鐨勮姹傛柟娉�,闇�瑕佽繖浜涙暟鎹� + //灏忕▼搴忛偅閲屾湁鑷繁鐨勮姹傛柟娉�,浣嗛渶瑕佸師鐢熸彁渚涜繖浜涙暟鎹� data.put("token", UserConfigManage.getInstance().getToken()); data.put("refreshToken", UserConfigManage.getInstance().getRefreshToken()); + if (TextUtils.isEmpty(AppConfigManage.getUserRegionUrl())) { + AppConfigManage.setUserRegionUrl(HDLLinkPMUser.getInstance().getUserRegionUrl()); + } data.put("serverAddress", AppConfigManage.getUserRegionUrl()); data.put("appKey", AppConfigManage.getAppKey()); data.put("appSecret", AppConfigManage.getAppSecret()); -- Gitblit v1.8.0