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 | 902 ++++++++++++++++++++++++++++++++++++++++++------------- 1 files changed, 685 insertions(+), 217 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 4704b4d..1975031 100644 --- a/app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java +++ b/app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java @@ -8,24 +8,24 @@ import android.content.ServiceConnection; import android.content.pm.PackageManager; import android.location.Location; -import android.location.LocationListener; import android.location.LocationManager; import android.os.IBinder; import android.provider.Settings; import android.text.TextUtils; -import android.util.Log; -import androidx.annotation.NonNull; import androidx.core.app.ActivityCompat; 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; import com.hdl.linkpm.sdk.ota.bean.CloudDeviceFirmwaresBean; 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; @@ -33,23 +33,35 @@ 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; +import com.hdl.photovoltaic.ui.me.SetActivity; +import com.hdl.photovoltaic.ui.newC.MessageCenterList; +import com.hdl.photovoltaic.ui.newC.PowerStationsListEdit; import com.hdl.photovoltaic.uni.HDLUniMP; 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; @@ -57,10 +69,17 @@ 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; import io.dcloud.feature.unimp.DCUniMPJSCallback; import okhttp3.ResponseBody; @@ -106,7 +125,34 @@ return; } String type = getKeyValue("type", data);//灏忕被 - if (HDLUniMP.UNI_EVENT_REPLY_HOME_MODEL.equals(topic)) { + String logTag = getKeyValue("logTag", data);//鏍囪uni鎸囦护 + 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) { + //鐢ㄦ埛淇℃伅 + case HDLUniMP.UNI_EVENT_REPLY_USER_INFO: { + this.uniGetUserInfo(mode_type, data, callback); + } + break; + //鐢ㄦ埛澶村儚锛堟棫骞冲彴閫昏緫鏄ご鍍忓崟鐙幏鍙栦笅杞藉湴鍧�锛� + case HDLUniMP.UNI_EVENT_REPLY_USER_IMAGE: { + 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)) { //浣忓畢妯″潡 switch (type) { //鍒涘缓鐢电珯 @@ -146,60 +192,80 @@ } if (callback != null) { - uniCallbackData(null, callback); + uniCallbackData(type, null, callback); } } else if (HDLUniMP.UNI_EVENT_REPLY_DEVICE_MODEL.equals(topic)) { //璁惧妯″潡 switch (type) { //娣诲姞閫嗗彉鍣ㄥ埌浜戠 case HDLUniMP.UNI_EVENT_REPLY_DEVICE_ADD: { - this.uniAddInverterDeviceToCloud(data, callback); + 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: { - this.uniDelInverterDevice(data, callback); + this.uniDelInverterDevice(mode_type, data, callback); } break; //灞�鍩熺綉鎼滅储閫嗗彉鍣ㄥ垪琛� case HDLUniMP.UNI_EVENT_REPLY_DEVICE_NET_LIST: { - this.uniSearchGateway(callback); + this.uniSearchGateway(mode_type, callback); } break; //鑾峰彇閫嗗彉鍣ㄥ垪琛� case HDLUniMP.UNI_EVENT_REPLY_DEVICE_LIST: { - this.uniGetCurrentHomeLocalAndCloudGatewayList(data, callback); + this.uniGetCurrentHomeLocalAndCloudGatewayList(mode_type, data, callback); } break; //modBus鍗忚涓撶敤 case HDLUniMP.UNI_EVENT_REPLY_DEVICE_MODBUS_SEND: { - sendModBus(data, callback); + sendModBus(mode_type, data, callback); } break; //鑾峰彇oid鍒楄〃 case HDLUniMP.UNI_EVENT_REPLY_DEVICE_OID: { - this.uniGetInverterOidList(data, callback); + this.uniGetInverterOidList(mode_type, data, callback); } break; //閫嗗彉鍣ㄦ椂闂磋鍙� case HDLUniMP.UNI_EVENT_REPLY_DEVICE_TIME: { - this.uniGetInverterTime(data, callback); + this.uniGetInverterTime(mode_type, data, callback); } break; //閫嗗彉鍣ㄦ椂闂寸紪杈� case HDLUniMP.UNI_EVENT_REPLY_DEVICE_TIME_EDIT: { - this.uniEditInverterTime(data, callback); + this.uniEditInverterTime(mode_type, data, callback); } break; //閫嗗彉鍣ㄤ笂浼犳暟鎹埌浜戠 case HDLUniMP.UNI_EVENT_REPLY_DEVICE_UPLOADING_DATA: { - this.uniUploadDataToCloud(data, callback); + this.uniUploadDataToCloud(mode_type, data, callback); } break; //閫嗗彉鍣ㄦ竻绌轰綇瀹卛d case HDLUniMP.UNI_EVENT_REPLY_DEVICE_CLEAR_DATA: { - this.uniClearInverterHomeId(data, callback); + 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); } break; @@ -212,110 +278,158 @@ //鑾峰彇wifi鍒楄〃 case HDLUniMP.UNI_EVENT_REPLY_WIFI_LIST: { if (callback != null) { - uniCallbackData(wifiUtils.getScanResult(), callback); + uniCallbackData(mode_type, wifiUtils.getScanResult(), callback); } } break; //褰撳墠wifi璇︽儏 - case HDLUniMP.UNI_EVENT_REPLY_WIFI_INFO: { + case HDLUniMP.UNI_EVENT_REPLY_WIFI_PHONE_INFO: { if (callback != null) { - uniCallbackData(wifiUtils.getCurrentConnectWifiInfo(), callback); + 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鍗囩骇妯″潡 switch (type) { //鍚戜簯绔幏鍙杘id鍒楄〃 case HDLUniMP.UNI_EVENT_REPLY_OTA_CLOUD_OID_LIST: { - this.uniGetCloudOidList(data, callback); + this.uniGetCloudOidList(mode_type, data, callback); } break; //褰撳墠璁惧鍥轰欢鍒楄〃 case HDLUniMP.UNI_EVENT_REPLY_OTA_FIRMWARES_LIST: { - this.uniGetCurrentDeviceFirmwares(data, callback); + this.uniGetCurrentDeviceFirmwares(mode_type, data, callback); } break; //璁惧鏂板浐浠跺垪琛� case HDLUniMP.UNI_EVENT_REPLY_OTA_FIRMWARES_NEW_LIST: { - this.uniGetNewDeviceFirmwares(data, callback); + this.uniGetNewDeviceFirmwares(mode_type, data, callback); } break; //璁惧鏈湴鍥轰欢鍒楄〃 case HDLUniMP.UNI_EVENT_REPLY_OTA_FIRMWARES_LOCAL: { - this.uniGetLocalFirmwares(data, callback); + this.uniGetLocalFirmwares(mode_type, data, callback); } break; //璁惧鍥轰欢涓嬭浇 case HDLUniMP.UNI_EVENT_REPLY_OTA_FIRMWARES_DOWNLOAD: { - this.uniDeviceFirmwareDownload(data, callback); + this.uniDeviceFirmwareDownload(mode_type, data, callback); } break; //璁惧鍥轰欢鍗囩骇 case HDLUniMP.UNI_EVENT_REPLY_OTA_FIRMWARES_UPGRADE: { - this.uniUpgradeDeviceFirmware(data, callback); + this.uniUpgradeDeviceFirmware(mode_type, data, callback); } break; //褰撳墠璁惧椹卞姩鍒楄〃 case HDLUniMP.UNI_EVENT_REPLY_OTA_DRIVER_LIST: { - this.uniGetCurrentGatewayDrivers(data, callback); + this.uniGetCurrentGatewayDrivers(mode_type, data, callback); } break; //璁惧鏂伴┍鍔ㄥ垪琛� case HDLUniMP.UNI_EVENT_REPLY_OTA_DRIVER_NEW: { - this.uniGetNewGatewayDrivers(data, callback); + this.uniGetNewGatewayDrivers(mode_type, data, callback); } break; //璁惧鏈湴椹卞姩鍒楄〃 case HDLUniMP.UNI_EVENT_REPLY_OTA_DRIVER_LOCAL: { - this.uniGetLocalDrivers(data, callback); + this.uniGetLocalDrivers(mode_type, data, callback); } break; //璁惧椹卞姩涓嬭浇 case HDLUniMP.UNI_EVENT_REPLY_OTA_DRIVER_DOWNLOAD: { - this.uniGatewayDriverDownload(data, callback); + this.uniGatewayDriverDownload(mode_type, data, callback); } break; //璁惧椹卞姩鍗囩骇 case HDLUniMP.UNI_EVENT_REPLY_OTA_DRIVER_UPGRADE: { - this.uniUpgradeGatewayDriver(data, callback); + this.uniUpgradeGatewayDriver(mode_type, data, callback); } break; //璁惧鍙栨秷椹卞姩,鍥轰欢涓嬭浇鍗囩骇鏂囦欢 case HDLUniMP.UNI_EVENT_REPLY_OTA_DRIVER_CANCEL_DOWNLOAD: { - this.uniCancelDownloadingUpgradeFile(data, callback); -// HdlThreadLogic.runSubThread(new Runnable() { -// @Override -// public void run() { -// HdlLogLogic.print("褰撳墠绾跨▼鍚嶇О鍙栨秷涓嬭浇====" + Thread.currentThread().getName()); -// uniCancelDownloadingUpgradeFile(data, callback); -// } -// }); + this.uniCancelDownloadingUpgradeFile(mode_type, data, callback); } break; //璁惧椹卞姩,鍥轰欢鍙栨秷鍗囩骇 case HDLUniMP.UNI_EVENT_REPLY_OTA_CANCEL_UPGRADE: { - - this.uniCancelUpgrade(data, callback); + this.uniCancelUpgrade(mode_type, data, callback); } break; //鎵撳紑鏈嶅姟 case HDLUniMP.UNI_EVENT_REPLY_OTA_OPEN_SERVICE: { - this.uniOpenService(data, callback); + this.uniOpenService(mode_type, data, callback); } break; //鍏抽棴鏈嶅姟 case HDLUniMP.UNI_EVENT_REPLY_OTA_CLOSE_SERVICE: { - this.uniCloseService(data, callback); + this.uniCloseService(mode_type, data, callback); } break; + + } + } else if (HDLUniMP.UNI_EVENT_REPLY_MINE_MODEL.equals(topic)) { + //鎴戠殑妯″潡 + switch (type) { + //璧勬枡缂栬緫 + case HDLUniMP.UNI_EVENT_REPLY_MINE_EDIT_USER_INFO: { + Intent intent = new Intent(); + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + intent.setClass(HDLApp.getInstance(), PersonalDataActivity.class); + HDLApp.getInstance().startActivity(intent); + } + break; + //鐢电珯閫夋嫨 + case HDLUniMP.UNI_EVENT_REPLY_MINE_SELECTED_POWERSTATION: { + Intent intent = new Intent(); + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + intent.setClass(HDLApp.getInstance(), PowerStationsListEdit.class); + HDLApp.getInstance().startActivity(intent); + } + break; + //娑堟伅涓績 + case HDLUniMP.UNI_EVENT_REPLY_MINE_MESSAGE_CENTER: { + Intent intent = new Intent(); + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + intent.setClass(HDLApp.getInstance(), MessageCenterList.class); + HDLApp.getInstance().startActivity(intent); + } + break; + //鍏充簬 + case HDLUniMP.UNI_EVENT_REPLY_MINE_ABOUT: { + Intent intent = new Intent(); + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + intent.setClass(HDLApp.getInstance(), AsRegardsActivity.class); + HDLApp.getInstance().startActivity(intent); + } + break; + //璁剧疆 + case HDLUniMP.UNI_EVENT_REPLY_MINE_SETTING: { + Intent intent = new Intent(); + 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)) { @@ -323,23 +437,53 @@ switch (type) { //鑾峰彇娓╁害鍗曚綅 case HDLUniMP.UNI_EVENT_REPLY_OTHER_UNIT: { - uniCallbackData(UserConfigManage.getInstance().getTemperature_unit(), callback); + uniCallbackData(mode_type, UserConfigManage.getInstance().getTemperature_unit(), callback); } break; //鑾峰彇褰撳墠app璇█ case HDLUniMP.UNI_EVENT_REPLY_OTHER_APP_LANGUAGE: { - uniCallbackData(UserConfigManage.getInstance().getCurrentAppLanguage(), callback); + uniCallbackData(mode_type, UserConfigManage.getInstance().getCurrentAppLanguage(), callback); } break; //鑾峰彇浣嶇疆淇℃伅 case HDLUniMP.UNI_EVENT_REPLY_OTHER_LOCATION_INFO: { - this.uniGetLocationInfo(data, callback); + 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; } } - HdlLogLogic.print("uni鍙戞潵鐨勬暟鎹�--->澶х被--->" + topic + "\r\n" + data, true); + } catch (Exception e) { - HdlLogLogic.print("uni鍙戞潵鐨勬暟鎹�--->" + e.getMessage(), true); + HdlLogLogic.print("uni--->鍙戦��--->" + e.getMessage(), true); } } @@ -385,43 +529,50 @@ /** * 鑾峰彇浣嶇疆淇℃伅,鍖呮嫭缁忕含搴� */ - private void uniGetLocationInfo(Object data, DCUniMPJSCallback callback) { - - // 鍒濆鍖朙ocationManager瀵硅薄 - LocationManager locationManager = (LocationManager) HDLApp.getInstance().getSystemService(Context.LOCATION_SERVICE); - JsonObject jsonObject = new JsonObject(); - //INTERNET 鍏佽浣跨敤缃戠粶 - //ACCESS_FINE_LOCATION 鍏佽浣跨敤GPS瀹氫綅 - //ACCESS_COARSE_LOCATION 鍏佽浣跨敤WIFI鐑偣鎴栧熀绔欐潵鑾峰彇绮楃暐鐨勫畾浣� - if (ActivityCompat.checkSelfPermission(HDLApp.getInstance(), Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(HDLApp.getInstance(), Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) { - jsonObject.addProperty("result", -2);//娌℃湁浣嶇疆淇℃伅鏉冮檺 - jsonObject.addProperty("des", "娌℃湁浣嶇疆淇℃伅鏉冮檺"); - uniCallbackData(jsonObject.toString(), callback); - return; + private void uniGetLocationInfo(String type, Object data, DCUniMPJSCallback callback) { + try { + // 鍒濆鍖朙ocationManager瀵硅薄 + LocationManager locationManager = (LocationManager) HDLApp.getInstance().getSystemService(Context.LOCATION_SERVICE); + Geolocation geolocation = new Geolocation(); + //INTERNET 鍏佽浣跨敤缃戠粶 + //ACCESS_FINE_LOCATION 鍏佽浣跨敤GPS瀹氫綅 + //ACCESS_COARSE_LOCATION 鍏佽浣跨敤WIFI鐑偣鎴栧熀绔欐潵鑾峰彇绮楃暐鐨勫畾浣� + if (ActivityCompat.checkSelfPermission(HDLApp.getInstance(), Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(HDLApp.getInstance(), Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) { + geolocation.setResult(-2); + geolocation.setDes(HDLApp.getInstance().getString(R.string.exception_no_location_information_permission)); + uniCallbackData(type, geolocation, callback); + return; + } + // 鍒ゆ柇璁惧鏄惁鏀寔瀹氫綅鍔熻兘 + if (!locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)) { + geolocation.setResult(-1); + geolocation.setDes(HDLApp.getInstance().getString(R.string.exception_the_location_function_is_not_enabled)); + //todo 鎻愮ず鐢ㄦ埛鎵撳紑瀹氫綅鍔熻兘鎴栬�呭紩瀵肩敤鎴峰幓绯荤粺璁剧疆椤甸潰鎵撳紑瀹氫綅鍔熻兘 + uniCallbackData(type, geolocation, callback); + return; + } + Location location = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER); + if (location == null) { + geolocation.setResult(-3); + geolocation.setDes(HDLApp.getInstance().getString(R.string.exception_unable_location_move10_meters_later)); + uniCallbackData(type, geolocation, callback); + return; + } + geolocation.setResult(0); + geolocation.setDes(HDLApp.getInstance().getString(R.string.succeed)); + BigDecimal latitude = BigDecimal.valueOf(location.getLatitude());//缁忓害 + BigDecimal longitude = BigDecimal.valueOf(location.getLongitude());//绾害 + double lat = latitude.setScale(6, RoundingMode.HALF_DOWN).doubleValue(); + double lon = longitude.setScale(6, RoundingMode.HALF_DOWN).doubleValue(); + geolocation.setLatitude(lat);//缁忓害 + geolocation.setLongitude(lon);//绾害 + uniCallbackData(type, geolocation, callback); + } catch (Exception e) { + Geolocation geolocation = new Geolocation(); + geolocation.setResult(-4); + geolocation.setDes(e.getMessage()); + uniCallbackData(type, geolocation, callback); } - - // 鍒ゆ柇璁惧鏄惁鏀寔瀹氫綅鍔熻兘 - if (!locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)) { - jsonObject.addProperty("result", -1);//娌″紑鍚畾浣嶅姛鑳� - jsonObject.addProperty("des", "娌″紑鍚畾浣嶅姛鑳�"); - //todo 鎻愮ず鐢ㄦ埛鎵撳紑瀹氫綅鍔熻兘鎴栬�呭紩瀵肩敤鎴峰幓绯荤粺璁剧疆椤甸潰鎵撳紑瀹氫綅鍔熻兘 - uniCallbackData(jsonObject.toString(), callback); - return; - } - Location location = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER); - if (location == null) { - jsonObject.addProperty("result", -3);//娌℃湁浣嶇疆淇℃伅鏉冮檺 - jsonObject.addProperty("des", "娌″紑鍚畾浣嶅姛鑳�"); - uniCallbackData(jsonObject.toString(), callback); - return; - } - jsonObject.addProperty("result", 0); - jsonObject.addProperty("des", "鎴愬姛"); - jsonObject.addProperty("longitude", location.getLongitude());//缁忓害 - jsonObject.addProperty("latitude", location.getLatitude());//绾害 - uniCallbackData(jsonObject.toString(), callback); - HdlLogLogic.print("缁忕含搴�--->缁忓害:" + location.getLongitude() + "绾害:" + location.getLatitude(), true); - } /** @@ -430,16 +581,16 @@ * * @param callback - */ - private void uniGetCloudOidList(Object data, DCUniMPJSCallback callback) { + private void uniGetCloudOidList(String type, Object data, DCUniMPJSCallback callback) { HdlOtaLogic.getInstance().getCloudOidList(new CloudCallBeak<List<DeviceOidInfoBean>>() { @Override public void onSuccess(List<DeviceOidInfoBean> obj) { - uniCallbackData(obj, callback); + uniCallbackData(type, obj, callback); } @Override public void onFailure(HDLException e) { - uniCallbackData(null, e.getCode(), e.getMsg(), callback); + uniCallbackData(type, null, e.getCode(), e.getMsg(), callback); } }); } @@ -448,17 +599,17 @@ * 鍚戜簯绔幏鍙栥�愬綋鍓嶈澶囧浐浠躲�戝垪琛� * 鍓嶆彁鏉′欢:璁惧鑷姩涓婃姤oid淇℃伅缁欎簯绔� */ - private void uniGetCurrentDeviceFirmwares(Object data, DCUniMPJSCallback callback) { + private void uniGetCurrentDeviceFirmwares(String type, Object data, DCUniMPJSCallback callback) { String deviceOidId = getKeyValue("deviceOidId", getKeyValue("data", data));//浜戠涓婅澶噄d HdlOtaLogic.getInstance().getCurrentDeviceFirmwares(deviceOidId, new CloudCallBeak<List<DeviceFirmwareBean>>() { @Override public void onSuccess(List<DeviceFirmwareBean> obj) { - uniCallbackData(obj, callback); + uniCallbackData(type, obj, callback); } @Override public void onFailure(HDLException e) { - uniCallbackData(null, e.getCode(), e.getMsg(), callback); + uniCallbackData(type, null, e.getCode(), e.getMsg(), callback); } }); } @@ -467,18 +618,18 @@ * 鍚戜簯绔幏鍙栥�愯澶囨柊鍥轰欢銆戝垪琛� * 鍓嶆彁鏉′欢:瑕侀�氳繃骞冲彴杞欢涓婁紶鏂板浐浠� */ - private void uniGetNewDeviceFirmwares(Object data, DCUniMPJSCallback callback) { + private void uniGetNewDeviceFirmwares(String type, Object data, DCUniMPJSCallback callback) { String hardwareModel = getKeyValue("hardwareModel", getKeyValue("data", data));//纭欢鍨嬪彿 String osImageId = getKeyValue("osImageId", getKeyValue("data", data));//绯荤粺闀滃儚id HdlOtaLogic.getInstance().getNewDeviceFirmwares(hardwareModel, osImageId, new CloudCallBeak<List<CloudDeviceFirmwaresBean>>() { @Override public void onSuccess(List<CloudDeviceFirmwaresBean> obj) { - uniCallbackData(obj, callback); + uniCallbackData(type, obj, callback); } @Override public void onFailure(HDLException e) { - uniCallbackData(null, e.getCode(), e.getMsg(), callback); + uniCallbackData(type, null, e.getCode(), e.getMsg(), callback); } }); } @@ -486,7 +637,7 @@ /** * 鑾峰彇銆愯澶囨湰鍦板浐浠躲�戝垪琛� */ - private void uniGetLocalFirmwares(Object data, DCUniMPJSCallback callback) { + private void uniGetLocalFirmwares(String type, Object data, DCUniMPJSCallback callback) { try { // String hardwareModel = getKeyValue("hardwareModel", getKeyValue("data", data));//纭欢鍨嬪彿 String osImageId = getKeyValue("osImageId", getKeyValue("data", data));//绯荤粺闀滃儚id @@ -504,15 +655,14 @@ 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); } } if (callback != null) { - this.uniCallbackData(list, callback); + this.uniCallbackData(type, list, callback); } } catch (Exception ignored) { } @@ -521,7 +671,7 @@ /** * 鍚戜簯绔彂璧枫�愯澶囧浐浠朵笅杞姐�戞寚浠� */ - private void uniDeviceFirmwareDownload(Object data, DCUniMPJSCallback callback) { + private void uniDeviceFirmwareDownload(String type, Object data, DCUniMPJSCallback callback) { // String deviceOidId = getKeyValue("deviceOidId", getKeyValue("data", data));//浜戠涓婅澶噄d String oid = getKeyValue("oid", getKeyValue("data", data));//璇ュ浐浠剁殑oid String imageId = getKeyValue("imageId", getKeyValue("data", data));//鍥轰欢闀滃儚id @@ -535,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) { @@ -545,11 +695,9 @@ } if (isBoolean) { - HdlLogLogic.print("鍐欏叆鏂板浐浠舵枃浠跺埌鍐呭瓨鎴愬姛.", true); - uniCallbackData(null, 0, "鍐欏叆鏂伴┍鍔ㄦ枃浠跺埌鍐呭瓨鎴愬姛", callback); + uniCallbackData(type, null, 0, HDLApp.getInstance().getString(R.string.writing_firmware_upgrade_memory_succeeded), callback); } else { - HdlLogLogic.print("涓嬭浇鍥轰欢鍗囩骇鏂囦欢澶辫触.", true); - uniCallbackData(null, -2, "涓嬭浇鍥轰欢鍗囩骇鏂囦欢澶辫触", callback); + uniCallbackData(type, null, -2, HDLApp.getInstance().getString(R.string.download_firmware_upgrade_file_failed), callback); } } }); @@ -558,8 +706,7 @@ @Override public void onFailure(HDLException e) { - HdlLogLogic.print("涓嬭浇鍥轰欢鏂囦欢鍒板唴瀛樺け璐�.", true); - uniCallbackData(null, e.getCode(), e.getMsg(), callback); + uniCallbackData(type, null, e.getCode(), e.getMsg(), callback); } }); } @@ -567,7 +714,7 @@ /** * 鍚戜簯绔彂璧枫�愯澶囧浐浠躲�戝崌绾TA鎸囦护 */ - private void uniUpgradeDeviceFirmware(Object data, DCUniMPJSCallback callback) { + private void uniUpgradeDeviceFirmware(String type, Object data, DCUniMPJSCallback callback) { String homeId = UserConfigManage.getInstance().getHomeId(); String deviceMac = getKeyValue("mac", getKeyValue("data", data));//閫嗗彉鍣ㄨ澶噈ac锛堟煡鎵緎ocket锛� String deviceOidId = getKeyValue("deviceOidId", getKeyValue("data", data));//浜戠涓婅澶噄d @@ -592,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(null, -2, "鏈湴鎵句笉鍒板崌绾у浐浠舵枃浠�,璇蜂笅杞藉ソ鍥轰欢鏂囦欢,鍐嶉噸鏂板崌绾�.", callback); + uniCallbackData(type, null, -2, HDLApp.getInstance().getString(R.string.found_locally_firmware_upgrade_file), callback); return; } String md5 = HDLMD5Utils.encodeMD5(data);//缃戝叧鍥轰欢闇�瑕� @@ -610,15 +757,14 @@ @Override public void onError(HDLLinkException e) { - HdlLogLogic.print("閫氱煡缁欑綉鍏冲崌绾у浐浠舵枃浠跺湴鍧�澶辫触,鏃犳硶鍗囩骇.", true); - uniCallbackData(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(null, -2, "鏈湴鏈嶅姟鏈夊紓甯稿け璐�,鏃犳硶鍗囩骇,", callback); + uniCallbackData(type, null, -2, HDLApp.getInstance().getString(R.string.local_service_fails), callback); } }); } else { @@ -629,23 +775,23 @@ public void onSuccess(CloudInverterDeviceBean cloudInverterDeviceBean) { //1锛氳繛鎺ヤ腑,2锛氭晠闅�,3锛氳繍琛�,4锛氱绾�,6:閫嗗彉鍣ㄨ繛涓嶄笂浜�(鑷畾涔�) if (cloudInverterDeviceBean == null) { - uniCallbackData(null, 6, HDLApp.getInstance().getString(R.string.ota_binding_cloud_upgrade_fails), callback); + uniCallbackData(type, null, 6, HDLApp.getInstance().getString(R.string.ota_binding_cloud_upgrade_fails), callback); return; } if (cloudInverterDeviceBean.getDeviceStatus() != 3) { - uniCallbackData(null, cloudInverterDeviceBean.getDeviceStatus(), HDLApp.getInstance().getString(R.string.ota_not_cloud_upgrade_fails), callback); + uniCallbackData(type, null, cloudInverterDeviceBean.getDeviceStatus(), HDLApp.getInstance().getString(R.string.ota_not_cloud_upgrade_fails), callback); return; } //4:杩愯 HdlOtaLogic.getInstance().upgradeDeviceFirmware(deviceOidId, firmwareVersionId, new CloudCallBeak<Boolean>() { @Override public void onSuccess(Boolean obj) { - uniCallbackData(obj, callback); + uniCallbackData(type, obj, callback); } @Override public void onFailure(HDLException e) { - uniCallbackData(null, e.getCode(), e.getMsg(), callback); + uniCallbackData(type, null, e.getCode(), e.getMsg(), callback); } }); @@ -653,7 +799,7 @@ @Override public void onFailure(HDLException e) { - uniCallbackData(null, e.getCode(), e.getMsg(), callback); + uniCallbackData(type, null, e.getCode(), e.getMsg(), callback); } }); } @@ -668,23 +814,23 @@ public void onSuccess(CloudInverterDeviceBean cloudInverterDeviceBean) { //1锛氳繛鎺ヤ腑,2锛氭晠闅�,3锛氳繍琛�,4锛氱绾�,6:閫嗗彉鍣ㄨ繛涓嶄笂浜�(鑷畾涔�) if (cloudInverterDeviceBean == null) { - uniCallbackData(null, 6, HDLApp.getInstance().getString(R.string.ota_binding_cloud_upgrade_fails), callback); + uniCallbackData(type, null, 6, HDLApp.getInstance().getString(R.string.ota_binding_cloud_upgrade_fails), callback); return; } if (cloudInverterDeviceBean.getDeviceStatus() != 3) { - uniCallbackData(null, cloudInverterDeviceBean.getDeviceStatus(), HDLApp.getInstance().getString(R.string.ota_not_cloud_upgrade_fails), callback); + uniCallbackData(type, null, cloudInverterDeviceBean.getDeviceStatus(), HDLApp.getInstance().getString(R.string.ota_not_cloud_upgrade_fails), callback); return; } //4:杩愯 HdlOtaLogic.getInstance().upgradeDeviceFirmware(deviceOidId, firmwareVersionId, new CloudCallBeak<Boolean>() { @Override public void onSuccess(Boolean obj) { - uniCallbackData(obj, callback); + uniCallbackData(type, obj, callback); } @Override public void onFailure(HDLException e) { - uniCallbackData(null, e.getCode(), e.getMsg(), callback); + uniCallbackData(type, null, e.getCode(), e.getMsg(), callback); } }); @@ -692,7 +838,7 @@ @Override public void onFailure(HDLException e) { - uniCallbackData(null, e.getCode(), e.getMsg(), callback); + uniCallbackData(type, null, e.getCode(), e.getMsg(), callback); } }); } @@ -704,17 +850,17 @@ * 鍚戜簯绔幏鍙栥�愬綋鍓嶈澶囬┍鍔ㄣ�戝垪琛� * 鍓嶆彁鏉′欢:璁惧鑷姩涓婃姤oid淇℃伅缁欎簯绔� */ - private void uniGetCurrentGatewayDrivers(Object data, DCUniMPJSCallback callback) { + private void uniGetCurrentGatewayDrivers(String type, Object data, DCUniMPJSCallback callback) { String deviceOid = getKeyValue("oid", getKeyValue("data", data)); HdlOtaLogic.getInstance().getCurrentGatewayDrivers(deviceOid, new CloudCallBeak<List<GatewayDriverBean>>() { @Override public void onSuccess(List<GatewayDriverBean> obj) { - uniCallbackData(obj, callback); + uniCallbackData(type, obj, callback); } @Override public void onFailure(HDLException e) { - uniCallbackData(null, e.getCode(), e.getMsg(), callback); + uniCallbackData(type, null, e.getCode(), e.getMsg(), callback); } }); } @@ -723,18 +869,18 @@ * 鍚戜簯绔幏鍙栥�愯澶囨柊椹卞姩銆戝垪琛� * 鍓嶆彁鏉′欢:瑕侀�氳繃骞冲彴杞欢涓婁紶鏂伴┍鍔� */ - private void uniGetNewGatewayDrivers(Object data, DCUniMPJSCallback callback) { + private void uniGetNewGatewayDrivers(String type, Object data, DCUniMPJSCallback callback) { String driveCode = getKeyValue("driveCode", getKeyValue("data", data));//椹卞姩缂栧彿鎴栭┍鍔ㄥ悕绉� String osImageId = getKeyValue("osImageId", getKeyValue("data", data));//椹卞姩绫诲瀷id HdlOtaLogic.getInstance().getNewGatewayDrivers(driveCode, osImageId, new CloudCallBeak<CloudGatewayDriversBean>() { @Override public void onSuccess(CloudGatewayDriversBean obj) { - uniCallbackData(obj, callback); + uniCallbackData(type, obj, callback); } @Override public void onFailure(HDLException e) { - uniCallbackData(null, e.getCode(), e.getMsg(), callback); + uniCallbackData(type, null, e.getCode(), e.getMsg(), callback); } }); } @@ -742,7 +888,7 @@ /** * 鑾峰彇銆愯澶囨湰鍦伴┍鍔ㄣ�戝垪琛� */ - private void uniGetLocalDrivers(Object data, DCUniMPJSCallback callback) { + private void uniGetLocalDrivers(String type, Object data, DCUniMPJSCallback callback) { try { String driveCode = getKeyValue("driveCode", getKeyValue("data", data));//椹卞姩缂栧彿鎴栭┍鍔ㄥ悕绉� // String osImageId = getKeyValue("osImageId", getKeyValue("data", data));//椹卞姩绫诲瀷id @@ -765,10 +911,10 @@ } } if (callback != null) { - this.uniCallbackData(list, callback); + this.uniCallbackData(type, list, callback); } } catch (Exception exception) { - this.uniCallbackData(new ArrayList<>(), callback); + this.uniCallbackData(type, new ArrayList<>(), callback); } } @@ -776,7 +922,7 @@ /** * 鍚戜簯绔彂璧枫�愯澶囬┍鍔ㄤ笅杞姐�戞寚浠� */ - private void uniGatewayDriverDownload(Object data, DCUniMPJSCallback callback) { + private void uniGatewayDriverDownload(String type, Object data, DCUniMPJSCallback callback) { // String deviceOid = getKeyValue("oid", getKeyValue("data", data));//閫嗗彉鍣ㄨ澶噊id String driverCode = getKeyValue("driverCode", getKeyValue("data", data));//椹卞姩缂栫爜 @@ -802,11 +948,9 @@ HdlFileLogic.getInstance().deleteFile(drivePathFileName);//涓嬭浇澶辫触锛屽垹闄や笉瀹屾暣椹卞姩鏂囦欢; } if (isBoolean) { - HdlLogLogic.print("鍐欏叆鏂伴┍鍔ㄦ枃浠跺埌鍐呭瓨鎴愬姛.", true); - uniCallbackData(null, 0, "鍐欏叆鏂伴┍鍔ㄦ枃浠跺埌鍐呭瓨鎴愬姛", callback); + uniCallbackData(type, null, 0, HDLApp.getInstance().getString(R.string.writing_drive_memory_succeeded), callback); } else { - HdlLogLogic.print("涓嬭浇椹卞姩鍗囩骇鏂囦欢澶辫触.", true); - uniCallbackData(null, -2, "涓嬭浇椹卞姩鍗囩骇鏂囦欢澶辫触", callback); + uniCallbackData(type, null, -2, HDLApp.getInstance().getString(R.string.download_drive_file_failed), callback); } } }); @@ -815,8 +959,7 @@ @Override public void onFailure(HDLException e) { - HdlLogLogic.print("涓嬭浇椹卞姩鏂囦欢鍒板唴瀛樺け璐�.", true); - uniCallbackData(null, e.getCode(), e.getMsg(), callback); + uniCallbackData(type, null, e.getCode(), e.getMsg(), callback); } }); } @@ -824,7 +967,7 @@ /** * 鍚戜簯绔彂璧枫�愯澶囬┍鍔ㄣ�戝崌绾TA鎸囦护 */ - private void uniUpgradeGatewayDriver(Object data, DCUniMPJSCallback callback) { + private void uniUpgradeGatewayDriver(String type, Object data, DCUniMPJSCallback callback) { String homeId = UserConfigManage.getInstance().getHomeId(); String deviceMac = getKeyValue("mac", getKeyValue("data", data));//閫嗗彉鍣ㄨ澶噈ac锛堟煡鎵緎ocket锛� @@ -851,7 +994,7 @@ String drivePathFileName = HdlFileLogic.getInstance().getDrivePathFileName(driverCode, version); byte[] data = HdlFileLogic.getInstance().readFileByte(drivePathFileName); if (data == null || data.length == 0) { - uniCallbackData(null, -2, "鏈湴鎵句笉鍒板崌绾ч┍鍔ㄦ枃浠�,璇蜂笅杞藉ソ椹卞姩鏂囦欢,鍐嶉噸鏂板崌绾�.", callback); + uniCallbackData(type, null, -2, HDLApp.getInstance().getString(R.string.found_locally_drive_file), callback); return; } String md5 = HDLMD5Utils.encodeMD5(data);//缃戝叧椹卞姩闇�瑕� @@ -866,15 +1009,14 @@ @Override public void onError(HDLLinkException e) { - HdlLogLogic.print("閫氱煡缁欑綉鍏冲崌绾ч┍鍔ㄦ枃浠跺湴鍧�澶辫触,鏃犳硶鍗囩骇.", true); - uniCallbackData(null, -2, "閫氱煡缁欑綉鍏冲崌绾ч┍鍔ㄦ枃浠跺湴鍧�澶辫触,鏃犳硶鍗囩骇,", callback); + uniCallbackData(type, null, -2, HDLApp.getInstance().getString(R.string.notify_gateway_drive_failed), callback); } }); } @Override public void onServiceDisconnected(ComponentName name) { - uniCallbackData(null, -2, "鏈湴鏈嶅姟鏈夊紓甯稿け璐�,鏃犳硶鍗囩骇,", callback); + uniCallbackData(type, null, -2, HDLApp.getInstance().getString(R.string.local_service_fails), callback); } }); } else { @@ -885,23 +1027,23 @@ public void onSuccess(CloudInverterDeviceBean cloudInverterDeviceBean) { //1锛氳繛鎺ヤ腑,2锛氭晠闅�,3锛氳繍琛�,4锛氱绾�,6:閫嗗彉鍣ㄨ繛涓嶄笂浜�(鑷畾涔�) if (cloudInverterDeviceBean == null) { - uniCallbackData(null, 6, HDLApp.getInstance().getString(R.string.ota_binding_cloud_upgrade_fails), callback); + uniCallbackData(type, null, 6, HDLApp.getInstance().getString(R.string.ota_binding_cloud_upgrade_fails), callback); return; } if (cloudInverterDeviceBean.getDeviceStatus() != 3) { - uniCallbackData(null, cloudInverterDeviceBean.getDeviceStatus(), HDLApp.getInstance().getString(R.string.ota_not_cloud_upgrade_fails), callback); + uniCallbackData(type, null, cloudInverterDeviceBean.getDeviceStatus(), HDLApp.getInstance().getString(R.string.ota_not_cloud_upgrade_fails), callback); return; } //4:杩愯 HdlOtaLogic.getInstance().upgradeGatewayDriver(deviceOid, driverVersionId, new CloudCallBeak<Boolean>() { @Override public void onSuccess(Boolean obj) { - uniCallbackData(obj, callback); + uniCallbackData(type, obj, callback); } @Override public void onFailure(HDLException e) { - uniCallbackData(null, e.getCode(), e.getMsg(), callback); + uniCallbackData(type, null, e.getCode(), e.getMsg(), callback); } }); @@ -909,7 +1051,7 @@ @Override public void onFailure(HDLException e) { - uniCallbackData(null, e.getCode(), e.getMsg(), callback); + uniCallbackData(type, null, e.getCode(), e.getMsg(), callback); } }); } @@ -924,23 +1066,23 @@ public void onSuccess(CloudInverterDeviceBean cloudInverterDeviceBean) { //1锛氳繛鎺ヤ腑,2锛氭晠闅�,3锛氳繍琛�,4锛氱绾�,6:閫嗗彉鍣ㄨ繛涓嶄笂浜�(鑷畾涔�) if (cloudInverterDeviceBean == null) { - uniCallbackData(null, 6, HDLApp.getInstance().getString(R.string.ota_binding_cloud_upgrade_fails), callback); + uniCallbackData(type, null, 6, HDLApp.getInstance().getString(R.string.ota_binding_cloud_upgrade_fails), callback); return; } if (cloudInverterDeviceBean.getDeviceStatus() != 3) { - uniCallbackData(null, cloudInverterDeviceBean.getDeviceStatus(), HDLApp.getInstance().getString(R.string.ota_not_cloud_upgrade_fails), callback); + uniCallbackData(type, null, cloudInverterDeviceBean.getDeviceStatus(), HDLApp.getInstance().getString(R.string.ota_not_cloud_upgrade_fails), callback); return; } //4:杩愯 HdlOtaLogic.getInstance().upgradeGatewayDriver(deviceOid, driverVersionId, new CloudCallBeak<Boolean>() { @Override public void onSuccess(Boolean obj) { - uniCallbackData(obj, callback); + uniCallbackData(type, obj, callback); } @Override public void onFailure(HDLException e) { - uniCallbackData(null, e.getCode(), e.getMsg(), callback); + uniCallbackData(type, null, e.getCode(), e.getMsg(), callback); } }); @@ -948,7 +1090,7 @@ @Override public void onFailure(HDLException e) { - uniCallbackData(null, e.getCode(), e.getMsg(), callback); + uniCallbackData(type, null, e.getCode(), e.getMsg(), callback); } }); } @@ -959,15 +1101,15 @@ /** * 鍙栨秷涓嬭浇銆愰┍鍔�,鍥轰欢銆戝崌绾ф枃浠� */ - private void uniCancelDownloadingUpgradeFile(Object data, DCUniMPJSCallback callback) { + private void uniCancelDownloadingUpgradeFile(String type, Object data, DCUniMPJSCallback callback) { HdlOtaLogic.getInstance().stopDownloadUpgradeFile(); - uniCallbackData(null, 0, "鍙栨秷涓嬭浇鎴愬姛.", callback); + uniCallbackData(type, null, 0, HDLApp.getInstance().getString(R.string.cancel_download_successfully), callback); } /** * 鍙栨秷銆愰┍鍔�,鍥轰欢銆戝崌绾� */ - private void uniCancelUpgrade(Object data, DCUniMPJSCallback callback) { + private void uniCancelUpgrade(String type, Object data, DCUniMPJSCallback callback) { HdlOtaLogic.getInstance().cancelUpgrade("", new LinkCallBack<Boolean>() { @Override public void onSuccess(Boolean obj) { @@ -984,7 +1126,7 @@ /** * 寮�鍚湇鍔� */ - private void uniOpenService(Object data, DCUniMPJSCallback callback) { + private void uniOpenService(String type, Object data, DCUniMPJSCallback callback) { HdlOtaLogic.getInstance().startLocalService(new ServiceConnection() { @Override public void onServiceConnected(ComponentName name, IBinder service) { @@ -1000,7 +1142,7 @@ /** * 鍏抽棴鏈嶅姟 */ - private void uniCloseService(Object data, DCUniMPJSCallback callback) { + private void uniCloseService(String type, Object data, DCUniMPJSCallback callback) { HdlOtaLogic.getInstance().unLocalService(); } @@ -1027,22 +1169,111 @@ } /** + * 鑾峰彇鐢ㄦ埛淇℃伅 + * + * @param data uni鏁版嵁 + * @param callback uni鍥炶皟 + */ + private void uniGetUserInfo(String type, Object data, DCUniMPJSCallback callback) { + HdlAccountLogic.getInstance().getMemberInfo_C(new CloudCallBeak<CUserInfo>() { + @Override + public void onSuccess(CUserInfo cUserInfo) { + if (cUserInfo == null) { + return; + } + UserConfigManage.getInstance().setBingPhone(cUserInfo.getMemberPhone()); + UserConfigManage.getInstance().setBingEmail(cUserInfo.getMemberEmail()); + UserConfigManage.getInstance().Save(); + //鑾峰彇鐢ㄦ埛澶村儚璺緞 + if (cUserInfo.getMemberHeadIcon().contains("http")) { + UserConfigManage.getInstance().setUserImageUrl(cUserInfo.getMemberHeadIcon()); + //鏇存柊鐢ㄦ埛澶村儚 + uniCallbackData(type, cUserInfo, callback); + } else { + HdlAccountLogic.getInstance().getImageKey_C(cUserInfo.getMemberHeadIcon(), new CloudCallBeak<String>() { + @Override + public void onSuccess(String url) { + cUserInfo.setMemberHeadIcon(url); + UserConfigManage.getInstance().setUserImageUrl(cUserInfo.getMemberHeadIcon()); + uniCallbackData(type, cUserInfo, callback); + } + + @Override + public void onFailure(HDLException e) { + uniCallbackData(type, cUserInfo, callback); + } + }); + } + + } + + @Override + public void onFailure(HDLException e) { + uniCallbackData(type, null, e.getCode(), e.getMsg(), callback); + } + }); + } + + /** + * 鑾峰彇鐢ㄦ埛澶村儚 + * + * @param data uni鏁版嵁 + * @param callback uni鍥炶皟 + */ + private void uniGetImageKey(String type, Object data, DCUniMPJSCallback callback) { + String imageKey = getKeyValue("imageKey", getKeyValue("data", data)); + HdlAccountLogic.getInstance().getImageKey_C(imageKey, new CloudCallBeak<String>() { + @Override + public void onSuccess(String url) { + uniCallbackData(type, url, callback); + } + + @Override + public void onFailure(HDLException e) { + uniCallbackData(type, null, e.getCode(), e.getMsg(), callback); + } + }); + } + + + /** * 閫嗗彉鍣ㄦ竻绌轰綇瀹卛d * * @param data uni鏁版嵁 * @param callback uni鍥炶皟 */ - private void uniClearInverterHomeId(Object data, DCUniMPJSCallback callback) { + private void uniClearInverterHomeId(String type, 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); + uniCallbackData(type, null, callback); } @Override public void onError(HDLLinkException e) { - uniCallbackData(null, e.getCode(), e.getMsg(), callback); + uniCallbackData(type, null, e.getCode(), e.getMsg(), callback); + } + }); + } + + /** + * 鑾峰彇鏈鐞�/鏈娑堟伅鏁伴噺 + * + * @param data uni鏁版嵁 + * @param callback uni鍥炶皟 + */ + private void uniGetMessageNumber(String type, Object data, DCUniMPJSCallback callback) { + String homeId = getKeyValue("homeId", getKeyValue("data", data)); + HdlMessageLogic.getInstance().getMessageUntreatedCount(homeId, new CloudCallBeak<String>() { + @Override + public void onSuccess(String data) { + uniCallbackData(type, data, callback); + } + + @Override + public void onFailure(HDLException e) { + uniCallbackData(type, null, e.getCode(), e.getMsg(), callback); } }); } @@ -1053,9 +1284,13 @@ * @param data uni鏁版嵁 * @param callback uni鍥炶皟 */ - private void uniUploadDataToCloud(Object data, DCUniMPJSCallback callback) { + private void uniUploadDataToCloud(String type, Object data, DCUniMPJSCallback callback) { String mac = getKeyValue("mac", getKeyValue("data", data)); - HdlDeviceLogic.getInstance().uploadDataToCloud(UserConfigManage.getInstance().getHomeId(), mac, null); + List<GatewayBean> list = new ArrayList<>(); + GatewayBean gatewayBean = new GatewayBean(); + gatewayBean.setDevice_mac(mac); + list.add(gatewayBean); + HdlDeviceLogic.getInstance().uploadOidDataToCloud(UserConfigManage.getInstance().getHomeId(), list, true, null); } /** @@ -1064,7 +1299,7 @@ * @param data uni鏁版嵁 * @param callback uni鍥炶皟 */ - private void uniEditInverterTime(Object data, DCUniMPJSCallback callback) { + private void uniEditInverterTime(String type, Object data, DCUniMPJSCallback callback) { String mac = getKeyValue("mac", getKeyValue("data", data)); String date = getKeyValue("date", getKeyValue("data", data)); String time = getKeyValue("time", getKeyValue("data", data)); @@ -1072,12 +1307,12 @@ HdlDeviceLogic.getInstance().editGatewayTime(mac, date, time, timezone, new LinkCallBack<Boolean>() { @Override public void onSuccess(Boolean obj) { - uniCallbackData(true, callback); + uniCallbackData(type, true, callback); } @Override public void onError(HDLLinkException e) { - uniCallbackData(null, e.getCode(), e.getMsg(), callback); + uniCallbackData(type, null, e.getCode(), e.getMsg(), callback); } }); } @@ -1088,19 +1323,19 @@ * @param data uni鏁版嵁 * @param callback uni鍥炶皟 */ - private void uniGetInverterTime(Object data, DCUniMPJSCallback callback) { + private void uniGetInverterTime(String type, Object data, DCUniMPJSCallback callback) { String mac = getKeyValue("mac", getKeyValue("data", data)); HdlDeviceLogic.getInstance().getGatewayTime(mac, new LinkCallBack<DeviceTimeBean>() { @Override public void onSuccess(DeviceTimeBean deviceTimeBean) { if (callback != null) { - uniCallbackData(deviceTimeBean, callback); + uniCallbackData(type, deviceTimeBean, callback); } } @Override public void onError(HDLLinkException e) { - uniCallbackData(null, e.getCode(), e.getMsg(), callback); + uniCallbackData(type, null, e.getCode(), e.getMsg(), callback); } }); } @@ -1111,23 +1346,24 @@ * @param data uni鏁版嵁 * @param callback uni鍥炶皟 */ - private void uniGetInverterOidList(Object data, DCUniMPJSCallback callback) { + private void uniGetInverterOidList(String type, 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); + uniCallbackData(type, list, callback); } } @Override public void onError(HDLLinkException e) { - uniCallbackData(null, e.getCode(), e.getMsg(), callback); + uniCallbackData(type, null, e.getCode(), e.getMsg(), callback); } }); } + /** * 閫嗗彉鍣ㄦ坊鍔犲埌浜戠涓� @@ -1135,7 +1371,7 @@ * @param data uni鏁版嵁 * @param callback uni鍥炶皟 */ - private void uniAddInverterDeviceToCloud(Object data, DCUniMPJSCallback callback) { + private void uniAddInverterDeviceToCloud(String type, Object data, DCUniMPJSCallback callback) { String mac = getKeyValue("mac", getKeyValue("data", data)); String homeId = UserConfigManage.getInstance().getHomeId(); HdlDeviceLogic.getInstance().setGatewayRemoteParam(homeId, mac, new LinkCallBack<Boolean>() { @@ -1146,35 +1382,106 @@ public void onSuccess(Boolean obj) { GatewayBean gatewayBean = HDLLinkLocalGateway.getInstance().getLocalGateway(mac); if (gatewayBean == null) { - uniCallbackData(null, -100, HDLApp.getInstance().getString(R.string.The_gateway_cannot_be_found_locally), callback); + uniCallbackData(type, null, -100, HDLApp.getInstance().getString(R.string.The_gateway_cannot_be_found_locally), callback); return; } 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); + uniCallbackData(type, null, callback); } @Override public void onFailure(HDLException e) { - uniCallbackData(null, e.getCode(), e.getMsg(), callback); + uniCallbackData(type, null, e.getCode(), e.getMsg(), callback); } }); } @Override public void onError(HDLLinkException e) { - uniCallbackData(null, e.getCode(), e.getMsg(), callback); + uniCallbackData(type, null, e.getCode(), e.getMsg(), callback); } }); } @Override public void onError(HDLLinkException e) { - uniCallbackData(null, e.getCode(), e.getMsg(), callback); + uniCallbackData(type, null, e.getCode(), e.getMsg(), callback); } }); + } + + /** + * 澶氫釜閫嗗彉鍣ㄦ坊鍔犲埌浜戠涓� + * + * @param data uni鏁版嵁 + * @param callback uni鍥炶皟 + */ + private void uniAddAllInverterDeviceToCloud(String type, Object data, DCUniMPJSCallback callback) { +// 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(); + List<GatewayBean> list = gson.fromJson(devices, typeOfT); + if (list == null || list.size() == 0) { + uniCallbackData(type, null, -100, HDLApp.getInstance().getString(R.string.The_gateway_cannot_be_found_locally), callback); + return; + } + //璁板綍鏉℃暟 + AtomicInteger atomicInteger = new AtomicInteger(0); + final boolean[] is_boolean = {false}; + for (int i = 0; i < list.size(); i++) { + GatewayBean gatewayBean = list.get(i); + HdlDeviceLogic.getInstance().setGatewayRemoteParam(homeId, gatewayBean.getDevice_mac(), new LinkCallBack<Boolean>() { + @Override + public void onSuccess(Boolean obj) { + HdlDeviceLogic.getInstance().editGatewayParam(gatewayBean.getDevice_mac(), new LinkCallBack<Boolean>() { + @Override + public void onSuccess(Boolean obj) { + atomicInteger.set(atomicInteger.get() + 1); + //鏈�鍚庝竴鏉℃墠鍋氭坊鍔犻�嗗彉鍣ㄩ�昏緫澶勭悊 + if (atomicInteger.get() == list.size()) { + HdlDeviceLogic.getInstance().addAllInverterDeviceToCloud(homeId, list, new CloudCallBeak<Boolean>() { + @Override + public void onSuccess(Boolean obj) { + uniCallbackData(type, null, callback); + } + + @Override + public void onFailure(HDLException e) { + uniCallbackData(type, null, e.getCode(), e.getMsg(), callback); + } + }); + } + + } + + @Override + public void onError(HDLLinkException e) { + uniCallbackData(type, null, e.getCode(), e.getMsg(), callback); + is_boolean[0] = true; + } + }); + } + + @Override + public void onError(HDLLinkException e) { + uniCallbackData(type, null, e.getCode(), e.getMsg(), callback); + is_boolean[0] = true; + } + }); + if (is_boolean[0]) { + //鍙湁涓棿鏈変竴鏉℃寚浠よ缃け璐�,榛樿鍏ㄩ儴澶辫触; + break; + } + } + } catch (Exception ignored) { + } } /** @@ -1183,18 +1490,18 @@ * @param data uni鏁版嵁 * @param callback uni鍥炶皟 */ - private void uniDelInverterDevice(Object data, DCUniMPJSCallback callback) { + private void uniDelInverterDevice(String type, Object data, DCUniMPJSCallback callback) { String deviceId = getKeyValue("deviceId", getKeyValue("data", data)); String homeId = UserConfigManage.getInstance().getHomeId(); HdlDeviceLogic.getInstance().delInverterDevice(homeId, deviceId, new CloudCallBeak<Boolean>() { @Override public void onSuccess(Boolean obj) { - uniCallbackData(null, callback); + uniCallbackData(type, null, callback); } @Override public void onFailure(HDLException e) { - uniCallbackData(null, e.getCode(), e.getMsg(), callback); + uniCallbackData(type, null, e.getCode(), e.getMsg(), callback); } }); } @@ -1205,17 +1512,20 @@ * * @param callback uni鍥炶皟 */ - private void uniSearchGateway(DCUniMPJSCallback callback) { - HdlDeviceLogic.getInstance().searchCurrentHomeGateway(new GatewayCallBack() { + private void uniSearchGateway(String type, DCUniMPJSCallback callback) { + + + HdlDeviceLogic.getInstance().searchAllNetworkGateway(new GatewayCallBack() { @Override public void onSuccess(List<GatewayBean> gatewayBeanList) { - uniCallbackData(gatewayBeanList, callback); + uniCallbackData(type, gatewayBeanList, callback); } @Override public void onError(HDLLinkException e) { //鍙戦�佸け璐� - uniCallbackData(null, e.getCode(), e.getMsg(), callback); + uniCallbackData(type, null, e.getCode(), e.getMsg(), callback); + } }); @@ -1226,37 +1536,188 @@ * * @param callback uni鍥炶皟 */ - private void uniGetCurrentHomeLocalAndCloudGatewayList(Object data, DCUniMPJSCallback callback) { + private void uniGetCurrentHomeLocalAndCloudGatewayList(String type, 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) { - //杩涙潵浣忓畢璇︽儏閮借涓婁紶涓�娆id鍒楄〃鍒颁簯绔�; - HdlDeviceLogic.getInstance().uploadDataToCloud(homeId, gatewayBean.getDevice_mac(), null); + if (list == null || list.size() == 0) { + if (callback != null) { + uniCallbackData(type, list, callback); + } + return; + } + 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(list, callback); - } - - + //杩涙潵浣忓畢璇︽儏閮借涓婁紶涓�娆id鍒楄〃鍒颁簯绔�; + HdlDeviceLogic.getInstance().uploadOidDataToCloud(homeId, list, false, null); } @Override public void onFailure(HDLException e) { if (callback != null) { - uniCallbackData(null, e.getCode(), e.getMsg(), callback); + uniCallbackData(type, null, e.getCode(), e.getMsg(), callback); } } }); + } + + /** + * 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(); } @@ -1274,10 +1735,11 @@ * @param data modbus鏁版嵁 * @param callback 鍥炶皟 */ - private void sendModBus(Object data, DCUniMPJSCallback callback) { + private void sendModBus(String type, Object data, DCUniMPJSCallback callback) { String tempData = getKeyValue("data", data); if (TextUtils.isEmpty(tempData)) { - HdlLogLogic.print("data鍐呭涓虹┖--->", false); + uniCallbackData(type, null, -2, "data鍐呭涓虹┖", callback); + //HdlLogLogic.print("data鍐呭涓虹┖--->", false); return; } ModBusBean modBusBean = new Gson().fromJson(tempData, ModBusBean.class); @@ -1288,22 +1750,25 @@ // modBusBean.setOid("0101050217BBC400"); // } if (modBusBean.getMac() == null || modBusBean.getData() == null) { - HdlLogLogic.print("鍐呭涓虹┖--->oid--->" + modBusBean.getMac() + " data--->" + Arrays.toString(modBusBean.getData()), false); + uniCallbackData(type, null, -2, "鍙戦�佸け璐�,(mac鎴栬�卭id)涓虹┖", callback); + //HdlLogLogic.print("uni--->鍙戦��--->ModBus--->鍙戦�佸け璐�,(mac鎴栬�卭id)涓虹┖." + Arrays.toString(modBusBean.getData()), true); return; } - + //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) { - Log.d("data", Arrays.toString(data)); - uniCallbackData(data, callback); + uniCallbackData(type, data, callback); +// HdlLogLogic.print("uni--->鎺ユ敹--->ModBus--->" + Arrays.toString(data), true); + } @Override public void onError(HDLLinkException e) { - uniCallbackData(null, e.getCode(), e.getMsg(), callback); + uniCallbackData(type, null, e.getCode(), e.getMsg(), callback); +// HdlLogLogic.print("uni--->鎺ユ敹--->ModBus--->" + e.getMsg() + "(" + e.getCode() + ")", true); } }); } @@ -1326,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()); @@ -1336,7 +1804,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(); } @@ -1346,32 +1814,32 @@ * 缁勮uni鍙戦�佹暟鎹牸寮� * 鍥炶皟鏁版嵁缁檜ni灏忕▼搴�,缁熶竴鍦ㄨ繖閲屽鐞�; * + * @param type 璇锋眰鐨勫皬绫� * @param obj 闄勫姞鏁版嵁 * @param code 鐘舵�佺爜-鎴愬姛锛�0锛夋垨鑰呭け璐ワ紙-2锛� * @param msg 缁撴灉鎻忚堪鐨勪俊鎭� * @param callback 鍥炶皟 */ - private void uniCallbackData(Object obj, int code, String msg, DCUniMPJSCallback callback) { + private void uniCallbackData(String type, Object obj, int code, String msg, DCUniMPJSCallback callback) { 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--->缁勮uni鍙戦�佹暟鎹牸寮�--->" + new Gson().toJson(uniCallBackBaseBean), false); - + HdlLogLogic.print("uni--->鍥炲--->" + type + "--->" + new Gson().toJson(uniCallBackBaseBean), true); } } catch (Exception e) { - HdlLogLogic.print("uni--->缁勮uni鍙戦�佹暟鎹牸寮�--->" + e.getMessage(), false); + HdlLogLogic.print("uni--->鍥炲--->" + type + "--->" + e.getMessage(), true); } } - private void uniCallbackData(Object obj, DCUniMPJSCallback callback) { - uniCallbackData(obj, HDLLinkCode.HDL_SUCCESS.getCode(), HDLLinkCode.HDL_SUCCESS.getMsg(), callback); + private void uniCallbackData(String type, Object obj, DCUniMPJSCallback callback) { + uniCallbackData(type, obj, HDLLinkCode.HDL_SUCCESS.getCode(), HDLLinkCode.HDL_SUCCESS.getMsg(), callback); } /** -- Gitblit v1.8.0