2024年09月06日17:45:55
1,登录增加同意并登录;
2,消息中心增加负载中心;
3,搜索增加负载中心spk;
| | |
| | | HDLSDKSPUtils.clear(); |
| | | |
| | | //重新登陆,默认同意隐私政策 |
| | | UserConfigManage.getInstance().setAcceiptPolicy(true); |
| | | UserConfigManage.getInstance().setAcceiptPolicy(false); |
| | | //重新设定一个时间 |
| | | UserConfigManage.getInstance().setLoginDateTime(0); |
| | | UserConfigManage.getInstance().Save(); |
| | |
| | | public static final String message_count = "message_count"; |
| | | public static final String homepage_title_tab_switch = "homepage_title_tab_switch"; |
| | | |
| | | public static final String home_del= "home_del"; |
| | | public static final String home_del = "home_del"; |
| | | |
| | | //网络状态发生变化 |
| | | public static final String network_change_post = "network_change"; |
| | | //电站状态 |
| | | public static final String station_status = "station_status"; |
| | | //电站界面 |
| | | public static final String station_page = "station_status"; |
| | | //消息界面 |
| | | public static final String uni_open_message_page = "message_page"; |
| | | public static final String station_edit = "station_edit"; |
| | | |
| | | |
| | |
| | | String inv = "INV";//逆变器 |
| | | String bms = "BMS";//BMS控制盒 |
| | | String battery = "BATTERY";//电池单元 |
| | | String load_centre = "LOAD_CENTRE";//负载控制中心 |
| | | |
| | | } |
| | | |
| | |
| | | public static final String POST_Device_startup = "/home-wisdom/app/powerStation/device/inverter/startup"; |
| | | //获取设备详情(云端) |
| | | public static final String POST_Device_info = "/home-wisdom/app/device/info"; |
| | | //获取电站下负载控制中心列表 |
| | | public static final String POST_Device_loadCentreDevices = "/home-wisdom/app/powerStation/device/loadCentreDevices"; |
| | | |
| | | |
| | | //endregion |
| | |
| | | import android.os.SystemClock; |
| | | import android.text.TextUtils; |
| | | |
| | | import androidx.annotation.NonNull; |
| | | import androidx.annotation.Nullable; |
| | | |
| | | import com.google.gson.Gson; |
| | | import com.google.gson.JsonArray; |
| | | import com.google.gson.JsonObject; |
| | |
| | | import com.hdl.sdk.link.core.config.HDLLinkConfig; |
| | | import com.hdl.sdk.link.gateway.HDLLinkLocalGateway; |
| | | import com.hdl.sdk.link.gateway.type.GatewayMasterType; |
| | | import com.huawei.hms.support.api.entity.core.JosBaseReq; |
| | | |
| | | |
| | | import java.lang.reflect.Type; |
| | |
| | | * @param cloudCallBeak 返回逆变器列表 |
| | | */ |
| | | public void getCurrentHomeLocalAndCloudGatewayList(String homeId, CloudCallBeak<List<GatewayBean>> cloudCallBeak) { |
| | | HdlDeviceLogic.getInstance().searchCurrentHomeGateway(homeId, new GatewayCallBack() { |
| | | searchCurrentHomeGateway(homeId, new GatewayCallBack() { |
| | | @Override |
| | | public void onSuccess(List<GatewayBean> gatewayBeanList) { |
| | | //局域网有2种情况(1:有局域网,有外网;2:有局域网,没有外网); |
| | | HdlDeviceLogic.getInstance().getCloudInverterDeviceList(homeId, new CloudCallBeak<List<CloudInverterDeviceBean>>() { |
| | | //向云端获取逆变器列表 |
| | | getCloudInverterDeviceList(homeId, new CloudCallBeak<List<CloudInverterDeviceBean>>() { |
| | | @Override |
| | | public void onSuccess(List<CloudInverterDeviceBean> list) { |
| | | List<String> removeSidList = new ArrayList<>(); |
| | | for (int j = 0; j < HDLLinkLocalGateway.getInstance().getGatewayList().size(); j++) { |
| | | GatewayBean gatewayBean = HDLLinkLocalGateway.getInstance().getGatewayList().get(j); |
| | | if (!querySidInverter(list, gatewayBean.getSid())) { |
| | | //本地有,云端没有,删除本地; |
| | | removeSidList.add(gatewayBean.getSid()); |
| | | public void onSuccess(List<CloudInverterDeviceBean> inverterDeviceList) { |
| | | //向云端获取负载中心列表 |
| | | getLoadCentreDeviceList(homeId, new CloudCallBeak<List<CloudInverterDeviceBean>>() { |
| | | @Override |
| | | public void onSuccess(List<CloudInverterDeviceBean> loadCentreDeviceList) { |
| | | if (loadCentreDeviceList != null) { |
| | | //合并负载中心设备列表,然后在一起做处理 |
| | | inverterDeviceList.addAll(loadCentreDeviceList); |
| | | } |
| | | List<String> removeSidList = new ArrayList<>(); |
| | | for (int j = 0; j < HDLLinkLocalGateway.getInstance().getGatewayList().size(); j++) { |
| | | GatewayBean gatewayBean = HDLLinkLocalGateway.getInstance().getGatewayList().get(j); |
| | | if (querySidInverter(inverterDeviceList, gatewayBean.getSid())) { |
| | | //本地有,云端没有,删除本地; |
| | | removeSidList.add(gatewayBean.getSid()); |
| | | } |
| | | } |
| | | for (int i = 0; i < removeSidList.size(); i++) { |
| | | //删除本地的逆变器 |
| | | removeLocalInverter(removeSidList.get(i)); |
| | | } |
| | | //情况1:有局域网,有外网; |
| | | setDeviceRemoteInfo(inverterDeviceList, homeId, cloudCallBeak); |
| | | } |
| | | } |
| | | for (int i = 0; i < removeSidList.size(); i++) { |
| | | //删除本地的逆变器 |
| | | removeLocalInverter(removeSidList.get(i)); |
| | | } |
| | | //情况1:有局域网,有外网; |
| | | setDeviceRemoteInfo(list, homeId, cloudCallBeak); |
| | | |
| | | @Override |
| | | public void onFailure(HDLException e) { |
| | | //向云端获取负载中心设备列表失败后,仍然处理逆变器设备列表 |
| | | List<String> removeSidList = new ArrayList<>(); |
| | | for (int j = 0; j < HDLLinkLocalGateway.getInstance().getGatewayList().size(); j++) { |
| | | GatewayBean gatewayBean = HDLLinkLocalGateway.getInstance().getGatewayList().get(j); |
| | | if (querySidInverter(inverterDeviceList, gatewayBean.getSid())) { |
| | | //本地有,云端没有,删除本地; |
| | | removeSidList.add(gatewayBean.getSid()); |
| | | } |
| | | } |
| | | for (int i = 0; i < removeSidList.size(); i++) { |
| | | //删除本地的逆变器 |
| | | removeLocalInverter(removeSidList.get(i)); |
| | | } |
| | | //情况1:有局域网,有外网; |
| | | setDeviceRemoteInfo(inverterDeviceList, homeId, cloudCallBeak); |
| | | } |
| | | }); |
| | | |
| | | |
| | | } |
| | | |
| | | @Override |
| | | public void onFailure(HDLException e) { |
| | | ///情况2:有局域网,没有外网; |
| | | //本地有逆变器列表,获取云端绑定逆变器失败,默认返回本地逆变器列表; |
| | | if (cloudCallBeak != null) { |
| | | cloudCallBeak.onSuccess(getCurrentHomeGatewayList(homeId)); |
| | | } |
| | | //向云端获取负载中心列表 |
| | | getLoadCentreDeviceList(homeId, new CloudCallBeak<List<CloudInverterDeviceBean>>() { |
| | | @Override |
| | | public void onSuccess(List<CloudInverterDeviceBean> loadCentreDeviceList) { |
| | | if (loadCentreDeviceList == null) { |
| | | if (cloudCallBeak != null) { |
| | | cloudCallBeak.onSuccess(getCurrentHomeGatewayList(homeId)); |
| | | } |
| | | return; |
| | | } |
| | | List<String> removeSidList = new ArrayList<>(); |
| | | for (int j = 0; j < HDLLinkLocalGateway.getInstance().getGatewayList().size(); j++) { |
| | | GatewayBean gatewayBean = HDLLinkLocalGateway.getInstance().getGatewayList().get(j); |
| | | if (gatewayBean.getSpk().equals(INVERTER_DEVICE_SPK)) { |
| | | //不是负载中心的spk不做处理; |
| | | continue; |
| | | } |
| | | if (querySidInverter(loadCentreDeviceList, gatewayBean.getSid())) { |
| | | //本地有,云端没有,删除本地; |
| | | removeSidList.add(gatewayBean.getSid()); |
| | | } |
| | | } |
| | | for (int i = 0; i < removeSidList.size(); i++) { |
| | | //删除本地的逆变器 |
| | | removeLocalInverter(removeSidList.get(i)); |
| | | } |
| | | //情况1:有局域网,有外网; |
| | | setDeviceRemoteInfo(loadCentreDeviceList, homeId, cloudCallBeak); |
| | | } |
| | | |
| | | @Override |
| | | public void onFailure(HDLException e) { |
| | | //向云端获取负载中心设备列表失败后,默认返回本地逆变器列表; |
| | | if (cloudCallBeak != null) { |
| | | cloudCallBeak.onSuccess(getCurrentHomeGatewayList(homeId)); |
| | | } |
| | | } |
| | | }); |
| | | |
| | | // if (cloudCallBeak != null) { |
| | | // cloudCallBeak.onSuccess(getCurrentHomeGatewayList(homeId)); |
| | | // } |
| | | } |
| | | }); |
| | | } |
| | |
| | | @Override |
| | | public void onError(HDLLinkException e) { |
| | | //外网只有1种情况(本地搜索逆变器列表失败了) |
| | | HdlDeviceLogic.getInstance().getCloudInverterDeviceList(homeId, new CloudCallBeak<List<CloudInverterDeviceBean>>() { |
| | | getCloudInverterDeviceList(homeId, new CloudCallBeak<List<CloudInverterDeviceBean>>() { |
| | | @Override |
| | | public void onSuccess(List<CloudInverterDeviceBean> list) { |
| | | //外网进来先【默认】清空本地逆变器列表 |
| | |
| | | } |
| | | |
| | | /** |
| | | * 通过sid查询逆变器 |
| | | * 通过sid查询逆变器是否存绑定在云端 |
| | | * |
| | | * @param list 云端上逆变器列表 |
| | | * @return 存在为true, 否则为false |
| | | * @return true不存在,否则存在 |
| | | */ |
| | | private boolean querySidInverter(List<CloudInverterDeviceBean> list, String sid) { |
| | | int exists_value = -1; |
| | | for (int i = 0; i < list.size(); i++) { |
| | | CloudInverterDeviceBean cloudInverterDeviceBean = list.get(i); |
| | | if (sid.equals(cloudInverterDeviceBean.getSid())) { |
| | | return true; |
| | | exists_value = 1; |
| | | break; |
| | | } |
| | | } |
| | | return false; |
| | | return exists_value == -1; |
| | | } |
| | | |
| | | /** |
| | |
| | | }); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 获取电站下负载控制中心列表 |
| | | * |
| | | * @param homeId 电站id |
| | | */ |
| | | public void getLoadCentreDeviceList(String homeId, CloudCallBeak<List<CloudInverterDeviceBean>> cloudCallBeak) { |
| | | String requestUrl = HttpApi.POST_Device_loadCentreDevices; |
| | | JsonObject json = new JsonObject(); |
| | | json.addProperty("homeId", homeId); |
| | | // json.addProperty("zoneType", "password");//区域 |
| | | |
| | | HttpClient.getInstance().requestHttp(requestUrl, json.toString(), new CloudCallBeak<String>() { |
| | | @Override |
| | | public void onSuccess(String jsonStr) { |
| | | if (TextUtils.isEmpty(jsonStr)) { |
| | | if (cloudCallBeak != null) { |
| | | cloudCallBeak.onSuccess(new ArrayList<>()); |
| | | } |
| | | } |
| | | Type type = new TypeToken<List<CloudInverterDeviceBean>>() { |
| | | }.getType(); |
| | | List<CloudInverterDeviceBean> list = new Gson().fromJson(jsonStr, type); |
| | | if (cloudCallBeak != null) { |
| | | cloudCallBeak.onSuccess(list); |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | public void onFailure(HDLException e) { |
| | | if (cloudCallBeak != null) { |
| | | cloudCallBeak.onFailure(e); |
| | | } |
| | | } |
| | | }); |
| | | } |
| | | |
| | | /** |
| | | * 刷新逆变器缓存信息(包括设置mqtt秘钥) |
| | | * 注: //目的是为了获取拿到网关ID,mqtt通讯秘钥等信息,缓存本地逆变器列表里面,发送数据数据时自动去缓存列表里面去查找; |
| | |
| | | */ |
| | | public List<String> getGatewaySpk() { |
| | | List<String> spks = new ArrayList<>(); |
| | | spks.add(DEVICE_SPK); |
| | | spks.add(INVERTER_DEVICE_SPK); |
| | | return spks; |
| | | } |
| | | |
| | |
| | | return false; |
| | | } |
| | | |
| | | public final String DEVICE_SPK = "energy.hdl_inverter"; |
| | | /** |
| | | * 逆变器spk |
| | | */ |
| | | public final String INVERTER_DEVICE_SPK = "energy.hdl_inverter"; |
| | | } |
| | |
| | | * 前提条件:设备自动上报oid信息给云端 |
| | | * |
| | | * @param deviceOidId oid云端id |
| | | * @param oid 设备oid |
| | | * @param homeId 电站id |
| | | * @param callBack - |
| | | */ |
| | | public void getCurrentDeviceFirmwares(String deviceOidId, CloudCallBeak<List<DeviceFirmwareBean>> callBack) { |
| | | public void getCurrentDeviceFirmwares(String deviceOidId, String oid, String homeId, CloudCallBeak<List<DeviceFirmwareBean>> callBack) { |
| | | String requestUrl = HttpApi.POST_OTA_GET_DeviceFirmwares; |
| | | JsonObject json = new JsonObject(); |
| | | json.addProperty("deviceOidId", deviceOidId); |
| | | json.addProperty("homeId", UserConfigManage.getInstance().getHomeId()); |
| | | if (!TextUtils.isEmpty(deviceOidId)) { |
| | | json.addProperty("deviceOidId", deviceOidId); |
| | | } else { |
| | | json.addProperty("oid", oid); |
| | | } |
| | | json.addProperty("homeId", homeId); |
| | | HttpClient.getInstance().requestHttp(requestUrl, json.toString(), new CloudCallBeak<String>() { |
| | | @Override |
| | | public void onSuccess(String json) { |
| | |
| | | * 前提条件:设备自动上报oid信息给云端 |
| | | * |
| | | * @param oid 网关设备oid |
| | | * @param homeId 电站id |
| | | * @param callBack - |
| | | */ |
| | | public void getCurrentGatewayDrivers(String oid, CloudCallBeak<List<GatewayDriverBean>> callBack) { |
| | | public void getCurrentGatewayDrivers(String oid, String homeId, CloudCallBeak<List<GatewayDriverBean>> callBack) { |
| | | String requestUrl = HttpApi.POST_OTA_GET_GatewayDrivers; |
| | | JsonObject json = new JsonObject(); |
| | | json.addProperty("homeId", UserConfigManage.getInstance().getHomeId()); |
| | | json.addProperty("homeId", homeId); |
| | | json.addProperty("oid", oid); |
| | | |
| | | HttpClient.getInstance().requestHttp(requestUrl, json.toString(), new CloudCallBeak<String>() { |
| | |
| | | } |
| | | break; |
| | | |
| | | |
| | | } |
| | | |
| | | } else if (HDLUniMP.UNI_EVENT_REPLY_DEVICE_MODEL.equals(topic)) { |
| | |
| | | break; |
| | | //消息中心 |
| | | case HDLUniMP.UNI_EVENT_REPLY_MINE_MESSAGE_CENTER: { |
| | | String homeId = getKeyValue("homeId", getKeyValue("data", data)); |
| | | String isShowFault = getKeyValue("isShowFault", getKeyValue("data", data)); |
| | | Intent intent = new Intent(); |
| | | intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); |
| | | intent.setClass(HDLApp.getInstance(), MessageCenterList.class); |
| | | if (!TextUtils.isEmpty(homeId)) { |
| | | intent.putExtra("homeId", homeId); |
| | | } |
| | | if (!TextUtils.isEmpty(isShowFault)) { |
| | | intent.putExtra("isShowFault", isShowFault); |
| | | } |
| | | HDLApp.getInstance().startActivity(intent); |
| | | } |
| | | break; |
| | |
| | | */ |
| | | private void uniGetCurrentDeviceFirmwares(String type, Object data, DCUniMPJSCallback callback) { |
| | | String deviceOidId = getKeyValue("deviceOidId", getKeyValue("data", data));//云端上设备id |
| | | HdlOtaLogic.getInstance().getCurrentDeviceFirmwares(deviceOidId, new CloudCallBeak<List<DeviceFirmwareBean>>() { |
| | | String oid = getKeyValue("oid", getKeyValue("data", data));//设备oid |
| | | String homeId = getKeyValue("homeId", getKeyValue("data", data));//电站id |
| | | HdlOtaLogic.getInstance().getCurrentDeviceFirmwares(deviceOidId, oid, homeId, new CloudCallBeak<List<DeviceFirmwareBean>>() { |
| | | @Override |
| | | public void onSuccess(List<DeviceFirmwareBean> obj) { |
| | | uniSuccessCallback(type, obj, 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>>() { |
| | | String homeId = getKeyValue("homeId", getKeyValue("data", data));//电站id |
| | | HdlOtaLogic.getInstance().getCurrentGatewayDrivers(deviceOid, homeId, new CloudCallBeak<List<GatewayDriverBean>>() { |
| | | @Override |
| | | public void onSuccess(List<GatewayDriverBean> obj) { |
| | | uniSuccessCallback(type, obj, callback); |
| | |
| | | } |
| | | }); |
| | | } |
| | | } else if (event.getTopic().contains(ConstantManage.station_status)) { |
| | | currentFragmentIndex = 1; |
| | | bottomViewChangeOfStyle(); |
| | | showFragment(); |
| | | HdlCommonLogic.getInstance().postEventBusSticky(ConstantManage.homepage_title_tab_switch, event.getType()); |
| | | |
| | | } else if (event.getTopic().contains(ConstantManage.homepage_title_tab_switch)) { |
| | | if (event.getType().contains(ConstantManage.station_page)) { |
| | | //从首页指定电站状态打开电站界面 |
| | | currentFragmentIndex = 1; |
| | | bottomViewChangeOfStyle(); |
| | | showFragment(); |
| | | } |
| | | } |
| | | } |
| | | |
| | |
| | | getDialog(); |
| | | return; |
| | | } |
| | | showLoading(getString(R.string.home_login_be_logging_in)); |
| | | HdlAccountLogic.getInstance().regionByAccount(account, new CloudCallBeak<HDLUserRegionBean>() { |
| | | @Override |
| | | public void onSuccess(HDLUserRegionBean obj) { |
| | | //开发环境 |
| | | // String APP_REGIONURL_TEST = "http://47.114.131.143:27199"; |
| | | // AppConfigManage.setUserRegionUrl(APP_REGIONURL_TEST); |
| | | //初始化服务域名 |
| | | AppConfigManage.setUserRegionUrl(obj.getRegionUrl()); |
| | | HDLLinkPMUser.getInstance().setUserRegionUrl(AppConfigManage.getUserRegionUrl()); |
| | | HdlAccountLogic.getInstance().loginByPassword(account, password, new ILoginCallBack() { |
| | | @Override |
| | | public void onSuccess(HDLLoginBean obj) { |
| | | if (UserConfigManage.getInstance().isBAccount()) { |
| | | restoreButtonStyleToInitializeState(); |
| | | //安装商跳转界面 |
| | | startActivity(BPowerStationActivity.class); |
| | | hideLoading(); |
| | | finish(); |
| | | } else { |
| | | //C端需要先获取电站列表; |
| | | HdlResidenceLogic.getInstance().getResidenceIdList("", "", new CloudCallBeak<List<HouseIdBean>>() { |
| | | @Override |
| | | public void onSuccess(List<HouseIdBean> obj) { |
| | | hideLoading(); |
| | | HdlResidenceLogic.getInstance().setHouseIdList(obj); |
| | | restoreButtonStyleToInitializeState(); |
| | | if (UserConfigManage.getInstance().isBAccount()) { |
| | | //安装商跳转界面 |
| | | startActivity(BPowerStationActivity.class); |
| | | } else { |
| | | //C端用户跳转界面 |
| | | startActivity(CPowerStationActivity.class); |
| | | |
| | | } |
| | | finish(); |
| | | } |
| | | |
| | | @Override |
| | | public void onFailure(HDLException e) { |
| | | hideLoading(); |
| | | restoreButtonStyleToInitializeState(); |
| | | if (UserConfigManage.getInstance().isBAccount()) { |
| | | //安装商跳转界面 |
| | | startActivity(BPowerStationActivity.class); |
| | | } else { |
| | | //C端用户跳转界面 |
| | | startActivity(CPowerStationActivity.class); |
| | | } |
| | | finish(); |
| | | } |
| | | }); |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | public void onFailure(HDLException e) { |
| | | hideLoading(); |
| | | if (e.getCode() == 10019) { |
| | | //用户已经被锁定错误码 |
| | | try { |
| | | if (e.getmExtra() != null) { |
| | | if (System.currentTimeMillis() < e.getmExtra().getUnlockTime()) { |
| | | long time = e.getmExtra().getUnlockTime() - System.currentTimeMillis(); |
| | | int minute = Integer.parseInt(TimeUtils.getMinuteTime(time)); |
| | | HdlThreadLogic.toast(_mActivity, e.getMsg() + getString(R.string.residue) + minute + getString(R.string.minute) + "(" + e.getCode() + ")"); |
| | | } |
| | | } |
| | | } catch (Exception ee) { |
| | | HdlThreadLogic.toast(_mActivity, e.getMsg() + "(" + e.getCode() + ")"); |
| | | } |
| | | |
| | | } else { |
| | | HdlThreadLogic.toast(_mActivity, e.getMsg() + "(" + e.getCode() + ")"); |
| | | } |
| | | } |
| | | }); |
| | | } |
| | | |
| | | @Override |
| | | public void onFailure(HDLException e) { |
| | | hideLoading(); |
| | | HdlThreadLogic.toast(_mActivity, e.getMsg() + "(" + e.getCode() + ")"); |
| | | } |
| | | }); |
| | | //登录 |
| | | Login(account, password); |
| | | |
| | | |
| | | } |
| | |
| | | Intent intent = new Intent(); |
| | | intent.setClass(LoginActivity.this, ChangePassword.class); |
| | | startActivity(intent); |
| | | } |
| | | }); |
| | | |
| | | } |
| | | |
| | | /** |
| | | * 登录 |
| | | * |
| | | * @param account 账号 |
| | | * @param password 密码 |
| | | */ |
| | | private void Login(String account, String password) { |
| | | showLoading(getString(R.string.home_login_be_logging_in)); |
| | | HdlAccountLogic.getInstance().regionByAccount(account, new CloudCallBeak<HDLUserRegionBean>() { |
| | | @Override |
| | | public void onSuccess(HDLUserRegionBean obj) { |
| | | //开发环境 |
| | | // String APP_REGIONURL_TEST = "http://47.114.131.143:27199"; |
| | | // AppConfigManage.setUserRegionUrl(APP_REGIONURL_TEST); |
| | | //初始化服务域名 |
| | | AppConfigManage.setUserRegionUrl(obj.getRegionUrl()); |
| | | HDLLinkPMUser.getInstance().setUserRegionUrl(AppConfigManage.getUserRegionUrl()); |
| | | HdlAccountLogic.getInstance().loginByPassword(account, password, new ILoginCallBack() { |
| | | @Override |
| | | public void onSuccess(HDLLoginBean obj) { |
| | | if (UserConfigManage.getInstance().isBAccount()) { |
| | | restoreButtonStyleToInitializeState(); |
| | | //安装商跳转界面 |
| | | startActivity(BPowerStationActivity.class); |
| | | hideLoading(); |
| | | finish(); |
| | | } else { |
| | | //C端需要先获取电站列表; |
| | | HdlResidenceLogic.getInstance().getResidenceIdList("", "", new CloudCallBeak<List<HouseIdBean>>() { |
| | | @Override |
| | | public void onSuccess(List<HouseIdBean> obj) { |
| | | hideLoading(); |
| | | HdlResidenceLogic.getInstance().setHouseIdList(obj); |
| | | restoreButtonStyleToInitializeState(); |
| | | if (UserConfigManage.getInstance().isBAccount()) { |
| | | //安装商跳转界面 |
| | | startActivity(BPowerStationActivity.class); |
| | | } else { |
| | | //C端用户跳转界面 |
| | | startActivity(CPowerStationActivity.class); |
| | | |
| | | } |
| | | finish(); |
| | | } |
| | | |
| | | @Override |
| | | public void onFailure(HDLException e) { |
| | | hideLoading(); |
| | | restoreButtonStyleToInitializeState(); |
| | | if (UserConfigManage.getInstance().isBAccount()) { |
| | | //安装商跳转界面 |
| | | startActivity(BPowerStationActivity.class); |
| | | } else { |
| | | //C端用户跳转界面 |
| | | startActivity(CPowerStationActivity.class); |
| | | } |
| | | finish(); |
| | | } |
| | | }); |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | public void onFailure(HDLException e) { |
| | | hideLoading(); |
| | | if (e.getCode() == 10019) { |
| | | //用户已经被锁定错误码 |
| | | try { |
| | | if (e.getmExtra() != null) { |
| | | if (System.currentTimeMillis() < e.getmExtra().getUnlockTime()) { |
| | | long time = e.getmExtra().getUnlockTime() - System.currentTimeMillis(); |
| | | int minute = Integer.parseInt(TimeUtils.getMinuteTime(time)); |
| | | HdlThreadLogic.toast(_mActivity, e.getMsg() + getString(R.string.residue) + minute + getString(R.string.minute) + "(" + e.getCode() + ")"); |
| | | } |
| | | } |
| | | } catch (Exception ee) { |
| | | HdlThreadLogic.toast(_mActivity, e.getMsg() + "(" + e.getCode() + ")"); |
| | | } |
| | | |
| | | } else { |
| | | HdlThreadLogic.toast(_mActivity, e.getMsg() + "(" + e.getCode() + ")"); |
| | | } |
| | | } |
| | | }); |
| | | } |
| | | |
| | | @Override |
| | | public void onFailure(HDLException e) { |
| | | hideLoading(); |
| | | HdlThreadLogic.toast(_mActivity, e.getMsg() + "(" + e.getCode() + ")"); |
| | | } |
| | | }); |
| | | |
| | |
| | | UserConfigManage.getInstance().setAcceiptPolicy(true); |
| | | viewBinding.homeLoginPrivacyCheckIv.setSelected(true); |
| | | confirmationCancelDialog.dismiss(); |
| | | String account = viewBinding.homeLoginAccountEt.getText().toString().replace(" ", ""); |
| | | String password = viewBinding.homeLoginPasswordEt.getText().toString().replace(" ", ""); |
| | | Login(account, password); |
| | | } |
| | | }); |
| | | confirmationCancelDialog.setNoOnclickListener(new ConfirmationCancelDialog.onNoOnclickListener() { |
| | |
| | | viewBinding.homeAllIl.parentLl.setOnClickListener(new View.OnClickListener() { |
| | | @Override |
| | | public void onClick(View v) { |
| | | HdlCommonLogic.getInstance().postEventBus(ConstantManage.station_status, PowerStationStatus.All); |
| | | HdlCommonLogic.getInstance().postEventBus(ConstantManage.homepage_title_tab_switch,ConstantManage.station_page, PowerStationStatus.All); |
| | | |
| | | } |
| | | }); |
| | |
| | | viewBinding.homeFaultsIl.parentLl.setOnClickListener(new View.OnClickListener() { |
| | | @Override |
| | | public void onClick(View v) { |
| | | HdlCommonLogic.getInstance().postEventBus(ConstantManage.station_status, PowerStationStatus.malfunction); |
| | | HdlCommonLogic.getInstance().postEventBus(ConstantManage.homepage_title_tab_switch,ConstantManage.station_page, PowerStationStatus.malfunction); |
| | | } |
| | | }); |
| | | //离线 |
| | | viewBinding.homeOfflineIl.parentLl.setOnClickListener(new View.OnClickListener() { |
| | | @Override |
| | | public void onClick(View v) { |
| | | HdlCommonLogic.getInstance().postEventBus(ConstantManage.station_status, PowerStationStatus.off); |
| | | HdlCommonLogic.getInstance().postEventBus(ConstantManage.homepage_title_tab_switch,ConstantManage.station_page, PowerStationStatus.off); |
| | | } |
| | | }); |
| | | //待接入 |
| | | viewBinding.homeConnectedIl.parentLl.setOnClickListener(new View.OnClickListener() { |
| | | @Override |
| | | public void onClick(View v) { |
| | | HdlCommonLogic.getInstance().postEventBus(ConstantManage.station_status, PowerStationStatus.connecting); |
| | | HdlCommonLogic.getInstance().postEventBus(ConstantManage.homepage_title_tab_switch,ConstantManage.station_page, PowerStationStatus.connecting); |
| | | } |
| | | }); |
| | | //时间选择器 |
| | |
| | | } |
| | | } |
| | | }); |
| | | //设备调试 |
| | | viewBinding.fragmentMeLineDeviceDebugIl.fragmentMeLineRightIconClickIv.setOnClickListener(new View.OnClickListener() { |
| | | @Override |
| | | public void onClick(View v) { |
| | | //设备调试 |
| | | String path = HDLUniMP.UNI_EVENT_OPEN_MINE_DEVICEDEBUG; |
| | | HdlUniLogic.getInstance().openUniMP(path, null); |
| | | } |
| | | }); |
| | | //员工管理(主账号才显示) |
| | | viewBinding.fragmentMeLineUserManagementIl.fragmentMeLineRightIconClickIv.setOnClickListener(new View.OnClickListener() { |
| | | @Override |
| | |
| | | HdlUniLogic.getInstance().openUniMP(path, null); |
| | | } |
| | | }); |
| | | //设置 |
| | | viewBinding.fragmentMeLineSetIl.fragmentMeLineRightIconClickIv.setOnClickListener(new View.OnClickListener() { |
| | | @Override |
| | | public void onClick(View v) { |
| | |
| | | startActivity(intent); |
| | | } |
| | | }); |
| | | //关于 |
| | | viewBinding.fragmentMeLineAsregardsIl.fragmentMeLineCl.setOnClickListener(new View.OnClickListener() { |
| | | @Override |
| | | public void onClick(View v) { |
| | |
| | | * 初始化界面 |
| | | */ |
| | | private void initView() { |
| | | |
| | | //设备调试 |
| | | viewBinding.fragmentMeLineDeviceDebugIl.fragmentMeLineLeftIconIv.setImageResource(R.drawable.device_debug); |
| | | viewBinding.fragmentMeLineDeviceDebugIl.fragmentMeLineTitleIv.setText(R.string.device_debugging); |
| | | //员工管理 |
| | | viewBinding.fragmentMeLineUserManagementIl.fragmentMeLineLeftIconIv.setImageResource(R.drawable.user_management); |
| | | viewBinding.fragmentMeLineUserManagementIl.fragmentMeLineTitleIv.setText(R.string.staff_management); |
| | | viewBinding.fragmentMeLineUserManagementIl.getRoot().setVisibility(View.GONE);//先隐藏,读取到有限权在显示 |
| | | // viewBinding.fragmentMeLineUserManagementIl.fragmentMeLineV.setVisibility(View.VISIBLE); |
| | | |
| | | //设备 |
| | | viewBinding.fragmentMeLineSetIl.fragmentMeLineLeftIconIv.setImageResource(R.drawable.set); |
| | | viewBinding.fragmentMeLineSetIl.fragmentMeLineTitleIv.setText(R.string.me_set); |
| | | |
| | | //关于 |
| | | viewBinding.fragmentMeLineAsregardsIl.fragmentMeLineLeftIconIv.setImageResource(R.drawable.asregards); |
| | | viewBinding.fragmentMeLineAsregardsIl.fragmentMeLineTitleIv.setText(R.string.me_regard); |
| | | // viewBinding.fragmentMeLineAsregardsIl.fragmentMeLineV.setVisibility(View.VISIBLE); |
| | |
| | | private int mTotalCount = 0; //总条数 |
| | | private int mCurrentPage = 0; // 当前页码 |
| | | private int mCurrentTotal = 0; // 总页码 |
| | | private String mDeviceTypeFilterKye = FilterType.deviceType;//过滤类型 deviceType(INV :逆变器;BMS :BMS控制盒;BATTERY :电池单元) |
| | | private String mDeviceTypeFilterValue = FilterType.all;//过滤类型值 deviceType(INV :逆变器;BMS :BMS控制盒;BATTERY :电池单元) |
| | | private String mDeviceTypeFilterKye = FilterType.deviceType;//过滤类型 deviceType(INV :逆变器;BMS :BMS控制盒;BATTERY :电池单元;"LOAD_CENTRE":负载控制中心) |
| | | private String mDeviceTypeFilterValue = FilterType.all;//过滤类型值 deviceType(INV :逆变器;BMS :BMS控制盒;BATTERY :电池单元;"LOAD_CENTRE":负载控制中心 |
| | | |
| | | private String mTypeFilterKye = FilterType.all;//过滤类型 type(FAULT :故障; WARN :告警; EVENT :事件(提示)); |
| | | private String mTypeFilterValue = FilterType.all;//过滤类型值 type(FAULT :故障; WARN :告警; EVENT :事件(提示)); |
| | |
| | | map.put(getString(R.string.alarm_all_device_inverter), "INV"); |
| | | map.put(getString(R.string.alarm_all_device_bms), "BMS"); |
| | | map.put(getString(R.string.alarm_all_device_battery_cell), "BATTERY"); |
| | | map.put(getString(R.string.alarm_all_device_load_centre), "LOAD_CENTRE"); |
| | | map.put(getString(R.string.alarm_all_grade), "");//设等级全部 |
| | | map.put(getString(R.string.alarm_all_grade_malfunction), "FAULT"); |
| | | map.put(getString(R.string.alarm_all_grade_warning), "WARN"); |
| | |
| | | stringList.add(getString(R.string.alarm_all_device_inverter)); |
| | | stringList.add(getString(R.string.alarm_all_device_bms)); |
| | | stringList.add(getString(R.string.alarm_all_device_battery_cell)); |
| | | stringList.add(getString(R.string.alarm_all_device_load_centre)); |
| | | } |
| | | break; |
| | | case FilterType.type: { |
| | |
| | | private int mTotalCount1 = 0;//消息数量总数 |
| | | |
| | | private int mTotalCount2 = 0;//消息数量总数 |
| | | private String mDeviceTypeFilterKye = FilterType.deviceType;//过滤类型 deviceType(INV :逆变器;BMS :BMS控制盒;BATTERY :电池单元) |
| | | private String mDeviceTypeFilterKye = FilterType.all;//过滤类型 deviceType(INV :逆变器;BMS :BMS控制盒;BATTERY :电池单元) |
| | | private String mDeviceTypeFilterValue = FilterType.all;//过滤类型值 deviceType(INV :逆变器;BMS :BMS控制盒;BATTERY :电池单元) |
| | | |
| | | private String mTypeFilterKye = FilterType.all;//过滤类型 type(FAULT :故障; WARN :告警; EVENT :事件(提示)); |
| | |
| | | // * timeType(TODAY :今天;LAST_3_DAYS: 近3天;LAST_7_DAYS :近7天;LAST_30_DAYS :近30天); |
| | | private boolean isLoadingMore = false; // 标记正在加载更多数据 |
| | | LinearLayoutManager mLayoutManager; |
| | | |
| | | |
| | | @Override |
| | | public Object getContentView() { |
| | |
| | | //初始化界面监听器 |
| | | initEvent(); |
| | | //进来读取一次数据(为了更新currentPage,currentTotal这个值) |
| | | loadNextPageMessageList(1, true, FilterType.all, FilterType.all, FilterType.all, FilterType.all, FilterType.all, FilterType.all); |
| | | loadNextPageMessageList(1, true, mDeviceTypeFilterKye, mDeviceTypeFilterValue, mTypeFilterKye, mTypeFilterValue, mTimeTypeFilterKye, mTimeTypeFilterValue); |
| | | } |
| | | |
| | | @Override |
| | |
| | | if (isAlarmDeviceClick) { |
| | | return;//防止多次点击 |
| | | } |
| | | mDeviceTypeFilterKye = FilterType.deviceType; |
| | | mDeviceTypeFilterKye = FilterType.all; |
| | | mDeviceTypeFilterValue = FilterType.all; |
| | | mTypeFilterKye = FilterType.all; |
| | | mTypeFilterValue = FilterType.all; |
| | |
| | | if (!isAlarmDeviceClick) { |
| | | return;//防止多次点击 |
| | | } |
| | | mDeviceTypeFilterKye = FilterType.deviceType; |
| | | mDeviceTypeFilterKye = FilterType.all; |
| | | mDeviceTypeFilterValue = FilterType.all; |
| | | mTypeFilterKye = FilterType.all; |
| | | mTypeFilterValue = FilterType.all; |
| | |
| | | } |
| | | |
| | | private void initData() { |
| | | try { |
| | | Intent intent = getIntent(); |
| | | if (intent != null) { |
| | | String isShowFault = intent.getStringExtra("isShowFault"); |
| | | if (isShowFault.equals("true")) { |
| | | //默认故障全部 |
| | | mDeviceTypeFilterKye = FilterType.all; |
| | | mDeviceTypeFilterValue = FilterType.all; |
| | | mTypeFilterKye = FilterType.type; |
| | | mTypeFilterValue = "FAULT"; |
| | | mTimeTypeFilterKye = FilterType.all; |
| | | mTimeTypeFilterValue = FilterType.all; |
| | | } |
| | | } |
| | | } catch (Exception ignored) { |
| | | } |
| | | } |
| | | |
| | | /** |
| | |
| | | map.put(getString(R.string.alarm_all_device_inverter), "INV"); |
| | | map.put(getString(R.string.alarm_all_device_bms), "BMS"); |
| | | map.put(getString(R.string.alarm_all_device_battery_cell), "BATTERY"); |
| | | map.put(getString(R.string.alarm_all_device_load_centre), "LOAD_CENTRE"); |
| | | map.put(getString(R.string.alarm_all_grade), "");//设等级全部 |
| | | map.put(getString(R.string.alarm_all_grade_malfunction), "FAULT"); |
| | | map.put(getString(R.string.alarm_all_grade_warning), "WARN"); |
| | |
| | | stringList.add(getString(R.string.alarm_all_device_inverter)); |
| | | stringList.add(getString(R.string.alarm_all_device_bms)); |
| | | stringList.add(getString(R.string.alarm_all_device_battery_cell)); |
| | | stringList.add(getString(R.string.alarm_all_device_load_centre)); |
| | | } |
| | | break; |
| | | case FilterType.type: { |
| | |
| | | import com.hdl.photovoltaic.R; |
| | | import com.hdl.photovoltaic.bean.PageNumberObject; |
| | | import com.hdl.photovoltaic.config.ConstantManage; |
| | | import com.hdl.photovoltaic.config.UserConfigManage; |
| | | import com.hdl.photovoltaic.databinding.FragmentHouseListBinding; |
| | | import com.hdl.photovoltaic.base.CustomBaseFragment; |
| | | import com.hdl.photovoltaic.enums.HomepageTitleTabSwitch; |
| | |
| | | /** |
| | | * 还原条件的初始化状态 |
| | | */ |
| | | private void InitializationState() { |
| | | private void initializationState() { |
| | | key = SortValue.all; |
| | | value = SortValue.all; |
| | | installedCapacityMinValue = ""; |
| | |
| | | } |
| | | isClickPowerStationLabel = true; |
| | | selectedTitleLabelStyle(); |
| | | InitializationState(); |
| | | initializationState(); |
| | | getStatusOverview(); |
| | | loadNextPageHouseList(true, key, value, installedCapacityMinValue, installedCapacityMaxValue, gridTypeValue, powerStationStatusValue, 1, true); |
| | | |
| | |
| | | |
| | | |
| | | } else if (eventBus.getTopic().equals(ConstantManage.homepage_title_tab_switch)) { |
| | | // 取消粘性事件 |
| | | EventBus.getDefault().removeStickyEvent(eventBus); |
| | | //接收外部点击事件 |
| | | if (eventBus.getType().equals(HomepageTitleTabSwitch.powerstation.toString())) { |
| | | // 取消粘性事件 |
| | | EventBus.getDefault().removeStickyEvent(eventBus); |
| | | HdlLogLogic.print("正在点击【电站】"); |
| | | // if (!isReadData) { |
| | | // //1,从首页-故障-进来-电站(不读取) |
| | |
| | | //2024年06月24日14:34:01 产品经理要求进去电站列表都要读取 且默认进去都是默认电站标签 |
| | | isClickPowerStationLabel = true; |
| | | selectedTitleLabelStyle(); |
| | | InitializationState(); |
| | | initializationState(); |
| | | getStatusOverview(); |
| | | loadNextPageHouseList(true, key, value, installedCapacityMinValue, installedCapacityMaxValue, gridTypeValue, powerStationStatusValue, 1, true); |
| | | |
| | | |
| | | } else if (eventBus.getType().equals(PowerStationStatus.All)) { |
| | | isClickPowerStationLabel = true; |
| | | selectedTitleLabelStyle(); |
| | | viewBinding.powerStationAllIl.parentLl.performClick(); |
| | | } else if (eventBus.getType().equals(PowerStationStatus.malfunction)) { |
| | | isClickPowerStationLabel = true; |
| | | selectedTitleLabelStyle(); |
| | | viewBinding.powerStationFaultsIl.parentLl.performClick(); |
| | | } else if (eventBus.getType().equals(PowerStationStatus.off)) { |
| | | isClickPowerStationLabel = true; |
| | | selectedTitleLabelStyle(); |
| | | viewBinding.powerStationOfflineIl.parentLl.performClick(); |
| | | } else if (eventBus.getType().equals(PowerStationStatus.connecting)) { |
| | | isClickPowerStationLabel = true; |
| | | selectedTitleLabelStyle(); |
| | | viewBinding.powerStationConnectedIl.parentLl.performClick(); |
| | | } else if (eventBus.getType().equals(ConstantManage.station_page)) { |
| | | //通过首页电站进来的 |
| | | if (eventBus.getData().equals(PowerStationStatus.All)) { |
| | | isClickPowerStationLabel = true; |
| | | selectedTitleLabelStyle(); |
| | | viewBinding.powerStationAllIl.parentLl.performClick(); |
| | | } else if (eventBus.getData().equals(PowerStationStatus.malfunction)) { |
| | | isClickPowerStationLabel = true; |
| | | selectedTitleLabelStyle(); |
| | | viewBinding.powerStationFaultsIl.parentLl.performClick(); |
| | | } else if (eventBus.getData().equals(PowerStationStatus.off)) { |
| | | isClickPowerStationLabel = true; |
| | | selectedTitleLabelStyle(); |
| | | viewBinding.powerStationOfflineIl.parentLl.performClick(); |
| | | } else if (eventBus.getData().equals(PowerStationStatus.connecting)) { |
| | | isClickPowerStationLabel = true; |
| | | selectedTitleLabelStyle(); |
| | | viewBinding.powerStationConnectedIl.parentLl.performClick(); |
| | | } |
| | | } else if (eventBus.getType().equals(ConstantManage.station_edit)) { |
| | | //编辑后更新一下住宅列表 |
| | | //loadNextPageHouseList(false, key, value, installedCapacityMinValue, installedCapacityMaxValue, gridTypeValue, powerStationStatusValue, 1, true); |
| | |
| | | public final static String UNI_EVENT_REPLY_DEVICE_REMOTEINFO = "set_device_remoteInfo";//设置设备远程信息edit_name |
| | | public final static String UNI_EVENT_REPLY_DEVICE_EDIT_NAME = "edit_name";//设备名称修改(修改是云端oid名称,设备使用modbus协议修改) |
| | | public final static String UNI_EVENT_REPLY_DEVICE_NOT_RUN_DEVICE_LIST = "not_run_device_list";//获取未运行逆变器列表 |
| | | public final static String UNI_EVENT_REPLY_DEVICE_OPEN_DEVICE_LIST= "open_device_list";//快捷开启逆变器 |
| | | public final static String UNI_EVENT_REPLY_DEVICE_OPEN_DEVICE_info= "device_info";//获取设备详情 |
| | | |
| | | public final static String UNI_EVENT_REPLY_DEVICE_OPEN_DEVICE_LIST = "open_device_list";//快捷开启逆变器 |
| | | public final static String UNI_EVENT_REPLY_DEVICE_OPEN_DEVICE_info = "device_info";//获取设备详情 |
| | | |
| | | |
| | | /*********OTA模块*********/ |
| | |
| | | public final static String UNI_EVENT_OPEN_HOME_Null_C = "pages/powerStationDetail/tabbarPage";//无电站时(不需要传参数) |
| | | public final static String UNI_EVENT_OPEN_DEVICE_DETAILS = "pages/powerStationDetail/childPage/device/detail";//设备详情 |
| | | public final static String UNI_EVENT_OPEN_MINE_MINESTAFFMANAGER = "pages/mine/mineStaffManager";//B端打开员工管理界面 |
| | | public final static String UNI_EVENT_OPEN_MINE_DEVICEDEBUG = "pages/deviceDebug/searchInverterList";//B端打开设备调试界面 |
| | | |
| | | |
| | | public final static String UNI_EVENT_OPEN_DEVICESCAN = "pages/powerStation/deviceScan";//跳到uni扫二维码界面 |
| | | /*********设备模块*********/ |
| | |
| | | app:layout_constraintEnd_toEndOf="parent" |
| | | app:layout_constraintStart_toStartOf="parent" |
| | | app:layout_constraintTop_toBottomOf="@+id/fragment_me_icon_parent_cl"> |
| | | <!--设备调试--> |
| | | <include |
| | | android:id="@+id/fragment_me_line_device_debug_il" |
| | | layout="@layout/fragment_me_line" /> |
| | | <!--主账号才显示--> |
| | | <include |
| | | android:id="@+id/fragment_me_line_user_management_il" |
| | |
| | | <!--弹框--> |
| | | <string name="loading_cancel">Cancel</string> |
| | | <string name="loading_affirm">Confirm</string> |
| | | <string name="loading_agree">Agree</string> |
| | | <string name="loading_agree">Agree and sign in</string> |
| | | <string name="loading_on_agree">Disagree</string> |
| | | <string name="loading_privacy">Privacy policy and terms of service</string> |
| | | <string name="loading_privacy_server">To better protect your legitimate rights and interests, please read and agree to the following agreements 《Privacy Policy》 and 《Terms of Service》.</string> |
| | |
| | | <string name="alarm_all_device_inverter">inverter</string> |
| | | <string name="alarm_all_device_bms">BMS control box</string> |
| | | <string name="alarm_all_device_battery_cell">Battery unit</string> |
| | | <string name="alarm_all_device_load_centre">Load centre</string> |
| | | <string name="alarm_all_grade">All grades</string> |
| | | <string name="alarm_all_grade_malfunction">malfunction</string> |
| | | <string name="alarm_all_grade_warning">warning</string> |
| | |
| | | <string name="capture_no_result2">No results were scanned, it may not be a valid QR code</string> |
| | | <string name="scan_cancel">Cancel</string> |
| | | <string name="not_delivery_qr_code">Not delivery of QR code.</string> |
| | | <string name="device_debugging">Device debugging</string> |
| | | |
| | | </resources> |
| | |
| | | <!--弹框--> |
| | | <string name="loading_cancel">取消</string> |
| | | <string name="loading_affirm">确认</string> |
| | | <string name="loading_agree">同意</string> |
| | | <string name="loading_agree">同意并登录</string> |
| | | <string name="loading_on_agree">不同意</string> |
| | | <string name="loading_privacy">隐私权政策及服务条款</string> |
| | | <string name="loading_privacy_server">为了更好的保障您的合法权益,请您阅读并同意以下协议《隐私权政策》和《服务条款》</string> |
| | |
| | | <string name="alarm_all_device_inverter">逆变器</string> |
| | | <string name="alarm_all_device_bms">BMS控制盒</string> |
| | | <string name="alarm_all_device_battery_cell">电池单元</string> |
| | | <string name="alarm_all_device_load_centre">负载中心</string> |
| | | <string name="alarm_all_grade">全部等级</string> |
| | | <string name="alarm_all_grade_malfunction">故障</string> |
| | | <string name="alarm_all_grade_warning">警告</string> |
| | |
| | | <string name="capture_no_result2">没有扫描出结果,可能不是有效的二维码</string> |
| | | <string name="scan_cancel">取消</string> |
| | | <string name="not_delivery_qr_code">不是交付二维码.</string> |
| | | <string name="device_debugging">设备调测</string> |
| | | |
| | | |
| | | </resources> |
| | |
| | | <!--弹框--> |
| | | <string name="loading_cancel">取消</string> |
| | | <string name="loading_affirm">确认</string> |
| | | <string name="loading_agree">同意</string> |
| | | <string name="loading_agree">同意并登录</string> |
| | | <string name="loading_on_agree">不同意</string> |
| | | <string name="loading_privacy">隐私权政策及服务条款</string> |
| | | <string name="loading_privacy_server">为了更好的保障您的合法权益,请您阅读并同意以下协议《隐私权政策》和《服务条款》</string> |
| | |
| | | <string name="alarm_all_device_inverter">逆变器</string> |
| | | <string name="alarm_all_device_bms">BMS控制盒</string> |
| | | <string name="alarm_all_device_battery_cell">电池单元</string> |
| | | <string name="alarm_all_device_load_centre">负载中心</string> |
| | | <string name="alarm_all_grade">全部等级</string> |
| | | <string name="alarm_all_grade_malfunction">故障</string> |
| | | <string name="alarm_all_grade_warning">警告</string> |
| | |
| | | <string name="already_the_first_one">已经是第一个了.</string> |
| | | <string name="restarting_please_wait">重启中,请等待…</string> |
| | | <string name="port_conflict">应用冲突,需要关闭onpro或者其它版本的调试软件然后再重新启动这个软件试试</string> |
| | | |
| | | |
| | | |
| | | <string name="cancel_download_successfully">取消下载成功.</string> |
| | |
| | | <string name="capture_no_result2">没有扫描出结果,可能不是有效的二维码</string> |
| | | <string name="scan_cancel">取消</string> |
| | | <string name="not_delivery_qr_code">不是交付二维码.</string> |
| | | <string name="device_debugging">设备调测</string> |
| | | |
| | | |
| | | </resources> |