| | |
| | | } |
| | | |
| | | |
| | | |
| | | // //模拟设备列表数据 |
| | | // List<GatewayBean> mockData = getGatewayDeviceListMockData(3); |
| | | // if (mockData.size() > 0) { |
| | |
| | | } |
| | | String requestUrl = HttpApi.POST_Device_Oid; |
| | | JsonObject json = new JsonObject(); |
| | | json.addProperty("operationSource", "PROGRAM_ENERGY");// |
| | | json.addProperty("operationSource", "PROGRAM_ENERGY");//操作来源:固定传:PROGRAM_ENERGY = 能源,PROGRAM = studio 默认 |
| | | json.addProperty("homeId", homeId); |
| | | JsonArray jsonArray = new JsonArray(); |
| | | for (int i = 0; i < oidList.size(); i++) { |
| | |
| | | String requestUrl = HttpApi.POST_Device_IncrAdd; |
| | | JsonObject json = new JsonObject(); |
| | | json.addProperty("homeId", homeId); |
| | | json.addProperty("operationSource", "PROGRAM_ENERGY");//操作来源:固定传:PROGRAM_ENERGY = 能源,PROGRAM = studio 默认 |
| | | JsonArray jsonArray = new JsonArray(); |
| | | for (int i = 0; i < oidList.size(); i++) { |
| | | OidBean oidBean = oidList.get(i); |
| | |
| | | |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 删除oid(逆变器,bms,电池包) |
| | | * |
| | | * @param mac 网关mac |
| | | * @param linkCallBack 回调 |
| | | */ |
| | | public void deleteOid(String mac, JsonArray oidList, LinkCallBack<Boolean> linkCallBack) { |
| | | String requestUrl = TopicApi.DELETE_DEVICE; |
| | | TcpClient.getInstance().sendDataToLinkGateway(mac, requestUrl, oidList, "", new HDLLinkCallBack() { |
| | | @Override |
| | | public void onSuccess(String json) { |
| | | if (linkCallBack != null) { |
| | | linkCallBack.onSuccess(true); |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | public void onError(HDLLinkException e) { |
| | | if (linkCallBack != null) { |
| | | linkCallBack.onError(e); |
| | | } |
| | | } |
| | | }); |
| | | |
| | | } |
| | | |
| | | /** |
| | | * 获取逆变器列表,整合云端逆变器列表和本地逆变器列表(设备类型有:并网逆变器,离线逆变器,负载中心设备); |
| | | * 注意:有外网,以云端设备列表为准;云端没有,本地存在,则删除本地;否则,没有外网只有局域网,以本地为主,搜索多少个设备就显示多少个 |
| | |
| | | if (loadCentreDeviceList == null) { |
| | | if (cloudCallBeak != null) { |
| | | //没有数据,默认返回本地逆变器列表; |
| | | cloudCallBeak.onSuccess(IntegrateCloudAndLocalData(homeId, null,false)); |
| | | cloudCallBeak.onSuccess(IntegrateCloudAndLocalData(homeId, null, false)); |
| | | } |
| | | return; |
| | | } |
| | |
| | | public void onFailure(HDLException e) { |
| | | //向云端获取负载中心设备列表失败后,默认返回本地逆变器列表; |
| | | if (cloudCallBeak != null) { |
| | | cloudCallBeak.onSuccess(IntegrateCloudAndLocalData(homeId, null,false)); |
| | | cloudCallBeak.onSuccess(IntegrateCloudAndLocalData(homeId, null, false)); |
| | | } |
| | | } |
| | | }); |
| | |
| | | if (list == null || list.size() == 0) { |
| | | //云端没有绑定逆变器,默认返回本地逆变器列表; |
| | | if (cloudCallBeak != null) { |
| | | cloudCallBeak.onSuccess(IntegrateCloudAndLocalData(homeId, list,false)); |
| | | cloudCallBeak.onSuccess(IntegrateCloudAndLocalData(homeId, list, false)); |
| | | } |
| | | return; |
| | | } |
| | | AtomicInteger atomicInteger = new AtomicInteger(0); |
| | | for (int i = 0; i < list.size(); i++) { |
| | | CloudInverterDeviceBean cloudInverterDeviceBean = list.get(i); |
| | | if (cloudInverterDeviceBean == null || !cloudInverterDeviceBean.isActivate()) { |
| | | //未激活设备 |
| | | atomicInteger.set(atomicInteger.get() + 1); |
| | | //注意:这个逆变器只能本地控制(因为拿不到mqtt通讯秘钥以及GatewayID,无法远程控制) |
| | | //更新逆变器本地缓存信息 |
| | | refreshGatewayCacheData(false, cloudInverterDeviceBean, null, homeId); |
| | | //到最后一条,才处理回调 |
| | | if (atomicInteger.get() == list.size()) { |
| | | if (cloudCallBeak != null) { |
| | | cloudCallBeak.onSuccess(IntegrateCloudAndLocalData(homeId, list, false)); |
| | | } |
| | | } |
| | | HdlLogLogic.print("设备未激活(mac:" + cloudInverterDeviceBean.getOsn() + "))", true); |
| | | } |
| | | //获取远程设备通讯信息(拿到网关ID,mqtt通讯秘钥) |
| | | getDeviceRemoteInfo(homeId, cloudInverterDeviceBean.getSpk(), cloudInverterDeviceBean.getOsn(), new CloudCallBeak<DeviceRemoteInfo>() { |
| | | @Override |
| | |
| | | //到最后一条,才处理回调 |
| | | if (atomicInteger.get() == list.size()) { |
| | | if (cloudCallBeak != null) { |
| | | cloudCallBeak.onSuccess(IntegrateCloudAndLocalData(homeId, list,false)); |
| | | cloudCallBeak.onSuccess(IntegrateCloudAndLocalData(homeId, list, false)); |
| | | } |
| | | } |
| | | } |
| | |
| | | //到最后一条,才处理回调 |
| | | if (atomicInteger.get() == list.size()) { |
| | | if (cloudCallBeak != null) { |
| | | cloudCallBeak.onSuccess(IntegrateCloudAndLocalData(homeId, list,false)); |
| | | cloudCallBeak.onSuccess(IntegrateCloudAndLocalData(homeId, list, false)); |
| | | } |
| | | } |
| | | HdlLogLogic.print("获取设备远程通讯信息失败(mac:" + cloudInverterDeviceBean.getOsn() + ")------" + e.getMsg() + "(" + e.getCode() + ")", true); |
| | |
| | | gatewayBean.setDevice_model(cloudInverterDeviceBean.getOmodel());//设备型号 |
| | | } |
| | | gatewayBean.setSpk(cloudInverterDeviceBean.getSpk());//设备spk |
| | | gatewayBean.setActivate(cloudInverterDeviceBean.isActivate());//是否激活设备(true:激活;false:未激活) |
| | | |
| | | |
| | | } |