| | |
| | | |
| | | 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; |
| | |
| | | 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; |
| | |
| | | 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.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; |
| | |
| | | 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)) { |
| | |
| | | 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: { |
| | |
| | | //逆变器清空住宅id |
| | | case HDLUniMP.UNI_EVENT_REPLY_DEVICE_CLEAR_DATA: { |
| | | this.uniClearInverterHomeId(mode_type, data, callback); |
| | | } |
| | | break; |
| | | //spk属性编辑 |
| | | case HDLUniMP.UNI_EVENT_REPLY_DEVICE_Link_edit_SEND: { |
| | | this.uniLinkSpkAttributeEdit(mode_type, data, callback); |
| | | } |
| | | break; |
| | | //spk属性读取 |
| | | case HDLUniMP.UNI_EVENT_REPLY_DEVICE_Link_read_SEND: { |
| | | this.uniLinkSpkAttributeRead(mode_type, data, callback); |
| | | } |
| | | break; |
| | | //获取未处理/未读消息数量 |
| | |
| | | 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)) { |
| | | //我的模块 |
| | |
| | | // com.alibaba.fastjson.JSONArray jsonArray = JSON.parseArray(data); |
| | | try { |
| | | String devices = getKeyValue("devices", getKeyValue("data", data)); |
| | | String homeId = UserConfigManage.getInstance().getHomeId(); //getKeyValue("homeId", getKeyValue("data", data)); |
| | | Gson gson = new Gson(); |
| | | Type typeOfT = new TypeToken<List<GatewayBean>>() { |
| | | }.getType(); |
| | |
| | | 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}; |
| | |
| | | |
| | | } |
| | | |
| | | /** |
| | | * 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); |
| | | } |
| | | }); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 发送modbus协议数据 |
| | |
| | | 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()); |