package com.hdl.photovoltaic.ui.test;
|
|
import androidx.recyclerview.widget.LinearLayoutManager;
|
|
import android.content.Context;
|
import android.os.Bundle;
|
import android.text.TextUtils;
|
import android.util.Log;
|
import android.view.View;
|
|
import com.google.gson.Gson;
|
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.LinkCallBack;
|
import com.hdl.photovoltaic.other.HdlDeviceLogic;
|
import com.hdl.photovoltaic.other.HdlThreadLogic;
|
import com.hdl.photovoltaic.ui.bean.OidBean;
|
import com.hdl.photovoltaic.widget.ConfirmationCancelDialog;
|
import com.hdl.photovoltaic.widget.ConfirmationExceptionDialog;
|
import com.hdl.sdk.link.common.exception.HDLLinkException;
|
import com.hdl.sdk.link.core.bean.gateway.GatewayBean;
|
import com.hdl.sdk.link.core.callback.GatewayCallBack;
|
|
import java.util.ArrayList;
|
import java.util.List;
|
|
/**
|
* 测试网关数据主入口界面
|
*/
|
public class TestMainActivity extends CustomBaseActivity implements View.OnClickListener {
|
|
private ActivityTestMainBinding viewBinding;
|
private TestTitleAdapter testTitleAdapter;
|
|
@Override
|
public Object getContentView() {
|
viewBinding = ActivityTestMainBinding.inflate(getLayoutInflater());
|
return viewBinding.getRoot();
|
}
|
|
@Override
|
public void onBindView(Bundle savedInstanceState) {
|
|
LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this);
|
testTitleAdapter = new TestTitleAdapter(getTitleList());
|
viewBinding.listItemRl.setLayoutManager(linearLayoutManager);
|
viewBinding.listItemRl.setAdapter(testTitleAdapter);
|
initView();
|
initEvent();
|
|
}
|
|
/**
|
* 初始化
|
*/
|
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);
|
|
|
}
|
|
private void initEvent() {
|
viewBinding.toolbarTopFragmentHouseListRl.topBackBtn.setOnClickListener(this);
|
testTitleAdapter.setItemOnClickListener(new TestTitleAdapter.OnClickListener() {
|
@Override
|
public void OnClick(int position) {
|
|
|
if (TextUtils.isEmpty(UserConfigManage.getInstance().getHomeId())) {
|
// TODO: 10/30/23 请先选择住宅进行测试,否则无法进行逆变器指令测试;
|
TipDialog("请先选择住宅进行测试,否则无法进行逆变器指令测试.");
|
return;
|
}
|
GatewayBean gatewayBean = HdlDeviceLogic.getInstance().getCurrentHomeMainGateway();
|
if (gatewayBean == null) {
|
// TODO: 10/30/23 找不到住宅的主逆变器,请先确认是否绑定逆变器,再进行逆变器指令测试;
|
TipDialog("找不到住宅的主逆变器,请先确认是否绑定过逆变器,再进行逆变器指令测试.");
|
return;
|
}
|
showLoading();
|
startRequest(position, gatewayBean);
|
}
|
});
|
}
|
|
|
@Override
|
public void onClick(View v) {
|
int id = v.getId();
|
if (id == viewBinding.toolbarTopFragmentHouseListRl.topBackBtn.getId()) {
|
finish();
|
}
|
}
|
|
/**
|
* 自定义的标题
|
*
|
* @return -
|
*/
|
private List<String> getTitleList() {
|
List<String> s = new ArrayList<>();
|
s.add("搜索逆变器列表");
|
s.add("获取逆变器oid列表");
|
s.add("读取逆变器详情");
|
return s;
|
}
|
|
/**
|
* 请求指令
|
*
|
* @param position 索引值
|
*/
|
private void startRequest(int position, GatewayBean gatewayBean) {
|
String title = getTitleList().get(position);
|
switch (title) {
|
case "搜索逆变器列表": {
|
HdlDeviceLogic.getInstance().searchGateway(new GatewayCallBack() {
|
@Override
|
public void onSuccess(List<GatewayBean> gatewayBeanList) {
|
gsonConvertJsonStr(gatewayBeanList);
|
}
|
|
@Override
|
public void onError(HDLLinkException e) {
|
setError(e);
|
}
|
});
|
}
|
break;
|
|
case "获取逆变器oid列表": {
|
HdlDeviceLogic.getInstance().getInverterOidList(gatewayBean.getDevice_mac(), new LinkCallBack<List<OidBean>>() {
|
@Override
|
public void onSuccess(List<OidBean> obj) {
|
gsonConvertJsonStr(obj);
|
}
|
|
@Override
|
public void onError(HDLLinkException e) {
|
setError(e);
|
}
|
});
|
}
|
break;
|
|
case "读取逆变器详情": {
|
HdlDeviceLogic.getInstance().getGatewayInfo(gatewayBean.getDevice_mac(), new LinkCallBack<GatewayBean>() {
|
@Override
|
public void onSuccess(GatewayBean obj) {
|
gsonConvertJsonStr(obj);
|
}
|
|
@Override
|
public void onError(HDLLinkException e) {
|
setError(e);
|
}
|
});
|
}
|
break;
|
}
|
|
}
|
|
private void setError(HDLLinkException hdlLinkException) {
|
String error = hdlLinkException.getMsg() + "(" + hdlLinkException.getCode() + ")";
|
showText(error);
|
}
|
|
private void gsonConvertJsonStr(Object src) {
|
Gson gson = new Gson();
|
String json = gson.toJson(src);
|
showText(json);
|
}
|
|
/**
|
* 回复的数据
|
*
|
* @param s 数据
|
*/
|
private void showText(String s) {
|
HdlThreadLogic.runMainThread(new Runnable() {
|
@Override
|
public void run() {
|
hideLoading();
|
String s1 = "数据回复:\r\n" + s;
|
viewBinding.replyContentTv.setText(s1);
|
}
|
}, this, ShowErrorMode.YES);
|
}
|
|
|
/**
|
* @param s 错误信息
|
*/
|
private void TipDialog(String s) {
|
ConfirmationCancelDialog confirmationCancelDialog = new ConfirmationCancelDialog(this);
|
confirmationCancelDialog.setTitle("提示");
|
confirmationCancelDialog.setContent(s);
|
confirmationCancelDialog.setConfirmation("确认");
|
confirmationCancelDialog.setCancel("取消");
|
confirmationCancelDialog.show();
|
confirmationCancelDialog.setNoOnclickListener(new ConfirmationCancelDialog.onNoOnclickListener() {
|
@Override
|
public void Cancel() {
|
confirmationCancelDialog.dismiss();
|
}
|
});
|
confirmationCancelDialog.setYesOnclickListener(new ConfirmationCancelDialog.onYesOnclickListener() {
|
@Override
|
public void Confirm() {
|
confirmationCancelDialog.dismiss();
|
|
}
|
});
|
}
|
|
|
}
|