diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index aee43fe..a0a8692 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -1045,7 +1045,7 @@
android:windowSoftInputMode="adjustResize|stateHidden" />
() {
private var deviceCode:String?=null
@@ -104,21 +106,23 @@ class DeviceAlarmInfoDetailActivity : BaseActivityOaToolbarViewBindingparams.dpmAlarmMinValue){
- binding.itemXwy.tvBjz.setTextColor(Color.parseColor("#e9260f"))
+ binding.itemXwy.tvBjz.setTextColor(Color.parseColor("#ff8000"))
}
if(data.getyDisplacement()>params.dpmAlarmMinValue){
- binding.itemYwy.tvBjz.setTextColor(Color.parseColor("#e9260f"))
+ binding.itemYwy.tvBjz.setTextColor(Color.parseColor("#ff8000"))
}
if(data.getzDisplacement()>params.dpmAlarmMinValue){
- binding.itemZwy.tvBjz.setTextColor(Color.parseColor("#e9260f"))
+ binding.itemZwy.tvBjz.setTextColor(Color.parseColor("#ff8000"))
}
}else{
binding.itemWybjz.llAll.visibility= View.GONE
@@ -168,13 +172,13 @@ class DeviceAlarmInfoDetailActivity : BaseActivityOaToolbarViewBindingparams.spdAlarmMinValue){
- binding.itemXsd.tvBjz.setTextColor(Color.parseColor("#e9260f"))
+ binding.itemXsd.tvBjz.setTextColor(Color.parseColor("#ff8000"))
}
if(data.getySpeed()>params.spdAlarmMinValue){
- binding.itemYsd.tvBjz.setTextColor(Color.parseColor("#e9260f"))
+ binding.itemYsd.tvBjz.setTextColor(Color.parseColor("#ff8000"))
}
if(data.getzSpeed()>params.spdAlarmMinValue){
- binding.itemZsd.tvBjz.setTextColor(Color.parseColor("#e9260f"))
+ binding.itemZsd.tvBjz.setTextColor(Color.parseColor("#ff8000"))
}
}else{
binding.itemSdbjz.llAll.visibility= View.GONE
@@ -205,6 +209,8 @@ class DeviceAlarmInfoDetailActivity : BaseActivityOaToolbarViewBinding deviceAlarmDataList = new ArrayList<>();
private double maxTemperature=0;
private double maxAddSpeed=0;
+ private double maxSpeed=0;
+ private double maxWy=0;
private ArrayList xLabelListData = new ArrayList<>();
private ArrayList xLabelListDataAddSpeed = new ArrayList<>();
private ArrayList xLabelListDataSpeed = new ArrayList<>();
+ private ArrayList xLabelListDataWy = new ArrayList<>();
@Override
protected ActivityDeviceAlarmInfoLineChartBinding getBinding() {
@@ -205,6 +209,7 @@ public class DeviceAlarmInfoLineChartActivity extends BaseViewBindingActivity {
@@ -216,6 +221,7 @@ public class DeviceAlarmInfoLineChartActivity extends BaseViewBindingActivity {
@@ -280,6 +286,12 @@ public class DeviceAlarmInfoLineChartActivity extends BaseViewBindingActivitymaxTemperature){
maxTemperature=item.getTemperature();
}
+ if(i==deviceAlarmDataList.size()-1){
+ showLog(GsonString(item));
+ }
} catch (ParseException e) {
throw new RuntimeException(e);
}
@@ -341,47 +397,6 @@ public class DeviceAlarmInfoLineChartActivity extends BaseViewBindingActivity datas) {
// 清除所有数据
binding.linechart.clear();
@@ -394,9 +409,10 @@ public class DeviceAlarmInfoLineChartActivity extends BaseViewBindingActivity {
// // 获取最后一个可见的X值
@@ -458,6 +474,7 @@ public class DeviceAlarmInfoLineChartActivity extends BaseViewBindingActivity=2.5&&maxAddSpeed<4.5){
maxAddSpeed=5;
- }else if(maxAddSpeed>=4.5&&maxAddSpeed<9){
+ }else if(maxAddSpeed>=4.5&&maxAddSpeed<6.5){
+ maxAddSpeed=7;
+ }else if(maxAddSpeed>=6.5&&maxAddSpeed<9){
maxAddSpeed=10;
}else if(maxAddSpeed>=9&&maxAddSpeed<15){
maxAddSpeed=16;
@@ -530,9 +549,10 @@ public class DeviceAlarmInfoLineChartActivity extends BaseViewBindingActivity entriesXSpeed = new ArrayList<>();
+ List entriesYSpeed = new ArrayList<>();
+ List entriesZSpeed = new ArrayList<>();
+ for (int i = 0; i < deviceAlarmDataList.size(); i++) {
+ try {
+ DeviceAlarmInfoLineChartBean.DeviceVibrationMonitoringData item = deviceAlarmDataList.get(i);
+
+ entriesXSpeed.add(new Entry(i, Float.parseFloat(item.getxSpeed().toString())));
+ entriesYSpeed.add(new Entry(i, Float.parseFloat(item.getySpeed().toString())));
+ entriesZSpeed.add(new Entry(i, Float.parseFloat(item.getzSpeed().toString())));
+
+ Date date = sdf.parse(item.getDeviceTime());
+ if(date != null){
+ Calendar calendar = Calendar.getInstance();
+ calendar.setTime(date);
+ xLabelListDataSpeed.add(sdfHourMinute.format(calendar.getTime()));
+ }
+ if(item.getxSpeed()!=null&& item.getxSpeed() >maxSpeed){
+ maxSpeed=item.getxSpeed();
+ }
+ if(item.getySpeed()!=null&& item.getySpeed() >maxSpeed){
+ maxSpeed=item.getySpeed();
+ }
+ if(item.getzSpeed()!=null&& item.getzSpeed() >maxSpeed){
+ maxSpeed=item.getzSpeed();
+ }
+ } catch (ParseException e) {
+ throw new RuntimeException(e);
+ }
+ }
+ showLog(String.valueOf(deviceAlarmDataList.size()));
+ showLog("maxSpeed:"+String.valueOf(maxSpeed));
+ if(maxSpeed<2.5){
+ maxSpeed=2.5;
+ }else if(maxSpeed>=2.5&&maxSpeed<4.5){
+ maxSpeed=5;
+ }else if(maxSpeed>=4.5&&maxSpeed<6.5){
+ maxSpeed=7;
+ }else if(maxSpeed>=6.5&&maxSpeed<9){
+ maxSpeed=10;
+ }else if(maxSpeed>=9&&maxSpeed<15){
+ maxSpeed=16;
+ }else if(maxSpeed>=15&&maxSpeed<30){
+ maxSpeed=31;
+ }else if(maxSpeed>=30&&maxSpeed<50){
+ maxSpeed=60;
+ }else if(maxSpeed>=50&&maxSpeed<75){
+ maxSpeed=80;
+ }else if(maxSpeed>=75&&maxSpeed<95){
+ maxSpeed=100;
+ }else if(maxSpeed>=95&&maxSpeed<125){
+ maxSpeed=130;
+ }else{
+ maxSpeed=maxSpeed+5;
}
+ showLog("maxSpeed:"+String.valueOf(maxSpeed));
+ setDataSpeed(entriesXSpeed,entriesYSpeed,entriesZSpeed);
+ }
+ private void setDataSpeed(List entriesXSpeed,List entriesYSpeed,List entriesZSpeed) {
+ // 清除所有数据
+ binding.linechart.clear();
+ binding.linechart.invalidate(); // 重绘视图
+
+ List sets = new ArrayList<>();
+
+ String deviceNameLineX = deviceName+"X轴速度";
+ LineDataSet dataSet1 = new LineDataSet(entriesXSpeed, deviceNameLineX);
+ dataSet1.setValueTextSize(12);
+ dataSet1.setValueTextColor(Color.parseColor("#ff8000"));
+ dataSet1.setMode(LineDataSet.Mode.CUBIC_BEZIER);
+ dataSet1.setLineWidth(2);
+ //dataSet1.setCircleHoleRadius(3);
+ dataSet1.setDrawCircles(false); // 禁用圆点绘制
+ //dataSet1.enableDashedLine(5, 5, 0);
+ //dataSet1.setCircleColor(Color.parseColor("#ff8000"));
+ dataSet1.setColor(Color.parseColor("#ff8000"));
+ dataSet1.setDrawHighlightIndicators(false);
+ //dataSet1.setDrawFilled(true);
+ //dataSet1.setFillDrawable(new GradientDrawable(GradientDrawable.Orientation.TOP_BOTTOM, new int[]{Color.argb(127, 235, 170, 106), Color.parseColor("#00FA5544")}));
+ dataSet1.setLineWidth(2);
+ dataSet1.setDrawValues(false);
+ sets.add(dataSet1);
+
+ String deviceNameLineY = deviceName+"Y轴速度";
+ LineDataSet dataSet2 = new LineDataSet(entriesYSpeed, deviceNameLineY);
+ dataSet2.setValueTextSize(12);
+ dataSet2.setValueTextColor(Color.parseColor("#0080ff"));
+ dataSet2.setMode(LineDataSet.Mode.CUBIC_BEZIER);
+ dataSet2.setLineWidth(2);
+ //dataSet2.setCircleHoleRadius(3);
+ dataSet2.setDrawCircles(false); // 禁用圆点绘制
+ //dataSet2.enableDashedLine(5, 5, 0);
+ //dataSet2.setCircleColor(Color.parseColor("#0080ff"));
+ dataSet2.setColor(Color.parseColor("#0080ff"));
+ dataSet2.setDrawHighlightIndicators(false);
+ //dataSet2.setDrawFilled(true);
+ //dataSet2.setFillDrawable(new GradientDrawable(GradientDrawable.Orientation.TOP_BOTTOM, new int[]{Color.argb(127, 235, 170, 106), Color.parseColor("#00FA5544")}));
+ dataSet2.setLineWidth(2);
+ dataSet2.setDrawValues(false);
+ sets.add(dataSet2);
+
+ String deviceNameLineZ = deviceName+"Z轴速度";
+ LineDataSet dataSet3 = new LineDataSet(entriesZSpeed, deviceNameLineZ);
+ dataSet3.setValueTextSize(12);
+ dataSet3.setValueTextColor(Color.parseColor("#80ff00"));
+ dataSet3.setMode(LineDataSet.Mode.CUBIC_BEZIER);
+ dataSet3.setLineWidth(2);
+ //dataSet3.setCircleHoleRadius(3);//圆点大小
+ dataSet3.setDrawCircles(false); // 禁用圆点绘制
+ //dataSet3.enableDashedLine(5, 5, 0);//曲线间隔
+ //dataSet3.setCircleColor(Color.parseColor("#80ff00"));//圆点颜色
+ dataSet3.setColor(Color.parseColor("#80ff00"));//线颜色
+ dataSet3.setDrawHighlightIndicators(false);
+ //dataSet3.setDrawFilled(true);
+ //dataSet3.setFillDrawable(new GradientDrawable(GradientDrawable.Orientation.TOP_BOTTOM, new int[]{Color.argb(127, 235, 170, 106), Color.parseColor("#00FA5544")}));
+ dataSet3.setLineWidth(2);
+ dataSet3.setDrawValues(false);
+ sets.add(dataSet3);
+
+ LineData lineData = new LineData(sets);
+ binding.linechart.setData(lineData);
+ binding.linechart.invalidate();
+
+ XAxis xAxis = binding.linechart.getXAxis();
+ xAxis.setPosition(XAxis.XAxisPosition.BOTTOM);
+ xAxis.setAxisMinimum(1);//设置x轴最小
+ xAxis.setTextSize(12);
+ //xAxis.setTextColor(Color.parseColor("#FC863E"));
+ xAxis.setEnabled(true);//是否显示x轴是否禁用
+ xAxis.setDrawLabels(true); //设置x轴标签 即x轴上显示的数值
+ xAxis.setDrawGridLines(true);//是否设置x轴上每个点对应的线 即 竖向的网格线
+ xAxis.enableGridDashedLine(2, 2, 2); //竖线 虚线样式 lineLength控制虚线段的长度 spaceLength控制线之间的空间
+ xAxis.setLabelRotationAngle(40f);//设置x轴标签的旋转角度
+ String[] timearray = xLabelListDataSpeed.toArray(new String[xLabelListDataSpeed.size()]);
+ xAxis.setValueFormatter(new IndexAxisValueFormatter(timearray));
+ YAxis yAxis = binding.linechart.getAxisRight();
+ yAxis.setEnabled(false);
+
+ //设置左边Y轴的样式
+ YAxis axisLeft = binding.linechart.getAxisLeft();
+ axisLeft.setTextSize(12);
+
+ axisLeft.setAxisMinimum(0f);
+ axisLeft.setAxisMaximum((float) maxSpeed);
+
+ //设置字体颜色
+ //axisLeft.setTextColor(Color.parseColor("#FC863E"));
+
+// float ratio = (float) xLabelListDataSpeed.size() / (float) 10;
+// if (ratio < 1) {
+// ratio = 1.0f;
+// }
+ //显示的时候是按照多大的比率缩放显示,1f表示不放大缩小
+ //着重说明一下下面代码的用途
+ /**
+ * 先将缩放比设置成0后,再去设置你想要的缩放比。
+ * 若不这样做的话,在当前页面重新加载数据时,你所设置的缩放比会失效,并且出现你意向不到的显示问题。
+ * 如果你的图表只在页面加载一次的话不需要这么做。
+ */
+// binding.linechart.zoom(0f, 1f, 0, 0);
+// binding.linechart.zoom(ratio, 1f, 0, 0);
+// //设置为不可缩放
+// binding.linechart.setScaleEnabled(false);
+// //设置为可左右滑动
+// binding.linechart.setDragEnabled(true);
+ }
+ private void renderWy(){
+ xLabelListDataWy.clear();
+ maxWy=0;
+ List entriesXWy = new ArrayList<>();
+ List entriesYWy = new ArrayList<>();
+ List entriesZWy = new ArrayList<>();
+ for (int i = 0; i < deviceAlarmDataList.size(); i++) {
+ try {
+ DeviceAlarmInfoLineChartBean.DeviceVibrationMonitoringData item = deviceAlarmDataList.get(i);
+
+ entriesXWy.add(new Entry(i, Float.parseFloat(item.getxDisplacement().toString())));
+ entriesYWy.add(new Entry(i, Float.parseFloat(item.getyDisplacement().toString())));
+ entriesZWy.add(new Entry(i, Float.parseFloat(item.getzDisplacement().toString())));
+
+ Date date = sdf.parse(item.getDeviceTime());
+ if(date != null){
+ Calendar calendar = Calendar.getInstance();
+ calendar.setTime(date);
+ xLabelListDataWy.add(sdfHourMinute.format(calendar.getTime()));
+ }
+ if(item.getxDisplacement()!=null&& item.getxDisplacement() >maxWy){
+ maxWy=item.getxDisplacement();
+ }
+ if(item.getyDisplacement()!=null&& item.getyDisplacement() >maxWy){
+ maxWy=item.getyDisplacement();
+ }
+ if(item.getzDisplacement()!=null&& item.getzDisplacement() >maxWy){
+ maxWy=item.getzDisplacement();
+ }
+ } catch (ParseException e) {
+ throw new RuntimeException(e);
+ }
+ }
+ showLog(String.valueOf(deviceAlarmDataList.size()));
+ showLog("maxSpeed:"+String.valueOf(maxWy));
+ if(maxWy<2.5){
+ maxWy=2.5;
+ }else if(maxWy>=2.5&&maxWy<6){
+ maxWy=8;
+ }else if(maxWy>=6&&maxWy<10){
+ maxWy=15;
+ }else if(maxWy>=10&&maxWy<20){
+ maxWy=25;
+ }else if(maxWy>=20&&maxWy<30){
+ maxWy=35;
+ }else if(maxWy>=30&&maxWy<40){
+ maxWy=45;
+ }else if(maxWy>=40&&maxWy<50){
+ maxWy=55;
+ }else if(maxWy>=50&&maxWy<60){
+ maxWy=70;
+ }else if(maxWy>=60&&maxWy<75){
+ maxWy=90;
+ }else if(maxWy>=75&&maxWy<90){
+ maxWy=105;
+ }else if(maxWy>=90&&maxWy<105){
+ maxWy=120;
+ }else if(maxWy>=105&&maxWy<120){
+ maxWy=135;
+ }else{
+ maxWy=maxWy+50;
+ }
+ showLog("maxSpeed:"+String.valueOf(maxWy));
+ setDataWy(entriesXWy,entriesYWy,entriesZWy);
+ }
+ private void setDataWy(List entriesXWy,List entriesYWy,List entriesZWy) {
+ // 清除所有数据
+ binding.linechart.clear();
+ binding.linechart.invalidate(); // 重绘视图
+
+ List sets = new ArrayList<>();
+
+ String deviceNameLineX = deviceName+"X轴位移";
+ LineDataSet dataSet1 = new LineDataSet(entriesXWy, deviceNameLineX);
+ dataSet1.setValueTextSize(12);
+ dataSet1.setValueTextColor(Color.parseColor("#ff8000"));
+ dataSet1.setMode(LineDataSet.Mode.CUBIC_BEZIER);
+ dataSet1.setLineWidth(2);
+ //dataSet1.setCircleHoleRadius(3);
+ dataSet1.setDrawCircles(false); // 禁用圆点绘制
+ //dataSet1.enableDashedLine(5, 5, 0);
+ //dataSet1.setCircleColor(Color.parseColor("#ff8000"));
+ dataSet1.setColor(Color.parseColor("#ff8000"));
+ dataSet1.setDrawHighlightIndicators(false);
+ //dataSet1.setDrawFilled(true);
+ //dataSet1.setFillDrawable(new GradientDrawable(GradientDrawable.Orientation.TOP_BOTTOM, new int[]{Color.argb(127, 235, 170, 106), Color.parseColor("#00FA5544")}));
+ dataSet1.setLineWidth(2);
+ dataSet1.setDrawValues(false);
+ sets.add(dataSet1);
+
+ String deviceNameLineY = deviceName+"Y轴位移";
+ LineDataSet dataSet2 = new LineDataSet(entriesYWy, deviceNameLineY);
+ dataSet2.setValueTextSize(12);
+ dataSet2.setValueTextColor(Color.parseColor("#0080ff"));
+ dataSet2.setMode(LineDataSet.Mode.CUBIC_BEZIER);
+ dataSet2.setLineWidth(2);
+ //dataSet2.setCircleHoleRadius(3);
+ dataSet2.setDrawCircles(false); // 禁用圆点绘制
+ //dataSet2.enableDashedLine(5, 5, 0);
+ //dataSet2.setCircleColor(Color.parseColor("#0080ff"));
+ dataSet2.setColor(Color.parseColor("#0080ff"));
+ dataSet2.setDrawHighlightIndicators(false);
+ //dataSet2.setDrawFilled(true);
+ //dataSet2.setFillDrawable(new GradientDrawable(GradientDrawable.Orientation.TOP_BOTTOM, new int[]{Color.argb(127, 235, 170, 106), Color.parseColor("#00FA5544")}));
+ dataSet2.setLineWidth(2);
+ dataSet2.setDrawValues(false);
+ sets.add(dataSet2);
+
+ String deviceNameLineZ = deviceName+"Z轴位移";
+ LineDataSet dataSet3 = new LineDataSet(entriesZWy, deviceNameLineZ);
+ dataSet3.setValueTextSize(12);
+ dataSet3.setValueTextColor(Color.parseColor("#80ff00"));
+ dataSet3.setMode(LineDataSet.Mode.CUBIC_BEZIER);
+ dataSet3.setLineWidth(2);
+ //dataSet3.setCircleHoleRadius(3);//圆点大小
+ dataSet3.setDrawCircles(false); // 禁用圆点绘制
+ //dataSet3.enableDashedLine(5, 5, 0);//曲线间隔
+ //dataSet3.setCircleColor(Color.parseColor("#80ff00"));//圆点颜色
+ dataSet3.setColor(Color.parseColor("#80ff00"));//线颜色
+ dataSet3.setDrawHighlightIndicators(false);
+ //dataSet3.setDrawFilled(true);
+ //dataSet3.setFillDrawable(new GradientDrawable(GradientDrawable.Orientation.TOP_BOTTOM, new int[]{Color.argb(127, 235, 170, 106), Color.parseColor("#00FA5544")}));
+ dataSet3.setLineWidth(2);
+ dataSet3.setDrawValues(false);
+ sets.add(dataSet3);
+
+ LineData lineData = new LineData(sets);
+ binding.linechart.setData(lineData);
+ binding.linechart.invalidate();
+
+ XAxis xAxis = binding.linechart.getXAxis();
+ xAxis.setPosition(XAxis.XAxisPosition.BOTTOM);
+ xAxis.setAxisMinimum(1);//设置x轴最小
+ xAxis.setTextSize(12);
+ //xAxis.setTextColor(Color.parseColor("#FC863E"));
+ xAxis.setEnabled(true);//是否显示x轴是否禁用
+ xAxis.setDrawLabels(true); //设置x轴标签 即x轴上显示的数值
+ xAxis.setDrawGridLines(true);//是否设置x轴上每个点对应的线 即 竖向的网格线
+ xAxis.enableGridDashedLine(2, 2, 2); //竖线 虚线样式 lineLength控制虚线段的长度 spaceLength控制线之间的空间
+ xAxis.setLabelRotationAngle(40f);//设置x轴标签的旋转角度
+ String[] timearray = xLabelListDataWy.toArray(new String[xLabelListDataWy.size()]);
+ xAxis.setValueFormatter(new IndexAxisValueFormatter(timearray));
+ YAxis yAxis = binding.linechart.getAxisRight();
+ yAxis.setEnabled(false);
+
+ //设置左边Y轴的样式
+ YAxis axisLeft = binding.linechart.getAxisLeft();
+ axisLeft.setTextSize(12);
+
+ axisLeft.setAxisMinimum(0f);
+ axisLeft.setAxisMaximum((float) maxWy);
+
+ //设置字体颜色
+ //axisLeft.setTextColor(Color.parseColor("#FC863E"));
+
+// float ratio = (float) xLabelListDataWy.size() / (float) 10;
+// if (ratio < 1) {
+// ratio = 1.0f;
+// }
//显示的时候是按照多大的比率缩放显示,1f表示不放大缩小
//着重说明一下下面代码的用途
/**
@@ -615,11 +980,11 @@ public class DeviceAlarmInfoLineChartActivity extends BaseViewBindingActivity() {
if (isApkInDebug(context)) {
// 管理员
-// binding.etUsername.setText("ZHPS_Admin")
-// binding.etPassword.setText("Rehome.zhps@996")
+ binding.etUsername.setText("ZHPS_Admin")
+ binding.etPassword.setText("Rehome.zhps@996")
// binding.etUsername.setText("310249")
// binding.etPassword.setText("GZgs#@0249")