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")