mac
2023-12-06 d830fef6a2bc2ab061e6ac2b423c4a49dda3cf21
app/src/main/java/com/hdl/photovoltaic/ui/test/TestMainActivity.java
@@ -9,14 +9,17 @@
import android.view.View;
import com.google.gson.Gson;
import com.hdl.linkpm.sdk.core.exception.HDLException;
import com.hdl.photovoltaic.R;
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.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.widget.ConfirmationCancelDialog;
import com.hdl.photovoltaic.widget.ConfirmationExceptionDialog;
@@ -34,6 +37,8 @@
    private ActivityTestMainBinding viewBinding;
    private TestTitleAdapter testTitleAdapter;
    private List<OidBean> mOidList;
    @Override
    public Object getContentView() {
@@ -57,30 +62,32 @@
     * 初始化
     */
    private void initView() {
        viewBinding.toolbarTopFragmentHouseListRl.topBarView.setBackgroundColor(getResources().getColor(R.color.text_FFFFFFFF, null));
        viewBinding.toolbarTopFragmentHouseListRl.topTitleTv.setText("逆变器指令测试");
        viewBinding.toolbarTopFragmentHouseListRl.topTitleTv.setTextColor(getResources().getColor(R.color.text_030D1C, null));
        viewBinding.toolbarTopFragmentHouseListRl.topBackBtn.setVisibility(View.VISIBLE);
        String homeId = "测试住宅ID=" + UserConfigManage.getInstance().getHomeId();
        String homeName = "测试住宅名称=" + UserConfigManage.getInstance().getHomeName();
        viewBinding.homeIdTv.setText(homeId);
        viewBinding.homeNameTv.setText(homeName);
    }
    private void initEvent() {
        viewBinding.toolbarTopFragmentHouseListRl.topBackBtn.setOnClickListener(this);
        viewBinding.topBackBtn.setOnClickListener(this);
        viewBinding.topLogBtn.setOnClickListener(this);
        testTitleAdapter.setItemOnClickListener(new TestTitleAdapter.OnClickListener() {
            @Override
            public void OnClick(int position) {
            public void OnClick(int position, String title) {
                if (TextUtils.isEmpty(UserConfigManage.getInstance().getHomeId())) {
                    // TODO: 10/30/23 请先选择住宅进行测试,否则无法进行逆变器指令测试;
                    TipDialog("请先选择住宅进行测试,否则无法进行逆变器指令测试.");
                    TipDialog("请先选择住宅进行测试,否则无法进行逆变器指令测试.", null);
                    return;
                }
                GatewayBean gatewayBean = HdlDeviceLogic.getInstance().getCurrentHomeMainGateway();
                if (gatewayBean == null) {
                if (gatewayBean == null && !title.equals("搜索逆变器列表")) {
                    // TODO: 10/30/23 找不到住宅的主逆变器,请先确认是否绑定逆变器,再进行逆变器指令测试;
                    TipDialog("找不到住宅的主逆变器,请先确认是否绑定过逆变器,再进行逆变器指令测试.");
                    TipDialog("找不到住宅的【主逆变器】,请先确认是否绑定过逆变器,再进行逆变器指令测试.", null);
                    return;
                }
                showLoading();
@@ -93,8 +100,11 @@
    @Override
    public void onClick(View v) {
        int id = v.getId();
        if (id == viewBinding.toolbarTopFragmentHouseListRl.topBackBtn.getId()) {
        if (id == viewBinding.topBackBtn.getId()) {
            finish();
        } else if (id == viewBinding.topLogBtn.getId()) {
            startActivity(TestLogActivity.class);
        }
    }
@@ -105,9 +115,12 @@
     */
    private List<String> getTitleList() {
        List<String> s = new ArrayList<>();
        s.add("搜索逆变器列表");
        s.add("获取逆变器oid列表");
        s.add("读取逆变器详情");
        s.add("搜索逆变器列表(1)");
        s.add("获取逆变器oid列表(2)");
        s.add("读取逆变器详情(3)");
        s.add("清除逆变器住宅Id(4)");
        s.add("上传oid列表给云端(5)");
        s.add("获取逆变器下挂设备列表(6)");
        return s;
    }
@@ -119,7 +132,7 @@
    private void startRequest(int position, GatewayBean gatewayBean) {
        String title = getTitleList().get(position);
        switch (title) {
            case "搜索逆变器列表": {
            case "搜索逆变器列表(1)": {
                HdlDeviceLogic.getInstance().searchGateway(new GatewayCallBack() {
                    @Override
                    public void onSuccess(List<GatewayBean> gatewayBeanList) {
@@ -128,28 +141,29 @@
                    @Override
                    public void onError(HDLLinkException e) {
                        setError(e);
                        setError(e.getMsg(), e.getCode());
                    }
                });
            }
            break;
            case "获取逆变器oid列表": {
            case "获取逆变器oid列表(2)": {
                HdlDeviceLogic.getInstance().getInverterOidList(gatewayBean.getDevice_mac(), new LinkCallBack<List<OidBean>>() {
                    @Override
                    public void onSuccess(List<OidBean> obj) {
                        mOidList = obj;
                        gsonConvertJsonStr(obj);
                    }
                    @Override
                    public void onError(HDLLinkException e) {
                        setError(e);
                        setError(e.getMsg(), e.getCode());
                    }
                });
            }
            break;
            case "读取逆变器详情": {
            case "读取逆变器详情(3)": {
                HdlDeviceLogic.getInstance().getGatewayInfo(gatewayBean.getDevice_mac(), new LinkCallBack<GatewayBean>() {
                    @Override
                    public void onSuccess(GatewayBean obj) {
@@ -158,17 +172,79 @@
                    @Override
                    public void onError(HDLLinkException e) {
                        setError(e);
                        setError(e.getMsg(), e.getCode());
                    }
                });
            }
            break;
            case "清除逆变器住宅Id(4)": {
                TipDialog("一旦清除掉逆变器住宅id,逆变器需要重新绑定住宅,否则无法测试逆变器指令;", new Listener() {
                    @Override
                    public void Confirmation() {
                        HdlDeviceLogic.getInstance().clearInverterHomeId(gatewayBean.getDevice_mac(), new LinkCallBack<Boolean>() {
                            @Override
                            public void onSuccess(Boolean obj) {
                                gsonConvertJsonStr(obj);
                            }
                            @Override
                            public void onError(HDLLinkException e) {
                                setError(e.getMsg(), e.getCode());
                            }
                        });
                    }
                });
            }
            break;
            case "上传oid列表给云端(5)": {
                if (this.mOidList == null || this.mOidList.size() == 0) {
                    hideLoading();
                    HdlThreadLogic.toast(this, "没有oid列表数据,请先获取逆变器oid列表数据,再重新上传.");
                    return;
                }
                HdlDeviceLogic.getInstance().fullUpdateOid(this.mOidList, new CloudCallBeak<Boolean>() {
                    @Override
                    public void onSuccess(Boolean obj) {
                        gsonConvertJsonStr(obj);
                    }
                    @Override
                    public void onFailure(HDLException e) {
                        setError(e.getMsg(), e.getCode());
                    }
                });
            }
            break;
            case "获取逆变器下挂设备列表(6)": {
                HdlDeviceLogic.getInstance().getInverterDeviceChildDeviceList(gatewayBean.getOid(), new CloudCallBeak<List<CloudInverterChildDeviceBean>>() {
                    @Override
                    public void onSuccess(List<CloudInverterChildDeviceBean> obj) {
                        gsonConvertJsonStr(obj);
                    }
                    @Override
                    public void onFailure(HDLException e) {
                        setError(e.getMsg(), e.getCode());
                    }
                });
            }
            break;
            default: {
                HdlThreadLogic.runMainThread(new Runnable() {
                    @Override
                    public void run() {
                        hideLoading();
                    }
                }, this, ShowErrorMode.YES);
                break;
            }
        }
    }
    private void setError(HDLLinkException hdlLinkException) {
        String error = hdlLinkException.getMsg() + "(" + hdlLinkException.getCode() + ")";
    private void setError(String msg, int code) {
        String error = msg + "(" + code + ")";
        showText(error);
    }
@@ -198,7 +274,7 @@
    /**
     * @param s 错误信息
     */
    private void TipDialog(String s) {
    private void TipDialog(String s, Listener listener) {
        ConfirmationCancelDialog confirmationCancelDialog = new ConfirmationCancelDialog(this);
        confirmationCancelDialog.setTitle("提示");
        confirmationCancelDialog.setContent(s);
@@ -209,16 +285,26 @@
            @Override
            public void Cancel() {
                confirmationCancelDialog.dismiss();
                hideLoading();
            }
        });
        confirmationCancelDialog.setYesOnclickListener(new ConfirmationCancelDialog.onYesOnclickListener() {
            @Override
            public void Confirm() {
                hideLoading();
                confirmationCancelDialog.dismiss();
                if (listener != null) {
                    listener.Confirmation();
                }
            }
        });
    }
    public interface Listener {
        void Confirmation();
    }
}