diff --git a/app/src/main/java/com/casic/br/ktd/view/InspectionActivity.kt b/app/src/main/java/com/casic/br/ktd/view/InspectionActivity.kt index 1fc814d..45a36bc 100644 --- a/app/src/main/java/com/casic/br/ktd/view/InspectionActivity.kt +++ b/app/src/main/java/com/casic/br/ktd/view/InspectionActivity.kt @@ -26,7 +26,6 @@ import com.casic.br.ktd.R import com.casic.br.ktd.databinding.ActivityInspectionBinding import com.casic.br.ktd.extensions.* -import com.casic.br.ktd.model.ChartPointModel import com.casic.br.ktd.model.SensorDataModel import com.casic.br.ktd.netty.tcp.SocketManager import com.casic.br.ktd.netty.udp.UdpClient @@ -52,6 +51,7 @@ import com.pengxh.kt.lite.extensions.createImageFileDir import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.extensions.timestampToCompleteDate +import com.pengxh.kt.lite.extensions.timestampToTime import com.pengxh.kt.lite.utils.* import com.pengxh.kt.lite.vm.LoadState import hcnetsdk.sdkhub.MessageCodeHub @@ -104,12 +104,8 @@ //云台转动速度 private var selectedSpeed = 0 - //趋势线是否初始化成功 - private var initSuccess = false - //趋势线起点X坐标 private var i = 0 - private var chartBeans: MutableList = ArrayList() private val xAxisLabels: MutableList = ArrayList() private val strengthEntries: MutableList = ArrayList() private var lineDataSets: MutableList = ArrayList() @@ -478,7 +474,17 @@ when { hDegree.isEmpty() -> executeAngle(0f, vDegree.toFloat()) vDegree.isEmpty() -> executeAngle(hDegree.toFloat(), 0f) - else -> executeAngle(hDegree.toFloat(), vDegree.toFloat()) + else -> { + if (hDegree.toFloat() > 360 || hDegree.toFloat() < -360) { + "水平角度设置错误".show(this) + return@setOnClickListener + } + if (vDegree.toFloat() > 90 || vDegree.toFloat() < -90) { + "垂直角度设置错误".show(this) + return@setOnClickListener + } + executeAngle(hDegree.toFloat(), vDegree.toFloat()) + } } } } @@ -669,6 +675,13 @@ LocaleConstant.OPEN_SENSOR_COMMAND, LocaleConstant.OPEN_SENSOR_COMMAND.size ) + + //初始化浓度趋势折线图 + binding.methaneLineChart.init() + val markerView = LineChartMarkerView(context) + markerView.chartView = binding.methaneLineChart + markerView.setXAxisDate(xAxisLabels) + binding.methaneLineChart.marker = markerView } catch (e: IndexOutOfBoundsException) { e.printStackTrace() "设备未正常连接,无法开启预览".show(this) @@ -822,7 +835,6 @@ isPreviewSuccess = false isStartInspect = false isLoginSuccess = false - initSuccess = false //结束巡检,保存数据 taskViewModel.endTask(taskId) } @@ -871,40 +883,23 @@ } /***折线图**************************************************************************/ - if (!initSuccess) { - binding.methaneLineChart.init() - //添加自定义Marker - val markerView = LineChartMarkerView(context) - markerView.chartView = binding.methaneLineChart - markerView.setXAxisDate(xAxisLabels) - binding.methaneLineChart.marker = markerView - - initSuccess = true - } - - val chartPointModel = ChartPointModel("", 0) - chartPointModel.dataTime = System.currentTimeMillis().timestampToCompleteDate() - chartPointModel.dataValue = model.methane - chartBeans.add(chartPointModel) - xAxisLabels.add(chartBeans.last().dataTime.dateToTime()) + xAxisLabels.add(System.currentTimeMillis().timestampToTime()) //浓度线 strengthEntries.add( - Entry(i++.toFloat(), chartBeans.last().dataValue.toFloat(), "浓度") + Entry(i++.toFloat(), model.methane.toFloat(), "浓度") ) //设置数据 val dataSet = LineDataSet(strengthEntries, "") dataSet.setDrawCircles(false) - //线条颜色 - dataSet.color = Color.RED dataSet.mode = LineDataSet.Mode.CUBIC_BEZIER lineDataSets.add(dataSet) val lineData = LineData(lineDataSets) lineData.setDrawValues(false) //解决折线点太多导致卡顿问题 - if (lineData.entryCount > 100) { + if (lineData.entryCount > 50) { lineData.removeDataSet(0) lineData.notifyDataChanged() } diff --git a/app/src/main/java/com/casic/br/ktd/view/InspectionActivity.kt b/app/src/main/java/com/casic/br/ktd/view/InspectionActivity.kt index 1fc814d..45a36bc 100644 --- a/app/src/main/java/com/casic/br/ktd/view/InspectionActivity.kt +++ b/app/src/main/java/com/casic/br/ktd/view/InspectionActivity.kt @@ -26,7 +26,6 @@ import com.casic.br.ktd.R import com.casic.br.ktd.databinding.ActivityInspectionBinding import com.casic.br.ktd.extensions.* -import com.casic.br.ktd.model.ChartPointModel import com.casic.br.ktd.model.SensorDataModel import com.casic.br.ktd.netty.tcp.SocketManager import com.casic.br.ktd.netty.udp.UdpClient @@ -52,6 +51,7 @@ import com.pengxh.kt.lite.extensions.createImageFileDir import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.extensions.timestampToCompleteDate +import com.pengxh.kt.lite.extensions.timestampToTime import com.pengxh.kt.lite.utils.* import com.pengxh.kt.lite.vm.LoadState import hcnetsdk.sdkhub.MessageCodeHub @@ -104,12 +104,8 @@ //云台转动速度 private var selectedSpeed = 0 - //趋势线是否初始化成功 - private var initSuccess = false - //趋势线起点X坐标 private var i = 0 - private var chartBeans: MutableList = ArrayList() private val xAxisLabels: MutableList = ArrayList() private val strengthEntries: MutableList = ArrayList() private var lineDataSets: MutableList = ArrayList() @@ -478,7 +474,17 @@ when { hDegree.isEmpty() -> executeAngle(0f, vDegree.toFloat()) vDegree.isEmpty() -> executeAngle(hDegree.toFloat(), 0f) - else -> executeAngle(hDegree.toFloat(), vDegree.toFloat()) + else -> { + if (hDegree.toFloat() > 360 || hDegree.toFloat() < -360) { + "水平角度设置错误".show(this) + return@setOnClickListener + } + if (vDegree.toFloat() > 90 || vDegree.toFloat() < -90) { + "垂直角度设置错误".show(this) + return@setOnClickListener + } + executeAngle(hDegree.toFloat(), vDegree.toFloat()) + } } } } @@ -669,6 +675,13 @@ LocaleConstant.OPEN_SENSOR_COMMAND, LocaleConstant.OPEN_SENSOR_COMMAND.size ) + + //初始化浓度趋势折线图 + binding.methaneLineChart.init() + val markerView = LineChartMarkerView(context) + markerView.chartView = binding.methaneLineChart + markerView.setXAxisDate(xAxisLabels) + binding.methaneLineChart.marker = markerView } catch (e: IndexOutOfBoundsException) { e.printStackTrace() "设备未正常连接,无法开启预览".show(this) @@ -822,7 +835,6 @@ isPreviewSuccess = false isStartInspect = false isLoginSuccess = false - initSuccess = false //结束巡检,保存数据 taskViewModel.endTask(taskId) } @@ -871,40 +883,23 @@ } /***折线图**************************************************************************/ - if (!initSuccess) { - binding.methaneLineChart.init() - //添加自定义Marker - val markerView = LineChartMarkerView(context) - markerView.chartView = binding.methaneLineChart - markerView.setXAxisDate(xAxisLabels) - binding.methaneLineChart.marker = markerView - - initSuccess = true - } - - val chartPointModel = ChartPointModel("", 0) - chartPointModel.dataTime = System.currentTimeMillis().timestampToCompleteDate() - chartPointModel.dataValue = model.methane - chartBeans.add(chartPointModel) - xAxisLabels.add(chartBeans.last().dataTime.dateToTime()) + xAxisLabels.add(System.currentTimeMillis().timestampToTime()) //浓度线 strengthEntries.add( - Entry(i++.toFloat(), chartBeans.last().dataValue.toFloat(), "浓度") + Entry(i++.toFloat(), model.methane.toFloat(), "浓度") ) //设置数据 val dataSet = LineDataSet(strengthEntries, "") dataSet.setDrawCircles(false) - //线条颜色 - dataSet.color = Color.RED dataSet.mode = LineDataSet.Mode.CUBIC_BEZIER lineDataSets.add(dataSet) val lineData = LineData(lineDataSets) lineData.setDrawValues(false) //解决折线点太多导致卡顿问题 - if (lineData.entryCount > 100) { + if (lineData.entryCount > 50) { lineData.removeDataSet(0) lineData.notifyDataChanged() } diff --git a/app/src/main/res/layout/activity_inspection.xml b/app/src/main/res/layout/activity_inspection.xml index df8d571..2f21a33 100644 --- a/app/src/main/res/layout/activity_inspection.xml +++ b/app/src/main/res/layout/activity_inspection.xml @@ -303,7 +303,6 @@ android:gravity="center_horizontal" android:hint="[-180,180]" android:inputType="numberSigned" - android:maxLength="3" android:paddingVertical="@dimen/dp_5" android:singleLine="true" /> @@ -330,7 +329,6 @@ android:gravity="center_horizontal" android:hint="[-90,90]" android:inputType="numberSigned" - android:maxLength="2" android:paddingVertical="@dimen/dp_5" android:singleLine="true" />