From b75795836a851a13e54cc4efb597262fb448217c Mon Sep 17 00:00:00 2001 From: mac <user@users-MacBook-Pro.local> Date: 星期三, 08 五月 2024 15:22:01 +0800 Subject: [PATCH] 2024年05月08日15:21:54 --- app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java | 344 ++++++++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 281 insertions(+), 63 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 98eeaef..1975031 100644 --- a/app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java +++ b/app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java @@ -10,14 +10,14 @@ import android.location.Location; import android.location.LocationManager; import android.os.IBinder; +import android.provider.Settings; import android.text.TextUtils; -import android.view.View; -import android.widget.TextView; import androidx.core.app.ActivityCompat; -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 +25,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 +33,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; @@ -48,14 +52,16 @@ import com.hdl.photovoltaic.uni.HDLUniMPSDKManager; import com.hdl.photovoltaic.utils.NetworkUtils; import com.hdl.photovoltaic.utils.WifiUtils; -import com.hdl.photovoltaic.widget.ConfirmationCancelDialog; import com.hdl.sdk.link.common.exception.HDLLinkCode; 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; @@ -63,11 +69,14 @@ import java.io.File; +import java.io.InputStream; +import java.io.OutputStream; import java.lang.reflect.Type; import java.math.BigDecimal; import java.math.RoundingMode; +import java.net.InetSocketAddress; +import java.net.Socket; import java.util.ArrayList; -import java.util.Arrays; import java.util.List; import java.util.Objects; import java.util.concurrent.atomic.AtomicInteger; @@ -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: { @@ -235,6 +253,16 @@ 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; //鑾峰彇鏈鐞�/鏈娑堟伅鏁伴噺 case HDLUniMP.UNI_EVENT_REPLY_DEVICE_MESSAGE_NUMBER: { this.uniGetMessageNumber(mode_type, data, callback); @@ -255,18 +283,28 @@ } break; //褰撳墠wifi璇︽儏 - case HDLUniMP.UNI_EVENT_REPLY_WIFI_INFO: { + case HDLUniMP.UNI_EVENT_REPLY_WIFI_PHONE_INFO: { if (callback != null) { uniCallbackData(mode_type, wifiUtils.getCurrentConnectWifiInfo(), callback); } } break; - //wifi杩炴帴 - case HDLUniMP.UNI_EVENT_REPLY_WIFI_CONNECT: { + //閰嶇疆WiFi淇℃伅缁欓�嗗彉鍣� + case HDLUniMP.UNI_EVENT_REPLY_WIFI_SET_DEVICE: { + String mac = getKeyValue("mac", getKeyValue("data", data));// + String wif_type = getKeyValue("wif_type", getKeyValue("data", data));//1锛氱儹鐐�,2锛氭棤绾縲ifi,3锛氫互澶綉 + String ssid = getKeyValue("ssid", getKeyValue("data", data));// + String password = getKeyValue("password", getKeyValue("data", data));// + startTcpThreadSendAccountAndPassword(mode_type, ssid, password, callback); } break; - + //鎵撳紑鎵嬫満Wifi璁剧疆鐣岄潰 + case HDLUniMP.UNI_EVENT_REPLY_OPEN_WIFI_SETTINGS: { + Intent intent = new Intent(Settings.ACTION_WIFI_SETTINGS); + HDLApp.getInstance().startActivity(intent); + } + break; } } else if (HDLUniMP.UNI_EVENT_REPLY_OTA_MODEL.equals(topic)) { //OTA鍗囩骇妯″潡 @@ -348,29 +386,6 @@ break; } - } else if (HDLUniMP.UNI_EVENT_REPLY_OTHER_MODEL.equals(topic)) { - //鍏跺畠妯″潡 - switch (type) { - //鑾峰彇娓╁害鍗曚綅 - case HDLUniMP.UNI_EVENT_REPLY_OTHER_UNIT: { - uniCallbackData(mode_type, UserConfigManage.getInstance().getTemperature_unit(), callback); - } - break; - //鑾峰彇褰撳墠app璇█ - case HDLUniMP.UNI_EVENT_REPLY_OTHER_APP_LANGUAGE: { - uniCallbackData(mode_type, UserConfigManage.getInstance().getCurrentAppLanguage(), callback); - } - break; - //鑾峰彇浣嶇疆淇℃伅 - case HDLUniMP.UNI_EVENT_REPLY_OTHER_LOCATION_INFO: { - this.uniGetLocationInfo(mode_type, data, callback); - } - //涓撻棬鏀堕泦uni鏃ュ織 - case HDLUniMP.UNI_EVENT_REPLY_OTHER_UNI_LOG: { - String customizeContentFormat = getKeyValue("customizeContentFormat", getKeyValue("data", data)); - HdlLogLogic.print("uni--->log--->" + customizeContentFormat, true); - } - } } else if (HDLUniMP.UNI_EVENT_REPLY_MINE_MODEL.equals(topic)) { //鎴戠殑妯″潡 switch (type) { @@ -416,6 +431,54 @@ break; + } + } else if (HDLUniMP.UNI_EVENT_REPLY_OTHER_MODEL.equals(topic)) { + //鍏跺畠妯″潡 + switch (type) { + //鑾峰彇娓╁害鍗曚綅 + case HDLUniMP.UNI_EVENT_REPLY_OTHER_UNIT: { + uniCallbackData(mode_type, UserConfigManage.getInstance().getTemperature_unit(), callback); + } + break; + //鑾峰彇褰撳墠app璇█ + case HDLUniMP.UNI_EVENT_REPLY_OTHER_APP_LANGUAGE: { + uniCallbackData(mode_type, UserConfigManage.getInstance().getCurrentAppLanguage(), callback); + } + break; + //鑾峰彇浣嶇疆淇℃伅 + 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; + //uni閫氱煡鍘熺敓閫�鍑虹櫥褰� + case HDLUniMP.UNI_EVENT_REPLY_OTHER_LOGOUT: { + HDLLinkPMUser.getInstance().logout(0); + } + break; } } @@ -592,10 +655,9 @@ String[] ary = path.split("/"); String[] driverInfoAry = ary[ary.length - 1].split("_"); DeviceFirmwareBean deviceFirmwareBean = new DeviceFirmwareBean(); - deviceFirmwareBean.setOid(driverInfoAry[0]); - deviceFirmwareBean.setImageId(driverInfoAry[1]); - deviceFirmwareBean.setVersion(driverInfoAry[2].replace(".zip", "")); - deviceFirmwareBean.setLocalUrl(HdlFileLogic.getInstance().getFirmwarePathFileName(deviceFirmwareBean.getOid(), osImageId, deviceFirmwareBean.getVersion())); + deviceFirmwareBean.setImageId(driverInfoAry[0]); + deviceFirmwareBean.setVersion(driverInfoAry[1].replace(".zip", "")); + deviceFirmwareBean.setLocalUrl(HdlFileLogic.getInstance().getFirmwarePathFileName(osImageId, deviceFirmwareBean.getVersion())); list.add(deviceFirmwareBean); } } @@ -623,7 +685,7 @@ HdlThreadLogic.runSubThread(new Runnable() { @Override public void run() { - String firmwarePathFileName = HdlFileLogic.getInstance().getFirmwarePathFileName(oid, imageId, version); + String firmwarePathFileName = HdlFileLogic.getInstance().getFirmwarePathFileName(imageId, version); //涓嶅湪瀛愮嚎绋嬭娴佷細鍗℃涓荤嚎绋� boolean isBoolean = HdlOtaLogic.getInstance().disposeDownLoadFile(firmwarePathFileName, responseBody, md5, HdlOtaLogic.firmware_type); if (isBoolean) { @@ -633,9 +695,9 @@ } if (isBoolean) { - uniCallbackData(type, null, 0, "鍐欏叆鏂伴┍鍔ㄦ枃浠跺埌鍐呭瓨鎴愬姛", callback); + uniCallbackData(type, null, 0, HDLApp.getInstance().getString(R.string.writing_firmware_upgrade_memory_succeeded), callback); } else { - uniCallbackData(type, null, -2, "涓嬭浇鍥轰欢鍗囩骇鏂囦欢澶辫触", callback); + uniCallbackData(type, null, -2, HDLApp.getInstance().getString(R.string.download_firmware_upgrade_file_failed), callback); } } }); @@ -677,10 +739,10 @@ @Override public void onServiceConnected(ComponentName name, IBinder service) { //鏈湴鍗囩骇鍥轰欢鏂囦欢璺緞 - String firmwarePathFileName = HdlFileLogic.getInstance().getFirmwarePathFileName(oid, imageId, version); + String firmwarePathFileName = HdlFileLogic.getInstance().getFirmwarePathFileName(imageId, version); byte[] data = HdlFileLogic.getInstance().readFileByte(firmwarePathFileName); if (data == null || data.length == 0) { - uniCallbackData(type, null, -2, "鏈湴鎵句笉鍒板崌绾у浐浠舵枃浠�,璇蜂笅杞藉ソ鍥轰欢鏂囦欢,鍐嶉噸鏂板崌绾�.", callback); + uniCallbackData(type, null, -2, HDLApp.getInstance().getString(R.string.found_locally_firmware_upgrade_file), callback); return; } String md5 = HDLMD5Utils.encodeMD5(data);//缃戝叧鍥轰欢闇�瑕� @@ -695,14 +757,14 @@ @Override public void onError(HDLLinkException e) { - uniCallbackData(type, null, -2, "閫氱煡缁欑綉鍏冲崌绾у浐浠舵枃浠跺湴鍧�澶辫触,鏃犳硶鍗囩骇,", callback); + uniCallbackData(type, null, -2, HDLApp.getInstance().getString(R.string.notify_gateway_firmware_upgrade_failed), callback); } }); } @Override public void onServiceDisconnected(ComponentName name) { - uniCallbackData(type, null, -2, "鏈湴鏈嶅姟鏈夊紓甯稿け璐�,鏃犳硶鍗囩骇,", callback); + uniCallbackData(type, null, -2, HDLApp.getInstance().getString(R.string.local_service_fails), callback); } }); } else { @@ -886,9 +948,9 @@ HdlFileLogic.getInstance().deleteFile(drivePathFileName);//涓嬭浇澶辫触锛屽垹闄や笉瀹屾暣椹卞姩鏂囦欢; } if (isBoolean) { - uniCallbackData(type, null, 0, "鍐欏叆鏂伴┍鍔ㄦ枃浠跺埌鍐呭瓨鎴愬姛", callback); + uniCallbackData(type, null, 0, HDLApp.getInstance().getString(R.string.writing_drive_memory_succeeded), callback); } else { - uniCallbackData(type, null, -2, "涓嬭浇椹卞姩鍗囩骇鏂囦欢澶辫触", callback); + uniCallbackData(type, null, -2, HDLApp.getInstance().getString(R.string.download_drive_file_failed), callback); } } }); @@ -932,7 +994,7 @@ String drivePathFileName = HdlFileLogic.getInstance().getDrivePathFileName(driverCode, version); byte[] data = HdlFileLogic.getInstance().readFileByte(drivePathFileName); if (data == null || data.length == 0) { - uniCallbackData(type, null, -2, "鏈湴鎵句笉鍒板崌绾ч┍鍔ㄦ枃浠�,璇蜂笅杞藉ソ椹卞姩鏂囦欢,鍐嶉噸鏂板崌绾�.", callback); + uniCallbackData(type, null, -2, HDLApp.getInstance().getString(R.string.found_locally_drive_file), callback); return; } String md5 = HDLMD5Utils.encodeMD5(data);//缃戝叧椹卞姩闇�瑕� @@ -947,14 +1009,14 @@ @Override public void onError(HDLLinkException e) { - uniCallbackData(type, null, -2, "閫氱煡缁欑綉鍏冲崌绾ч┍鍔ㄦ枃浠跺湴鍧�澶辫触,鏃犳硶鍗囩骇,", callback); + uniCallbackData(type, null, -2, HDLApp.getInstance().getString(R.string.notify_gateway_drive_failed), callback); } }); } @Override public void onServiceDisconnected(ComponentName name) { - uniCallbackData(type, null, -2, "鏈湴鏈嶅姟鏈夊紓甯稿け璐�,鏃犳硶鍗囩骇,", callback); + uniCallbackData(type, null, -2, HDLApp.getInstance().getString(R.string.local_service_fails), callback); } }); } else { @@ -1041,7 +1103,7 @@ */ private void uniCancelDownloadingUpgradeFile(String type, Object data, DCUniMPJSCallback callback) { HdlOtaLogic.getInstance().stopDownloadUpgradeFile(); - uniCallbackData(type, null, 0, "鍙栨秷涓嬭浇鎴愬姛.", callback); + uniCallbackData(type, null, 0, HDLApp.getInstance().getString(R.string.cancel_download_successfully), callback); } /** @@ -1124,6 +1186,7 @@ UserConfigManage.getInstance().Save(); //鑾峰彇鐢ㄦ埛澶村儚璺緞 if (cUserInfo.getMemberHeadIcon().contains("http")) { + UserConfigManage.getInstance().setUserImageUrl(cUserInfo.getMemberHeadIcon()); //鏇存柊鐢ㄦ埛澶村儚 uniCallbackData(type, cUserInfo, callback); } else { @@ -1131,6 +1194,7 @@ @Override public void onSuccess(String url) { cUserInfo.setMemberHeadIcon(url); + UserConfigManage.getInstance().setUserImageUrl(cUserInfo.getMemberHeadIcon()); uniCallbackData(type, cUserInfo, callback); } @@ -1226,7 +1290,7 @@ GatewayBean gatewayBean = new GatewayBean(); gatewayBean.setDevice_mac(mac); list.add(gatewayBean); - HdlDeviceLogic.getInstance().uploadDataToCloud(UserConfigManage.getInstance().getHomeId(), list, null); + HdlDeviceLogic.getInstance().uploadOidDataToCloud(UserConfigManage.getInstance().getHomeId(), list, true, null); } /** @@ -1359,6 +1423,7 @@ // com.alibaba.fastjson.JSONArray jsonArray = JSON.parseArray(data); try { String devices = getKeyValue("devices", getKeyValue("data", data)); + String homeId = UserConfigManage.getInstance().getHomeId(); //缁戝畾鎴愬姛涔嬪悗閫氱煡 Gson gson = new Gson(); Type typeOfT = new TypeToken<List<GatewayBean>>() { }.getType(); @@ -1367,7 +1432,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}; @@ -1483,16 +1547,16 @@ } return; } - //杩涙潵浣忓畢璇︽儏閮借涓婁紶涓�娆id鍒楄〃鍒颁簯绔�; - HdlDeviceLogic.getInstance().uploadDataToCloud(homeId, list, null); + if (callback != null) { + uniCallbackData(type, list, callback); + } //EventBus浜嬩欢鍒嗗彂,杩涘叆浣忓畢寮�濮嬭闃呬富棰� BaseEventBus baseEventBus = new BaseEventBus(); baseEventBus.setType(HDLUniMP.UNI_EVENT_REPLY_DEVICE_LIST); baseEventBus.setData(list); EventBus.getDefault().post(baseEventBus); - if (callback != null) { - uniCallbackData(type, list, callback); - } + //杩涙潵浣忓畢璇︽儏閮借涓婁紶涓�娆id鍒楄〃鍒颁簯绔�; + HdlDeviceLogic.getInstance().uploadOidDataToCloud(homeId, list, false, null); } @Override @@ -1503,6 +1567,157 @@ } }); + } + + /** + * 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); + } + }); + } + + + /** + * 鍙戦�佽处鍙峰拰瀵嗙爜缁欓�嗗彉鍣� + * + * @param ssid 璐﹀彿 + * @param password 瀵嗙爜 + * @param callback uni鍥炶皟 + */ + public void startTcpThreadSendAccountAndPassword(String type, String ssid, String password, DCUniMPJSCallback callback) { + new Thread( + () -> { + Socket socket = null; + OutputStream outputStreamTcp = null; + InputStream inputStreamTcp = null; + try { + socket = new Socket(); + socket.setTcpNoDelay(true); + socket.setSoTimeout(10 * 1000);//10绉掕秴鏃� + socket.connect(new InetSocketAddress("192.168.8.1", 8586)); + socket.setKeepAlive(true); +// logMessage("tcp杩炴帴鐘舵�佹垚鍔�", 0, ""); + outputStreamTcp = socket.getOutputStream(); + JsonObject jsonObject = new JsonObject(); + jsonObject.addProperty("id", "102030"); + jsonObject.addProperty("ssid", ssid); + jsonObject.addProperty("password", password); + jsonObject.addProperty("server_addr", HDLLinkPMUser.getInstance().getHomeRegionUrl()); + jsonObject.addProperty("homeId", UserConfigManage.getInstance().getHomeId()); + String sendData = "Topic:/user/id/custom/wifi/set\r\n"; + sendData += "Length:" + jsonObject.toString().getBytes().length + "\r\n\r\n"; + sendData += jsonObject.toString(); + outputStreamTcp.write(sendData.getBytes()); + outputStreamTcp.flush(); + Thread.sleep(200); + inputStreamTcp = socket.getInputStream(); + byte[] bytes = new byte[1204 * 2]; + int len = inputStreamTcp.read(bytes); + if (len != -1) { + String str = new String(bytes, 0, bytes.length); + String[] strings = str.split("\r\n\r\n"); + String[] topicAndLength = strings[0].split("\r\n"); + String topic = topicAndLength[0]; + JSONObject json = new JSONObject(strings[1]); +// logMessage("tcp鍥炲鏁版嵁", 0, strings[0] + "\r\n" + json.toString()); + if (topic.endsWith("wifi/set_reply") || topic.endsWith("wifi/result/notify")) { + if (callback != null) { + uniCallbackData(type, json, callback); + } + if (json.has("mac")) { //鍥炲鎴愬姛鍐嶆嬁璁惧mac +// this.device_mac = json.getString("mac"); +// this.isSucceedTcp = true;//琛ㄧず鎴愬姛 + } + } + } + + } catch (Exception ignored) { + } finally { + try { + if (outputStreamTcp != null) { + outputStreamTcp.close(); + outputStreamTcp = null; + } + if (inputStreamTcp != null) { + inputStreamTcp.close(); + inputStreamTcp = null; + } + if (socket != null) { + socket.close(); + socket = null; + } + + } catch (Exception ignored) { + } + } + } + ).start(); } @@ -1546,14 +1761,14 @@ @Override public void onSuccess(int[] data) { uniCallbackData(type, data, callback); - HdlLogLogic.print("uni--->鎺ユ敹--->ModBus--->" + Arrays.toString(data), true); +// HdlLogLogic.print("uni--->鎺ユ敹--->ModBus--->" + Arrays.toString(data), true); } @Override public void onError(HDLLinkException e) { uniCallbackData(type, null, e.getCode(), e.getMsg(), callback); - HdlLogLogic.print("uni--->鎺ユ敹--->ModBus--->" + e.getMsg() + "(" + e.getCode() + ")", true); +// HdlLogLogic.print("uni--->鎺ユ敹--->ModBus--->" + e.getMsg() + "(" + e.getCode() + ")", true); } }); } @@ -1576,9 +1791,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()); @@ -1606,15 +1824,15 @@ HDLUniMP.UniCallBackBaseBean uniCallBackBaseBean = new HDLUniMP.UniCallBackBaseBean(); try { uniCallBackBaseBean.setCode(code); - uniCallBackBaseBean.setMes(msg); + uniCallBackBaseBean.setMsg(msg); uniCallBackBaseBean.setData(obj); if (callback != null) { callback.invoke(getJSONObject(uniCallBackBaseBean)); // callback.invoke(uniCallBackBaseBean); - HdlLogLogic.print("uni--->鎺ユ敹--->" + type + "--->" + new Gson().toJson(uniCallBackBaseBean), true); + HdlLogLogic.print("uni--->鍥炲--->" + type + "--->" + new Gson().toJson(uniCallBackBaseBean), true); } } catch (Exception e) { - HdlLogLogic.print("uni--->鎺ユ敹--->" + type + "--->" + e.getMessage(), true); + HdlLogLogic.print("uni--->鍥炲--->" + type + "--->" + e.getMessage(), true); } -- Gitblit v1.8.0