mac
2024-07-16 3ec7de773bff5582411c6f1f659d35cf8fb1734a
app/src/main/java/com/hdl/photovoltaic/ui/test/TestMainActivity.java
@@ -20,6 +20,7 @@
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;
@@ -38,6 +39,8 @@
    private TestTitleAdapter testTitleAdapter;
    private List<OidBean> mOidList;
    private GatewayBean mGatewayBean;
    private String s = "";
    @Override
@@ -63,41 +66,33 @@
     */
    private void initView() {
        String homeId = "homeId=" + UserConfigManage.getInstance().getHomeId();
        String homeName = "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;
                }
                List<GatewayBean> list = HdlDeviceLogic.getInstance().getCurrentHomeGatewayList(UserConfigManage.getInstance().getHomeId());
                if (list == null && !title.equals("搜索【所有】逆变器列表(0)") && !title.equals("搜索【住宅】逆变器列表(1)")) {
                    // TODO: 10/30/23 找不到住宅的主逆变器,请先确认是否绑定逆变器,再进行逆变器指令测试
                    TipDialog("找不到住宅的【主逆变器】,请先确认是否绑定过逆变器,再进行逆变器指令测试.", null);
                    return;
                }
                if (list.size() == 0 && !title.equals("搜索【所有】逆变器列表(0)") && !title.equals("搜索【住宅】逆变器列表(1)")) {
                    // TODO: 10/30/23 找不到住宅的主逆变器,请先确认是否绑定逆变器,再进行逆变器指令测试
                    TipDialog("找不到住宅的【主逆变器】,请先确认是否绑定过逆变器,再进行逆变器指令测试.", null);
                if (mGatewayBean == null && !title.equals("搜索【所有】逆变器列表(0)")) {
                    TipDialog("找不到住宅的【逆变器】,请先确认是否绑定过逆变器,再进行逆变器指令测试.", null);
                    return;
                }
                showLoading();
                startRequest(position, list.get(0));
                startRequest(position, mGatewayBean);
            }
        });
    }
@@ -106,7 +101,7 @@
    @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);
@@ -114,7 +109,7 @@
        } else if (id == viewBinding.clickCommandTv.getId()) {
        } else if (id == viewBinding.clickSelectDeviceTv.getId()) {
//            selectDevice();
            selectDevice();
        }
    }
@@ -144,6 +139,7 @@
     * @param position 索引值
     */
    private void startRequest(int position, GatewayBean gatewayBean) {
        showLoading();
        String title = getTitleList().get(position);
        switch (title) {
            case "搜索【所有】逆变器列表(0)": {
@@ -167,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;
@@ -277,7 +264,11 @@
            }
            break;
            case "获取逆变器的信息(7)": {
                TcpClient.getInstance().sendModBusDataToLinkGateway(gatewayBean.getDevice_mac(), "0000001A", TcpClient.FunctionCode.ReadMultipleRegisters, 550, "8", new ModbusCallBack() {
                if (TextUtils.isEmpty(mGatewayBean.getAddresses())) {
                    TipDialog("逆变器addresses地址为null.", 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);
@@ -291,17 +282,40 @@
            }
            break;
            case "恢复出厂设置(8)": {
                HdlDeviceLogic.getInstance().initializeGateway("0B37BA09F722EEDF", new LinkCallBack<Boolean>() {
                ConfirmationCancelDialog confirmationCancelDialog = new ConfirmationCancelDialog(_mActivity);
                confirmationCancelDialog.show();
                confirmationCancelDialog.setTitle("提示!");
                confirmationCancelDialog.setContent("是否要解绑\"" + mGatewayBean.getDevice_name() + "\"?");
                confirmationCancelDialog.setYesOnclickListener(new ConfirmationCancelDialog.onYesOnclickListener() {
                    @Override
                    public void onSuccess(Boolean obj) {
                        gsonConvertJsonStr(obj);
                    }
                    public void Confirm() {
                        confirmationCancelDialog.dismiss();
                        showLoading("解绑中...");
                        HdlDeviceLogic.getInstance().initializeInverter(gatewayBean.getDevice_mac(), new LinkCallBack<Boolean>() {
                            @Override
                            public void onSuccess(Boolean obj) {
                                hideLoading();
                                gsonConvertJsonStr(obj);
                                HdlDeviceLogic.getInstance().removeLocalCacheMemoryGatewayToMac(UserConfigManage.getInstance().getHomeId(), mGatewayBean.getDevice_mac());
                                HdlDeviceLogic.getInstance().delInverterDevice(UserConfigManage.getInstance().getHomeId(), mGatewayBean.getDeviceId(), null);
                            }
                    @Override
                    public void onError(HDLLinkException e) {
                        setError(e.getMsg(), e.getCode());
                            @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: {
@@ -380,21 +394,24 @@
    /**
     * 选择逆变器调试
     */
    public void selectDevice(String homeId) {
        showLoading();
        HdlDeviceLogic.getInstance().getCurrentHomeLocalAndCloudGatewayList(homeId, new CloudCallBeak<List<GatewayBean>>() {
    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 onSuccess(List<GatewayBean> obj) {
                hideLoading();
            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);
            }
            @Override
            public void onFailure(HDLException e) {
                hideLoading();
            }
        });
    }
    public interface Listener {