[工控机监控] 优化显示

This commit is contained in:
xinfengkun
2023-03-30 14:10:09 +08:00
parent 057c6e842c
commit a3a7e02f5f
18 changed files with 215 additions and 95 deletions

View File

@@ -35,6 +35,7 @@ public class DataDistribution {
private Future future;
private Pair<String, OnAdasClientListener> listener;
private volatile boolean isCutDown = true;//是否缩短日志显示
private int resId = R.id.rb_analysis;
private DataDistribution() {
queue = new LinkedBlockingQueue<>();
@@ -51,7 +52,9 @@ public class DataDistribution {
}
return INSTANCE;
}
public void setResId(int resId) {
this.resId = resId;
}
public void registerAdasClientListener(Pair<String, OnAdasClientListener> listener) {
this.listener = listener;
}
@@ -188,7 +191,7 @@ public class DataDistribution {
}
private String onTransmit(String time, BaseInfo data) {
String temp = data.toString();
String temp = data.toString(resId);
String str = cutDown(temp);
if (data.header == null) {
if (data instanceof ErrorData) {

View File

@@ -35,8 +35,7 @@ public abstract class BaseInfo {
this.header = null;
}
@Override
public String toString() {
public String toString(int resId) {
String str = "原始数据长度:" + len + "\tPayload数据长度" + payloadLen + '\n';
if (header != null) {
str += "Header:[" + "MessageID:" + header.getMsgID() +

View File

@@ -14,7 +14,7 @@ public class ErrorData extends BaseInfo {
}
@Override
public String toString() {
return super.toString() + status + "\n原始数据" + ByteUtil.byteArrToHex(bytes);
public String toString(int resId) {
return super.toString(resId) + status + "\n原始数据" + ByteUtil.byteArrToHex(bytes);
}
}

View File

@@ -2,6 +2,7 @@ package com.zhidao.adas.client.bean;
import com.google.protobuf.TextFormat;
import com.mogo.support.obu.ObuScene;
import com.zhidao.adas.client.R;
import com.zhidao.support.adas.high.common.ByteUtil;
import java.text.SimpleDateFormat;
@@ -18,8 +19,16 @@ public class ObuMap extends BaseInfo {
}
@Override
public String toString() {
return super.toString() + "Payload原始数据" + ByteUtil.byteArrToHex(bean.toByteArray()) + '\n' + TextFormat.printer().escapingNonAscii(false).printToString(bean);
public String toString(int resId) {
String srt = "";
if (resId == R.id.rb_analysis) {
srt = TextFormat.printer().escapingNonAscii(false).printToString(bean);
} else if (resId == R.id.rb_original) {
srt = "Payload原始数据" + ByteUtil.byteArrToHex(bean.toByteArray());
} else if (resId == R.id.rb_all) {
srt = "Payload原始数据" + ByteUtil.byteArrToHex(bean.toByteArray()) + '\n' + TextFormat.printer().escapingNonAscii(false).printToString(bean);
}
return super.toString(resId) + srt;
}
}

View File

@@ -2,6 +2,7 @@ package com.zhidao.adas.client.bean;
import com.google.protobuf.TextFormat;
import com.mogo.support.obu.ObuScene;
import com.zhidao.adas.client.R;
import com.zhidao.support.adas.high.common.ByteUtil;
import java.text.SimpleDateFormat;
@@ -18,8 +19,16 @@ public class ObuRsi extends BaseInfo {
}
@Override
public String toString() {
return super.toString() + "Payload原始数据" + ByteUtil.byteArrToHex(bean.toByteArray()) + '\n' + TextFormat.printer().escapingNonAscii(false).printToString(bean);
public String toString(int resId) {
String srt = "";
if (resId == R.id.rb_analysis) {
srt = TextFormat.printer().escapingNonAscii(false).printToString(bean);
} else if (resId == R.id.rb_original) {
srt = "Payload原始数据" + ByteUtil.byteArrToHex(bean.toByteArray());
} else if (resId == R.id.rb_all) {
srt = "Payload原始数据" + ByteUtil.byteArrToHex(bean.toByteArray()) + '\n' + TextFormat.printer().escapingNonAscii(false).printToString(bean);
}
return super.toString(resId) + srt;
}
}

View File

@@ -2,6 +2,7 @@ package com.zhidao.adas.client.bean;
import com.google.protobuf.TextFormat;
import com.mogo.support.obu.ObuScene;
import com.zhidao.adas.client.R;
import com.zhidao.support.adas.high.common.ByteUtil;
import java.text.SimpleDateFormat;
@@ -18,8 +19,16 @@ public class ObuRsm extends BaseInfo {
}
@Override
public String toString() {
return super.toString() + "Payload原始数据" + ByteUtil.byteArrToHex(bean.toByteArray()) + '\n' + TextFormat.printer().escapingNonAscii(false).printToString(bean);
public String toString(int resId) {
String srt = "";
if (resId == R.id.rb_analysis) {
srt = TextFormat.printer().escapingNonAscii(false).printToString(bean);
} else if (resId == R.id.rb_original) {
srt = "Payload原始数据" + ByteUtil.byteArrToHex(bean.toByteArray());
} else if (resId == R.id.rb_all) {
srt = "Payload原始数据" + ByteUtil.byteArrToHex(bean.toByteArray()) + '\n' + TextFormat.printer().escapingNonAscii(false).printToString(bean);
}
return super.toString(resId) + srt;
}
}

View File

@@ -2,6 +2,7 @@ package com.zhidao.adas.client.bean;
import com.google.protobuf.TextFormat;
import com.mogo.support.obu.ObuScene;
import com.zhidao.adas.client.R;
import com.zhidao.support.adas.high.common.ByteUtil;
import java.text.SimpleDateFormat;
@@ -18,8 +19,15 @@ public class ObuSpat extends BaseInfo {
}
@Override
public String toString() {
return super.toString() + "Payload原始数据" + ByteUtil.byteArrToHex(bean.toByteArray()) + '\n' + TextFormat.printer().escapingNonAscii(false).printToString(bean);
public String toString(int resId) {
String srt = "";
if (resId == R.id.rb_analysis) {
srt = TextFormat.printer().escapingNonAscii(false).printToString(bean);
} else if (resId == R.id.rb_original) {
srt = "Payload原始数据" + ByteUtil.byteArrToHex(bean.toByteArray());
} else if (resId == R.id.rb_all) {
srt = "Payload原始数据" + ByteUtil.byteArrToHex(bean.toByteArray()) + '\n' + TextFormat.printer().escapingNonAscii(false).printToString(bean);
}
return super.toString(resId) + srt;
}
}

View File

@@ -1,6 +1,7 @@
package com.zhidao.adas.client.bean;
import com.google.protobuf.TextFormat;
import com.zhidao.adas.client.R;
import com.zhidao.support.adas.high.common.ByteUtil;
import java.text.SimpleDateFormat;
@@ -18,8 +19,16 @@ public class PerceptionTrafficLight extends BaseInfo {
@Override
public String toString() {
return super.toString() + "Payload原始数据" + ByteUtil.byteArrToHex(bean.toByteArray()) + '\n' + TextFormat.printer().escapingNonAscii(false).printToString(bean);
public String toString(int resId) {
String srt = "";
if (resId == R.id.rb_analysis) {
srt = TextFormat.printer().escapingNonAscii(false).printToString(bean);
} else if (resId == R.id.rb_original) {
srt = "Payload原始数据" + ByteUtil.byteArrToHex(bean.toByteArray());
} else if (resId == R.id.rb_all) {
srt = "Payload原始数据" + ByteUtil.byteArrToHex(bean.toByteArray()) + '\n' + TextFormat.printer().escapingNonAscii(false).printToString(bean);
}
return super.toString(resId) + srt;
}
}

View File

@@ -16,8 +16,8 @@ public class ReceiveBytesData extends BaseInfo {
@Override
public String toString() {
return super.toString() + "Payload原始数据" + ByteUtil.byteArrToHex(data);
public String toString(int resId) {
return super.toString(resId) + "Payload原始数据" + ByteUtil.byteArrToHex(data);
}
}

View File

@@ -2,6 +2,7 @@ package com.zhidao.adas.client.bean;
import com.google.protobuf.GeneratedMessageV3;
import com.google.protobuf.TextFormat;
import com.zhidao.adas.client.R;
import com.zhidao.support.adas.high.common.ByteUtil;
import java.text.SimpleDateFormat;
@@ -17,9 +18,16 @@ public class ReceiveData extends BaseInfo {
}
@Override
public String toString() {
return super.toString() + "Payload原始数据" + ByteUtil.byteArrToHex(bean.toByteArray()) + '\n' + TextFormat.printer().escapingNonAscii(false).printToString(bean);
public String toString(int resId) {
String srt = "";
if (resId == R.id.rb_analysis) {
srt = TextFormat.printer().escapingNonAscii(false).printToString(bean);
} else if (resId == R.id.rb_original) {
srt = "Payload原始数据" + ByteUtil.byteArrToHex(bean.toByteArray());
} else if (resId == R.id.rb_all) {
srt = "Payload原始数据" + ByteUtil.byteArrToHex(bean.toByteArray()) + '\n' + TextFormat.printer().escapingNonAscii(false).printToString(bean);
}
return super.toString(resId) + srt;
}
}

View File

@@ -1,6 +1,7 @@
package com.zhidao.adas.client.bean;
import com.google.protobuf.TextFormat;
import com.zhidao.adas.client.R;
import com.zhidao.support.adas.high.common.ByteUtil;
import java.text.SimpleDateFormat;
@@ -27,7 +28,7 @@ public class V2nGlobalPathEventsReceiveData extends BaseInfo {
@Override
public String toString() {
public String toString(int resId) {
StringBuilder builder = new StringBuilder();
builder.append('\n').append("施工:");
if (construct != null) {
@@ -53,7 +54,15 @@ public class V2nGlobalPathEventsReceiveData extends BaseInfo {
} else {
builder.append("null");
}
return super.toString() + "Payload原始数据" + ByteUtil.byteArrToHex(roadOverview.toByteArray()) + builder.toString();
String srt = "";
if (resId == R.id.rb_analysis) {
srt = builder.toString();
} else if (resId == R.id.rb_original) {
srt = "Payload原始数据" + ByteUtil.byteArrToHex(roadOverview.toByteArray());
} else if (resId == R.id.rb_all) {
srt = "Payload原始数据" + ByteUtil.byteArrToHex(roadOverview.toByteArray()) + builder.toString();
}
return super.toString(resId) + srt;
}
}

View File

@@ -131,7 +131,6 @@ public class MainActivity extends BaseActivity implements OnAdasListener, OnAdas
private TextView ipcIp;
private TextView background;
private TextView localIp;
private View line;
private View line1;
private RadioGroup connectionType;
private AppCompatButton connect;
@@ -145,6 +144,7 @@ public class MainActivity extends BaseActivity implements OnAdasListener, OnAdas
private RecyclerView infoBtn;
private RecyclerView infoFragment;
private TextView tvConnectState;
private RadioGroup rg_show_log;
private ScheduledExecutorService mExecutorServiceConfigTimer;
private PingFloatWindow pingFloatWindow;
@@ -303,7 +303,6 @@ public class MainActivity extends BaseActivity implements OnAdasListener, OnAdas
etIp = findViewById(R.id.et_ip);
background = findViewById(R.id.background);
role = findViewById(R.id.role);
line = findViewById(R.id.line);
line1 = findViewById(R.id.line1);
connectionType = findViewById(R.id.connection_type);
tvIp = findViewById(R.id.tv_ip);
@@ -321,6 +320,8 @@ public class MainActivity extends BaseActivity implements OnAdasListener, OnAdas
tvConnectState = findViewById(R.id.tv_connect_state);
ipcIp = findViewById(R.id.ipc_ip);
localIp = findViewById(R.id.local_ip);
rg_show_log = findViewById(R.id.rg_show_log);
findViewById(R.id.btn_router).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
@@ -330,12 +331,10 @@ public class MainActivity extends BaseActivity implements OnAdasListener, OnAdas
role.setSelected(BuildConfig.IS_CLIENT);
if (BuildConfig.IS_CLIENT) {
line.setVisibility(View.GONE);
line1.setVisibility(View.GONE);
connectionType.setVisibility(View.GONE);
etIp.setVisibility(View.GONE);
tvIp.setVisibility(View.GONE);
line.setVisibility(View.GONE);
connect.setVisibility(View.GONE);
disconnect.setVisibility(View.GONE);
cb_timeout.setVisibility(View.GONE);
@@ -619,6 +618,12 @@ public class MainActivity extends BaseActivity implements OnAdasListener, OnAdas
btn_ping.setSelected(pingFloatWindow != null);
}
});
rg_show_log.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
DataDistribution.getInstance().setResId(checkedId);
}
});
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.4 KiB

View File

@@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="200dp"
android:height="200dp"
android:viewportWidth="1024"
android:viewportHeight="1024">
<path
android:fillColor="#FFFFFF"
android:pathData="M919.5,784.3l-22.2,-199.7c-0.9,-36.7 -31,-66.4 -67.9,-66.4h-35.6L793.8,116.9c0,-14.3 -11.6,-25.9 -25.9,-25.9 -14.3,0 -25.9,11.6 -25.9,25.9v401.3L534.9,518.2L534.9,117c0,-14.3 -11.6,-25.9 -25.9,-25.9 -14.3,0 -25.9,11.6 -25.9,25.9v401.3L276,518.3L276,117c0,-14.3 -11.6,-25.9 -25.9,-25.9 -14.3,0 -25.9,11.6 -25.9,25.9v401.3h-51.8c-37,0 -67.1,29.7 -67.9,66.5L81.9,800.4c-0.2,1.5 -0.2,2.9 -0.1,4.4 0,0.5 -0.1,1 -0.1,1.6v19.4c0,37.5 30.5,68 68,68h705.5c37.5,0 68,-30.5 68,-68v-19.4c0.1,-7.8 -1.3,-15.2 -3.7,-22.1zM156.2,586.3c0,-8.9 7.3,-16.2 16.2,-16.2h657c8.9,0 16.2,7.3 16.2,16.2v1.4l16.8,151c-2.3,-0.2 -4.7,-0.4 -7.1,-0.4L149.8,738.3c-3.2,0 -6.3,0.3 -9.4,0.7l15.7,-150.1 0.1,-2.6zM871.5,825.7c0,8.9 -7.3,16.2 -16.2,16.2L149.8,841.9c-8.9,0 -16.2,-7.3 -16.2,-16.2v-19.4c0,-8.9 7.3,-16.2 16.2,-16.2h705.5c8.9,0 16.2,7.3 16.2,16.2v19.4z"/>
</vector>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

View File

@@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="200dp"
android:height="200dp"
android:viewportWidth="1024"
android:viewportHeight="1024">
<path
android:fillColor="#D81B60"
android:pathData="M919.5,784.3l-22.2,-199.7c-0.9,-36.7 -31,-66.4 -67.9,-66.4h-35.6L793.8,116.9c0,-14.3 -11.6,-25.9 -25.9,-25.9 -14.3,0 -25.9,11.6 -25.9,25.9v401.3L534.9,518.2L534.9,117c0,-14.3 -11.6,-25.9 -25.9,-25.9 -14.3,0 -25.9,11.6 -25.9,25.9v401.3L276,518.3L276,117c0,-14.3 -11.6,-25.9 -25.9,-25.9 -14.3,0 -25.9,11.6 -25.9,25.9v401.3h-51.8c-37,0 -67.1,29.7 -67.9,66.5L81.9,800.4c-0.2,1.5 -0.2,2.9 -0.1,4.4 0,0.5 -0.1,1 -0.1,1.6v19.4c0,37.5 30.5,68 68,68h705.5c37.5,0 68,-30.5 68,-68v-19.4c0.1,-7.8 -1.3,-15.2 -3.7,-22.1zM156.2,586.3c0,-8.9 7.3,-16.2 16.2,-16.2h657c8.9,0 16.2,7.3 16.2,16.2v1.4l16.8,151c-2.3,-0.2 -4.7,-0.4 -7.1,-0.4L149.8,738.3c-3.2,0 -6.3,0.3 -9.4,0.7l15.7,-150.1 0.1,-2.6zM871.5,825.7c0,8.9 -7.3,16.2 -16.2,16.2L149.8,841.9c-8.9,0 -16.2,-7.3 -16.2,-16.2v-19.4c0,-8.9 7.3,-16.2 16.2,-16.2h705.5c8.9,0 16.2,7.3 16.2,16.2v19.4z"/>
</vector>

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/icon_dev_status_net_disable" android:state_pressed="true" />
<item android:drawable="@drawable/icon_dev_status_net_enable" />
<item android:drawable="@drawable/icon_dev_status_net_enable" android:state_pressed="true" />
<item android:drawable="@drawable/icon_dev_status_net_disable" />
</selector>

View File

@@ -91,59 +91,108 @@
android:layout_width="wrap_content"
android:layout_height="match_parent">
<LinearLayout
android:id="@+id/layout_cb"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layoutDirection="ltr"
android:orientation="vertical">
<CheckBox
android:id="@+id/cb_print"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_weight="1"
android:checked="true"
android:text="打印"
android:textColor="#ffffff" />
<CheckBox
android:id="@+id/cb_save"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_weight="1"
android:text="存储"
android:textColor="#ffffff" />
</LinearLayout>
<LinearLayout
android:id="@+id/layout_log_hint"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="center_vertical"
android:layoutDirection="ltr"
android:orientation="vertical">
<TextView
android:id="@+id/log_hint"
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_weight="1"
android:gravity="center"
android:text="日志:"
android:textColor="#ffffff" />
android:gravity="center_vertical"
android:orientation="horizontal">
<CheckBox
android:id="@+id/cb_cut_down"
<TextView
android:id="@+id/log_hint"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:gravity="center"
android:text="日志\t\t"
android:textColor="@color/colorWhile" />
<CheckBox
android:id="@+id/cb_cut_down"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:buttonTint="@color/colorWhile"
android:checked="true"
android:text="缩短"
android:textColor="@color/colorWhile" />
<CheckBox
android:id="@+id/cb_print"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:buttonTint="@color/colorWhile"
android:checked="true"
android:text="打印"
android:textColor="@color/colorWhile" />
<CheckBox
android:id="@+id/cb_save"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:buttonTint="@color/colorWhile"
android:text="存储"
android:textColor="@color/colorWhile" />
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_marginStart="45dp"
android:background="#CCCCCCCC" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_weight="1"
android:checked="true"
android:text="缩短"
android:textColor="#ffffff" />
android:gravity="center_vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:gravity="center"
android:text="显示:"
android:textColor="@color/colorWhile" />
<RadioGroup
android:id="@+id/rg_show_log"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:orientation="horizontal">
<RadioButton
android:id="@+id/rb_analysis"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:buttonTint="@color/colorWhile"
android:checked="true"
android:text="解析"
android:textColor="@color/colorWhile" />
<RadioButton
android:id="@+id/rb_original"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:buttonTint="@color/colorWhile"
android:text="原始"
android:textColor="@color/colorWhile" />
<RadioButton
android:id="@+id/rb_all"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:buttonTint="@color/colorWhile"
android:text="全部"
android:textColor="@color/colorWhile" />
</RadioGroup>
</LinearLayout>
</LinearLayout>
<View
@@ -155,7 +204,7 @@
android:layout_marginEnd="5dp"
android:layout_marginBottom="10dp"
android:layout_toStartOf="@+id/layout_log_hint"
android:background="#fff124" />
android:background="#CCCCCCCC" />
<LinearLayout
android:layout_width="wrap_content"
@@ -169,9 +218,10 @@
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_weight="1"
android:buttonTint="@color/colorWhile"
android:checked="true"
android:text="超时检测"
android:textColor="#ffffff" />
android:textColor="@color/colorWhile" />
<TextView
android:id="@+id/tv_connect_state"
@@ -185,15 +235,6 @@
android:textStyle="bold" />
</LinearLayout>
<View
android:id="@+id/line2"
android:layout_width="2dp"
android:layout_height="match_parent"
android:layout_marginStart="5dp"
android:layout_marginTop="10dp"
android:layout_marginEnd="5dp"
android:layout_marginBottom="10dp"
android:background="#fff124" />
<androidx.appcompat.widget.AppCompatButton
android:id="@+id/disconnect"
@@ -222,22 +263,13 @@
android:textSize="16dp"
android:textStyle="bold" />
<View
android:id="@+id/line"
android:layout_width="1dp"
android:layout_height="match_parent"
android:layout_marginStart="5dp"
android:layout_marginTop="10dp"
android:layout_marginEnd="5dp"
android:layout_marginBottom="10dp"
android:layout_toStartOf="@+id/connect"
android:background="#fff124" />
<RadioGroup
android:id="@+id/connection_type"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginEnd="8dp"
android:layoutDirection="ltr"
android:orientation="horizontal">
@@ -245,15 +277,17 @@
android:id="@+id/assign"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:buttonTint="@color/colorWhile"
android:text="指定"
android:textColor="#ffffff" />
android:textColor="@color/colorWhile" />
<RadioButton
android:id="@+id/fixation"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:buttonTint="@color/colorWhile"
android:text="固定"
android:textColor="#ffffff" />
android:textColor="@color/colorWhile" />
</RadioGroup>
@@ -288,9 +322,9 @@
<ImageView
android:id="@+id/btn_router"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_height="match_parent"
android:layout_gravity="center_vertical"
android:layout_marginStart="18dp"
android:layout_marginStart="20dp"
android:src="@drawable/selector_router" />
<ImageView
@@ -298,7 +332,7 @@
android:layout_width="40dp"
android:layout_height="match_parent"
android:layout_gravity="center_vertical"
android:layout_marginStart="30dp"
android:layout_marginStart="10dp"
android:padding="3dp"
android:scaleType="centerInside"
android:src="@drawable/selector_ping" />