From f7c38847b8e00c84c30e51a92c03071d3e9a9da8 Mon Sep 17 00:00:00 2001 From: mac <user@users-MacBook-Pro.local> Date: 星期二, 14 五月 2024 09:08:57 +0800 Subject: [PATCH] 2024年05月14日09:08:49 --- app/src/main/java/com/hdl/photovoltaic/ui/test/TestMainActivity.java | 159 ++++++++++++++++++++++++++++++++++++++++------------ 1 files changed, 121 insertions(+), 38 deletions(-) diff --git a/app/src/main/java/com/hdl/photovoltaic/ui/test/TestMainActivity.java b/app/src/main/java/com/hdl/photovoltaic/ui/test/TestMainActivity.java index 3baa86d..ff0771b 100644 --- a/app/src/main/java/com/hdl/photovoltaic/ui/test/TestMainActivity.java +++ b/app/src/main/java/com/hdl/photovoltaic/ui/test/TestMainActivity.java @@ -8,30 +8,25 @@ 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.photovoltaic.base.CustomBaseActivity; import com.hdl.photovoltaic.config.UserConfigManage; import com.hdl.photovoltaic.databinding.ActivityTestMainBinding; import com.hdl.photovoltaic.enums.ShowErrorMode; 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.other.HdlDeviceLogic; import com.hdl.photovoltaic.other.HdlThreadLogic; import com.hdl.photovoltaic.ui.bean.CloudInverterChildDeviceBean; import com.hdl.photovoltaic.ui.bean.OidBean; +import com.hdl.photovoltaic.ui.test.dialogs.DialogDeviceList; import com.hdl.photovoltaic.widget.ConfirmationCancelDialog; import com.hdl.sdk.link.common.exception.HDLLinkException; 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 java.lang.reflect.Type; import java.util.ArrayList; import java.util.List; @@ -44,6 +39,9 @@ private TestTitleAdapter testTitleAdapter; private List<OidBean> mOidList; + + private GatewayBean mGatewayBean; + private String s = ""; @Override public Object getContentView() { @@ -68,36 +66,33 @@ */ private void initView() { - String homeId = "娴嬭瘯浣忓畢ID=" + UserConfigManage.getInstance().getHomeId(); - String homeName = "娴嬭瘯浣忓畢鍚嶇О=" + UserConfigManage.getInstance().getHomeName(); + String homeId = "鐢电珯Id=" + UserConfigManage.getInstance().getHomeId(); + String homeName = "鐢电珯鍚嶇О=" + UserConfigManage.getInstance().getHomeName(); viewBinding.homeIdTv.setText(homeId); viewBinding.homeNameTv.setText(homeName); - } private void initEvent() { - viewBinding.topBackBtn.setOnClickListener(this); + viewBinding.topBackLl.setOnClickListener(this); viewBinding.topLogBtn.setOnClickListener(this); viewBinding.clickCommandTv.setOnClickListener(this); + viewBinding.clickSelectDeviceTv.setOnClickListener(this); testTitleAdapter.setItemOnClickListener(new TestTitleAdapter.OnClickListener() { @Override public void OnClick(int position, String title) { - - if (TextUtils.isEmpty(UserConfigManage.getInstance().getHomeId())) { // TODO: 10/30/23 璇峰厛閫夋嫨浣忓畢杩涜娴嬭瘯,鍚﹀垯鏃犳硶杩涜閫嗗彉鍣ㄦ寚浠ゆ祴璇�; - TipDialog("璇峰厛閫夋嫨浣忓畢杩涜娴嬭瘯,鍚﹀垯鏃犳硶杩涜閫嗗彉鍣ㄦ寚浠ゆ祴璇�.", null); + TipDialog("璇峰厛閫夋嫨涓�涓�愮數绔欍�戣繘琛屾祴璇�,鍚﹀垯鏃犳硶杩涜閫嗗彉鍣ㄦ寚浠ゆ祴璇�.", null); return; } - GatewayBean gatewayBean = HdlDeviceLogic.getInstance().getCurrentHomeMainGateway(UserConfigManage.getInstance().getHomeId()); - if (gatewayBean == null && !title.equals("鎼滅储閫嗗彉鍣ㄥ垪琛�(0)") && !title.equals("鎼滅储銆愪綇瀹呫�戦�嗗彉鍣ㄥ垪琛�(1)")) { - // TODO: 10/30/23 鎵句笉鍒颁綇瀹呯殑涓婚�嗗彉鍣�,璇峰厛纭鏄惁缁戝畾閫嗗彉鍣紝鍐嶈繘琛岄�嗗彉鍣ㄦ寚浠ゆ祴璇�; - TipDialog("鎵句笉鍒颁綇瀹呯殑銆愪富閫嗗彉鍣ㄣ��,璇峰厛纭鏄惁缁戝畾杩囬�嗗彉鍣紝鍐嶈繘琛岄�嗗彉鍣ㄦ寚浠ゆ祴璇�.", null); + if (mGatewayBean == null && !title.equals("鎼滅储銆愭墍鏈夈�戦�嗗彉鍣ㄥ垪琛�(0)")) { + TipDialog("鎵句笉鍒颁綇瀹呯殑銆愰�嗗彉鍣ㄣ��,璇峰厛纭鏄惁缁戝畾杩囬�嗗彉鍣紝鍐嶈繘琛岄�嗗彉鍣ㄦ寚浠ゆ祴璇�.", null); return; } - showLoading(); - startRequest(position, gatewayBean); + + + startRequest(position, mGatewayBean); } }); } @@ -106,12 +101,15 @@ @Override public void onClick(View v) { int id = v.getId(); - if (id == viewBinding.topBackBtn.getId()) { + if (id == viewBinding.topBackLl.getId()) { finish(); } else if (id == viewBinding.topLogBtn.getId()) { startActivity(TestLogActivity.class); } else if (id == viewBinding.clickCommandTv.getId()) { + + } else if (id == viewBinding.clickSelectDeviceTv.getId()) { + selectDevice(); } } @@ -123,13 +121,15 @@ */ private List<String> getTitleList() { List<String> s = new ArrayList<>(); - s.add("鎼滅储閫嗗彉鍣ㄥ垪琛�(0)"); + s.add("鎼滅储銆愭墍鏈夈�戦�嗗彉鍣ㄥ垪琛�(0)"); s.add("鎼滅储銆愪綇瀹呫�戦�嗗彉鍣ㄥ垪琛�(1)"); s.add("鑾峰彇閫嗗彉鍣╫id鍒楄〃(2)"); s.add("璇诲彇閫嗗彉鍣ㄨ鎯�(3)"); - s.add("娓呴櫎閫嗗彉鍣ㄤ綇瀹匢d(4)"); + s.add("瑙g粦閫嗗彉鍣�(4)"); s.add("涓婁紶oid鍒楄〃缁欎簯绔�(5)"); s.add("鑾峰彇閫嗗彉鍣ㄤ笅鎸傝澶囧垪琛�(6)"); + s.add("鑾峰彇閫嗗彉鍣ㄧ殑淇℃伅(7)"); + s.add("鎭㈠鍑哄巶璁剧疆(8)"); return s; } @@ -139,10 +139,11 @@ * @param position 绱㈠紩鍊� */ private void startRequest(int position, GatewayBean gatewayBean) { + showLoading(); String title = getTitleList().get(position); switch (title) { - case "鎼滅储閫嗗彉鍣ㄥ垪琛�(0)": { - HdlDeviceLogic.getInstance().searchAllGateway(new GatewayCallBack() { + case "鎼滅储銆愭墍鏈夈�戦�嗗彉鍣ㄥ垪琛�(0)": { + HdlDeviceLogic.getInstance().searchAllNetworkGateway(new GatewayCallBack() { @Override public void onSuccess(List<GatewayBean> gatewayBeanList) { List<GatewayBean> newGatewayBeanList = new ArrayList<>(); @@ -162,17 +163,8 @@ } break; case "鎼滅储銆愪綇瀹呫�戦�嗗彉鍣ㄥ垪琛�(1)": { - HdlDeviceLogic.getInstance().searchCurrentHomeGateway(new GatewayCallBack() { - @Override - public void onSuccess(List<GatewayBean> gatewayBeanList) { - gsonConvertJsonStr(gatewayBeanList); - } - - @Override - public void onError(HDLLinkException e) { - setError(e.getMsg(), e.getCode()); - } - }); + List<GatewayBean> gatewayBeanList = HdlDeviceLogic.getInstance().getCurrentHomeGatewayList(UserConfigManage.getInstance().getHomeId()); + gsonConvertJsonStr(gatewayBeanList); } break; @@ -206,14 +198,27 @@ }); } break; - case "娓呴櫎閫嗗彉鍣ㄤ綇瀹匢d(4)": { + case "瑙g粦閫嗗彉鍣�(4)": { TipDialog("涓�鏃︽竻闄ゆ帀閫嗗彉鍣ㄤ綇瀹卛d,閫嗗彉鍣ㄩ渶瑕侀噸鏂扮粦瀹氫綇瀹咃紝鍚﹀垯鏃犳硶娴嬭瘯閫嗗彉鍣ㄦ寚浠�;", new Listener() { @Override public void Confirmation() { + HdlDeviceLogic.getInstance().clearInverterHomeId(gatewayBean.getDevice_mac(), new LinkCallBack<Boolean>() { @Override public void onSuccess(Boolean obj) { - gsonConvertJsonStr(obj); + s += "瑙g粦銆愭湰鍦般�戞垚鍔�--->"; + HdlDeviceLogic.getInstance().delInverterDevice(UserConfigManage.getInstance().getHomeId(), gatewayBean.getDeviceId(), new CloudCallBeak<Boolean>() { + @Override + public void onSuccess(Boolean obj) { + s += "瑙g粦銆愪簯绔�戞垚鍔�"; + gsonConvertJsonStr(s); + } + + @Override + public void onFailure(HDLException e) { + setError(e.getMsg(), e.getCode()); + } + }); } @Override @@ -256,6 +261,61 @@ setError(e.getMsg(), e.getCode()); } }); + } + break; + case "鑾峰彇閫嗗彉鍣ㄧ殑淇℃伅(7)": { + if (TextUtils.isEmpty(mGatewayBean.getAddresses())) { + TipDialog("閫嗗彉鍣╝ddresses鍦板潃涓簄ull.", null); + return; + } + TcpClient.getInstance().sendModBusDataToLinkGateway(gatewayBean.getDevice_mac(), mGatewayBean.getAddresses(), TcpClient.FunctionCode.ReadMultipleRegisters, 550, "8", new ModbusCallBack() { + @Override + public void onSuccess(int[] data) { + gsonConvertJsonStr(data); + } + + @Override + public void onError(HDLLinkException e) { + setError(e.getMsg(), e.getCode()); + } + }); + } + break; + case "鎭㈠鍑哄巶璁剧疆(8)": { + ConfirmationCancelDialog confirmationCancelDialog = new ConfirmationCancelDialog(_mActivity); + confirmationCancelDialog.show(); + confirmationCancelDialog.setTitle("鎻愮ず!"); + confirmationCancelDialog.setContent("鏄惁瑕佽В缁慭"" + mGatewayBean.getDevice_name() + "\"?"); + confirmationCancelDialog.setYesOnclickListener(new ConfirmationCancelDialog.onYesOnclickListener() { + @Override + public void Confirm() { + confirmationCancelDialog.dismiss(); + showLoading("瑙g粦涓�..."); + HdlDeviceLogic.getInstance().initializeInverter(gatewayBean.getDevice_mac(), new LinkCallBack<Boolean>() { + @Override + public void onSuccess(Boolean obj) { + hideLoading(); + gsonConvertJsonStr(obj); + HdlDeviceLogic.getInstance().removeLocalCacheMemoryGateway(UserConfigManage.getInstance().getHomeId(), mGatewayBean.getDevice_mac()); + HdlDeviceLogic.getInstance().delInverterDevice(UserConfigManage.getInstance().getHomeId(), mGatewayBean.getDeviceId(), null); + } + + @Override + public void onError(HDLLinkException e) { + hideLoading(); + setError(e.getMsg(), e.getCode()); + } + }); + } + }); + confirmationCancelDialog.setNoOnclickListener(new ConfirmationCancelDialog.onNoOnclickListener() { + @Override + public void Cancel() { + hideLoading(); + confirmationCancelDialog.dismiss(); + } + }); + } break; default: { @@ -331,6 +391,29 @@ }); } + /** + * 閫夋嫨閫嗗彉鍣ㄨ皟璇� + */ + public void selectDevice() { + List<GatewayBean> list = HdlDeviceLogic.getInstance().getCurrentHomeGatewayList(UserConfigManage.getInstance().getHomeId()); + DialogDeviceList dialogDeviceList = new DialogDeviceList(_mActivity, list); + dialogDeviceList.show(); + dialogDeviceList.DeviceOnclickListener(new DialogDeviceList.OnclickListener() { + @Override + public void onClick(int position, GatewayBean gatewayBean) { + dialogDeviceList.dismiss(); + if (gatewayBean == null) { + return; + } + mGatewayBean = gatewayBean; + String str = "閫嗗彉鍣ㄥ悕绉�=" + gatewayBean.getDevice_name() + "_" + gatewayBean.getDevice_mac(); + viewBinding.deviceNameTv.setText(str); + + } + }); + + } + public interface Listener { void Confirmation(); } -- Gitblit v1.8.0