diff --git a/OCH/common/common/src/debug/java/com/mogo/och/common/module/debug/DebugDataDispatch.kt b/OCH/common/common/src/debug/java/com/mogo/och/common/module/debug/DebugDataDispatch.kt
index 8ffa9fdfbc..7efefeafdd 100644
--- a/OCH/common/common/src/debug/java/com/mogo/och/common/module/debug/DebugDataDispatch.kt
+++ b/OCH/common/common/src/debug/java/com/mogo/och/common/module/debug/DebugDataDispatch.kt
@@ -109,7 +109,7 @@ object DebugDataDispatch {
// adb shell am broadcast -a com.mogo.launcher.debug -f 0x011000000 --es type "vlmMessage" --es message "前方100米有道路施工,施工长度100米,影响第1、2车道通行。" --ei id 128 --ef time 1880.0
// adb shell am broadcast -a com.mogo.launcher.debug -f 0x011000000 --es type "vlmImage" --ef time 1880.0
// adb shell am broadcast -a com.mogo.launcher.debug -f 0x011000000 --es type "stationMedia"
-// adb shell am broadcast -a com.mogo.launcher.debug -f 0x011000000 --es type "stationMedia" --ei startType 0
+// adb shell am broadcast -a com.mogo.launcher.debug -f 0x011000000 --es type "startAutopilot" --ei startType 0
// adb shell am broadcast -a com.hmi.v2x.trafficlight -f 0x011000000 --ei trafficLightCheckType 1 --ei trafficLightCountDown 0 --ez trafficLightIsShow true // 红绿灯
diff --git a/OCH/common/common/src/main/res/layout/common_visual_view.xml b/OCH/common/common/src/main/res/layout/common_visual_view.xml
deleted file mode 100644
index 3d5f5aa763..0000000000
--- a/OCH/common/common/src/main/res/layout/common_visual_view.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
diff --git a/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/model/LineModel.kt b/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/model/LineModel.kt
index c4a47de91c..66a31593a3 100644
--- a/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/model/LineModel.kt
+++ b/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/model/LineModel.kt
@@ -214,7 +214,7 @@ object LineModel {
null
} else {
// startStationIndex == stationList!!.size - 1
- startStationIndex == getLastStationPos(stationList!!)-1
+ nextStationIndex == getLastStationPos(stationList!!)
}
}
diff --git a/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/model/OrderModel.kt b/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/model/OrderModel.kt
index a4a407ad40..4e6dd6a057 100644
--- a/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/model/OrderModel.kt
+++ b/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/model/OrderModel.kt
@@ -269,13 +269,15 @@ object OrderModel {
}
}
- private fun onStartAutopilot(taskId: Long?) {
+ private fun onStartAutopilot() {
//开启自动驾驶 2.10.0: 如果自动驾驶状态下开启, 非自动驾驶状态下不开启,需手动点击自动驾驶按钮开启
isGoingToNextStation = true
if (CallerTaskListenerManager.isCarRunningTask()) {
LineManager.unmanneAutopilotContinue(false)
+ d(TAG, "启动自驾:继续启动自驾")
}else{
LineManager.unmannedStartAutopilot(true)
+ d(TAG, "启动自驾:下发轨迹启动自驾")
}
if (CallerAutoPilotStatusListenerManager.getState() != IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING
) {
@@ -344,7 +346,7 @@ object OrderModel {
}
LineModel.leaveStationSuccess()
isArrivedStation = false
- onStartAutopilot(task.taskId)
+ onStartAutopilot()
ThirdDeviceData.leaveStation()
@@ -362,7 +364,7 @@ object OrderModel {
if (data) {
LineModel.leaveStationSuccess()
isArrivedStation = false
- onStartAutopilot(task.taskId)
+ onStartAutopilot()
ThirdDeviceData.leaveStation()
@@ -581,6 +583,88 @@ object OrderModel {
}
+ @JvmStatic
+ fun skipNextStation() {
+ // 手动点击到站
+ LineManager.getStations { start, end ->
+
+ if (isArrivedStation || end.siteId == LineManager.lastArrivedSiteId) return@getStations
+
+ OchChainLogManager.writeChainLog("触发跳站", "点击")
+ end.tag = 2
+ end.drivingStatus = TaskSiteDataBean.drivingStatusNotArrived
+ RepositoryManager.skipStation()
+ ?.subscribeOn(Schedulers.io())
+ ?.observeOn(AndroidSchedulers.mainThread())
+ ?.subscribe(object : Observer {
+ override fun onSubscribe(d: Disposable) {
+ d(TAG, "onSubscribe")
+ }
+
+ override fun onError(e: Throwable) {
+ d(TAG, "onError${e.printStackTrace()}")
+ if (e is DataException) {
+ e.printStackTrace()
+ }
+ ThirdDeviceData.arriveStation()
+ d(TAG, "skipNextStation onComplete")
+ LineModel.stationList?.let {
+ //此处始发站应为上段路程的终点站
+ val startStation = LineManager.getStations().first
+ if (LineModel.startStationIndex + 1 < it.size) {
+ //遍历当前路段起始点之后的数组,第一个正常停靠点即为该段终点
+ val subStationList = it.subList(LineModel.startStationIndex + 1, it.size)
+ val endStation = subStationList.firstOrNull { bean ->
+ bean.tag != 2
+ }
+ LineModel.nextStationIndex = it.indexOf(endStation)
+// val endStation = stationlist[LineModel.startStationIndex + 1]
+ LineManager.setStartAndEndStation(startStation, endStation)
+ LineModel.callEyeMap(5)
+ }
+ }
+ LineModel.leaveStationSuccess()
+ ThirdDeviceData.leaveStation()
+ updateBusStatus()
+
+ isArrivedStation = false
+ onStartAutopilot()
+ }
+
+ override fun onComplete() {
+ ThirdDeviceData.arriveStation()
+ d(TAG, "skipNextStation onComplete")
+ LineModel.stationList?.let {
+ //此处始发站应为上段路程的终点站
+ val startStation = LineManager.getStations().first
+ if (LineModel.startStationIndex + 1 < it.size) {
+ //遍历当前路段起始点之后的数组,第一个正常停靠点即为该段终点
+ val subStationList = it.subList(LineModel.startStationIndex + 1, it.size)
+ val endStation = subStationList.firstOrNull { bean ->
+ bean.tag != 2
+ }
+ LineModel.nextStationIndex = it.indexOf(endStation)
+// val endStation = stationlist[LineModel.startStationIndex + 1]
+ LineManager.setStartAndEndStation(startStation, endStation)
+ LineModel.callEyeMap(6)
+ }
+ }
+ LineModel.leaveStationSuccess()
+ ThirdDeviceData.leaveStation()
+ updateBusStatus()
+
+ isArrivedStation = false
+ onStartAutopilot()
+ }
+
+ override fun onNext(data: Boolean) {
+
+ }
+ })
+
+ }
+ }
+
// 登出
@JvmStatic
fun logoutInner() {
diff --git a/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/repository/RepositoryManager.kt b/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/repository/RepositoryManager.kt
index 975c36dfd6..488da372dd 100644
--- a/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/repository/RepositoryManager.kt
+++ b/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/repository/RepositoryManager.kt
@@ -138,6 +138,10 @@ object RepositoryManager {
return lineRepository?.arriveStation(seq, siteId, taskId)
}
+ fun skipStation(): Observable? {
+ return lineRepository?.skipStation()
+ }
+
fun endTask(shiftsId: Long, taskId: Long): Observable? {
return lineRepository?.endTask(shiftsId, taskId)
}
diff --git a/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/repository/db/bean/TaskSiteDataBean.kt b/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/repository/db/bean/TaskSiteDataBean.kt
index c5dfbc66cc..74cfdc20ac 100644
--- a/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/repository/db/bean/TaskSiteDataBean.kt
+++ b/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/repository/db/bean/TaskSiteDataBean.kt
@@ -178,5 +178,11 @@ data class TaskSiteDataBean(
const val drivingStatusPassed = 1//1已经过
const val drivingStatusCurrent = 2//2当前站
const val drivingStatusNotArrived = 3//3未到站
+
+ const val tagInit = 0//0初始值
+ const val tagNormal = 1//1正常停靠
+ const val tagSkip = 2//2 需要跳过
+
+
}
}
diff --git a/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/repository/db/dao/TaskSiteDataDao.kt b/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/repository/db/dao/TaskSiteDataDao.kt
index 29647a0bea..c58afe3c47 100644
--- a/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/repository/db/dao/TaskSiteDataDao.kt
+++ b/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/repository/db/dao/TaskSiteDataDao.kt
@@ -23,6 +23,11 @@ interface TaskSiteDataDao {
@Query("UPDATE ${TaskSiteDataBean.tableName} SET leaving = :leave , driving_status = :drivingStatusCurrent WHERE task_id = :taskId and site_id = :siteId")
fun updateDrivingStatusANdLeave(taskId: Long, siteId: Long, drivingStatusCurrent: Int, leave: Int)
+ // 跳站中把tag 值为2 仅置运行表中
+ @Query("UPDATE ${TaskSiteDataBean.tableName} SET leaving = :leave , driving_status = :drivingStatusCurrent , tag = :tag WHERE task_id = :taskId and site_id = :siteId")
+ fun updateDrivingStatusTagAndLeave(taskId: Long, siteId: Long, drivingStatusCurrent: Int, leave: Int , tag:Int)
+
+
@Query("UPDATE ${TaskSiteDataBean.tableName} SET driving_status = :drivingStatusCurrent WHERE task_id = :taskId and site_id = :siteId")
fun updateDrivingStatus(taskId: Long, siteId: Long, drivingStatusCurrent: Int)
diff --git a/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/repository/db/repository/TaskSiteDb.kt b/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/repository/db/repository/TaskSiteDb.kt
index e4c34b2a15..69e7b846a9 100644
--- a/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/repository/db/repository/TaskSiteDb.kt
+++ b/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/repository/db/repository/TaskSiteDb.kt
@@ -95,6 +95,23 @@ object TaskSiteDb : IDbRepository {
)
}
}
+ fun updateDrivingStatusTagAndLeave(
+ taskId: Long,
+ siteId: Long,
+ drivingStatus: Int,
+ leave: Boolean,
+ tag:Int
+ ) {
+ BizLoopManager.runInIoThread {
+ taskSiteDataDao?.updateDrivingStatusTagAndLeave(
+ taskId,
+ siteId,
+ drivingStatus,
+ if (leave) 1 else 0,
+ tag
+ )
+ }
+ }
fun queryRunningTask(taskId: Long): List? {
return taskSiteDataDao?.queryRunningTask(taskId)
diff --git a/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/repository/line/ILineRepository.kt b/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/repository/line/ILineRepository.kt
index 70a2918926..bb9654777e 100644
--- a/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/repository/line/ILineRepository.kt
+++ b/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/repository/line/ILineRepository.kt
@@ -32,6 +32,8 @@ interface ILineRepository {
fun arriveStation(seq: Int, siteId: Long, taskId: Long): Observable?
+ fun skipStation(): Observable?
+
fun endTask(shiftsId: Long, taskId: Long): Observable?
fun queryCarExecutableTaskList(ochCommonServiceCallback: OchCommonServiceCallback)
diff --git a/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/repository/line/impl/NormalRepository.kt b/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/repository/line/impl/NormalRepository.kt
index 23b96a3fa8..d1e56370d8 100644
--- a/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/repository/line/impl/NormalRepository.kt
+++ b/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/repository/line/impl/NormalRepository.kt
@@ -201,6 +201,10 @@ class NormalRepository : ILineRepository {
)
}
+ override fun skipStation(): Observable? {
+ return Observable.just(false)
+ }
+
override fun endTask(shiftsId: Long, taskId: Long): Observable? {
return normalLineInterface?.endTask(taskId)
}
diff --git a/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/repository/line/impl/WeaknetRepository.kt b/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/repository/line/impl/WeaknetRepository.kt
index 72d4f54e76..ac4bb104f5 100644
--- a/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/repository/line/impl/WeaknetRepository.kt
+++ b/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/repository/line/impl/WeaknetRepository.kt
@@ -476,6 +476,39 @@ class WeaknetRepository : ILineRepository {
}
+ override fun skipStation(): Observable? {
+ return Observable.just(12)
+ .flatMap {temp->
+ //1 恢复end站点的值并置tag为临时不停靠运行表中
+ LineManager.getStations { start, end ->
+ if (currentTask != null && currentTask!!.taskId != null) {
+ currentTask?.let { task ->
+ if (task.taskId != null && task.lineId != null) {
+ TaskSiteDb.updateDrivingStatusTagAndLeave(
+ task.taskId!!,
+ end.siteId.toLong(),
+ TaskSiteDataBean.drivingStatusNotArrived,
+ false,
+ TaskSiteDataBean.tagSkip
+ )
+ }
+ }
+ } else {
+ OchChainLogManager.writeChainLog(
+ "跳站点_数据更新_error",
+ "task:${currentTask}__taskId:${currentTask?.taskId}"
+ )
+ CallerLogger.d(TAG, "跳斩_数据更新_error:task:${currentTask}__taskId:${currentTask?.taskId}")
+ }
+ val changeInfo =
+ "taskId:${currentTask?.taskId}--lineId:${currentTask?.lineId}--currentStationName:${start.name}--finalNextStationName:${end.name}"
+ OchChainLogManager.writeChainLog("到站", changeInfo)
+ CallerLogger.d(TAG, "到站:$changeInfo")
+ }
+ return@flatMap Observable.just(true)
+ }
+ }
+
override fun endTask(shiftsId: Long, taskId: Long): Observable? {
return Observable.just(taskId).flatMap {
currentTask?.let { task ->
diff --git a/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/ui/taskrunning/TaskRunningModel.kt b/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/ui/taskrunning/TaskRunningModel.kt
index f684648fd8..b635d2f279 100644
--- a/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/ui/taskrunning/TaskRunningModel.kt
+++ b/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/ui/taskrunning/TaskRunningModel.kt
@@ -84,7 +84,7 @@ class TaskRunningModel : ViewModel(), IBusLinesCallback {
if (LineModel.isLastStation() == true) {
return
}
- OrderModel.onArriveAt(null, "页面挑站触发到站",true)
+ OrderModel.skipNextStation()
}
}
diff --git a/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/ui/taskrunning/TaskRunningView.kt b/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/ui/taskrunning/TaskRunningView.kt
index e646d32376..bbc588af94 100644
--- a/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/ui/taskrunning/TaskRunningView.kt
+++ b/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/ui/taskrunning/TaskRunningView.kt
@@ -88,7 +88,6 @@ class TaskRunningView : ConstraintLayout, TaskRunningModel.SwtichLineViewCallbac
}else{
viewModel?.skipStation()
}
- viewModel?.arriveStation()
}
unmanned_actv_arriver_station_new.setOnLongClickListener {
viewModel?.arriveStation()
diff --git a/OCH/shuttle/passenger_weaknet/src/main/java/b4/com/mogo/och/shuttle/weaknet/passenger/ui/linenew/PB4DrivingInfoFullSFragment.kt b/OCH/shuttle/passenger_weaknet/src/main/java/b4/com/mogo/och/shuttle/weaknet/passenger/ui/linenew/PB4DrivingInfoFullSFragment.kt
index 11311923a1..a09e73badf 100644
--- a/OCH/shuttle/passenger_weaknet/src/main/java/b4/com/mogo/och/shuttle/weaknet/passenger/ui/linenew/PB4DrivingInfoFullSFragment.kt
+++ b/OCH/shuttle/passenger_weaknet/src/main/java/b4/com/mogo/och/shuttle/weaknet/passenger/ui/linenew/PB4DrivingInfoFullSFragment.kt
@@ -2,6 +2,8 @@ package com.mogo.och.shuttle.weaknet.passenger.ui.linenew
import android.os.Bundle
import android.view.View
+import androidx.appcompat.widget.AppCompatTextView
+import androidx.core.content.ContextCompat
import com.mogo.commons.mvp.MvpFragment
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
import com.mogo.eagle.core.utilcode.util.StringUtils
@@ -30,7 +32,6 @@ import kotlinx.android.synthetic.main.b4_driving_info_full_fragment.cl_empty_ser
import kotlinx.android.synthetic.main.b4_driving_info_full_fragment.cl_line_info_station
import kotlinx.android.synthetic.main.b4_driving_info_full_fragment.end_station_name
import kotlinx.android.synthetic.main.b4_driving_info_full_fragment.group_station_empty
-import kotlinx.android.synthetic.main.m2_arrive_view.view.ochtv_arrive_station_value
import kotlin.math.ceil
import kotlin.math.roundToInt
@@ -186,6 +187,7 @@ class PB4DrivingInfoFullSFragment :
}
private fun showBottom1Station(station:BusStationBean?,isShow:Boolean){
+ setTextColor(station,actv_station_pre_1)
if(isShow) {
actv_station_pre_1.text = station?.name
aciv_arrow_station_1.visibility = View.VISIBLE
@@ -199,6 +201,7 @@ class PB4DrivingInfoFullSFragment :
}
private fun showBottom2Station(station:BusStationBean?,isShow:Boolean){
+ setTextColor(station, actv_station_pre_2)
if(isShow) {
actv_station_pre_2.text = station?.name
aciv_arrow_station_2.visibility = View.VISIBLE
@@ -212,6 +215,7 @@ class PB4DrivingInfoFullSFragment :
}
private fun showBottom3Station(station:BusStationBean?,isShow:Boolean){
+ setTextColor(station, actv_station_pre_3)
if(isShow) {
actv_station_pre_3.text = station?.name
aciv_arrow_station_3.visibility = View.VISIBLE
@@ -225,6 +229,7 @@ class PB4DrivingInfoFullSFragment :
}
private fun showBottom4Station(station:BusStationBean?,isShow:Boolean){
+ setTextColor(station, actv_station_pre_4)
if(isShow) {
actv_station_pre_4.text = station?.name
aciv_arrow_station_4.visibility = View.VISIBLE
@@ -237,6 +242,16 @@ class PB4DrivingInfoFullSFragment :
}
}
+ private fun setTextColor(station: BusStationBean?, textView: AppCompatTextView){
+ context?.let {
+ if(station?.tag==2){
+ textView.setTextColor(ContextCompat.getColor(it, R.color.b4_5E5E5E))
+ }else{
+ textView.setTextColor(ContextCompat.getColor(it, R.color.white))
+ }
+ }
+ }
+
fun updateLineName(lineName: String){
actvLineName.text = lineName
diff --git a/OCH/shuttle/passenger_weaknet/src/main/res/b4/values/colors.xml b/OCH/shuttle/passenger_weaknet/src/main/res/b4/values/colors.xml
index 758e344554..b5d922c847 100644
--- a/OCH/shuttle/passenger_weaknet/src/main/res/b4/values/colors.xml
+++ b/OCH/shuttle/passenger_weaknet/src/main/res/b4/values/colors.xml
@@ -22,4 +22,5 @@
#9AFF98
#EDBE2B
#FF8300
+ #5E5E5E
\ No newline at end of file
diff --git a/libraries/mogo-adas-data/src/main/java/com/zhjt/mogo/adas/unmanned/task/dto/cmd/TaskContinueNotification.java b/libraries/mogo-adas-data/src/main/java/com/zhjt/mogo/adas/unmanned/task/dto/cmd/TaskContinueNotification.java
index e80cdb71fb..cb871b7585 100644
--- a/libraries/mogo-adas-data/src/main/java/com/zhjt/mogo/adas/unmanned/task/dto/cmd/TaskContinueNotification.java
+++ b/libraries/mogo-adas-data/src/main/java/com/zhjt/mogo/adas/unmanned/task/dto/cmd/TaskContinueNotification.java
@@ -39,6 +39,7 @@ public class TaskContinueNotification {
public String toString() {
return "TaskContinueNotification{" +
"curStation=" + curStation +
+ ", nextStation=" + nextStation +
'}';
}