From 12d6db5780d8a2121a3bef2d58bf897b24ff552a Mon Sep 17 00:00:00 2001 From: mac <user@users-MacBook-Pro.local> Date: 星期三, 12 六月 2024 15:54:29 +0800 Subject: [PATCH] Merge branch 'dev' --- app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java | 434 +++++++++++++++++++++++++++++++++++++++++------------ 1 files changed, 335 insertions(+), 99 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 2cd8d7b..a338f13 100644 --- a/app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java +++ b/app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java @@ -10,13 +10,11 @@ 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; @@ -36,6 +34,7 @@ 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.HttpApi; import com.hdl.photovoltaic.internet.api.TopicApi; import com.hdl.photovoltaic.listener.CloudCallBeak; import com.hdl.photovoltaic.listener.LinkCallBack; @@ -45,6 +44,7 @@ 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.bean.UnCountBean; import com.hdl.photovoltaic.ui.me.AsRegardsActivity; import com.hdl.photovoltaic.ui.me.PersonalDataActivity; import com.hdl.photovoltaic.ui.me.SetActivity; @@ -54,7 +54,6 @@ 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; @@ -66,17 +65,21 @@ import com.hdl.sdk.link.core.connect.HDLModBusConnect; import com.hdl.sdk.link.core.connect.HDLUdpConnect; import com.hdl.sdk.link.gateway.HDLLinkLocalGateway; +import com.huawei.hms.api.Api; import org.greenrobot.eventbus.EventBus; import org.json.JSONObject; 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; @@ -89,6 +92,8 @@ */ public class HdlUniLogic implements HDLUniMPSDKManager.IOnOtherUniMPEventCallBack { private static volatile HdlUniLogic sHdlUniLogic; + + public final static String separator = "---"; /** * 鑾峰彇褰撳墠瀵硅薄 @@ -126,8 +131,8 @@ } String type = getKeyValue("type", data);//灏忕被 String logTag = getKeyValue("logTag", data);//鏍囪uni鎸囦护 - String mode_type = "澶х被->" + topic + "--->" + "灏忕被->" + type;//鐢ㄦ潵鎵撳嵃鐨� - HdlLogLogic.print(logTag + ":" + "uni--->鍙戦��--->" + mode_type + "\r\n" + data, true); + String mode_type = "澶х被-" + topic + "---" + "灏忕被-" + type;//鐢ㄦ潵鎵撳嵃鐨� + HdlLogLogic.print(logTag + ":" + "uni---鍙戦��---" + mode_type + "\r\n" + data, true); if (HDLUniMP.UNI_EVENT_REPLY_USER_MODEL.equals(topic)) { //鐢ㄦ埛妯″潡 switch (type) { @@ -197,6 +202,11 @@ } else if (HDLUniMP.UNI_EVENT_REPLY_DEVICE_MODEL.equals(topic)) { //璁惧妯″潡 switch (type) { + //modBus鍗忚涓撶敤 + case HDLUniMP.UNI_EVENT_REPLY_DEVICE_MODBUS_SEND: { + sendModBus(mode_type, data, callback); + } + break; //娣诲姞閫嗗彉鍣ㄥ埌浜戠 case HDLUniMP.UNI_EVENT_REPLY_DEVICE_ADD: { this.uniAddInverterDeviceToCloud(mode_type, data, callback); @@ -222,11 +232,6 @@ this.uniGetCurrentHomeLocalAndCloudGatewayList(mode_type, data, callback); } break; - //modBus鍗忚涓撶敤 - case HDLUniMP.UNI_EVENT_REPLY_DEVICE_MODBUS_SEND: { - sendModBus(mode_type, data, callback); - } - break; //鑾峰彇oid鍒楄〃 case HDLUniMP.UNI_EVENT_REPLY_DEVICE_OID: { this.uniGetInverterOidList(mode_type, data, callback); @@ -236,7 +241,6 @@ case HDLUniMP.UNI_EVENT_REPLY_DEVICE_TIME: { this.uniGetInverterTime(mode_type, data, callback); } - break; //閫嗗彉鍣ㄦ椂闂寸紪杈� case HDLUniMP.UNI_EVENT_REPLY_DEVICE_TIME_EDIT: { @@ -268,6 +272,16 @@ this.uniGetMessageNumber(mode_type, data, callback); } break; + //鍒濆鍖栭�嗗彉鍣� + case HDLUniMP.UNI_EVENT_REPLY_DEVICE_INITIALIZEINVERTER: { + this.setInitializeGateway(mode_type, data, callback); + } + break; + //璇诲彇璁惧杩滅▼淇℃伅 + case HDLUniMP.UNI_EVENT_REPLY_DEVICE_REMOTEINFO: { + this.setInverterDeviceRemoteInfo(mode_type, data, callback); + } + break; } @@ -275,23 +289,54 @@ WifiUtils wifiUtils = WifiUtils.getInstance(); //wifi妯″潡 switch (type) { - //鑾峰彇wifi鍒楄〃 - case HDLUniMP.UNI_EVENT_REPLY_WIFI_LIST: { + //鑾峰彇鎵嬫満wifi鍒楄〃 + case HDLUniMP.UNI_EVENT_REPLY_PHONE_WIFI_LIST: { if (callback != null) { uniCallbackData(mode_type, wifiUtils.getScanResult(), callback); } } break; - //褰撳墠wifi璇︽儏 - case HDLUniMP.UNI_EVENT_REPLY_WIFI_INFO: { + //鑾峰彇鎵嬫満褰撳墠wifi璇︽儏 + case HDLUniMP.UNI_EVENT_REPLY_PHONE_WIFI_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_PHONE_OPEN_WIFI_SETTINGS: { + Intent intent = new Intent(Settings.ACTION_WIFI_SETTINGS); + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + HDLApp.getInstance().startActivity(intent); + } + //閫嗗彉鍣╓iFi淇℃伅閰嶇疆 + case HDLUniMP.UNI_EVENT_REPLY_DEVICE_WIFI_SET: { + uniGetAndSetNetwork(mode_type, data, TopicApi.DELETING_GATEWAY_WIFI_EDIT, callback); + } + break; + //閫嗗彉鍣╓iFi淇℃伅鑾峰彇 + case HDLUniMP.UNI_EVENT_REPLY_DEVICE_WIFI_GET: { + uniGetAndSetNetwork(mode_type, data, TopicApi.DELETING_GATEWAY_WIFI_GET, callback); + } + break; + //閫嗗彉鍣ㄧ儹鐐归厤缃� + case HDLUniMP.UNI_EVENT_REPLY_DEVICE_HOTSPOT_SET: { + uniGetAndSetNetwork(mode_type, data, TopicApi.DELETING_GATEWAY_HOTSPOT_EDIT, callback); + } + break; + //閫嗗彉鍣ㄧ儹鐐硅幏鍙� + case HDLUniMP.UNI_EVENT_REPLY_DEVICE_HOTSPOT_GET: { + uniGetAndSetNetwork(mode_type, data, TopicApi.DELETING_GATEWAY_HOTSPOT_GET, callback); + } + break; + //閫嗗彉鍣ㄤ互澶綉閰嶇疆 + case HDLUniMP.UNI_EVENT_REPLY_DEVICE_ETHERNET_SET: { + uniGetAndSetNetwork(mode_type, data, TopicApi.DELETING_GATEWAY_ETHERNET_EDIT, callback); + } + break; + //閫嗗彉鍣ㄤ互澶綉鑾峰彇 + case HDLUniMP.UNI_EVENT_REPLY_DEVICE_ETHERNET_GET: { + uniGetAndSetNetwork(mode_type, data, TopicApi.DELETING_GATEWAY_ETHERNET_GET, callback); } break; @@ -376,49 +421,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); - } - 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)) { //鎴戠殑妯″潡 switch (type) { @@ -460,15 +462,61 @@ intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intent.setClass(HDLApp.getInstance(), SetActivity.class); HDLApp.getInstance().startActivity(intent); + } 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浜嬩欢鍒嗗彂 + HdlCommonLogic.getInstance().postEventBus(HDLUniMP.UNI_EVENT_REPLY_OTHER_MODEL, HDLUniMP.UNI_EVENT_REPLY_OTHER_BACK); + + } + break; + //uni閫氱煡鍘熺敓閫�鍑虹櫥褰� + case HDLUniMP.UNI_EVENT_REPLY_OTHER_LOGOUT: { + HDLLinkPMUser.getInstance().logout(0); + } + break; + } } } catch (Exception e) { - HdlLogLogic.print("uni--->鍙戦��--->" + e.getMessage(), true); + HdlLogLogic.print("uni---鍙戦��---" + e.getMessage(), true); } } @@ -483,7 +531,13 @@ public void openUniMP(String path, JSONObject jsonObject) { JSONObject json = this.createdJSONObject(jsonObject, true); HDLUniMPSDKManager.getInstance().openUniMP(HDLUniMP.UNI_APP_ID, path, json, HdlUniLogic.this); - HdlLogLogic.print("uni--->缁勮uni鍙戦�佹暟鎹牸寮�--->" + json, false); + HdlLogLogic.print("uni---缁勮uni鍙戦�佹暟鎹牸寮�---" + json, false); + } + + public void openUniMPDelay(String path, JSONObject jsonObject) { + JSONObject json = this.createdJSONObject(jsonObject, true); + HDLUniMPSDKManager.getInstance().openUniMPDelay(HDLUniMP.UNI_APP_ID, path, json, HdlUniLogic.this); + HdlLogLogic.print("uni---缁勮uni鍙戦�佹暟鎹牸寮�---" + json, false); } /** @@ -497,7 +551,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); } } @@ -510,6 +564,43 @@ //endregion //region ******uni鎺ュ彛鏂规硶****** + + + /** + * 鑾峰彇鎴栬�呴厤缃�嗗彉鍣ㄧ綉缁滐紙鍖呮嫭閫嗗彉鍣ㄧ儹鐐癸紝wifi锛屼互澶綉锛変俊鎭� + */ + private void uniGetAndSetNetwork(String type, Object data, String TopicApi, DCUniMPJSCallback callback) { + String mac = getKeyValue("mac", getKeyValue("data", data)); + JsonArray jsonArray = new JsonArray(); + JsonObject jObject = null; + String attribute_data = getKeyValue("attribute_data", getKeyValue("data", data)); + if (!TextUtils.isEmpty(attribute_data)) { + try { + jObject = new Gson().fromJson(attribute_data, JsonObject.class); + } catch (Exception ignored) { + jObject = new JsonObject(); + } + } + jsonArray.add(jObject); + //瑙e瘑璐熻浇鏁版嵁(鍐欏瘑閽ョ粰缃戝叧涓�瀹氭槸鏄庢枃锛屽洜涓洪偅鏃剁綉鍏宠繕娌℃湁瀵嗛挜) + TcpClient.getInstance().sendDataToLinkGateway(mac, false, TopicApi, jsonArray, "", new HDLLinkCallBack() { + @Override + public void onSuccess(String msg) { + if (callback != null) { + uniCallbackData(type, msg, callback); + } + + } + + @Override + public void onError(HDLLinkException e) { + if (callback != null) { + uniCallbackData(type, null, e.getCode(), e.getMsg(), callback); + } + } + }); + } + /** * 鑾峰彇浣嶇疆淇℃伅,鍖呮嫭缁忕含搴� @@ -640,7 +731,7 @@ String[] ary = path.split("/"); String[] driverInfoAry = ary[ary.length - 1].split("_"); DeviceFirmwareBean deviceFirmwareBean = new DeviceFirmwareBean(); - deviceFirmwareBean.setOid(driverInfoAry[0]); + deviceFirmwareBean.setImageId(driverInfoAry[0]); deviceFirmwareBean.setVersion(driverInfoAry[1].replace(".zip", "")); deviceFirmwareBean.setLocalUrl(HdlFileLogic.getInstance().getFirmwarePathFileName(osImageId, deviceFirmwareBean.getVersion())); list.add(deviceFirmwareBean); @@ -670,7 +761,7 @@ HdlThreadLogic.runSubThread(new Runnable() { @Override public void run() { - String firmwarePathFileName = HdlFileLogic.getInstance().getFirmwarePathFileName( imageId, version); + String firmwarePathFileName = HdlFileLogic.getInstance().getFirmwarePathFileName(imageId, version); //涓嶅湪瀛愮嚎绋嬭娴佷細鍗℃涓荤嚎绋� boolean isBoolean = HdlOtaLogic.getInstance().disposeDownLoadFile(firmwarePathFileName, responseBody, md5, HdlOtaLogic.firmware_type); if (isBoolean) { @@ -680,9 +771,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); } } }); @@ -711,11 +802,11 @@ String module = "FW#" + imageId;//妯″潡淇℃伅(HW锛氱‖浠�) //鍗囩骇鏈湴浼樺厛->浜戠鍗囩骇 - HdlDeviceLogic.getInstance().isLocalConnect(deviceMac, new CloudCallBeak<Boolean>() { + HdlDeviceLogic.getInstance().isLocalConnect(homeId,deviceMac, new CloudCallBeak<Boolean>() { @Override public void onSuccess(Boolean b) { if (b) { - HdlLogLogic.print("鏈湴鍗囩骇--->", true); + HdlLogLogic.print("鏈湴鍗囩骇---", true); //鏈湴 //1,寤虹珛鏈湴鏈嶅姟锛� //2,鍛婅瘔缃戝叧鎵嬫満ip鍜岀鍙o紱 @@ -727,7 +818,7 @@ 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);//缃戝叧鍥轰欢闇�瑕� @@ -742,18 +833,18 @@ @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 { - HdlLogLogic.print("鍦ㄧ嚎鍗囩骇--->", true); + HdlLogLogic.print("鍦ㄧ嚎鍗囩骇---", true); //杩滅▼鍗囩骇闇�瑕佹娴嬪湪閫嗗彉鍣ㄦ湁娌℃湁杩炴帴涓婁簯 HdlDeviceLogic.getInstance().checkInverterConnectedCloud(homeId, deviceMac, new CloudCallBeak<CloudInverterDeviceBean>() { @Override @@ -792,7 +883,7 @@ @Override public void onFailure(HDLException e) { - HdlLogLogic.print("鍦ㄧ嚎鍗囩骇--->", true); + HdlLogLogic.print("鍦ㄧ嚎鍗囩骇---", true); //杩滅▼鍗囩骇闇�瑕佹娴嬪湪閫嗗彉鍣ㄦ湁娌℃湁杩炴帴涓婁簯 HdlDeviceLogic.getInstance().checkInverterConnectedCloud(homeId, deviceMac, new CloudCallBeak<CloudInverterDeviceBean>() { @Override @@ -933,9 +1024,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); } } }); @@ -963,11 +1054,11 @@ String imageId = getKeyValue("imageId", getKeyValue("data", data));//鍥轰欢闀滃儚id String module = driverCode + "#" + imageId; //鍗囩骇鏈湴浼樺厛->浜戠鍗囩骇 - HdlDeviceLogic.getInstance().isLocalConnect(deviceMac, new CloudCallBeak<Boolean>() { + HdlDeviceLogic.getInstance().isLocalConnect(homeId,deviceMac, new CloudCallBeak<Boolean>() { @Override public void onSuccess(Boolean b) { if (b) { - HdlLogLogic.print("鏈湴鍗囩骇--->", true); + HdlLogLogic.print("鏈湴鍗囩骇---", true); //鏈湴 //1,寤虹珛鏈湴鏈嶅姟锛� // 2锛屽憡璇夌綉鍏虫墜鏈篿p鍜岀鍙o紱 @@ -979,7 +1070,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);//缃戝叧椹卞姩闇�瑕� @@ -994,18 +1085,18 @@ @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 { - HdlLogLogic.print("鍦ㄧ嚎鍗囩骇--->", true); + HdlLogLogic.print("鍦ㄧ嚎鍗囩骇---", true); //杩滅▼鍗囩骇闇�瑕併�愭娴嬨�戝湪閫嗗彉鍣ㄦ湁娌℃湁杩炴帴涓婁簯 HdlDeviceLogic.getInstance().checkInverterConnectedCloud(homeId, deviceMac, new CloudCallBeak<CloudInverterDeviceBean>() { @Override @@ -1044,7 +1135,7 @@ @Override public void onFailure(HDLException e) { - HdlLogLogic.print("鍦ㄧ嚎鍗囩骇--->", true); + HdlLogLogic.print("鍦ㄧ嚎鍗囩骇---", true); //杩滅▼鍗囩骇闇�瑕併�愭娴嬨�戝湪閫嗗彉鍣ㄦ湁娌℃湁杩炴帴涓婁簯 HdlDeviceLogic.getInstance().checkInverterConnectedCloud(homeId, deviceMac, new CloudCallBeak<CloudInverterDeviceBean>() { @Override @@ -1088,7 +1179,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); } /** @@ -1250,9 +1341,9 @@ */ private void uniGetMessageNumber(String type, Object data, DCUniMPJSCallback callback) { String homeId = getKeyValue("homeId", getKeyValue("data", data)); - HdlMessageLogic.getInstance().getMessageUntreatedCount(homeId, new CloudCallBeak<String>() { + HdlMessageLogic.getInstance().getMessageUntreatedCount(homeId, new CloudCallBeak<UnCountBean>() { @Override - public void onSuccess(String data) { + public void onSuccess(UnCountBean data) { uniCallbackData(type, data, callback); } @@ -1408,7 +1499,7 @@ // com.alibaba.fastjson.JSONArray jsonArray = JSON.parseArray(data); try { String devices = getKeyValue("devices", getKeyValue("data", data)); - String homeId = UserConfigManage.getInstance().getHomeId(); //缁戝畾鎴愬姛涔嬪悗閫氱煡 + String homeId = getKeyValue("homeId", getKeyValue("data", data)); Gson gson = new Gson(); Type typeOfT = new TypeToken<List<GatewayBean>>() { }.getType(); @@ -1629,6 +1720,151 @@ /** + * 鍙戦�佽处鍙峰拰瀵嗙爜缁欓�嗗彉鍣� + * + * @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(); + } + + /** + * 鍒濆鍖栭�嗗彉鍣� + * + * @param type 璐﹀彿 + * @param data uni璇锋眰鏁版嵁 + * @param callback uni鍥炶皟 + */ + public void setInitializeGateway(String type, Object data, DCUniMPJSCallback callback) { + String mac = getKeyValue("mac", getKeyValue("data", data)); + HdlDeviceLogic.getInstance().initializeInverter(mac, new LinkCallBack<Boolean>() { + @Override + public void onSuccess(Boolean obj) { + uniCallbackData(type, obj, callback); + } + + @Override + public void onError(HDLLinkException e) { + uniCallbackData(type, null, e.getCode(), e.getMsg(), callback); + } + }); + } + + /** + * 鍒濆鍖栭�嗗彉鍣� + * + * @param type 璐﹀彿 + * @param data uni璇锋眰鏁版嵁 + * @param callback uni鍥炶皟 + */ + public void setInverterDeviceRemoteInfo(String type, Object data, DCUniMPJSCallback callback) { + String homeId = getKeyValue("homeId", getKeyValue("data", data)); + String json = getKeyValue("list", getKeyValue("data", data)); + List<CloudInverterDeviceBean> newList = new ArrayList<>(); + try { + List<GatewayBean> list = new Gson().fromJson(json, new TypeToken<List<GatewayBean>>() { + }.getType()); + if (list != null && list.size() > 0) { + for (int i = 0; i < list.size(); i++) { + GatewayBean gatewayBean = list.get(i); + CloudInverterDeviceBean inverterDeviceBean = new CloudInverterDeviceBean(); + inverterDeviceBean.setCategorySecondName(gatewayBean.getCategorySecondName()); + inverterDeviceBean.setOsn(gatewayBean.getDevice_mac()); + inverterDeviceBean.setOmodel(gatewayBean.getDevice_model()); + inverterDeviceBean.setOid(gatewayBean.getOid()); + inverterDeviceBean.setAddresses(gatewayBean.getAddresses()); + inverterDeviceBean.setSid(gatewayBean.getSid()); + inverterDeviceBean.setDeviceId(gatewayBean.getDeviceId()); + inverterDeviceBean.setName(gatewayBean.getDevice_name()); + inverterDeviceBean.setDeviceStatus(gatewayBean.getDeviceStatus()); + inverterDeviceBean.setSpk(gatewayBean.getSpk()); + inverterDeviceBean.setDeviceType(gatewayBean.getDeviceType()); + newList.add(inverterDeviceBean); + } + } + } catch (Exception ignored) { + } + HdlDeviceLogic.getInstance().setDeviceRemoteInfo(newList, homeId, new CloudCallBeak<List<GatewayBean>>() { + @Override + public void onSuccess(List<GatewayBean> obj) { + uniCallbackData(type, obj, callback); + } + + @Override + public void onFailure(HDLException e) { + uniCallbackData(type, null, e.getCode(), e.getMsg(), callback); + } + }); + } + + + /** * 鍙戦�乵odbus鍗忚鏁版嵁 * 閫忎紶鍗忚 * 涓嬪彂涓婚锛�/user/${gw_id}/custom/native/${driver}/down; @@ -1646,7 +1882,7 @@ String tempData = getKeyValue("data", data); if (TextUtils.isEmpty(tempData)) { uniCallbackData(type, null, -2, "data鍐呭涓虹┖", callback); - //HdlLogLogic.print("data鍐呭涓虹┖--->", false); + //HdlLogLogic.print("data鍐呭涓虹┖---", false); return; } ModBusBean modBusBean = new Gson().fromJson(tempData, ModBusBean.class); @@ -1658,24 +1894,24 @@ // } if (modBusBean.getMac() == null || modBusBean.getData() == null) { uniCallbackData(type, null, -2, "鍙戦�佸け璐�,(mac鎴栬�卭id)涓虹┖", callback); - //HdlLogLogic.print("uni--->鍙戦��--->ModBus--->鍙戦�佸け璐�,(mac鎴栬�卭id)涓虹┖." + Arrays.toString(modBusBean.getData()), true); + //HdlLogLogic.print("uni---鍙戦��---ModBus---鍙戦�佸け璐�,(mac鎴栬�卭id)涓虹┖." + Arrays.toString(modBusBean.getData()), true); return; } - //HdlLogLogic.print("uni--->鍙戦��--->ModBus--->" + Arrays.toString(modBusBean.getData()), true); + //HdlLogLogic.print("uni---鍙戦��---ModBus---" + Arrays.toString(modBusBean.getData()), true); //鍙戦�乵odbus鍗忚 HDLModBusConnect.getInstance().Send(modBusBean.getMac(), modBusBean.getData(), new ModbusCallBack() { @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); } }); } @@ -1711,7 +1947,7 @@ 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(); } @@ -1731,15 +1967,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