diff --git a/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/model/PM2DrivingModel.kt b/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/model/PM2DrivingModel.kt index 1da862dc25..33369c39d8 100644 --- a/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/model/PM2DrivingModel.kt +++ b/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/model/PM2DrivingModel.kt @@ -145,7 +145,7 @@ class PM2DrivingModel private constructor() { override fun onReceivedMsg(type: Int, byteArray: ByteArray) {//接收司机端发来的信息 if (TelematicConstant.BUSINESS_STRING == type){ val msg = GsonUtils.fromJson(String(byteArray),AppConnectMsg::class.java) as AppConnectMsg - Logger.d(TAG,"onReceivedMsg = "+GsonUtils.toJson(msg)) + Logger.d(SceneConstant.M_BUS_P+TAG,"onReceivedMsg = "+GsonUtils.toJson(msg)) if (msg.isPlay){ //播报 speakTTS(msg.msg) } @@ -192,19 +192,19 @@ class PM2DrivingModel private constructor() { private val moGoAutopilotPlanningListener = object : IMoGoPlanningRottingListener{ override fun onAutopilotRotting(globalPathResp: MessagePad.GlobalPathResp?) { - val routePoints = globalPathResp?.wayPointsList - if (null != routePoints && routePoints.size > 0) { - updateRoutePoints(routePoints) -// startOrStopRouteAndWipe(true) + globalPathResp?.let { + d(SceneConstant.M_BUS_P + TAG, "och-rotting==wayPointsSize = " + it.wayPointsList.size) + updateRoutePoints(it.wayPointsList) } } } - fun updateRoutePoints(routePoints: List?) { + fun updateRoutePoints(routePoints: List?) { mRoutePoints.clear() val latLngModels = CoordinateCalculateRouteUtil .coordinateConverterWgsToGcjLocations(mContext, routePoints) + d(SceneConstant.M_BUS_P + TAG, "och-rotting==latLngModels = " + latLngModels.size) mRoutePoints.addAll(latLngModels) calculateTwoStationsRoute() } @@ -227,7 +227,7 @@ class PM2DrivingModel private constructor() { super.onAutopilotStatusResponse(autoPilotStatusInfo) val status = autoPilotStatusInfo.state if (mCurrentAutoStatus == status) return - + d(SceneConstant.M_BUS_P+TAG, "onAutopilotStatusResponse ===== $status") if (IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING != status){ //美化模式下且行程中 if (FunctionBuildConfig.isDemoMode && @@ -241,6 +241,7 @@ class PM2DrivingModel private constructor() { }else{//自驾状态 2 mAutoStatusCallback?.updateAutoStatus(true) } + mCurrentAutoStatus = status } } @@ -260,7 +261,7 @@ class PM2DrivingModel private constructor() { if (data?.data == null) return if (data.data.driverStatus != operationStatus?.driverStatus || data.data.plateNumber != operationStatus?.plateNumber){ - d(TAG, "queryDriverOperationStatus ===== 车牌或者登陆状态有变更") + d(SceneConstant.M_BUS_P+TAG, "queryDriverOperationStatus ===== 车牌或者登陆状态有变更") mDrivingInfoCallback?.changeOperationStatus(data.data.driverStatus == 1) } operationStatus = data.data as PM2OperationStatusResponse.Result @@ -294,7 +295,7 @@ class PM2DrivingModel private constructor() { } if (data?.result?.sites === null) { - d(TAG, "queryDriverSiteByCoordinate ===== 没有路线") + d(SceneConstant.M_BUS_P+TAG, "queryDriverSiteByCoordinate ===== 没有路线") routesResult = null mNextStationIndex = 0 isGoingToNextStation = false @@ -314,7 +315,7 @@ class PM2DrivingModel private constructor() { queryDriverOperationDelay() return } - d(TAG, "queryDriverSiteByCoordinate = %s", msg) + d(SceneConstant.M_BUS_P+TAG, "queryDriverSiteByCoordinate = %s", msg) } }) @@ -335,7 +336,7 @@ class PM2DrivingModel private constructor() { && station.isLeaving && i + 1 < stations.size) { mDrivingInfoCallback?.updateStationsInfo(stations as MutableList, i + 1, false) if (mNextStationIndex != i + 1) { - d(TAG,"轨迹排查--开始行程") + d(SceneConstant.M_BUS_P+TAG,"och-rotting--start ") mTwoStationsRouts.clear() startRemainRouteInfo() } @@ -397,7 +398,7 @@ class PM2DrivingModel private constructor() { break } for (lastPoints in lastPointsMap.values) { - d(SceneConstant.M_BUS_P + TAG, "轨迹排查==lastPoints.size() = " + lastPoints.size) + d(SceneConstant.M_BUS_P + TAG, "och-rotting==lastPoints.size() = " + lastPoints.size) var lastSumLength = 0f lastSumLength = if (lastPoints.size == 1) { //只是最后一个点,计算当前位置和最后一个点的距离 if (mNextStationIndex <= mStations.size - 1 && mNextStationIndex >= 0) { @@ -416,7 +417,7 @@ class PM2DrivingModel private constructor() { CoordinateCalculateRouteUtil.calculateRouteSumLength(lastPoints) } val lastTime = lastSumLength / BusPassengerConst.BUS_AVERAGE_SPEED * 3.6 //秒 - d(SceneConstant.M_BUS_P + TAG, "轨迹排查==lastSumLength = $lastSumLength") + d(SceneConstant.M_BUS_P + TAG, "och-rotting==lastSumLength = $lastSumLength") mDrivingInfoCallback?.updateRemainMT( lastSumLength.toLong(), lastTime.toLong() @@ -446,7 +447,7 @@ class PM2DrivingModel private constructor() { stationNext.gcjLat ) - d(SceneConstant.M_BUS_P + TAG, "轨迹排查==currentRouteIndex = " + currentRouteIndex + d(SceneConstant.M_BUS_P + TAG, "och-rotting==currentRouteIndex = " + currentRouteIndex + ", nextRouteIndex = " + nextRouteIndex) if (currentRouteIndex < nextRouteIndex) { //如果找到的next在起点的轨迹前面,直接舍弃这个轨迹,不显示 @@ -467,7 +468,7 @@ class PM2DrivingModel private constructor() { * @param isStart */ fun startOrStopCalculateRouteInfo(isStart: Boolean) { - d(TAG, "startOrStopCalculateRouteInfo() $isStart") + d(SceneConstant.M_BUS_P+TAG, "startOrStopCalculateRouteInfo() $isStart") if (isStart) { PM2ModelLoopManager.startCalculateRouteInfoLoop() } else { diff --git a/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/PM2DrivingInfoFragment.kt b/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/PM2DrivingInfoFragment.kt index 1182752a5a..85b1cdd90f 100644 --- a/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/PM2DrivingInfoFragment.kt +++ b/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/PM2DrivingInfoFragment.kt @@ -2,16 +2,13 @@ package com.mogo.och.bus.passenger.ui import android.graphics.BitmapFactory import android.os.Bundle +import android.os.Handler +import android.os.Looper +import android.os.Message import android.view.View import androidx.core.content.ContextCompat import com.amap.api.maps.model.LatLng import com.mogo.commons.mvp.MvpFragment -import com.mogo.eagle.core.data.msgbox.MsgBoxBean -import com.mogo.eagle.core.data.msgbox.MsgBoxType -import com.mogo.eagle.core.data.msgbox.NoticeFrCloudMsg -import com.mogo.eagle.core.data.msgbox.V2XMsg -import com.mogo.eagle.core.data.notice.NoticeTrafficStylePushData -import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxManager import com.mogo.eagle.core.function.hmi.ui.setting.ToggleDebugView import com.mogo.eagle.core.utilcode.kotlin.onClick import com.mogo.eagle.core.utilcode.util.DateTimeUtils @@ -21,6 +18,7 @@ import com.mogo.och.bus.passenger.presenter.PM2DrivingPresenter import com.mogo.och.common.module.utils.DateTimeUtil.* import com.mogo.och.common.module.utils.NumberFormatUtil import kotlinx.android.synthetic.m2.p_m2_driving_info_fragment.* +import java.lang.ref.WeakReference import kotlin.math.ceil import kotlin.math.roundToInt @@ -30,6 +28,9 @@ import kotlin.math.roundToInt */ class PM2DrivingInfoFragment : MvpFragment() { + + private var timeHandler: TimeHandler? = null + /** * 改变自动驾驶状态 * @@ -71,6 +72,8 @@ class PM2DrivingInfoFragment : // BPRouteDataTestUtils.converToRouteData() } updateCurrentTime() + timeHandler = TimeHandler(this) + timeHandler?.sendEmptyMessageDelayed(WHAT_TIME_CURRENT, LOOP_TIME_TEXT) } override fun initViews(savedInstanceState: Bundle?) { @@ -89,6 +92,7 @@ class PM2DrivingInfoFragment : } override fun onDestroy() { + timeHandler?.removeCallbacksAndMessages(null) super.onDestroy() overMapView.onDestroy() } @@ -216,8 +220,27 @@ class PM2DrivingInfoFragment : "$remainDis$disUnit | $time 分钟".also { remain_mt.text = it } } - companion object { - private val TAG = PM2DrivingInfoFragment::class.java.simpleName + class TimeHandler(obj: PM2DrivingInfoFragment) : Handler(Looper.getMainLooper()) { + private val mRef: WeakReference = WeakReference(obj) + + val drivingInfoFragment = mRef.get() as PM2DrivingInfoFragment + override fun handleMessage(msg: Message) { + mRef.get()?.run { + when (msg.what) { + WHAT_TIME_CURRENT -> { + drivingInfoFragment.updateCurrentTime() + sendEmptyMessageDelayed( + WHAT_TIME_CURRENT, LOOP_TIME_TEXT) + } //可以直接访问Activity中的变量 + else -> {} + } + } + } } + companion object { + private val TAG = PM2DrivingInfoFragment::class.java.simpleName + const val LOOP_TIME_TEXT = 60 * 1000L + const val WHAT_TIME_CURRENT = 10001 //MSG_WHAT + } } \ No newline at end of file diff --git a/OCH/mogo-och-charter/src/driverm1/java/com/magic/mogo/och/charter/bean/QueryCurrentOrderResponse.kt b/OCH/mogo-och-charter/src/driverm1/java/com/magic/mogo/och/charter/bean/QueryCurrentOrderResponse.kt index 475345a1e4..33b553b552 100644 --- a/OCH/mogo-och-charter/src/driverm1/java/com/magic/mogo/och/charter/bean/QueryCurrentOrderResponse.kt +++ b/OCH/mogo-och-charter/src/driverm1/java/com/magic/mogo/och/charter/bean/QueryCurrentOrderResponse.kt @@ -13,6 +13,8 @@ data class QueryCurrentOrderResponse(var data: Result):BaseData(){ //线路id , var orderNo: String, var lineId: Int, var lineName: String, + var startSiteId: String, + var startSiteName: String, var siteId: Int, var siteName: String, var wgs84Lon: Double, diff --git a/OCH/mogo-och-charter/src/driverm1/java/com/magic/mogo/och/charter/bean/RequestChangeDest.kt b/OCH/mogo-och-charter/src/driverm1/java/com/magic/mogo/och/charter/bean/RequestChangeDest.kt index 0505130487..68361127d7 100644 --- a/OCH/mogo-och-charter/src/driverm1/java/com/magic/mogo/och/charter/bean/RequestChangeDest.kt +++ b/OCH/mogo-och-charter/src/driverm1/java/com/magic/mogo/och/charter/bean/RequestChangeDest.kt @@ -4,4 +4,4 @@ package com.magic.mogo.och.charter.bean * @author: wangmingjun * @date: 2023/2/24 */ -data class RequestChangeDest(var sn: String,var lineId: Int,var siteId: Int) +data class RequestChangeDest(var sn: String,var lineId: Int,var startSiteId: Int,var siteId: Int) diff --git a/OCH/mogo-och-charter/src/driverm1/java/com/magic/mogo/och/charter/callback/IDriverM1ControllerStatusCallback.kt b/OCH/mogo-och-charter/src/driverm1/java/com/magic/mogo/och/charter/callback/IDriverM1ControllerStatusCallback.kt index d4881f53de..d6b76a84f3 100644 --- a/OCH/mogo-och-charter/src/driverm1/java/com/magic/mogo/och/charter/callback/IDriverM1ControllerStatusCallback.kt +++ b/OCH/mogo-och-charter/src/driverm1/java/com/magic/mogo/och/charter/callback/IDriverM1ControllerStatusCallback.kt @@ -1,16 +1,14 @@ package com.magic.mogo.och.charter.callback -import com.mogo.eagle.core.data.map.MogoLocation - /** * Created on 2021/9/10 * * Model->Presenter回调:状态控制器监听(accOn、adas ui show、voice ui show、push ui show、v2x ui show等等) */ interface IDriverM1ControllerStatusCallback { - // 自车定位 - fun onCarLocationChanged(location: MogoLocation?) - //开始开启自动驾驶 fun startOpenAutopilot() + + //启动自驾失败 + fun onStartAdasFailure() } \ No newline at end of file diff --git a/OCH/mogo-och-charter/src/driverm1/java/com/magic/mogo/och/charter/fragment/DriverM1Fragment.kt b/OCH/mogo-och-charter/src/driverm1/java/com/magic/mogo/och/charter/fragment/DriverM1Fragment.kt index 36a92a0c26..d5f34dbf4f 100644 --- a/OCH/mogo-och-charter/src/driverm1/java/com/magic/mogo/och/charter/fragment/DriverM1Fragment.kt +++ b/OCH/mogo-och-charter/src/driverm1/java/com/magic/mogo/och/charter/fragment/DriverM1Fragment.kt @@ -61,7 +61,7 @@ class DriverM1Fragment : CharterBaseFragmentPresenter:VR mode等 : IDriverM1ControllerStatusCallback? = null - private var mADASStatusCallback: IADASStatusCallback? = null - private var mOrderCallback: DriverM1OrderCallback? = null private var mChangeDestCallback: ChangeDestCallback? = null @@ -119,6 +119,7 @@ class DriverM1Model { mContext = AbsMogoApplication.getApp() // 定位监听 CallerChassisLocationGCJ02ListenerManager.addListener(TAG, mMapLocationListener) + CallerChassisLocationGCJ02ListenerManager.setListenerHz(TAG,2) //开启自驾后 异常信息返回 OCHAdasAbilityManager.getInstance().setAdasStartFailureCallback(mAdasStartFailureListener) @@ -179,99 +180,19 @@ class DriverM1Model { } if (e is IllegalStateException) { // that's a bug in RxJava or in a custom operator - d(SceneConstant.M_BUS + TAG, "IllegalStateException") + d(SceneConstant.M_CHARTER_D + TAG, "IllegalStateException") Thread.currentThread().uncaughtExceptionHandler.uncaughtException( Thread.currentThread(), e ) return } - d(SceneConstant.M_BUS + TAG, "Undeliverable exception") + d(SceneConstant.M_CHARTER_D + TAG, "Undeliverable exception") } }) } - /** - * 接收乘客屏发来确认信息 - */ - private val mReceivedMsgListener: IReceivedMsgListener = - object : IReceivedMsgListener { - override fun onReceivedMsg(type: Int, byteArray: ByteArray) { - if (TelematicConstant.BUSINESS_STRING == type){ - try { - val msg = GsonUtils.fromJson(String(byteArray), - BaseDPMsg::class.java) as BaseDPMsg - if (msg.type == DPMsgType.TYPE_CHANGE_DEST.type){ - val changeDestMsg = GsonUtils.fromJson(String(byteArray), - ChangeDestMsg::class.java) as ChangeDestMsg - currentChangeDestMsg = changeDestMsg - showChangerDestCommitDialog(changeDestMsg) - } - d(SceneConstant.M_CHARTER_D,"onReceivedMsg = "+ GsonUtils.toJson(msg)) - }catch (e: Exception){ - d(SceneConstant.M_CHARTER_D,"onReceivedMsg = "+"消息解析错误") - } - - } - } - } - - private fun showChangerDestCommitDialog(changeDestMsg: ChangeDestMsg) { - if (changeDestMsg.destSiteName !== ""){ - UiThreadHandler.post{ - mChangeDestCallback?.showCommitDialog("确认站点", - "请确认是否前往"+ changeDestMsg.destSiteName + "站点") - } - }else if (changeDestMsg.lineName !== ""){ - UiThreadHandler.post{ - mChangeDestCallback?.showCommitDialog("确认路线", - "请确认是否切换"+ changeDestMsg.lineName + "路线") - } - } - } - - private val mMogoOnMessageListener = - object : IMogoOnMessageListener { - override fun onMsgReceived(obj: DataBaseMsg) { - if (obj == null) { - d(SceneConstant.M_CHARTER_D + TAG, "onMsgReceived = null") - return - } - d(SceneConstant.M_CHARTER_D + TAG, "onMsgReceived = " + obj.msgType) - - when(obj.msgType){ - OCHSocketMessageManager.msgMonitorType ->{ - val msg = obj as SystemMsg - pushAppOperationalMsgBox(obj.pushTimeStamp, msg.context) - - val list = msg.screenList - if (list.size > 1){ //发送乘客屏 - } - } - OCHSocketMessageManager.msgOperateDoorType ->{ - val msg = obj as OperateDoorMsg -// pushAppOperationalMsgBox(obj.pushTimeStamp, msg.) - sendMsgToClient(DPOperateDoorMsg(true)) - } - OCHSocketMessageManager.msgOrderClosedType ->{ - val msg = obj as OrderCloseMsg - pushAppOperationalMsgBox(obj.pushTimeStamp, msg.message) - sendMsgToClient(DPOrderClosedMsg()) - } - } - - } - - override fun target(): Class { - return DataBaseMsg::class.java - } - } - - fun setAdasStatusCallback(callback: IADASStatusCallback?) { - mADASStatusCallback = callback - } - fun setChangeDestCallback(callback: ChangeDestCallback?){ mChangeDestCallback = callback } @@ -298,7 +219,89 @@ class DriverM1Model { ) stopLoopAbnormalFactors() } + /** + * 接收乘客屏发来确认信息 + */ + private val mReceivedMsgListener: IReceivedMsgListener = + object : IReceivedMsgListener { + override fun onReceivedMsg(type: Int, byteArray: ByteArray) { + if (TelematicConstant.BUSINESS_STRING == type){ + try { + val msg = GsonUtils.fromJson(String(byteArray), + BaseDPMsg::class.java) as BaseDPMsg + if (msg.type == DPMsgType.TYPE_CHANGE_DEST.type){ + val changeDestMsg = GsonUtils.fromJson(String(byteArray), + ChangeDestMsg::class.java) as ChangeDestMsg + currentChangeDestMsg = changeDestMsg + showChangerDestCommitDialog(changeDestMsg) + } + d(SceneConstant.M_CHARTER_D,"onReceivedMsg = "+ GsonUtils.toJson(msg)) + }catch (e: Exception){ + d(SceneConstant.M_CHARTER_D,"onReceivedMsg = "+"消息解析错误") + } + } + } + } + + private fun showChangerDestCommitDialog(changeDestMsg: ChangeDestMsg) { + if (!TextUtils.isEmpty(changeDestMsg.destSiteName)){ + UiThreadHandler.post{ + mChangeDestCallback?.showCommitDialog("确认站点", + "请确认是否前往"+ changeDestMsg.destSiteName + "站点") + } + }else if (!TextUtils.isEmpty(changeDestMsg.lineName)){ + UiThreadHandler.post{ + mChangeDestCallback?.showCommitDialog("确认路线", + "请确认是否切换"+ changeDestMsg.lineName + "路线") + } + } + } + + private val mMogoOnMessageListener = + object : IMogoOnMessageListener { + override fun onMsgReceived(obj: DataBaseMsg) { + if (obj == null) { + d(SceneConstant.M_CHARTER_D + TAG, "onMsgReceived = null") + return + } + d(SceneConstant.M_CHARTER_D + TAG, "onMsgReceived = " + obj.msgType) + + when(obj.msgType){ + OCHSocketMessageManager.msgMonitorType ->{ //运营消息 + val msg = obj as SystemMsg + pushOperationalToMsgBox(obj.pushTimeStamp, msg.context) + val list = msg.screenList + if (list.size > 1){ //发送乘客屏 + sendMsgToClient(DPCommonOperationMsg(msg.context)) + } + } + OCHSocketMessageManager.msgOperateDoorType ->{ + sendMsgToClient(DPOperateDoorMsg(true)) + } + OCHSocketMessageManager.msgOrderClosedType ->{ //订单结束 + val msg = obj as OrderCloseMsg + pushOperationalToMsgBox(obj.pushTimeStamp, msg.message + ,OCHSocketMessageManager.OPERATION_ORDER_TYPE) + sendMsgToClient(DPOrderClosedMsg()) + } + } + + } + + override fun target(): Class { + return DataBaseMsg::class.java + } + } + + fun pushOperationalToMsgBox(time : Long,content : String,type: Int = -1){ + playDI() + pushAppOperationalMsgBox(time, content,type) + } + + private fun playDI(){ + SoundPoolHelper.getSoundPoolHelper().playSoundWithRedId(mContext, R.raw.m1_voice_di) + } private val mAdasStartFailureListener: OchAdasStartFailureCallback = object : OchAdasStartFailureCallback { override fun onStartAutopilotFailure( @@ -309,10 +312,10 @@ class DriverM1Model { // .triggerStartAutopilotFailureEventByAdas(startFailedCode, startFailedMessage) // if (mADASStatusCallback != null && !FunctionBuildConfig.isDemoMode) { // e( -// SceneConstant.M_BUS + TAG, +// SceneConstant.M_CHARTER_D + TAG, // "mAdasStartFailureListener = $startFailedMessage" // ) -// mADASStatusCallback?.onStartAdasFailure() + mControllerStatusCallback?.onStartAdasFailure() // } } } @@ -335,9 +338,6 @@ class DriverM1Model { if (null == gnssInfo) return mLongitude = gnssInfo.longitude mLatitude = gnssInfo.latitude - if (mControllerStatusCallback != null) { - mControllerStatusCallback?.onCarLocationChanged(gnssInfo) - } //是否到站的围栏判断 离站状态并且自动驾驶还未触发到站 // if (isGoingToNextStation && !isArrivedStation) { @@ -349,7 +349,7 @@ class DriverM1Model { //根据围栏判断,是否到达站点 private fun judgeArrivedStation(location: MogoLocation) { // if (backgroundCurrentStationIndex + 1 > stationList!!.size - 1) { -// e(SceneConstant.M_BUS + TAG, "到站数组越界") +// e(SceneConstant.M_CHARTER_D + TAG, "到站数组越界") // return // } // val upcomingStation: BusStationBean = stationList[backgroundCurrentStationIndex + 1] @@ -361,7 +361,7 @@ class DriverM1Model { // ).toDouble() // if (distance <= CharterConst.ARRIVE_AT_END_STATION_DISTANCE) { // d( -// SceneConstant.M_BUS + TAG, "行程日志-judgeArrivedStation() distance = " + distance +// SceneConstant.M_CHARTER_D + TAG, "行程日志-judgeArrivedStation() distance = " + distance // + " to " + upcomingStation.getName() // ) // onArriveAt(null) //无自动驾驶到站信息传null @@ -386,12 +386,12 @@ class DriverM1Model { triggerStartServiceEvent(true, false) val parameters = initAutopilotControlParameters() if (null == parameters) { - d(SceneConstant.M_BUS + TAG, "行程日志-AutopilotControlParameters is empty.") + d(SceneConstant.M_CHARTER_D + TAG, "行程日志-AutopilotControlParameters is empty.") return } startAutoPilot(parameters) d( - SceneConstant.M_BUS + TAG, "行程日志-开启自动驾驶====" + GsonUtil.jsonFromObject(parameters) + SceneConstant.M_CHARTER_D + TAG, "行程日志-开启自动驾驶====" + GsonUtil.jsonFromObject(parameters) + " startLatLon=" + parameters.startName + ",endLatLon=" + parameters.endName ) if (mControllerStatusCallback != null) { @@ -409,7 +409,7 @@ class DriverM1Model { false //是否强制绘制引导线 setIgnoreConditionDraw(false) // 同步给乘客屏 setIPCDemoMode(false) //是否自动启动自驾 - d(SceneConstant.M_BUS + TAG, "美化模式-ignore:置为false") + d(SceneConstant.M_CHARTER_D + TAG, "美化模式-ignore:置为false") } } @@ -431,7 +431,7 @@ class DriverM1Model { * 在踩刹车、控制方向盘等操作后,会停止自动驾驶,重启自动驾驶的话相当于重新设置自动驾驶目的地 */ fun restartAutopilot() { - d(SceneConstant.M_BUS + TAG, "司机端-启动自动驾驶===$isGoingToNextStation") + d(SceneConstant.M_CHARTER_D + TAG, "司机端-启动自动驾驶===$isGoingToNextStation") //只去启动自动驾驶 startAutopilot() } @@ -493,33 +493,21 @@ class DriverM1Model { } fun initAutopilotControlParameters(): AutopilotControlParameters? { -// var currentStation: BusStationBean? = null -// var nextStation: BusStationBean? = null -// if (leaveIndex < 0) { -// if (backgroundCurrentStationIndex + 1 > stationList!!.size - 1 || !isGoingToNextStation) { -// e(SceneConstant.M_BUS + TAG, "行程日志-mismatch condition1.") -// return null -// } -// currentStation = stationList[backgroundCurrentStationIndex] -// nextStation = stationList[backgroundCurrentStationIndex + 1] -// } else { -// if (leaveIndex + 1 > stationList!!.size - 1 || !isGoingToNextStation) { -// e(SceneConstant.M_BUS + TAG, "行程日志-mismatch condition2.") -// return null -// } -// currentStation = stationList[leaveIndex] -// nextStation = stationList[leaveIndex + 1] -// } + if ( mCurrentOrder == null) return null var parameters = AutopilotControlParameters() -// parameters.routeID = busRoutesResult.getLineId() -// parameters.routeName = busRoutesResult.getName() + parameters.routeID = mCurrentOrder?.lineId!! + parameters.routeName = mCurrentOrder?.lineName!! // parameters.startName = PinYinUtil.getPinYinHeadChar(currentStation.getName()) -// parameters.endName = PinYinUtil.getPinYinHeadChar(nextStation.getName()) -// parameters.startLatLon = AutoPilotLonLat(currentStation.getLat(), currentStation.getLon()) -// parameters.endLatLon = AutoPilotLonLat(nextStation.getLat(), nextStation.getLon()) -// parameters.vehicleType = VEHICLE_TYPE + parameters.endName = PinYinUtil.getPinYinHeadChar(mCurrentOrder?.siteName) + parameters.startLatLon = AutopilotControlParameters.AutoPilotLonLat( + mLatitude, + mLongitude + ) + parameters.endLatLon = + AutopilotControlParameters.AutoPilotLonLat(mCurrentOrder?.wgs84Lat!!, mCurrentOrder?.wgs84Lon!!) + parameters.vehicleType = VEHICLE_TYPE // if (parameters.autoPilotLine == null) { -// parameters.autoPilotLine = AutoPilotLine( +// parameters.autoPilotLine = AutopilotControlParameters.AutoPilotLine( // busRoutesResult.getLineId(), // busRoutesResult.csvFileUrl, busRoutesResult.csvFileMd5, // busRoutesResult.txtFileUrl, busRoutesResult.txtFileMd5, @@ -645,11 +633,18 @@ class DriverM1Model { fun changeDest(){ if (currentChangeDestMsg == null) return + if (TextUtils.isEmpty(currentChangeDestMsg?.destSiteName)){//确认路线 + d(SceneConstant.M_CHARTER_D + TAG, "confirm line .") + sendCommitMsgToClient(true) + return + } DriverM1ServiceManager.changeDest(mContext,currentChangeDestMsg!!.lineId, + currentChangeDestMsg!!.startSiteId, currentChangeDestMsg!!.destSiteId, object : OchCommonServiceCallback{ override fun onSuccess(data: BaseData?) { if (data != null && data.code == 0){ + d(SceneConstant.M_CHARTER_D + TAG, "confirmed station .") sendCommitMsgToClient(true) } } diff --git a/OCH/mogo-och-charter/src/driverm1/java/com/magic/mogo/och/charter/net/DriverM1ServiceManager.kt b/OCH/mogo-och-charter/src/driverm1/java/com/magic/mogo/och/charter/net/DriverM1ServiceManager.kt index a13db84d9f..407afa2d5f 100644 --- a/OCH/mogo-och-charter/src/driverm1/java/com/magic/mogo/och/charter/net/DriverM1ServiceManager.kt +++ b/OCH/mogo-och-charter/src/driverm1/java/com/magic/mogo/och/charter/net/DriverM1ServiceManager.kt @@ -69,11 +69,11 @@ object DriverM1ServiceManager { ?.subscribe(OchCommonSubscribeImpl(context!!, callback, "checkOrderCountDown")) } - fun changeDest(context: Context?,lineId: Int,siteId: Int, + fun changeDest(context: Context?,lineId: Int,startSiteId: Int,siteId: Int, callback: OchCommonServiceCallback?){ mDriverM1ServiceApi.changeDest(MoGoAiCloudClientConfig.getInstance().serviceAppId, MoGoAiCloudClientConfig.getInstance().token, - RequestChangeDest(MoGoAiCloudClientConfig.getInstance().sn,lineId,siteId) + RequestChangeDest(MoGoAiCloudClientConfig.getInstance().sn,lineId,startSiteId,siteId) )?.transformTry() ?.subscribe(OchCommonSubscribeImpl(context!!, callback, "changeDest")) } diff --git a/OCH/mogo-och-charter/src/driverm1/java/com/magic/mogo/och/charter/presenter/DriverM1Presenter.kt b/OCH/mogo-och-charter/src/driverm1/java/com/magic/mogo/och/charter/presenter/DriverM1Presenter.kt index 57ee0946ec..8b47fbbf37 100644 --- a/OCH/mogo-och-charter/src/driverm1/java/com/magic/mogo/och/charter/presenter/DriverM1Presenter.kt +++ b/OCH/mogo-och-charter/src/driverm1/java/com/magic/mogo/och/charter/presenter/DriverM1Presenter.kt @@ -4,18 +4,22 @@ import androidx.lifecycle.LifecycleOwner import com.magic.mogo.och.charter.bean.QueryCurrentOrderResponse import com.magic.mogo.och.charter.callback.ChangeDestCallback import com.magic.mogo.och.charter.callback.DriverM1OrderCallback +import com.magic.mogo.och.charter.callback.IDriverM1ControllerStatusCallback import com.magic.mogo.och.charter.fragment.DriverM1Fragment import com.magic.mogo.och.charter.model.DriverM1Model import com.mogo.commons.mvp.Presenter import com.mogo.eagle.core.data.autopilot.AutopilotStatusInfo -import com.mogo.eagle.core.data.config.FunctionBuildConfig import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant +import com.mogo.eagle.core.utilcode.util.ThreadUtils import com.mogo.och.common.module.biz.bean.DriverStatusQueryRespBean import com.mogo.och.common.module.biz.callback.ILoginCallback +import com.mogo.och.common.module.biz.common.socketmessage.OCHSocketMessageManager.OPERATION_ROAD_SIDE_TYPE import com.mogo.och.common.module.biz.constant.LoginStatusManager.isLogin +import com.mogo.och.common.module.manager.OCHPlanningStopSideStatusManager +import com.mogo.och.common.module.utils.DateTimeUtil /** * @author: wangmingjun @@ -23,7 +27,8 @@ import com.mogo.och.common.module.biz.constant.LoginStatusManager.isLogin */ class DriverM1Presenter(view: DriverM1Fragment?) : Presenter(view),ILoginCallback, DriverM1OrderCallback, ChangeDestCallback, - IMoGoAutopilotStatusListener { + IMoGoAutopilotStatusListener, OCHPlanningStopSideStatusManager.OCHPlanningActionsCallback, + IDriverM1ControllerStatusCallback { private val TAG = DriverM1Presenter::class.java.name private var mCurrentAutopilotStatus : Int = -1 @@ -36,13 +41,18 @@ class DriverM1Presenter(view: DriverM1Fragment?) : private fun registerListener() { //2021.11.1 鹰眼架构整合,由IMoGoAutopilotStatusListener逐步替代IMogoAdasOCHCallback接口 CallerAutoPilotStatusListenerManager.addListener(TAG, this) + OCHPlanningStopSideStatusManager.addListener(TAG,this) DriverM1Model.get().setDriverM1OrderCallback(this) DriverM1Model.get().setChangeDestCallback(this) + DriverM1Model.get().setControllerStatusCallback(this) } private fun releaseListener() { + OCHPlanningStopSideStatusManager.removeListener(TAG) + CallerAutoPilotStatusListenerManager.removeListener(TAG) DriverM1Model.get().setDriverM1OrderCallback(null) DriverM1Model.get().setChangeDestCallback(null) + DriverM1Model.get().setControllerStatusCallback(null) } override fun onDestroy(owner: LifecycleOwner) { @@ -109,12 +119,8 @@ class DriverM1Presenter(view: DriverM1Fragment?) : val status = autoPilotStatusInfo.state if (mCurrentAutopilotStatus == status) return - if (FunctionBuildConfig.isDemoMode){ //todo 此处要加上判断订单状态 美化模式生效 - mView?.onAutopilotStatusChanged(IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING) - }else{ - mView?.onAutopilotStatusChanged(status) - } - + mView?.onAutopilotStatusChanged(status) + mCurrentAutopilotStatus = status // when(status){ // // IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_ENABLE -> { // @@ -131,4 +137,32 @@ class DriverM1Presenter(view: DriverM1Fragment?) : // } // } } + + override fun onStartAutopilotFailure( + actionStatus: OCHPlanningStopSideStatusManager.Status, + stopSideStatus: Boolean?, + errorInfo: String? + ) { + when (actionStatus) { + OCHPlanningStopSideStatusManager.Status.START -> { // 靠边停车 to 消息盒子 + DriverM1Model.get().pushOperationalToMsgBox( + DateTimeUtil.getCurrentTimeStamp(), + "", + OPERATION_ROAD_SIDE_TYPE + ) + } + } + } + + override fun startOpenAutopilot() { + ThreadUtils.runOnUiThread { + mView?.startAutopilotAnimation() + } + } + + override fun onStartAdasFailure() { + ThreadUtils.runOnUiThread { + mView?.stopAnimAndUpdateBtnStatus() + } + } } diff --git a/OCH/mogo-och-charter/src/driverm1/res/raw/bus_di.mp3 b/OCH/mogo-och-charter/src/driverm1/res/raw/bus_di.mp3 deleted file mode 100644 index 15b31ed247..0000000000 Binary files a/OCH/mogo-och-charter/src/driverm1/res/raw/bus_di.mp3 and /dev/null differ diff --git a/OCH/mogo-och-charter/src/driverm1/res/raw/m1_voice_di.mp3 b/OCH/mogo-och-charter/src/driverm1/res/raw/m1_voice_di.mp3 new file mode 100644 index 0000000000..191886658c Binary files /dev/null and b/OCH/mogo-och-charter/src/driverm1/res/raw/m1_voice_di.mp3 differ diff --git a/OCH/mogo-och-charter/src/main/java/com/magic/mogo/och/charter/base/CharterBaseFragment.kt b/OCH/mogo-och-charter/src/main/java/com/magic/mogo/och/charter/base/CharterBaseFragment.kt index a14e3c85bc..02cc66f32c 100644 --- a/OCH/mogo-och-charter/src/main/java/com/magic/mogo/och/charter/base/CharterBaseFragment.kt +++ b/OCH/mogo-och-charter/src/main/java/com/magic/mogo/och/charter/base/CharterBaseFragment.kt @@ -313,7 +313,10 @@ abstract class CharterBaseFragment?>() : ctvAutopilotStatusIv!!.setImageResource(R.drawable.bus_disable_autopilot_icon) ctvAutopilotStatus!!.isSelected = false ctvAutopilotStatus!!.isClickable = true - } else { + } else if (IMoGoAutopilotStatusListener.STATUS_PARALLEL_DRIVING + == autopilotStatus){ + //todo 处理平行驾驶 + }else{ ctvAutopilotStatusTv!!.setTextColor(resources.getColor(R.color.bus_autopilot_text_color_normal)) ctvAutopilotStatusTv!!.text = resources.getString(R.string.bus_loading_autopilot_runnig_tv) diff --git a/OCH/mogo-och-charter/src/main/java/com/magic/mogo/och/charter/callback/IADASStatusCallback.java b/OCH/mogo-och-charter/src/main/java/com/magic/mogo/och/charter/callback/IADASStatusCallback.java deleted file mode 100644 index 6b5aa0e854..0000000000 --- a/OCH/mogo-och-charter/src/main/java/com/magic/mogo/och/charter/callback/IADASStatusCallback.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.magic.mogo.och.charter.callback; - -/** - * Created on 2021/9/8 - * - * Model->Presenter回调:ADAS相关(自动驾驶状态回调,到达终点等等) - */ -public interface IADASStatusCallback { - //自驾返回失败 - void onStartAdasFailure(); -} diff --git a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/bean/dpmsg/ChangeDestMsg.kt b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/bean/dpmsg/ChangeDestMsg.kt index 4418cf569a..d130f49741 100644 --- a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/bean/dpmsg/ChangeDestMsg.kt +++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/bean/dpmsg/ChangeDestMsg.kt @@ -7,9 +7,9 @@ package com.mogo.och.common.module.bean.dpmsg data class ChangeDestMsg( var lineId: Int, //线路id var lineName: String = "", //线路名称 - var startSiteId: Int=0, //当前站点 + var startSiteId: Int= 0, //当前站点 var startSiteName: String = "", - var destSiteId: Int=0, //目的地 + var destSiteId: Int= 0, //目的地 var destSiteName: String = "", var isConfirmed: Boolean = false //司机端是否同意 ): BaseDPMsg(DPMsgType.TYPE_CHANGE_DEST.type) diff --git a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/bean/dpmsg/DPCommonOperationMsg.kt b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/bean/dpmsg/DPCommonOperationMsg.kt new file mode 100644 index 0000000000..af7badf1fa --- /dev/null +++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/bean/dpmsg/DPCommonOperationMsg.kt @@ -0,0 +1,9 @@ +package com.mogo.och.common.module.bean.dpmsg + +/** + * @author: wangmingjun + * @date: 2023/2/24 + */ +data class DPCommonOperationMsg( + var msg: String +): BaseDPMsg(DPMsgType.TYPE_COMMON.type) diff --git a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/bean/dpmsg/DPOperateDoorMsg.kt b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/bean/dpmsg/DPOperateDoorMsg.kt index 20b8443827..30a4f2c3b4 100644 --- a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/bean/dpmsg/DPOperateDoorMsg.kt +++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/bean/dpmsg/DPOperateDoorMsg.kt @@ -6,4 +6,4 @@ package com.mogo.och.common.module.bean.dpmsg */ data class DPOperateDoorMsg( var open: Boolean = false // true: 开门, false: 关门 -): BaseDPMsg(DPMsgType.TYPE_CHANGE_DEST.type) +): BaseDPMsg(DPMsgType.TYPE_OPEN_CLOSE_DOOR.type) diff --git a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/bean/dpmsg/DPOrderClosedMsg.kt b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/bean/dpmsg/DPOrderClosedMsg.kt index 1b5e4c5a15..5785b9500b 100644 --- a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/bean/dpmsg/DPOrderClosedMsg.kt +++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/bean/dpmsg/DPOrderClosedMsg.kt @@ -6,4 +6,4 @@ package com.mogo.och.common.module.bean.dpmsg */ data class DPOrderClosedMsg( var closed: Boolean = true // true: 开门, false: 关门 -): BaseDPMsg(DPMsgType.TYPE_CHANGE_DEST.type) +): BaseDPMsg(DPMsgType.TYPE_ORDER_CLOSED.type) diff --git a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/common/socketmessage/OCHSocketMessageManager.kt b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/common/socketmessage/OCHSocketMessageManager.kt index 443ad5469d..76fc2a39f1 100644 --- a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/common/socketmessage/OCHSocketMessageManager.kt +++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/common/socketmessage/OCHSocketMessageManager.kt @@ -12,10 +12,14 @@ import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxManager * 统一管理业务长链消息推送 */ object OCHSocketMessageManager { - public const val msgMonitorType:Int = 6295553 //后台运营消息 - public const val msgWriteOffPassengerType:Int = 6295554 //核销消息 - public const val msgOperateDoorType = 6295554 // 开/关门消息 - public const val msgOrderClosedType = 6295555 //订单结束消息 + const val msgMonitorType:Int = 6295553 //后台运营消息 + const val msgWriteOffPassengerType:Int = 6295554 //核销消息 + const val msgOperateDoorType = 6295554 // 开/关门消息 + const val msgOrderClosedType = 6295555 //订单结束消息 + + const val OPERATION_SYSTEM: Int = -1 // 运营消息 默认是次消息类型 + const val OPERATION_ORDER_TYPE: Int = 0 // 还车通知 + const val OPERATION_ROAD_SIDE_TYPE: Int = 1 //靠边停车通知 fun registerSocketMessageListener(msgType:Int, mogoOnMessageListener :IMogoOnMessageListener){ @@ -28,8 +32,9 @@ object OCHSocketMessageManager { .unregisterLifecycleListener(msgType) } - fun pushAppOperationalMsgBox(time : Long,content : String){ + fun pushAppOperationalMsgBox(time : Long,content : String,type: Int = -1){ + CallerMsgBoxManager.saveMsgBox(MsgBoxBean(MsgBoxType.OPERATION, - OperationMsg(time,content))); + OperationMsg(time,content,type))) } } \ No newline at end of file diff --git a/app/README.md b/app/README.md index a74139426c..71338949e3 100644 --- a/app/README.md +++ b/app/README.md @@ -38,3 +38,15 @@ 3. demo: 演示环境(大部分时候都是测试环境) ## 区分 flavor 功能引入 + + + +## 不能启动自动驾驶的档位 +| 车型 | 配置所在文件 | 档位 | 配置 | +|:-|:-|:-|:-| +| 东风、红旗 | fOchTaxi.gradle、fOchTaxiPassenger.gradle | P、R | buildConfigField 'java.util.Set', 'UNABLE_LAUNCH_AUTOPILOT_GEAR', 'new java.util.HashSet(){{add(chassis.Chassis.GearPosition.GEAR_P);add(chassis.Chassis.GearPosition.GEAR_R);}}' | +| 金旅小巴 | fOchBus.gradle、fOchBusPassenger.gradle、fOchShuttle.gradle、fOchShuttlePassenger.gradle | N、R | buildConfigField 'java.util.Set', 'UNABLE_LAUNCH_AUTOPILOT_GEAR', 'new java.util.HashSet(){{add(chassis.Chassis.GearPosition.GEAR_N);add(chassis.Chassis.GearPosition.GEAR_R);}}' | +| M1 | fOchBusPassengerM1.gradle | 不限制档位 | buildConfigField 'java.util.Set', 'UNABLE_LAUNCH_AUTOPILOT_GEAR', 'null' | +| M2 | fOchBusPassengerM2.gradle | N、P、R | buildConfigField 'java.util.Set', 'UNABLE_LAUNCH_AUTOPILOT_GEAR', 'new java.util.HashSet(){{add(chassis.Chassis.GearPosition.GEAR_N);add(chassis.Chassis.GearPosition.GEAR_P);add(chassis.Chassis.GearPosition.GEAR_R);}}' | +| 清扫车 | fOchSweeper.gradle | N | buildConfigField 'java.util.Set', 'UNABLE_LAUNCH_AUTOPILOT_GEAR', 'new java.util.HashSet(){{add(chassis.Chassis.GearPosition.GEAR_N);}}' | +| 开沃 | 暂无 | 不限制档位 | buildConfigField 'java.util.Set', 'UNABLE_LAUNCH_AUTOPILOT_GEAR', 'null' | diff --git a/app/productFlavors/fMultiDisplayOchBus.gradle b/app/productFlavors/fMultiDisplayOchBus.gradle index 13e4c0f623..6705e54bc7 100644 --- a/app/productFlavors/fMultiDisplayOchBus.gradle +++ b/app/productFlavors/fMultiDisplayOchBus.gradle @@ -45,6 +45,9 @@ project.android.productFlavors { // 构建 是否支持多屏异显异交互 buildConfigField 'boolean', 'IS_MULTI_DISPLAY', 'true' + + //不能启动自驾的档位 + buildConfigField 'java.util.Set', 'UNABLE_LAUNCH_AUTOPILOT_GEAR', 'null' } } \ No newline at end of file diff --git a/app/productFlavors/fMultiDisplayOchTaxi.gradle b/app/productFlavors/fMultiDisplayOchTaxi.gradle index e129159f91..2e9691dca8 100644 --- a/app/productFlavors/fMultiDisplayOchTaxi.gradle +++ b/app/productFlavors/fMultiDisplayOchTaxi.gradle @@ -48,6 +48,9 @@ project.android.productFlavors { // 构建 是否支持多屏异显异交互 buildConfigField 'boolean', 'IS_MULTI_DISPLAY', 'true' + + //不能启动自驾的档位 + buildConfigField 'java.util.Set', 'UNABLE_LAUNCH_AUTOPILOT_GEAR', 'null' } } \ No newline at end of file diff --git a/app/productFlavors/fOchBus.gradle b/app/productFlavors/fOchBus.gradle index 143630b32a..f96331027e 100644 --- a/app/productFlavors/fOchBus.gradle +++ b/app/productFlavors/fOchBus.gradle @@ -48,5 +48,8 @@ project.android.productFlavors { // 构建 是否支持多屏异显异交互 buildConfigField 'boolean', 'IS_MULTI_DISPLAY', 'false' + + //Bus不能启动自驾的档位 + buildConfigField 'java.util.Set', 'UNABLE_LAUNCH_AUTOPILOT_GEAR_BUS', 'new java.util.HashSet(){{add(chassis.Chassis.GearPosition.GEAR_N);add(chassis.Chassis.GearPosition.GEAR_R);}}' } } \ No newline at end of file diff --git a/app/productFlavors/fOchBusPassenger.gradle b/app/productFlavors/fOchBusPassenger.gradle index 4828eb2d69..962f544f6e 100644 --- a/app/productFlavors/fOchBusPassenger.gradle +++ b/app/productFlavors/fOchBusPassenger.gradle @@ -44,5 +44,8 @@ project.android.productFlavors { // 构建 是否支持多屏异显异交互 buildConfigField 'boolean', 'IS_MULTI_DISPLAY', 'false' + + //Bus不能启动自驾的档位 + buildConfigField 'java.util.Set', 'UNABLE_LAUNCH_AUTOPILOT_GEAR_BUS', 'new java.util.HashSet(){{add(chassis.Chassis.GearPosition.GEAR_N);add(chassis.Chassis.GearPosition.GEAR_R);}}' } } \ No newline at end of file diff --git a/app/productFlavors/fOchBusPassengerM2.gradle b/app/productFlavors/fOchBusPassengerM2.gradle index b4361568b3..d99a8b239c 100644 --- a/app/productFlavors/fOchBusPassengerM2.gradle +++ b/app/productFlavors/fOchBusPassengerM2.gradle @@ -45,5 +45,8 @@ project.android.productFlavors { // 构建 是否支持多屏异显异交互 buildConfigField 'boolean', 'IS_MULTI_DISPLAY', 'false' + + //M2不能启动自驾的档位 + buildConfigField 'java.util.Set', 'UNABLE_LAUNCH_AUTOPILOT_GEAR', 'new java.util.HashSet(){{add(chassis.Chassis.GearPosition.GEAR_N);add(chassis.Chassis.GearPosition.GEAR_P);add(chassis.Chassis.GearPosition.GEAR_R);}}' } } \ No newline at end of file diff --git a/app/productFlavors/fOchShuttle.gradle b/app/productFlavors/fOchShuttle.gradle index fe33f7e370..c359ba42a1 100644 --- a/app/productFlavors/fOchShuttle.gradle +++ b/app/productFlavors/fOchShuttle.gradle @@ -46,5 +46,8 @@ project.android.productFlavors { // 构建 是否支持多屏异显异交互 buildConfigField 'boolean', 'IS_MULTI_DISPLAY', 'false' + + //Bus不能启动自驾的档位 + buildConfigField 'java.util.Set', 'UNABLE_LAUNCH_AUTOPILOT_GEAR_BUS', 'new java.util.HashSet(){{add(chassis.Chassis.GearPosition.GEAR_N);add(chassis.Chassis.GearPosition.GEAR_R);}}' } } \ No newline at end of file diff --git a/app/productFlavors/fOchShuttlePassenger.gradle b/app/productFlavors/fOchShuttlePassenger.gradle index 53397c6211..a578eb87cc 100644 --- a/app/productFlavors/fOchShuttlePassenger.gradle +++ b/app/productFlavors/fOchShuttlePassenger.gradle @@ -17,7 +17,11 @@ project.android.productFlavors { // 车机类型,主要用于区分自研车机还是别人家的车机,自研车机类型为0 buildConfigField 'int', 'CAR_MACHINE_TYPE', '2' //高德地图鉴权信息 - manifestPlaceholders = [AMAP_API_VALUE: rootProject.ext.android.fLauncherAmapApiValue, CHANNEL_VALUE: "fOchShuttlePassenger",ACTIVITY_ROOT:true] + manifestPlaceholders = [AMAP_API_VALUE: rootProject.ext.android.fLauncherAmapApiValue, + CHANNEL_VALUE: "fOchShuttlePassenger", + ACTIVITY_ROOT:true, + // Activity的朝向 + SCREEN_ORIENTATION: "landscape"] // 是否基于地图 buildConfigField 'boolean', 'IS_MAP_BASED', 'true' @@ -41,5 +45,8 @@ project.android.productFlavors { // 构建 是否支持多屏异显异交互 buildConfigField 'boolean', 'IS_MULTI_DISPLAY', 'false' + + //Bus不能启动自驾的档位 + buildConfigField 'java.util.Set', 'UNABLE_LAUNCH_AUTOPILOT_GEAR', 'new java.util.HashSet(){{add(chassis.Chassis.GearPosition.GEAR_N);add(chassis.Chassis.GearPosition.GEAR_R);}}' } } \ No newline at end of file diff --git a/app/productFlavors/fOchSweeper.gradle b/app/productFlavors/fOchSweeper.gradle index a4ca130d10..730ae5e818 100644 --- a/app/productFlavors/fOchSweeper.gradle +++ b/app/productFlavors/fOchSweeper.gradle @@ -49,5 +49,8 @@ project.android.productFlavors { // 构建 是否支持多屏异显异交互 buildConfigField 'boolean', 'IS_MULTI_DISPLAY', 'false' + + //清扫车不能启动自驾的档位 + buildConfigField 'java.util.Set', 'UNABLE_LAUNCH_AUTOPILOT_GEAR', 'new java.util.HashSet(){{add(chassis.Chassis.GearPosition.GEAR_N);}}' } } \ No newline at end of file diff --git a/app/productFlavors/fOchTaxi.gradle b/app/productFlavors/fOchTaxi.gradle index 5cc815d2dd..424280b7f3 100644 --- a/app/productFlavors/fOchTaxi.gradle +++ b/app/productFlavors/fOchTaxi.gradle @@ -49,6 +49,9 @@ project.android.productFlavors { // 构建 是否支持多屏异显异交互 buildConfigField 'boolean', 'IS_MULTI_DISPLAY', 'false' + + //Taxi不能启动自驾的档位 + buildConfigField 'java.util.Set', 'UNABLE_LAUNCH_AUTOPILOT_GEAR', 'new java.util.HashSet(){{add(chassis.Chassis.GearPosition.GEAR_P);add(chassis.Chassis.GearPosition.GEAR_R);}}' } } \ No newline at end of file diff --git a/app/productFlavors/fOchTaxiPassenger.gradle b/app/productFlavors/fOchTaxiPassenger.gradle index f659f9c8be..a762c8f8c8 100644 --- a/app/productFlavors/fOchTaxiPassenger.gradle +++ b/app/productFlavors/fOchTaxiPassenger.gradle @@ -48,6 +48,9 @@ project.android.productFlavors { // 构建 是否支持多屏异显异交互 buildConfigField 'boolean', 'IS_MULTI_DISPLAY', 'true' + + //Taxi不能启动自驾的档位 + buildConfigField 'java.util.Set', 'UNABLE_LAUNCH_AUTOPILOT_GEAR', 'new java.util.HashSet(){{add(chassis.Chassis.GearPosition.GEAR_P);add(chassis.Chassis.GearPosition.GEAR_R);}}' } } \ No newline at end of file diff --git a/app/productFlavors/fPadLenovo.gradle b/app/productFlavors/fPadLenovo.gradle index b41beb967b..f9cbdfbc63 100644 --- a/app/productFlavors/fPadLenovo.gradle +++ b/app/productFlavors/fPadLenovo.gradle @@ -45,5 +45,8 @@ project.android.productFlavors { // 构建 是否支持多屏异显异交互 buildConfigField 'boolean', 'IS_MULTI_DISPLAY', 'false' + + //不能启动自驾的档位 + buildConfigField 'java.util.Set', 'UNABLE_LAUNCH_AUTOPILOT_GEAR', 'null' } } \ No newline at end of file diff --git a/app/productFlavors/flavorsFilterConfig.gradle b/app/productFlavors/flavorsFilterConfig.gradle index 08e8d39083..7b583f5fe5 100644 --- a/app/productFlavors/flavorsFilterConfig.gradle +++ b/app/productFlavors/flavorsFilterConfig.gradle @@ -18,8 +18,8 @@ project.android.variantFilter { variant -> // region 过滤shuttle 的flavors if (names.contains("shuttle")) { //Gradle会忽略满足上述条件的所有变体 - if (names.contains("fOchBus")) { - } else if (names.contains("fOchBusPassenger")) { + if (names.contains("fOchShuttle")) { + } else if (names.contains("fOchShuttlePassenger")) { } else { setIgnore(true) } diff --git a/app/productFlavors/ochPassengerM1.gradle b/app/productFlavors/ochPassengerM1.gradle index c60d13e0b5..67af2a0def 100644 --- a/app/productFlavors/ochPassengerM1.gradle +++ b/app/productFlavors/ochPassengerM1.gradle @@ -48,5 +48,8 @@ project.android.productFlavors { // 构建 是否支持多屏异显异交互 buildConfigField 'boolean', 'IS_MULTI_DISPLAY', 'false' + + //M1不能启动自驾的档位 + buildConfigField 'java.util.Set', 'UNABLE_LAUNCH_AUTOPILOT_GEAR', 'null' } } \ No newline at end of file diff --git a/app/src/main/java/com/mogo/launcher/startup/ConfigStartUp.kt b/app/src/main/java/com/mogo/launcher/startup/ConfigStartUp.kt index 588ffec05c..1548e6a41f 100644 --- a/app/src/main/java/com/mogo/launcher/startup/ConfigStartUp.kt +++ b/app/src/main/java/com/mogo/launcher/startup/ConfigStartUp.kt @@ -39,6 +39,8 @@ object ConfigStartUp { FunctionBuildConfig.appIdentityMode = BuildConfig.APP_IDENTITY_MODE // 各个module需要的url FunctionBuildConfig.urlJson = GsonUtils.fromJson(BuildConfig.URLs, UrlConfig::class.java) + //不能启动自动驾驶的档位 + FunctionBuildConfig.unableLaunchAutopilotGear = BuildConfig.UNABLE_LAUNCH_AUTOPILOT_GEAR // // 这里影响当前Activity的身份信息,多进程先保持与原来一样,主进程为司机端,:passenger 进程为乘客端 TODO 暂时不启用,仅做洱海交付,独立乘客屏+宣传视频 // if (ProcessUtils.getCurrentProcessName().contains(":passenger")) { diff --git a/app_ipc_monitoring/build.gradle b/app_ipc_monitoring/build.gradle index 516cadba31..789192a600 100644 --- a/app_ipc_monitoring/build.gradle +++ b/app_ipc_monitoring/build.gradle @@ -64,6 +64,12 @@ android { driver { dimension "multi_device" buildConfigField 'boolean', 'IS_CLIENT', 'false' + buildConfigField 'java.util.Set', 'UNABLE_LAUNCH_AUTOPILOT_GEAR_TAXI', 'new java.util.HashSet(){{add(chassis.Chassis.GearPosition.GEAR_P);add(chassis.Chassis.GearPosition.GEAR_R);}}' + buildConfigField 'java.util.Set', 'UNABLE_LAUNCH_AUTOPILOT_GEAR_BUS', 'new java.util.HashSet(){{add(chassis.Chassis.GearPosition.GEAR_N);add(chassis.Chassis.GearPosition.GEAR_R);}}' + buildConfigField 'java.util.Set', 'UNABLE_LAUNCH_AUTOPILOT_GEAR_M1', 'null' + buildConfigField 'java.util.Set', 'UNABLE_LAUNCH_AUTOPILOT_GEAR_M2', 'new java.util.HashSet(){{add(chassis.Chassis.GearPosition.GEAR_N);add(chassis.Chassis.GearPosition.GEAR_P);add(chassis.Chassis.GearPosition.GEAR_R);}}' + buildConfigField 'java.util.Set', 'UNABLE_LAUNCH_AUTOPILOT_GEAR_SWEEPER', 'new java.util.HashSet(){{add(chassis.Chassis.GearPosition.GEAR_N);}}' + buildConfigField 'java.util.Set', 'UNABLE_LAUNCH_AUTOPILOT_GEAR_VAN', 'null' } } @@ -94,6 +100,6 @@ dependencies { // implementation project(':core:mogo-core-utils') implementation 'org.greenrobot:eventbus:3.2.0' implementation 'com.android.support:multidex:1.0.3' - implementation 'com.mogo.cloud:telematic:1.3.59' +// implementation 'com.mogo.cloud:telematic:1.3.59'//注释掉司机端 乘客端 implementation 'com.jcraft:jsch:0.1.55' } diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/App.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/App.java index e89e78ab58..f0bd8f52ca 100644 --- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/App.java +++ b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/App.java @@ -4,8 +4,13 @@ import android.app.Application; import com.zhidao.adas.client.utils.CrashHandler; +import chassis.Chassis; + public class App extends Application { public static App INSTANCE; + + public Chassis.GearPosition gear; + @Override public void onCreate() { super.onCreate(); diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/DataDistribution.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/DataDistribution.java index fd80d8d570..851fe8b076 100644 --- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/DataDistribution.java +++ b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/DataDistribution.java @@ -2,36 +2,15 @@ package com.zhidao.adas.client; import android.util.Pair; -import com.zhidao.adas.client.bean.ArrivalNotification; -import com.zhidao.adas.client.bean.AutopilotState; -import com.zhidao.adas.client.bean.BagManagerCmd; import com.zhidao.adas.client.bean.BaseInfo; -import com.zhidao.adas.client.bean.BasicInfoReq; -import com.zhidao.adas.client.bean.CarConfigResp; -import com.zhidao.adas.client.bean.ChassisStates; import com.zhidao.adas.client.bean.DataShow; import com.zhidao.adas.client.bean.ErrorData; -import com.zhidao.adas.client.bean.FSMFunctionStates; -import com.zhidao.adas.client.bean.GlobalPathResp; -import com.zhidao.adas.client.bean.GnssInfo; -import com.zhidao.adas.client.bean.MogoReportMessage; import com.zhidao.adas.client.bean.ObuMap; import com.zhidao.adas.client.bean.ObuRsi; import com.zhidao.adas.client.bean.ObuRsm; import com.zhidao.adas.client.bean.ObuSpat; import com.zhidao.adas.client.bean.OriginalPointCloudData; import com.zhidao.adas.client.bean.PerceptionTrafficLight; -import com.zhidao.adas.client.bean.PlanningDecisionState; -import com.zhidao.adas.client.bean.PlanningObjects; -import com.zhidao.adas.client.bean.PredictionObstacleTrajectory; -import com.zhidao.adas.client.bean.RecordDataConfig; -import com.zhidao.adas.client.bean.RecordPanel; -import com.zhidao.adas.client.bean.RoboSweeperTaskIndex; -import com.zhidao.adas.client.bean.StatusInfo; -import com.zhidao.adas.client.bean.TrackedObjects; -import com.zhidao.adas.client.bean.Trajectory; -import com.zhidao.adas.client.bean.VehicleState; -import com.zhidao.adas.client.bean.Warn; import com.zhidao.adas.client.log.LogSave; import com.zhidao.adas.client.utils.Constants; import com.zhidao.support.adas.high.common.ThreadPoolManager; @@ -44,6 +23,8 @@ import java.util.Locale; import java.util.concurrent.Future; import java.util.concurrent.LinkedBlockingQueue; +import mogo.telematics.pad.MessagePad; + /** * 数据分发 */ @@ -193,8 +174,8 @@ public class DataDistribution { } public String cutDown(String str) { - if (isCutDown && str.length() > 650) { - str = str.substring(0, 650) + "\n(已缩短。如需查看完整数据,请勾选日志缩短复选框)"; + if (isCutDown && str.length() > 850) { + str = str.substring(0, 850) + "\n(已缩短。如需查看完整数据,请勾选日志缩短复选框)"; } return str; } @@ -202,219 +183,222 @@ public class DataDistribution { private String onTransmit(String time, BaseInfo data) { String temp = data.toString(); String str = cutDown(temp); - if (data instanceof Trajectory) { - listTrajectory.add(0, new DataShow(listTrajectorySize++, time + str)); - if (listTrajectory.size() > LIST_SIZE) { - listTrajectory.remove(listTrajectory.size() - 1); + if (data.header == null) { + if (data instanceof ErrorData) { + listErrorData.add(0, new DataShow(listErrorDataSize++, time + str)); + if (listErrorData.size() > 100) { + listErrorData.remove(listErrorData.size() - 1); + } + if (listener != null && Constants.TITLE.RECEIVE_ERROR.equals(listener.first)) { + listener.second.onRefresh(); + } + } else if (data instanceof OriginalPointCloudData) { + listOriginalPointCloud.add(0, new DataShow(listOriginalPointCloudSize++, time + str)); + if (listOriginalPointCloud.size() > LIST_SIZE) { + listOriginalPointCloud.remove(listOriginalPointCloud.size() - 1); + } + if (listener != null && Constants.TITLE.RECEIVE_POINT_CLOUD_ORIGINAL.equals(listener.first)) { + listener.second.onRefresh(); + } } - if (listener != null && Constants.TITLE.RECEIVE_TRAJECTORY.equals(listener.first)) { - listener.second.onRefresh(); - } - } else if (data instanceof TrackedObjects) { - listTrackedObjects.add(0, new DataShow(listTrackedObjectsSize++, time + str)); - if (listTrackedObjects.size() > LIST_SIZE) { - listTrackedObjects.remove(listTrackedObjects.size() - 1); - } - if (listener != null && Constants.TITLE.RECEIVE_TRACKED_OBJECTS.equals(listener.first)) { - listener.second.onRefresh(); - } - } else if (data instanceof OriginalPointCloudData) { - listOriginalPointCloud.add(0, new DataShow(listOriginalPointCloudSize++, time + str)); - if (listOriginalPointCloud.size() > LIST_SIZE) { - listOriginalPointCloud.remove(listOriginalPointCloud.size() - 1); - } - if (listener != null && Constants.TITLE.RECEIVE_POINT_CLOUD_ORIGINAL.equals(listener.first)) { - listener.second.onRefresh(); - } - } else if (data instanceof PlanningObjects) { - listPlanningObjects.add(0, new DataShow(listPlanningObjectsSize++, time + str)); - if (listPlanningObjects.size() > LIST_SIZE) { - listPlanningObjects.remove(listPlanningObjects.size() - 1); - } - if (listener != null && Constants.TITLE.RECEIVE_PLANNING_OBJECTS.equals(listener.first)) { - listener.second.onRefresh(); - } - } else if (data instanceof PlanningDecisionState) { - listPlanningDecisionState.add(0, new DataShow(listPlanningDecisionStateSize++, time + str)); - if (listPlanningDecisionState.size() > LIST_SIZE) { - listPlanningDecisionState.remove(listPlanningDecisionState.size() - 1); - } - if (listener != null && Constants.TITLE.RECEIVE_PLANNING_DECISION_STATE.equals(listener.first)) { - listener.second.onRefresh(); - } - } else if (data instanceof ObuSpat) { - listObuSpat.add(0, new DataShow(listObuSpatSize++, time + str)); - if (listObuSpat.size() > LIST_SIZE) { - listObuSpat.remove(listObuSpat.size() - 1); - } - if (listener != null && Constants.TITLE.RECEIVE_OBU_SPAT.equals(listener.first)) { - listener.second.onRefresh(); - } - } else if (data instanceof ObuRsi) { - listObuRsi.add(0, new DataShow(listObuRsiSize++, time + str)); - if (listObuRsi.size() > LIST_SIZE) { - listObuRsi.remove(listObuRsi.size() - 1); - } - if (listener != null && Constants.TITLE.RECEIVE_OBU_RSI.equals(listener.first)) { - listener.second.onRefresh(); - } - } else if (data instanceof ObuRsm) { - listObuRsm.add(0, new DataShow(listObuRsmSize++, time + str)); - if (listObuRsm.size() > LIST_SIZE) { - listObuRsm.remove(listObuRsm.size() - 1); - } - if (listener != null && Constants.TITLE.RECEIVE_OBU_RSM.equals(listener.first)) { - listener.second.onRefresh(); - } - } else if (data instanceof ObuMap) { - listObuMap.add(0, new DataShow(listObuMapSize++, time + str)); - if (listObuMap.size() > LIST_SIZE) { - listObuMap.remove(listObuMap.size() - 1); - } - if (listener != null && Constants.TITLE.RECEIVE_OBU_MAP.equals(listener.first)) { - listener.second.onRefresh(); - } - } else if (data instanceof GnssInfo) { - listGnssInfo.add(0, new DataShow(listGnssInfoSize++, time + str)); - if (listGnssInfo.size() > LIST_SIZE) { - listGnssInfo.remove(listGnssInfo.size() - 1); - } - if (listener != null && Constants.TITLE.RECEIVE_GNSS_INFO.equals(listener.first)) { - listener.second.onRefresh(); - } - } else if (data instanceof VehicleState) { - listVehicleState.add(0, new DataShow(listVehicleStateSize++, time + str)); - if (listVehicleState.size() > LIST_SIZE) { - listVehicleState.remove(listVehicleState.size() - 1); - } - if (listener != null && Constants.TITLE.RECEIVE_VEHICLE_STATE.equals(listener.first)) { - listener.second.onRefresh(); - } - } else if (data instanceof ChassisStates) { - listChassisStates.add(0, new DataShow(listChassisStatesSize++, time + str)); - if (listChassisStates.size() > LIST_SIZE) { - listChassisStates.remove(listChassisStates.size() - 1); - } - if (listener != null && Constants.TITLE.RECEIVE_CHASSIS_STATES.equals(listener.first)) { - listener.second.onRefresh(); - } - } else if (data instanceof AutopilotState) { - listAutopilotState.add(0, new DataShow(listAutopilotStateSize++, time + str)); - if (listAutopilotState.size() > LIST_SIZE) { - listAutopilotState.remove(listAutopilotState.size() - 1); - } - if (listener != null && Constants.TITLE.RECEIVE_AUTOPILOT_STATE.equals(listener.first)) { - listener.second.onRefresh(); - } - } else if (data instanceof MogoReportMessage) { - listMogoReportMessage.add(0, new DataShow(listMogoReportMessageSize++, time + str)); - if (listMogoReportMessage.size() > LIST_SIZE) { - listMogoReportMessage.remove(listMogoReportMessage.size() - 1); - } - if (listener != null && Constants.TITLE.RECEIVE_REPORT_MESSAGE.equals(listener.first)) { - listener.second.onRefresh(); - } - } else if (data instanceof PerceptionTrafficLight) { - listPerceptionTrafficLight.add(0, new DataShow(listPerceptionTrafficLightSize++, time + str)); - if (listPerceptionTrafficLight.size() > LIST_SIZE) { - listPerceptionTrafficLight.remove(listPerceptionTrafficLight.size() - 1); - } - if (listener != null && Constants.TITLE.RECEIVE_PERCEPTION_TRAFFIC_LIGHT.equals(listener.first)) { - listener.second.onPerceptionTrafficLight((PerceptionTrafficLight) data); - } - } else if (data instanceof PredictionObstacleTrajectory) { - listPredictionObstacleTrajectory.add(0, new DataShow(listPredictionObstacleTrajectorySize++, time + str)); - if (listPredictionObstacleTrajectory.size() > LIST_SIZE) { - listPredictionObstacleTrajectory.remove(listPredictionObstacleTrajectory.size() - 1); - } - if (listener != null && Constants.TITLE.RECEIVE_PREDICTION_OBSTACLE_TRAJECTORY.equals(listener.first)) { - listener.second.onRefresh(); - } - } else if (data instanceof BasicInfoReq) { - - } else if (data instanceof CarConfigResp) { - if (listener != null && Constants.TITLE.TITLE_CAR_CONFIG_RESP.equals(listener.first)) { - listener.second.onRefresh(); - } - } else if (data instanceof RecordPanel) { - listRecordPanel.add(0, new DataShow(listRecordPanelSize++, time + str)); - if (listRecordPanel.size() > LIST_SIZE) { - listRecordPanel.remove(listRecordPanel.size() - 1); - } - if (listener != null && Constants.TITLE.RECEIVE_RECORD_RESULT.equals(listener.first)) { - listener.second.onRefresh(); - } - } else if (data instanceof BagManagerCmd) { - listBagManagerCmd.add(0, new DataShow(listBagManagerCmdSize++, time + str)); - if (listBagManagerCmd.size() > LIST_SIZE) { - listBagManagerCmd.remove(listBagManagerCmd.size() - 1); - } - if (listener != null && Constants.TITLE.RECEIVE_BAG_MANAGER_CMD.equals(listener.first)) { - listener.second.onRefresh(); - } - } else if (data instanceof GlobalPathResp) { - listGlobalPathResp.add(0, new DataShow(listGlobalPathRespSize++, time + str)); - if (listGlobalPathResp.size() > LIST_SIZE) { - listGlobalPathResp.remove(listGlobalPathResp.size() - 1); - } - if (listener != null && Constants.TITLE.RECEIVE_GLOBAL_PATH_RESP.equals(listener.first)) { - listener.second.onRefresh(); - } - } else if (data instanceof Warn) { - listWarn.add(0, new DataShow(listWarnSize++, time + str)); - if (listWarn.size() > LIST_SIZE) { - listWarn.remove(listWarn.size() - 1); - } - if (listener != null && Constants.TITLE.RECEIVE_WARN.equals(listener.first)) { - listener.second.onRefresh(); - } - } else if (data instanceof ArrivalNotification) { - listArrivalNotification.add(0, new DataShow(listArrivalNotificationSize++, time + str)); - if (listArrivalNotification.size() > LIST_SIZE) { - listArrivalNotification.remove(listArrivalNotification.size() - 1); - } - if (listener != null && Constants.TITLE.RECEIVE_ARRIVAL_NOTIFICATION.equals(listener.first)) { - listener.second.onRefresh(); - } - } else if (data instanceof StatusInfo) { - listStatusInfo.add(0, new DataShow(listStatusInfoSize++, time + str)); - if (listStatusInfo.size() > LIST_SIZE) { - listStatusInfo.remove(listStatusInfo.size() - 1); - } - if (listener != null && Constants.TITLE.RECEIVE_STATUS_QUERY_RESP.equals(listener.first)) { - listener.second.onRefresh(); - } - } else if (data instanceof RecordDataConfig) { - listRecordDataConfig.add(0, new DataShow(listRecordDataConfigSize++, time + str)); - if (listRecordDataConfig.size() > LIST_SIZE) { - listRecordDataConfig.remove(listRecordDataConfig.size() - 1); - } - if (listener != null && Constants.TITLE.RECEIVE_RECORD_DATA_CONFIG_RESP.equals(listener.first)) { - listener.second.onRefresh(); - } - } else if (data instanceof RoboSweeperTaskIndex) { - listRoboSweeperTaskIndex.add(0, new DataShow(listRoboSweeperTaskIndexSize++, time + str)); - if (listRoboSweeperTaskIndex.size() > LIST_SIZE) { - listRoboSweeperTaskIndex.remove(listRoboSweeperTaskIndex.size() - 1); - } - if (listener != null && Constants.TITLE.RECEIVE_SWEEPER_TASK_INDEX_DATA.equals(listener.first)) { - listener.second.onRefresh(); - } - } else if (data instanceof FSMFunctionStates) { - listFSMFunctionStates.add(0, new DataShow(listFSMFunctionStatesSize++, time + str)); - if (listFSMFunctionStates.size() > LIST_SIZE) { - listFSMFunctionStates.remove(listFSMFunctionStates.size() - 1); - } - if (listener != null && Constants.TITLE.RECEIVE_FUNCTION_STATES.equals(listener.first)) { - listener.second.onRefresh(); - } - } else if (data instanceof ErrorData) { - listErrorData.add(0, new DataShow(listErrorDataSize++, time + str)); - if (listErrorData.size() > 100) { - listErrorData.remove(listErrorData.size() - 1); - } - if (listener != null && Constants.TITLE.RECEIVE_ERROR.equals(listener.first)) { - listener.second.onRefresh(); + } else { + MessagePad.MessageType messageType = data.header.getMsgType(); + if (messageType == MessagePad.MessageType.MsgTypeTrajectory) { + listTrajectory.add(0, new DataShow(listTrajectorySize++, time + str)); + if (listTrajectory.size() > LIST_SIZE) { + listTrajectory.remove(listTrajectory.size() - 1); + } + if (listener != null && Constants.TITLE.RECEIVE_TRAJECTORY.equals(listener.first)) { + listener.second.onRefresh(); + } + } else if (messageType == MessagePad.MessageType.MsgTypeTrackedObjects) { + listTrackedObjects.add(0, new DataShow(listTrackedObjectsSize++, time + str)); + if (listTrackedObjects.size() > LIST_SIZE) { + listTrackedObjects.remove(listTrackedObjects.size() - 1); + } + if (listener != null && Constants.TITLE.RECEIVE_TRACKED_OBJECTS.equals(listener.first)) { + listener.second.onRefresh(); + } + } else if (messageType == MessagePad.MessageType.MsgTypePlanningObjects) { + listPlanningObjects.add(0, new DataShow(listPlanningObjectsSize++, time + str)); + if (listPlanningObjects.size() > LIST_SIZE) { + listPlanningObjects.remove(listPlanningObjects.size() - 1); + } + if (listener != null && Constants.TITLE.RECEIVE_PLANNING_OBJECTS.equals(listener.first)) { + listener.second.onRefresh(); + } + } else if (messageType == MessagePad.MessageType.MsgTypePlanningDecisionState) { + listPlanningDecisionState.add(0, new DataShow(listPlanningDecisionStateSize++, time + str)); + if (listPlanningDecisionState.size() > LIST_SIZE) { + listPlanningDecisionState.remove(listPlanningDecisionState.size() - 1); + } + if (listener != null && Constants.TITLE.RECEIVE_PLANNING_DECISION_STATE.equals(listener.first)) { + listener.second.onRefresh(); + } + } else if (messageType == MessagePad.MessageType.MsgTypeGnssInfo) { + listGnssInfo.add(0, new DataShow(listGnssInfoSize++, time + str)); + if (listGnssInfo.size() > LIST_SIZE) { + listGnssInfo.remove(listGnssInfo.size() - 1); + } + if (listener != null && Constants.TITLE.RECEIVE_GNSS_INFO.equals(listener.first)) { + listener.second.onRefresh(); + } + } else if (messageType == MessagePad.MessageType.MsgTypeVehicleState) { + listVehicleState.add(0, new DataShow(listVehicleStateSize++, time + str)); + if (listVehicleState.size() > LIST_SIZE) { + listVehicleState.remove(listVehicleState.size() - 1); + } + if (listener != null && Constants.TITLE.RECEIVE_VEHICLE_STATE.equals(listener.first)) { + listener.second.onRefresh(); + } + } else if (messageType == MessagePad.MessageType.MsgTypeChassisStates) { + listChassisStates.add(0, new DataShow(listChassisStatesSize++, time + str)); + if (listChassisStates.size() > LIST_SIZE) { + listChassisStates.remove(listChassisStates.size() - 1); + } + if (listener != null && Constants.TITLE.RECEIVE_CHASSIS_STATES.equals(listener.first)) { + listener.second.onRefresh(); + } + } else if (messageType == MessagePad.MessageType.MsgTypeAutopilotState) { + listAutopilotState.add(0, new DataShow(listAutopilotStateSize++, time + str)); + if (listAutopilotState.size() > LIST_SIZE) { + listAutopilotState.remove(listAutopilotState.size() - 1); + } + if (listener != null && Constants.TITLE.RECEIVE_AUTOPILOT_STATE.equals(listener.first)) { + listener.second.onRefresh(); + } + } else if (messageType == MessagePad.MessageType.MsgTypeReportMessage) { + listMogoReportMessage.add(0, new DataShow(listMogoReportMessageSize++, time + str)); + if (listMogoReportMessage.size() > LIST_SIZE) { + listMogoReportMessage.remove(listMogoReportMessage.size() - 1); + } + if (listener != null && Constants.TITLE.RECEIVE_REPORT_MESSAGE.equals(listener.first)) { + listener.second.onRefresh(); + } + } else if (messageType == MessagePad.MessageType.MsgTypePredictionObstacleTrajectory) { + listPredictionObstacleTrajectory.add(0, new DataShow(listPredictionObstacleTrajectorySize++, time + str)); + if (listPredictionObstacleTrajectory.size() > LIST_SIZE) { + listPredictionObstacleTrajectory.remove(listPredictionObstacleTrajectory.size() - 1); + } + if (listener != null && Constants.TITLE.RECEIVE_PREDICTION_OBSTACLE_TRAJECTORY.equals(listener.first)) { + listener.second.onRefresh(); + } + } else if (messageType == MessagePad.MessageType.MsgTypeCarConfigResp) { + if (listener != null && Constants.TITLE.TITLE_CAR_CONFIG_RESP.equals(listener.first)) { + listener.second.onRefresh(); + } + } else if (messageType == MessagePad.MessageType.MsgTypeRecordResult) { + listRecordPanel.add(0, new DataShow(listRecordPanelSize++, time + str)); + if (listRecordPanel.size() > LIST_SIZE) { + listRecordPanel.remove(listRecordPanel.size() - 1); + } + if (listener != null && Constants.TITLE.RECEIVE_RECORD_RESULT.equals(listener.first)) { + listener.second.onRefresh(); + } + } else if (messageType == MessagePad.MessageType.MsgTypeBagManagerCmd) { + listBagManagerCmd.add(0, new DataShow(listBagManagerCmdSize++, time + str)); + if (listBagManagerCmd.size() > LIST_SIZE) { + listBagManagerCmd.remove(listBagManagerCmd.size() - 1); + } + if (listener != null && Constants.TITLE.RECEIVE_BAG_MANAGER_CMD.equals(listener.first)) { + listener.second.onRefresh(); + } + } else if (messageType == MessagePad.MessageType.MsgTypeGlobalPathResp) { + listGlobalPathResp.add(0, new DataShow(listGlobalPathRespSize++, time + str)); + if (listGlobalPathResp.size() > LIST_SIZE) { + listGlobalPathResp.remove(listGlobalPathResp.size() - 1); + } + if (listener != null && Constants.TITLE.RECEIVE_GLOBAL_PATH_RESP.equals(listener.first)) { + listener.second.onRefresh(); + } + } else if (messageType == MessagePad.MessageType.MsgTypeWarn) { + listWarn.add(0, new DataShow(listWarnSize++, time + str)); + if (listWarn.size() > LIST_SIZE) { + listWarn.remove(listWarn.size() - 1); + } + if (listener != null && Constants.TITLE.RECEIVE_WARN.equals(listener.first)) { + listener.second.onRefresh(); + } + } else if (messageType == MessagePad.MessageType.MsgTypeArrivalNotification) { + listArrivalNotification.add(0, new DataShow(listArrivalNotificationSize++, time + str)); + if (listArrivalNotification.size() > LIST_SIZE) { + listArrivalNotification.remove(listArrivalNotification.size() - 1); + } + if (listener != null && Constants.TITLE.RECEIVE_ARRIVAL_NOTIFICATION.equals(listener.first)) { + listener.second.onRefresh(); + } + } else if (messageType == MessagePad.MessageType.MsgTypeStatusQueryResp) { + listStatusInfo.add(0, new DataShow(listStatusInfoSize++, time + str)); + if (listStatusInfo.size() > LIST_SIZE) { + listStatusInfo.remove(listStatusInfo.size() - 1); + } + if (listener != null && Constants.TITLE.RECEIVE_STATUS_QUERY_RESP.equals(listener.first)) { + listener.second.onRefresh(); + } + } else if (messageType == MessagePad.MessageType.MsgTypeRecordDataConfigResp) { + listRecordDataConfig.add(0, new DataShow(listRecordDataConfigSize++, time + str)); + if (listRecordDataConfig.size() > LIST_SIZE) { + listRecordDataConfig.remove(listRecordDataConfig.size() - 1); + } + if (listener != null && Constants.TITLE.RECEIVE_RECORD_DATA_CONFIG_RESP.equals(listener.first)) { + listener.second.onRefresh(); + } + } else if (messageType == MessagePad.MessageType.MsgTypeSweeperTaskIndexData) { + listRoboSweeperTaskIndex.add(0, new DataShow(listRoboSweeperTaskIndexSize++, time + str)); + if (listRoboSweeperTaskIndex.size() > LIST_SIZE) { + listRoboSweeperTaskIndex.remove(listRoboSweeperTaskIndex.size() - 1); + } + if (listener != null && Constants.TITLE.RECEIVE_SWEEPER_TASK_INDEX_DATA.equals(listener.first)) { + listener.second.onRefresh(); + } + } else if (messageType == MessagePad.MessageType.MsgTypeFunctionStates) { + listFSMFunctionStates.add(0, new DataShow(listFSMFunctionStatesSize++, time + str)); + if (listFSMFunctionStates.size() > LIST_SIZE) { + listFSMFunctionStates.remove(listFSMFunctionStates.size() - 1); + } + if (listener != null && Constants.TITLE.RECEIVE_FUNCTION_STATES.equals(listener.first)) { + listener.second.onRefresh(); + } + } else if (data instanceof PerceptionTrafficLight) { + listPerceptionTrafficLight.add(0, new DataShow(listPerceptionTrafficLightSize++, time + str)); + if (listPerceptionTrafficLight.size() > LIST_SIZE) { + listPerceptionTrafficLight.remove(listPerceptionTrafficLight.size() - 1); + } + if (listener != null && Constants.TITLE.RECEIVE_PERCEPTION_TRAFFIC_LIGHT.equals(listener.first)) { + listener.second.onPerceptionTrafficLight((PerceptionTrafficLight) data); + } + } else if (data instanceof ObuSpat) { + listObuSpat.add(0, new DataShow(listObuSpatSize++, time + str)); + if (listObuSpat.size() > LIST_SIZE) { + listObuSpat.remove(listObuSpat.size() - 1); + } + if (listener != null && Constants.TITLE.RECEIVE_OBU_SPAT.equals(listener.first)) { + listener.second.onRefresh(); + } + } else if (data instanceof ObuRsi) { + listObuRsi.add(0, new DataShow(listObuRsiSize++, time + str)); + if (listObuRsi.size() > LIST_SIZE) { + listObuRsi.remove(listObuRsi.size() - 1); + } + if (listener != null && Constants.TITLE.RECEIVE_OBU_RSI.equals(listener.first)) { + listener.second.onRefresh(); + } + } else if (data instanceof ObuRsm) { + listObuRsm.add(0, new DataShow(listObuRsmSize++, time + str)); + if (listObuRsm.size() > LIST_SIZE) { + listObuRsm.remove(listObuRsm.size() - 1); + } + if (listener != null && Constants.TITLE.RECEIVE_OBU_RSM.equals(listener.first)) { + listener.second.onRefresh(); + } + } else if (data instanceof ObuMap) { + listObuMap.add(0, new DataShow(listObuMapSize++, time + str)); + if (listObuMap.size() > LIST_SIZE) { + listObuMap.remove(listObuMap.size() - 1); + } + if (listener != null && Constants.TITLE.RECEIVE_OBU_MAP.equals(listener.first)) { + listener.second.onRefresh(); + } } } return temp; diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/ArrivalNotification.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/ArrivalNotification.java deleted file mode 100644 index 9c5904dc23..0000000000 --- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/ArrivalNotification.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.zhidao.adas.client.bean; - -import com.google.protobuf.TextFormat; - -import java.text.SimpleDateFormat; - -import mogo.telematics.pad.MessagePad; - -public class ArrivalNotification extends BaseInfo { - public final MessagePad.ArrivalNotification bean; - - public ArrivalNotification(MessagePad.Header header, MessagePad.ArrivalNotification bean, SimpleDateFormat sdf) { - super("接收", bean.getSerializedSize(), header, sdf); - this.bean = bean; - } - - - @Override - public String toString() { - return super.toString() + TextFormat.printer().escapingNonAscii(false).printToString(bean); - } - -} diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/AutopilotState.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/AutopilotState.java deleted file mode 100644 index e3a2c31b98..0000000000 --- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/AutopilotState.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.zhidao.adas.client.bean; - -import com.google.protobuf.TextFormat; - -import java.text.SimpleDateFormat; - -import mogo.telematics.pad.MessagePad; - -public class AutopilotState extends BaseInfo { - public final MessagePad.AutopilotState bean; - - public AutopilotState(MessagePad.Header header, MessagePad.AutopilotState bean, SimpleDateFormat sdf) { - super("接收", bean.getSerializedSize(), header, sdf); - this.bean = bean; - } - - - - @Override - public String toString() { - return super.toString() + TextFormat.printer().escapingNonAscii(false).printToString(bean); - } - -} diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/BagManagerCmd.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/BagManagerCmd.java deleted file mode 100644 index db1dd0f4ab..0000000000 --- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/BagManagerCmd.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.zhidao.adas.client.bean; - -import com.google.protobuf.TextFormat; - -import java.text.SimpleDateFormat; - -import bag_manager.BagManagerOuterClass; -import mogo.telematics.pad.MessagePad; - -public class BagManagerCmd extends BaseInfo { - public final BagManagerOuterClass.BagManager bean; - - public BagManagerCmd(MessagePad.Header header, BagManagerOuterClass.BagManager bean, SimpleDateFormat sdf) { - super("接收", bean.getSerializedSize(), header, sdf); - this.bean = bean; - } - - - @Override - public String toString() { - return super.toString() + TextFormat.printer().escapingNonAscii(false).printToString(bean); - } - -} diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/BasicInfoReq.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/BasicInfoReq.java deleted file mode 100644 index bce516eee2..0000000000 --- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/BasicInfoReq.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.zhidao.adas.client.bean; - -import com.google.protobuf.TextFormat; - -import java.text.SimpleDateFormat; - -import mogo.telematics.pad.MessagePad; - -public class BasicInfoReq extends BaseInfo { - public final MessagePad.BasicInfoReq bean; - - public BasicInfoReq(MessagePad.Header header, MessagePad.BasicInfoReq bean, SimpleDateFormat sdf) { - super("接收", bean.getSerializedSize(), header, sdf); - this.bean = bean; - } - - - - @Override - public String toString() { - return super.toString() + TextFormat.printer().escapingNonAscii(false).printToString(bean); - } -} diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/CarConfigResp.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/CarConfigResp.java deleted file mode 100644 index c8b3b390f3..0000000000 --- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/CarConfigResp.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.zhidao.adas.client.bean; - -import com.google.protobuf.TextFormat; - -import java.text.SimpleDateFormat; - -import mogo.telematics.pad.MessagePad; - -public class CarConfigResp extends BaseInfo { - public final MessagePad.CarConfigResp bean; - - public CarConfigResp(MessagePad.Header header, MessagePad.CarConfigResp bean, SimpleDateFormat sdf) { - super("接收", bean.getSerializedSize(), header, sdf); - this.bean = bean; - } - - - - @Override - public String toString() { - return super.toString() + TextFormat.printer().escapingNonAscii(false).printToString(bean); - } -} diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/ChassisStates.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/ChassisStates.java deleted file mode 100644 index f18d4564a5..0000000000 --- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/ChassisStates.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.zhidao.adas.client.bean; - -import com.google.protobuf.TextFormat; - -import java.text.SimpleDateFormat; - -import chassis.ChassisStatesOuterClass; -import mogo.telematics.pad.MessagePad; - -public class ChassisStates extends BaseInfo { - public final ChassisStatesOuterClass.ChassisStates bean; - - public ChassisStates(MessagePad.Header header, ChassisStatesOuterClass.ChassisStates bean, SimpleDateFormat sdf) { - super("接收", bean.getSerializedSize(), header, sdf); - this.bean = bean; - } - - - @Override - public String toString() { - return super.toString() + TextFormat.printer().escapingNonAscii(false).printToString(bean); - } - -} diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/FSMFunctionStates.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/FSMFunctionStates.java deleted file mode 100644 index 1d672127ae..0000000000 --- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/FSMFunctionStates.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.zhidao.adas.client.bean; - -import com.google.protobuf.TextFormat; - -import java.text.SimpleDateFormat; - -import function_state_management.FunctionStates; -import mogo.telematics.pad.MessagePad; - -public class FSMFunctionStates extends BaseInfo { - public final FunctionStates.FSMFunctionStates bean; - - public FSMFunctionStates(MessagePad.Header header, FunctionStates.FSMFunctionStates bean, SimpleDateFormat sdf) { - super("接收", bean.getSerializedSize(), header, sdf); - this.bean = bean; - } - - - @Override - public String toString() { - return super.toString() + TextFormat.printer().escapingNonAscii(false).printToString(bean); - } - -} diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/GlobalPathResp.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/GlobalPathResp.java deleted file mode 100644 index bd5be112a6..0000000000 --- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/GlobalPathResp.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.zhidao.adas.client.bean; - -import com.google.protobuf.TextFormat; - -import java.text.SimpleDateFormat; - -import mogo.telematics.pad.MessagePad; - -public class GlobalPathResp extends BaseInfo { - public final MessagePad.GlobalPathResp bean; - - public GlobalPathResp(MessagePad.Header header, MessagePad.GlobalPathResp bean, SimpleDateFormat sdf) { - super("接收", bean.getSerializedSize(), header, sdf); - this.bean = bean; - } - - - @Override - public String toString() { - return super.toString() + TextFormat.printer().escapingNonAscii(false).printToString(bean); - } - -} diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/GnssInfo.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/GnssInfo.java deleted file mode 100644 index 1ebd36a34f..0000000000 --- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/GnssInfo.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.zhidao.adas.client.bean; - -import com.google.protobuf.TextFormat; - -import java.text.SimpleDateFormat; - -import mogo.telematics.pad.MessagePad; - -public class GnssInfo extends BaseInfo { - public final MessagePad.GnssInfo bean; - - public GnssInfo(MessagePad.Header header, MessagePad.GnssInfo bean, SimpleDateFormat sdf) { - super("接收", bean.getSerializedSize(), header, sdf); - this.bean = bean; - } - - - - @Override - public String toString() { - return super.toString() + TextFormat.printer().escapingNonAscii(false).printToString(bean); - } - -} diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/MogoReportMessage.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/MogoReportMessage.java deleted file mode 100644 index ec25240c06..0000000000 --- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/MogoReportMessage.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.zhidao.adas.client.bean; - -import com.google.protobuf.TextFormat; - -import java.text.SimpleDateFormat; - -import mogo.telematics.pad.MessagePad; -import mogo_msg.MogoReportMsg; - -public class MogoReportMessage extends BaseInfo { - public final MogoReportMsg.MogoReportMessage bean; - - public MogoReportMessage(MessagePad.Header header, MogoReportMsg.MogoReportMessage bean, SimpleDateFormat sdf) { - super("接收", bean.getSerializedSize(), header, sdf); - this.bean = bean; - } - - - - @Override - public String toString() { - return super.toString() + TextFormat.printer().escapingNonAscii(false).printToString(bean); - } - -} diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/ObuMap.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/ObuMap.java index 88c93caf6e..51a2c8c4ed 100644 --- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/ObuMap.java +++ b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/ObuMap.java @@ -2,6 +2,7 @@ package com.zhidao.adas.client.bean; import com.google.protobuf.TextFormat; import com.mogo.support.obu.ObuScene; +import com.zhidao.support.adas.high.common.ByteUtil; import java.text.SimpleDateFormat; @@ -18,7 +19,7 @@ public class ObuMap extends BaseInfo { @Override public String toString() { - return super.toString() + TextFormat.printer().escapingNonAscii(false).printToString(bean); + return super.toString() + "Payload原始数据:" + ByteUtil.byteArrToHex(bean.toByteArray()) + '\n' + TextFormat.printer().escapingNonAscii(false).printToString(bean); } } diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/ObuRsi.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/ObuRsi.java index d433245ebe..8cd054f956 100644 --- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/ObuRsi.java +++ b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/ObuRsi.java @@ -2,6 +2,7 @@ package com.zhidao.adas.client.bean; import com.google.protobuf.TextFormat; import com.mogo.support.obu.ObuScene; +import com.zhidao.support.adas.high.common.ByteUtil; import java.text.SimpleDateFormat; @@ -18,7 +19,7 @@ public class ObuRsi extends BaseInfo { @Override public String toString() { - return super.toString() + TextFormat.printer().escapingNonAscii(false).printToString(bean); + return super.toString() + "Payload原始数据:" + ByteUtil.byteArrToHex(bean.toByteArray()) + '\n' + TextFormat.printer().escapingNonAscii(false).printToString(bean); } } diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/ObuRsm.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/ObuRsm.java index 6045845ae4..badbf1745b 100644 --- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/ObuRsm.java +++ b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/ObuRsm.java @@ -2,6 +2,7 @@ package com.zhidao.adas.client.bean; import com.google.protobuf.TextFormat; import com.mogo.support.obu.ObuScene; +import com.zhidao.support.adas.high.common.ByteUtil; import java.text.SimpleDateFormat; @@ -18,7 +19,7 @@ public class ObuRsm extends BaseInfo { @Override public String toString() { - return super.toString() + TextFormat.printer().escapingNonAscii(false).printToString(bean); + return super.toString() + "Payload原始数据:" + ByteUtil.byteArrToHex(bean.toByteArray()) + '\n' + TextFormat.printer().escapingNonAscii(false).printToString(bean); } } diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/ObuSpat.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/ObuSpat.java index bb4707903e..3ba064f0e6 100644 --- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/ObuSpat.java +++ b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/ObuSpat.java @@ -2,6 +2,7 @@ package com.zhidao.adas.client.bean; import com.google.protobuf.TextFormat; import com.mogo.support.obu.ObuScene; +import com.zhidao.support.adas.high.common.ByteUtil; import java.text.SimpleDateFormat; @@ -18,7 +19,7 @@ public class ObuSpat extends BaseInfo { @Override public String toString() { - return super.toString() + TextFormat.printer().escapingNonAscii(false).printToString(bean); + return super.toString() + "Payload原始数据:" + ByteUtil.byteArrToHex(bean.toByteArray()) + '\n' + TextFormat.printer().escapingNonAscii(false).printToString(bean); } } diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/ObuWarningData.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/ObuWarningData.java deleted file mode 100644 index 7ea1bca9af..0000000000 --- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/ObuWarningData.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.zhidao.adas.client.bean; - -import com.google.protobuf.TextFormat; - -import java.text.SimpleDateFormat; - -import mogo.telematics.pad.MessagePad; -import mogo.v2x.ObuWarningEvent; - -public class ObuWarningData extends BaseInfo { - public final ObuWarningEvent.ObuWarningData bean; - - public ObuWarningData(MessagePad.Header header, ObuWarningEvent.ObuWarningData bean, SimpleDateFormat sdf) { - super("接收", bean.getSerializedSize(), header, sdf); - this.bean = bean; - } - - - @Override - public String toString() { - return super.toString() + TextFormat.printer().escapingNonAscii(false).printToString(bean); - } - -} diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/PerceptionTrafficLight.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/PerceptionTrafficLight.java index 585a18d0a6..246de432ce 100644 --- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/PerceptionTrafficLight.java +++ b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/PerceptionTrafficLight.java @@ -1,6 +1,7 @@ package com.zhidao.adas.client.bean; import com.google.protobuf.TextFormat; +import com.zhidao.support.adas.high.common.ByteUtil; import java.text.SimpleDateFormat; @@ -18,7 +19,7 @@ public class PerceptionTrafficLight extends BaseInfo { @Override public String toString() { - return super.toString() + TextFormat.printer().escapingNonAscii(false).printToString(bean); + return super.toString() + "Payload原始数据:" + ByteUtil.byteArrToHex(bean.toByteArray()) + '\n' + TextFormat.printer().escapingNonAscii(false).printToString(bean); } } diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/PlanningDecisionState.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/PlanningDecisionState.java deleted file mode 100644 index c443774c36..0000000000 --- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/PlanningDecisionState.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.zhidao.adas.client.bean; - -import com.google.protobuf.TextFormat; - -import java.text.SimpleDateFormat; - -import mogo.telematics.pad.MessagePad; - -public class PlanningDecisionState extends BaseInfo { - public final MessagePad.PlanningActionMsg bean; - - public PlanningDecisionState(MessagePad.Header header, MessagePad.PlanningActionMsg bean, SimpleDateFormat sdf) { - super("接收", bean.getSerializedSize(), header, sdf); - this.bean = bean; - } - - - @Override - public String toString() { - return super.toString() + TextFormat.printer().escapingNonAscii(false).printToString(bean); - } - -} diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/PlanningObjects.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/PlanningObjects.java deleted file mode 100644 index 68c1947de2..0000000000 --- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/PlanningObjects.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.zhidao.adas.client.bean; - -import com.google.protobuf.TextFormat; - -import java.text.SimpleDateFormat; - -import mogo.telematics.pad.MessagePad; - -public class PlanningObjects extends BaseInfo { - public final MessagePad.PlanningObjects bean; - - public PlanningObjects(MessagePad.Header header, MessagePad.PlanningObjects bean, SimpleDateFormat sdf) { - super("接收", bean.getSerializedSize(), header, sdf); - this.bean = bean; - } - - - @Override - public String toString() { - return super.toString() + TextFormat.printer().escapingNonAscii(false).printToString(bean); - } - -} diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/PredictionObstacleTrajectory.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/PredictionObstacleTrajectory.java deleted file mode 100644 index b6b070e110..0000000000 --- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/PredictionObstacleTrajectory.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.zhidao.adas.client.bean; - -import com.google.protobuf.TextFormat; - -import java.text.SimpleDateFormat; - -import mogo.telematics.pad.MessagePad; -import prediction.Prediction; - -public class PredictionObstacleTrajectory extends BaseInfo { - public final Prediction.mPredictionObjects bean; - - public PredictionObstacleTrajectory(MessagePad.Header header, Prediction.mPredictionObjects bean, SimpleDateFormat sdf) { - super("接收", bean.getSerializedSize(), header, sdf); - this.bean = bean; - } - - - @Override - public String toString() { - return super.toString() + TextFormat.printer().escapingNonAscii(false).printToString(bean); - } - -} diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/ReceiveData.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/ReceiveData.java new file mode 100644 index 0000000000..0d8be2857d --- /dev/null +++ b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/ReceiveData.java @@ -0,0 +1,25 @@ +package com.zhidao.adas.client.bean; + +import com.google.protobuf.GeneratedMessageV3; +import com.google.protobuf.TextFormat; +import com.zhidao.support.adas.high.common.ByteUtil; + +import java.text.SimpleDateFormat; + +import mogo.telematics.pad.MessagePad; + +public class ReceiveData extends BaseInfo { + public final GeneratedMessageV3 bean; + + public ReceiveData(MessagePad.Header header, GeneratedMessageV3 bean, SimpleDateFormat sdf) { + super("接收", bean.getSerializedSize(), header, sdf); + this.bean = bean; + } + + + @Override + public String toString() { + return super.toString() + "Payload原始数据:" + ByteUtil.byteArrToHex(bean.toByteArray()) + '\n' + TextFormat.printer().escapingNonAscii(false).printToString(bean); + } + +} diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/RecordDataConfig.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/RecordDataConfig.java deleted file mode 100644 index 1dd5785507..0000000000 --- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/RecordDataConfig.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.zhidao.adas.client.bean; - -import com.google.protobuf.TextFormat; - -import java.text.SimpleDateFormat; - -import mogo.telematics.pad.MessagePad; - -public class RecordDataConfig extends BaseInfo { - public final MessagePad.RecordDataConfig bean; - - public RecordDataConfig(MessagePad.Header header, MessagePad.RecordDataConfig bean, SimpleDateFormat sdf) { - super("接收", bean.getSerializedSize(), header, sdf); - this.bean = bean; - } - - - @Override - public String toString() { - return super.toString() + TextFormat.printer().escapingNonAscii(false).printToString(bean); - } -} diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/RecordPanel.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/RecordPanel.java deleted file mode 100644 index a5d8cd7964..0000000000 --- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/RecordPanel.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.zhidao.adas.client.bean; - -import com.google.protobuf.TextFormat; - -import java.text.SimpleDateFormat; - -import mogo.telematics.pad.MessagePad; -import record_cache.RecordPanelOuterClass; - -public class RecordPanel extends BaseInfo { - public final RecordPanelOuterClass.RecordPanel bean; - - public RecordPanel(MessagePad.Header header, RecordPanelOuterClass.RecordPanel bean, SimpleDateFormat sdf) { - super("接收", bean.getSerializedSize(), header, sdf); - this.bean = bean; - } - - - - @Override - public String toString() { - return super.toString() + TextFormat.printer().escapingNonAscii(false).printToString(bean); - } -} diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/RoboSweeperTaskIndex.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/RoboSweeperTaskIndex.java deleted file mode 100644 index 86eaedbb6c..0000000000 --- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/RoboSweeperTaskIndex.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.zhidao.adas.client.bean; - -import com.google.protobuf.TextFormat; - -import java.text.SimpleDateFormat; - -import mogo.telematics.pad.MessagePad; -import planning.RoboSweeperTaskIndexOuterClass; - -public class RoboSweeperTaskIndex extends BaseInfo { - public final RoboSweeperTaskIndexOuterClass.RoboSweeperTaskIndex bean; - - public RoboSweeperTaskIndex(MessagePad.Header header, RoboSweeperTaskIndexOuterClass.RoboSweeperTaskIndex bean, SimpleDateFormat sdf) { - super("接收", bean.getSerializedSize(), header, sdf); - this.bean = bean; - } - - - @Override - public String toString() { - return super.toString() + TextFormat.printer().escapingNonAscii(false).printToString(bean); - } - -} diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/StatusInfo.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/StatusInfo.java deleted file mode 100644 index 72a96e6b7a..0000000000 --- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/StatusInfo.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.zhidao.adas.client.bean; - -import com.google.protobuf.TextFormat; - -import java.text.SimpleDateFormat; - -import mogo.telematics.pad.MessagePad; -import system_master.SystemStatusInfo; - -public class StatusInfo extends BaseInfo { - public final SystemStatusInfo.StatusInfo bean; - - public StatusInfo(MessagePad.Header header, SystemStatusInfo.StatusInfo bean, SimpleDateFormat sdf) { - super("接收", bean.getSerializedSize(), header, sdf); - this.bean = bean; - } - - - @Override - public String toString() { - return super.toString() + TextFormat.printer().escapingNonAscii(false).printToString(bean); - } - -} diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/TrackedObjects.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/TrackedObjects.java deleted file mode 100644 index 6f49037779..0000000000 --- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/TrackedObjects.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.zhidao.adas.client.bean; - -import com.google.protobuf.TextFormat; - -import java.text.SimpleDateFormat; - -import mogo.telematics.pad.MessagePad; - -public class TrackedObjects extends BaseInfo { - private MessagePad.TrackedObjects bean; - - public TrackedObjects(MessagePad.Header header, MessagePad.TrackedObjects bean, SimpleDateFormat sdf) { - super("接收", bean.getSerializedSize(), header, sdf); - this.bean = bean; - } - - @Override - public String toString() { - return super.toString() + TextFormat.printer().escapingNonAscii(false).printToString(bean); - } -} diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/Trajectory.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/Trajectory.java deleted file mode 100644 index 764d7fa44e..0000000000 --- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/Trajectory.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.zhidao.adas.client.bean; - -import com.google.protobuf.TextFormat; - -import java.text.SimpleDateFormat; - -import mogo.telematics.pad.MessagePad; - -public class Trajectory extends BaseInfo { - public final MessagePad.Trajectory bean; - - public Trajectory(MessagePad.Header header, MessagePad.Trajectory bean, SimpleDateFormat sdf) { - super("接收", bean.getSerializedSize(), header, sdf); - this.bean = bean; - } - @Override - public String toString() { - return super.toString() + TextFormat.printer().escapingNonAscii(false).printToString(bean); - } - -} diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/VehicleState.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/VehicleState.java deleted file mode 100644 index aabab1571e..0000000000 --- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/VehicleState.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.zhidao.adas.client.bean; - -import com.google.protobuf.TextFormat; - -import java.text.SimpleDateFormat; - -import chassis.VehicleStateOuterClass; -import mogo.telematics.pad.MessagePad; - -public class VehicleState extends BaseInfo { - public final VehicleStateOuterClass.VehicleState bean; - - public VehicleState(MessagePad.Header header, VehicleStateOuterClass.VehicleState bean, SimpleDateFormat sdf) { - super("接收", bean.getSerializedSize(), header, sdf); - this.bean = bean; - } - - @Override - public String toString() { - return super.toString() + TextFormat.printer().escapingNonAscii(false).printToString(bean); - } -} diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/Warn.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/Warn.java deleted file mode 100644 index 5bb43ebaaa..0000000000 --- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/Warn.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.zhidao.adas.client.bean; - -import com.google.protobuf.TextFormat; - -import java.text.SimpleDateFormat; - -import mogo.telematics.pad.MessagePad; - -public class Warn extends BaseInfo { - public final MessagePad.Warn bean; - - public Warn(MessagePad.Header header, MessagePad.Warn bean, SimpleDateFormat sdf) { - super("接收", bean.getSerializedSize(), header, sdf); - this.bean = bean; - } - - @Override - public String toString() { - return super.toString() + TextFormat.printer().escapingNonAscii(false).printToString(bean); - } -} diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/MainActivity.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/MainActivity.java index 08ae38336b..45b6b6c46d 100644 --- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/MainActivity.java +++ b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/MainActivity.java @@ -1,7 +1,5 @@ package com.zhidao.adas.client.ui; -import static com.mogo.telematic.MogoProtocolMsg.NORMAL_DATA; - import android.content.Context; import android.content.DialogInterface; import android.content.Intent; @@ -45,11 +43,7 @@ import androidx.recyclerview.widget.SimpleItemAnimator; import com.google.protobuf.TextFormat; import com.mogo.support.obu.ObuScene; -import com.mogo.telematic.MogoProtocolMsg; -import com.mogo.telematic.NSDNettyManager; -import com.mogo.telematic.client.listener.NettyClientListener; -import com.mogo.telematic.client.status.ConnectState; -import com.mogo.telematic.server.netty.NettyServerListener; +import com.zhidao.adas.client.App; import com.zhidao.adas.client.BuildConfig; import com.zhidao.adas.client.DataDistribution; import com.zhidao.adas.client.R; @@ -57,36 +51,16 @@ import com.zhidao.adas.client.adapter.InfoTitleAdapter; import com.zhidao.adas.client.base.BaseActivity; import com.zhidao.adas.client.base.BaseAdapter; import com.zhidao.adas.client.base.BaseFragment; -import com.zhidao.adas.client.bean.ArrivalNotification; -import com.zhidao.adas.client.bean.AutopilotState; -import com.zhidao.adas.client.bean.BagManagerCmd; -import com.zhidao.adas.client.bean.BasicInfoReq; -import com.zhidao.adas.client.bean.CarConfigResp; -import com.zhidao.adas.client.bean.ChassisStates; import com.zhidao.adas.client.bean.ErrorData; -import com.zhidao.adas.client.bean.FSMFunctionStates; -import com.zhidao.adas.client.bean.GlobalPathResp; -import com.zhidao.adas.client.bean.GnssInfo; import com.zhidao.adas.client.bean.IPCConnectState; -import com.zhidao.adas.client.bean.MogoReportMessage; import com.zhidao.adas.client.bean.ObuMap; import com.zhidao.adas.client.bean.ObuRsi; import com.zhidao.adas.client.bean.ObuRsm; import com.zhidao.adas.client.bean.ObuSpat; import com.zhidao.adas.client.bean.OriginalPointCloudData; import com.zhidao.adas.client.bean.PerceptionTrafficLight; -import com.zhidao.adas.client.bean.PlanningDecisionState; -import com.zhidao.adas.client.bean.PlanningObjects; -import com.zhidao.adas.client.bean.PredictionObstacleTrajectory; -import com.zhidao.adas.client.bean.RecordDataConfig; -import com.zhidao.adas.client.bean.RecordPanel; -import com.zhidao.adas.client.bean.RoboSweeperTaskIndex; +import com.zhidao.adas.client.bean.ReceiveData; import com.zhidao.adas.client.bean.SpecialVehicleBean; -import com.zhidao.adas.client.bean.StatusInfo; -import com.zhidao.adas.client.bean.TrackedObjects; -import com.zhidao.adas.client.bean.Trajectory; -import com.zhidao.adas.client.bean.VehicleState; -import com.zhidao.adas.client.bean.Warn; import com.zhidao.adas.client.log.ConnectStatusSave; import com.zhidao.adas.client.log.LogSave; import com.zhidao.adas.client.other.permission.BackgrounderPermission; @@ -99,14 +73,12 @@ import com.zhidao.support.adas.high.AdasManager; import com.zhidao.support.adas.high.AdasOptions; import com.zhidao.support.adas.high.OnAdasConnectStatusListener; import com.zhidao.support.adas.high.OnAdasListener; -import com.zhidao.support.adas.high.OnMultiDeviceListener; -import com.zhjt.mogo.adas.data.bean.AutopilotStatistics; import com.zhidao.support.adas.high.bean.VersionCompatibility; -import com.zhidao.support.adas.high.common.ByteUtil; import com.zhidao.support.adas.high.common.Constants.IPC_CONNECTION_STATUS; import com.zhidao.support.adas.high.common.CupidLogUtils; import com.zhidao.support.adas.high.common.ProtocolStatus; import com.zhidao.support.adas.high.common.ReceiveTimeoutManager; +import com.zhjt.mogo.adas.data.bean.AutopilotStatistics; import java.net.Inet4Address; import java.net.InetAddress; @@ -125,7 +97,6 @@ import bag_manager.BagManagerOuterClass; import chassis.ChassisStatesOuterClass; import chassis.VehicleStateOuterClass; import function_state_management.FunctionStates; -import io.netty.channel.Channel; import mogo.telematics.pad.MessagePad; import mogo_msg.MogoReportMsg; import perception.TrafficLightOuterClass; @@ -880,44 +851,46 @@ public class MainActivity extends BaseActivity implements OnAdasListener, OnAdas @Override public void onTrajectory(MessagePad.Header header, MessagePad.Trajectory trajectory) { - Trajectory base = new Trajectory(header, trajectory, sdf); + ReceiveData base = new ReceiveData(header, trajectory, sdf); DataDistribution.getInstance().addData(base); } @Override public void onTrackedObjects(MessagePad.Header header, MessagePad.TrackedObjects trackedObjects) { - TrackedObjects base = new TrackedObjects(header, trackedObjects, sdf); + ReceiveData base = new ReceiveData(header, trackedObjects, sdf); DataDistribution.getInstance().addData(base); } @Override public void onGnssInfo(MessagePad.Header header, MessagePad.GnssInfo gnssInfo) { - GnssInfo base = new GnssInfo(header, gnssInfo, sdf); + ReceiveData base = new ReceiveData(header, gnssInfo, sdf); DataDistribution.getInstance().addData(base); } @Override public void onVehicleState(MessagePad.Header header, VehicleStateOuterClass.VehicleState vehicleState) { - VehicleState base = new VehicleState(header, vehicleState, sdf); + App.INSTANCE.gear = vehicleState.getGear(); + ReceiveData base = new ReceiveData(header, vehicleState, sdf); DataDistribution.getInstance().addData(base); } @Override public void onChassisStates(MessagePad.Header header, ChassisStatesOuterClass.ChassisStates chassisStates) { - ChassisStates base = new ChassisStates(header, chassisStates, sdf); + App.INSTANCE.gear = chassisStates.getGearSystemStates().getGearPosition(); + ReceiveData base = new ReceiveData(header, chassisStates, sdf); DataDistribution.getInstance().addData(base); } @Override public void onAutopilotState(MessagePad.Header header, MessagePad.AutopilotState autopilotState) { - AutopilotState base = new AutopilotState(header, autopilotState, sdf); + ReceiveData base = new ReceiveData(header, autopilotState, sdf); DataDistribution.getInstance().addData(base); } @Override public void onReportMessage(MessagePad.Header header, MogoReportMsg.MogoReportMessage mogoReportMessage) { - MogoReportMessage base = new MogoReportMessage(header, mogoReportMessage, sdf); + ReceiveData base = new ReceiveData(header, mogoReportMessage, sdf); DataDistribution.getInstance().addData(base); } @@ -929,7 +902,7 @@ public class MainActivity extends BaseActivity implements OnAdasListener, OnAdas @Override public void onPredictionObstacleTrajectory(MessagePad.Header header, Prediction.mPredictionObjects predictionObjects) { - PredictionObstacleTrajectory base = new PredictionObstacleTrajectory(header, predictionObjects, sdf); + ReceiveData base = new ReceiveData(header, predictionObjects, sdf); DataDistribution.getInstance().addData(base); } @@ -968,32 +941,32 @@ public class MainActivity extends BaseActivity implements OnAdasListener, OnAdas @Override public void onPlanningObjects(MessagePad.Header header, MessagePad.PlanningObjects planningObjects) { - PlanningObjects base = new PlanningObjects(header, planningObjects, sdf); + ReceiveData base = new ReceiveData(header, planningObjects, sdf); DataDistribution.getInstance().addData(base); } @Override public void onBasicInfoReq(MessagePad.Header header, MessagePad.BasicInfoReq basicInfoReq) { - BasicInfoReq info = new BasicInfoReq(header, basicInfoReq, sdf); - DataDistribution.getInstance().addData(info); + ReceiveData base = new ReceiveData(header, basicInfoReq, sdf); + DataDistribution.getInstance().addData(base); AdasManager.getInstance().sendBasicInfoResp("", 0, com.zhidao.support.adas.high.common.Constants.TERMINAL_ROLE.DEBUG); runOnUiThread(new Runnable() { @Override public void run() { - showToastCenter("收到车机基础信息请求:" + info.toString()); + showToastCenter("收到车机基础信息请求:" + base.toString()); } }); } @Override public void onCarConfigResp(MessagePad.Header header, MessagePad.CarConfigResp carConfigResp) { - CarConfigResp base = new CarConfigResp(header, carConfigResp, sdf); + ReceiveData base = new ReceiveData(header, carConfigResp, sdf); DataDistribution.getInstance().addData(base); } @Override public void onRecordResult(MessagePad.Header header, RecordPanelOuterClass.RecordPanel recordPanel) { - RecordPanel base = new RecordPanel(header, recordPanel, sdf); + ReceiveData base = new ReceiveData(header, recordPanel, sdf); DataDistribution.getInstance().addData(base); recordKey = recordPanel.getKey(); recordFileName = recordPanel.getFilename(); @@ -1001,37 +974,37 @@ public class MainActivity extends BaseActivity implements OnAdasListener, OnAdas @Override public void onGlobalPathResp(MessagePad.Header header, MessagePad.GlobalPathResp globalPathResp) { - GlobalPathResp base = new GlobalPathResp(header, globalPathResp, sdf); + ReceiveData base = new ReceiveData(header, globalPathResp, sdf); DataDistribution.getInstance().addData(base); } @Override public void onWarn(MessagePad.Header header, MessagePad.Warn warn) { - Warn base = new Warn(header, warn, sdf); + ReceiveData base = new ReceiveData(header, warn, sdf); DataDistribution.getInstance().addData(base); } @Override public void onArrivalNotification(MessagePad.Header header, MessagePad.ArrivalNotification arrivalNotification) { - ArrivalNotification base = new ArrivalNotification(header, arrivalNotification, sdf); + ReceiveData base = new ReceiveData(header, arrivalNotification, sdf); DataDistribution.getInstance().addData(base); } @Override public void onStatusQueryResp(MessagePad.Header header, SystemStatusInfo.StatusInfo statusInfo) { - StatusInfo base = new StatusInfo(header, statusInfo, sdf); + ReceiveData base = new ReceiveData(header, statusInfo, sdf); DataDistribution.getInstance().addData(base); } @Override public void onRecordDataConfigResp(MessagePad.Header header, MessagePad.RecordDataConfig config) { - RecordDataConfig base = new RecordDataConfig(header, config, sdf); + ReceiveData base = new ReceiveData(header, config, sdf); DataDistribution.getInstance().addData(base); } @Override public void onPlanningActionMsg(MessagePad.Header header, MessagePad.PlanningActionMsg planningActionMsg) { - PlanningDecisionState base = new PlanningDecisionState(header, planningActionMsg, sdf); + ReceiveData base = new ReceiveData(header, planningActionMsg, sdf); DataDistribution.getInstance().addData(base); } @@ -1062,19 +1035,19 @@ public class MainActivity extends BaseActivity implements OnAdasListener, OnAdas @Override public void onFunctionStates(MessagePad.Header header, FunctionStates.FSMFunctionStates functionStates) { - FSMFunctionStates base = new FSMFunctionStates(header, functionStates, sdf); + ReceiveData base = new ReceiveData(header, functionStates, sdf); DataDistribution.getInstance().addData(base); } @Override public void onSweeperTaskIndexData(MessagePad.Header header, RoboSweeperTaskIndexOuterClass.RoboSweeperTaskIndex roboSweeperTaskIndex) { - RoboSweeperTaskIndex base = new RoboSweeperTaskIndex(header, roboSweeperTaskIndex, sdf); + ReceiveData base = new ReceiveData(header, roboSweeperTaskIndex, sdf); DataDistribution.getInstance().addData(base); } @Override public void onBagManagerCmd(MessagePad.Header header, BagManagerOuterClass.BagManager bagManager) { - BagManagerCmd base = new BagManagerCmd(header, bagManager, sdf); + ReceiveData base = new ReceiveData(header, bagManager, sdf); DataDistribution.getInstance().addData(base); } @@ -1084,6 +1057,7 @@ public class MainActivity extends BaseActivity implements OnAdasListener, OnAdas if (BuildConfig.IS_CLIENT) { /*—————————————作为乘客端———————————*/ options = new AdasOptions.Builder().setClient(true).build(); + /*乘客端启动 注释掉 NSDNettyManager.getInstance().searchAndConnectServer(this, "1234", new NettyClientListener() { @Override @@ -1103,7 +1077,7 @@ public class MainActivity extends BaseActivity implements OnAdasListener, OnAdas getHandler().sendEmptyMessage(WHAT_DRIVER_IP); onUpdateConnectStateView(); } - }); + });*/ } else { /*—————————————作为司机端———————————*/ int mode = Constants.getIpcConnectionMode(this); @@ -1126,6 +1100,7 @@ public class MainActivity extends BaseActivity implements OnAdasListener, OnAdas break; } + /*司机端启动 注释掉 NSDNettyManager.getInstance().startNSDNettyServerWithSN(this, new NettyServerListener() { @Override public void onMessageResponseServer(MogoProtocolMsg msg, Channel channel) { @@ -1152,10 +1127,11 @@ public class MainActivity extends BaseActivity implements OnAdasListener, OnAdas public void onChannelDisConnect(Channel channel) { Log.i(TAG, "onChannelDisConnect channel=" + channel.id()); } - }, "1234567"); + }, "1234567");*/ } AdasManager.getInstance().create(options, this); AdasManager.getInstance().setOnAdasListener(this); + /*两端数据转发 注释掉 AdasManager.getInstance().setOnMultiDeviceListener(new OnMultiDeviceListener() { @Override public void onForwardingDriverIPCMessage(byte[] bytes) { @@ -1173,7 +1149,7 @@ public class MainActivity extends BaseActivity implements OnAdasListener, OnAdas .sendMogoProtocolMsgToServer(new MogoProtocolMsg(NORMAL_DATA, bytes.length, bytes), null); Log.i(TAG, "乘客屏发送数据=" + ByteUtil.byteArrToHex(bytes)); } - }); + });*/ } @@ -1587,7 +1563,7 @@ public class MainActivity extends BaseActivity implements OnAdasListener, OnAdas break; case WHAT_DRIVER_IP: ipcIp.setVisibility(View.VISIBLE); - ipcIp.setText("司机IP:" + NSDNettyManager.getInstance().getConnServerIp()); +// ipcIp.setText("司机IP:" + NSDNettyManager.getInstance().getConnServerIp()); break; case WHAT_IPC_CONNECT_STATE: if (floatWindow != null) { diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/VersionFragment.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/VersionFragment.java index 7b4abdaad1..733e70d9ae 100644 --- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/VersionFragment.java +++ b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/VersionFragment.java @@ -23,6 +23,7 @@ import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.SimpleItemAnimator; +import com.zhidao.adas.client.App; import com.zhidao.adas.client.BuildConfig; import com.zhidao.adas.client.R; import com.zhidao.adas.client.adapter.ConfigAdapter; @@ -36,6 +37,7 @@ import com.zhidao.support.adas.high.bean.VersionCompatibility; import com.zhidao.support.adas.high.common.Constants; import com.zhidao.support.adas.high.common.CupidLogUtils; import com.zhidao.support.adas.high.common.MessageType; +import com.zhidao.support.adas.high.common.autopilot.ability.AutopilotAbilityManager; import java.text.SimpleDateFormat; import java.util.ArrayList; @@ -45,6 +47,7 @@ import java.util.List; import java.util.Locale; import java.util.Set; +import chassis.Chassis; import mogo.telematics.pad.MessagePad; /** @@ -65,7 +68,7 @@ public class VersionFragment extends BaseFragment { private ConfigAdapter adapter; private InterfaceAdapter unregisteredAdapter; private InterfaceAdapter registeredAdapter; - + private Set[] unableGears; private int role = Constants.TERMINAL_ROLE.DEBUG;//角色 默认调试屏 @@ -216,9 +219,48 @@ public class VersionFragment extends BaseFragment { list.add(new Config("ADAS LIB版本:", AdasManager.getInstance().getAdasVersion())); list.add(new Config("APP构建时间:", BuildConfig.BUILD_TIME)); list.add(getAutopilotAbilityConfig("")); + list.add(gear()); adapter.setData(list); } + private Config gear() { + StringBuilder builder = new StringBuilder(); + Chassis.GearPosition gear = App.INSTANCE.gear; + if (gear != null) { + if (unableGears == null) { + unableGears = new Set[6]; + unableGears[0] = BuildConfig.UNABLE_LAUNCH_AUTOPILOT_GEAR_BUS; + unableGears[1] = BuildConfig.UNABLE_LAUNCH_AUTOPILOT_GEAR_M1; + unableGears[2] = BuildConfig.UNABLE_LAUNCH_AUTOPILOT_GEAR_M2; + unableGears[3] = BuildConfig.UNABLE_LAUNCH_AUTOPILOT_GEAR_SWEEPER; + unableGears[4] = BuildConfig.UNABLE_LAUNCH_AUTOPILOT_GEAR_TAXI; + unableGears[5] = BuildConfig.UNABLE_LAUNCH_AUTOPILOT_GEAR_VAN; + } + for (int j = 0; j < unableGears.length; j++) { + String type = ""; + if (j == 0) { + type = "BUS"; + } else if (j == 1) { + type = "M1"; + } else if (j == 2) { + type = "M2"; + } else if (j == 3) { + type = "SWEEPER"; + } else if (j == 4) { + type = "TAXI"; + } else if (j == 5) { + type = "VAN"; + } + AutopilotAbilityManager.getInstance().setUnableLaunchAutopilotGear(unableGears[j]); + boolean b = AutopilotAbilityManager.getInstance().isLaunchAutopilot(gear); + builder.append("车型:").append(type); + builder.append(" 当前档位:").append(gear.name()); + builder.append(" 是否可以启动自驾:").append(b).append('\n'); + } + } + return new Config("档位影响:", builder.toString()); + } + private Config getAutopilotAbilityConfig(String value) { return new Config("能否启动自动驾驶:", value); } @@ -226,32 +268,34 @@ public class VersionFragment extends BaseFragment { public void autopilotAbility(boolean isAutopilotAbility, String unableAutopilotReason) { List list = adapter.getData(); if (list != null) { - Config temp = getAutopilotAbilityConfig(isAutopilotAbility + ",原因:" + unableAutopilotReason); - int index = list.indexOf(temp); - if (index < 0) { - list.add(temp); - if (getActivity() != null) - getActivity().runOnUiThread(new Runnable() { - @Override - public void run() { - adapter.notifyItemInserted(list.size() - 1); - } - }); - } else { - Config config = list.get(index); - config.cover(temp); - config.color = RandomColor.randomColor(); - if (getActivity() != null) - getActivity().runOnUiThread(new Runnable() { - @Override - public void run() { - adapter.notifyItemChanged(index); - } - }); - } + updateRefreshConfig(list, getAutopilotAbilityConfig(isAutopilotAbility + ",原因:" + unableAutopilotReason)); + updateRefreshConfig(list, gear()); } + } - + private void updateRefreshConfig(List list, Config temp) { + int index = list.indexOf(temp); + if (index < 0) { + list.add(temp); + if (getActivity() != null) + getActivity().runOnUiThread(new Runnable() { + @Override + public void run() { + adapter.notifyItemInserted(list.size() - 1); + } + }); + } else { + Config config = list.get(index); + config.cover(temp); + config.color = RandomColor.randomColor(); + if (getActivity() != null) + getActivity().runOnUiThread(new Runnable() { + @Override + public void run() { + adapter.notifyItemChanged(index); + } + }); + } } @Override diff --git a/app_ipc_monitoring/src/main/res/values/colors.xml b/app_ipc_monitoring/src/main/res/values/colors.xml index fc88f479a4..cee6d1bede 100644 --- a/app_ipc_monitoring/src/main/res/values/colors.xml +++ b/app_ipc_monitoring/src/main/res/values/colors.xml @@ -19,7 +19,7 @@ #1E90FF #FFC0CB #FF8F00 - #FFE500 - #B9ED3E + #FF33FF + #669900 #2EEDEB diff --git a/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/obu/V2xObuEventManager.kt b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/obu/V2xObuEventManager.kt index a1153493fe..130cf0ef7a 100644 --- a/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/obu/V2xObuEventManager.kt +++ b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/obu/V2xObuEventManager.kt @@ -5,9 +5,12 @@ import com.mogo.eagle.core.data.enums.DataSourceType import com.mogo.eagle.core.data.msgbox.MsgBoxBean import com.mogo.eagle.core.data.msgbox.MsgBoxType import com.mogo.eagle.core.data.msgbox.V2XMsg +import com.mogo.eagle.core.data.obu.MogoObuConst import com.mogo.eagle.core.function.api.obu.IMoGoObuSaveMessageListener import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxManager import com.mogo.eagle.core.function.call.obu.CallerObuSaveMessageListenerManager +import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger +import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant /** * 处理obu分发出来,在消息盒子展示的消息 @@ -48,6 +51,7 @@ object V2xObuEventManager : IMoGoObuSaveMessageListener { obuDataMap[type] = System.currentTimeMillis() } + CallerLogger.d("${SceneConstant.M_OBU}${TAG}", "onMoGoObuSaveMessage type = $type ---content = $content ---tts = $tts ") CallerMsgBoxManager.saveMsgBox( MsgBoxBean( MsgBoxType.V2X, diff --git a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/MoGoAutopilotControlProvider.kt b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/MoGoAutopilotControlProvider.kt index f3d1e06382..00194f2aeb 100644 --- a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/MoGoAutopilotControlProvider.kt +++ b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/MoGoAutopilotControlProvider.kt @@ -107,7 +107,7 @@ class MoGoAutopilotControlProvider : .setIpcConnectionMode(AdasOptions.IPC_CONNECTION_MODE.FIXATION) .setIpcFixationIP(AdasManager.getInstance().getIPCFixationIPList(mContext)) .setClient(false) - .setIdentityMode(FunctionBuildConfig.appIdentityMode) + .setUnableLaunchAutopilotGear(FunctionBuildConfig.unableLaunchAutopilotGear) // .setSubscribeInterfaceOptions(subscribeInterfaceOptions)// .build() @@ -198,7 +198,7 @@ class MoGoAutopilotControlProvider : val options = AdasOptions .Builder() .setClient(true) - .setIdentityMode(FunctionBuildConfig.appIdentityMode) + .setUnableLaunchAutopilotGear(FunctionBuildConfig.unableLaunchAutopilotGear) .build() AdasManager.getInstance() .create(options, MoGoAdasMsgConnectStatusListenerImpl()) @@ -226,7 +226,7 @@ class MoGoAutopilotControlProvider : .setIpcConnectionMode(AdasOptions.IPC_CONNECTION_MODE.FIXATION) .setIpcFixationIP(AdasManager.getInstance().getIPCFixationIPList(mContext)) .setClient(false)// 乘客端直连工控机改为false - .setIdentityMode(FunctionBuildConfig.appIdentityMode) + .setUnableLaunchAutopilotGear(FunctionBuildConfig.unableLaunchAutopilotGear) .build() AdasManager.getInstance().create(options, MoGoAdasMsgConnectStatusListenerImpl()) //////////////////////////////////注意先后顺序,AdasManager.getInstance().create后才可以设置监听///////////////////////////////////////////// diff --git a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/MogoObuDcCombineManager.kt b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/MogoObuDcCombineManager.kt index c752f5b45f..7f9651f0da 100644 --- a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/MogoObuDcCombineManager.kt +++ b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/MogoObuDcCombineManager.kt @@ -242,6 +242,9 @@ class MogoObuDcCombineManager private constructor() : IMoGoObuWarningRsiListener when (status) { // 添加 MogoObuConstants.STATUS.ADD -> { + if (alertContent.isEmpty() || ttsContent.isEmpty()) { + return + } saveObuToDcData(appId, alertContent, ttsContent) showWarning(appId, alertContent, ttsContent, direction) } @@ -502,6 +505,9 @@ class MogoObuDcCombineManager private constructor() : IMoGoObuWarningRsiListener "${M_OBU}${TAG}", "MogoObuDcCombineManager changeTrafficLightStatus 闯红灯 --------> ttsContent = $ttsContent ---alertContent = $alertContent " ) + if (alertContent.isEmpty() || ttsContent.isEmpty()) { + return + } saveObuToDcData(EventTypeEnumNew.TYPE_USECASE_ID_IVP_RED.poiType, alertContent, ttsContent) showWarning(EventTypeEnumNew.TYPE_USECASE_ID_IVP_RED.poiType, alertContent, ttsContent, WarningDirectionEnum.ALERT_WARNING_NON) } @@ -539,6 +545,9 @@ class MogoObuDcCombineManager private constructor() : IMoGoObuWarningRsiListener ) val maxSpeed = currentLight.suggestMaxSpeed * 3.6 if (maxSpeed > 0) { + if (alertContent.isEmpty() || ttsContent.isEmpty()) { + return + } saveObuToDcData(EventTypeEnumNew.TYPE_USECASE_ID_IVP_GREEN.poiType, alertContent, ttsContent) showWarning(EventTypeEnumNew.TYPE_USECASE_ID_IVP_GREEN.poiType, alertContent, ttsContent, WarningDirectionEnum.ALERT_WARNING_NON) } diff --git a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/MogoPrivateObuNewManager.kt b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/MogoPrivateObuNewManager.kt index 0c64d6a0b1..a4b0d19ddb 100644 --- a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/MogoPrivateObuNewManager.kt +++ b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/MogoPrivateObuNewManager.kt @@ -1037,8 +1037,6 @@ class MogoPrivateObuNewManager private constructor() : OnUpgradeListener { ) } - private val ttsMap = mutableMapOf() - /** * 消息盒子对应消息的语音播报 */ @@ -1048,19 +1046,6 @@ class MogoPrivateObuNewManager private constructor() : OnUpgradeListener { tts: String, direction: WarningDirectionEnum ) { - //30秒内同一个事件只出现一次 TODO 临时添加,后面宏宇统一在数据中心处理 - if (ttsMap.containsKey(type)) { - var oldTime = ttsMap[type] - var timeDiff = (System.currentTimeMillis() - oldTime!!) / 1000 - if (timeDiff < 30) { - return - } - ttsMap.remove(type) - ttsMap[type] = System.currentTimeMillis() - } else { - ttsMap[type] = System.currentTimeMillis() - } - CallerHmiManager.warningV2X( type, content, diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/DevaToolsProvider.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/DevaToolsProvider.kt index c3dfb3780d..dfdec5e541 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/DevaToolsProvider.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/DevaToolsProvider.kt @@ -158,6 +158,10 @@ class DevaToolsProvider : IDevaToolsProvider { BadCaseManager.showBadCaseConfigWindow(ctx) } + override fun showBadCaseManagerView(context: Context) { + BadCaseManager.showBadCaseManagerWindow(context) + } + override fun downLoadPackage(downloadKey: String, downloadUrl: String) { upgradeManager.downLoadPackage(mContext!!, downloadKey, downloadUrl) } diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/BadCaseManager.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/BadCaseManager.kt index 62501383b7..54de5f1730 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/BadCaseManager.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/BadCaseManager.kt @@ -101,6 +101,22 @@ internal object BadCaseManager : LifecycleEventObserver, IMoGoAutopilotRecordLis } } + /** + * 展示BadCase录包管理页面 + */ + fun showBadCaseManagerWindow(context: Context){ + val badCaseManagerView = BadCaseManagerView(context) + badCaseManagerView.setOnClickListener(object: BadCaseManagerView.ClickListener{ + override fun onClose() { + hideFloat?.invoke() + hideFloat = null + } + }) + context.enqueuePop(badCaseManagerView,AutoSizeUtils.dp2px(context,960f), WindowManager.LayoutParams.MATCH_PARENT, key = "BadCaseManagerView").also { + hideFloat = it + } + } + /** * 主动采集BadCase */ diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/binding/BindingCarNetWorkManager.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/binding/BindingCarNetWorkManager.kt index 9daa99f962..ba157a1abd 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/binding/BindingCarNetWorkManager.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/binding/BindingCarNetWorkManager.kt @@ -56,8 +56,6 @@ class BindingCarNetWorkManager private constructor() { widevineIDWithMd5: String?, screenType: Int ) { -// String macAddress1 = "48:b0:2d:4d:33:40"; -// String sn = "X2020220417KA94QIN"; val request = BindingCarRequest( macAddress, widevineIDWithMd5, @@ -152,12 +150,14 @@ class BindingCarNetWorkManager private constructor() { } private fun updateCarVrIconRes(brandId: String?) { + d(SceneConstant.M_BINDING + TAG, "CarModelChange : ${DebugConfig.isCarModelChange()}") if(!DebugConfig.isCarModelChange()){ return } if (brandId == null || brandId.isEmpty()) { return } + d(SceneConstant.M_BINDING + TAG, "getDefaultId() : ${getDefaultId()} ---- brandId = $brandId") if (getDefaultId() == brandId) { return } diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiProvider.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiProvider.kt index 406fdd97ee..735db45a88 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiProvider.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiProvider.kt @@ -39,6 +39,7 @@ import com.mogo.eagle.core.function.hmi.ui.widget.StatusBarView import com.mogo.eagle.core.utilcode.kotlin.safeCancel import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger +import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_HMI import com.mogo.eagle.core.utilcode.util.ThreadUtils import com.zhjt.service_biz.BizConfig @@ -87,6 +88,8 @@ class MoGoHmiProvider : IMoGoHmiProvider { ) } + private val ttsMap = mutableMapOf() + /** * 不展示顶部弹窗,其它保留 */ @@ -99,6 +102,19 @@ class MoGoHmiProvider : IMoGoHmiProvider { direction: WarningDirectionEnum, expireTime: Long ) { + //30秒内同一个事件只出现一次 TODO 临时添加,后面宏宇统一在数据中心处理 + if (ttsMap.containsKey(v2xType)) { + var oldTime = ttsMap[v2xType] + var timeDiff = (System.currentTimeMillis() - oldTime!!) / 1000 + if (timeDiff < 30) { + return + } + ttsMap.remove(v2xType) + ttsMap[v2xType] = System.currentTimeMillis() + } else { + ttsMap[v2xType] = System.currentTimeMillis() + } + CallerLogger.d("${SceneConstant.M_OBU}${TAG}", "warningV2X v2xType = $v2xType ---alertContent = $alertContent ---ttsContent = $ttsContent ") val playTTS = !AppIdentityModeUtils.isPassenger(FunctionBuildConfig.appIdentityMode) context?.let { val warningContent = alertContent ?: EventTypeEnumNew.getWarningContent(v2xType) diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/adapter/DriverMsgBoxBubbleAdapter.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/adapter/DriverMsgBoxBubbleAdapter.kt index 8592c0bcb3..948d93eaec 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/adapter/DriverMsgBoxBubbleAdapter.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/adapter/DriverMsgBoxBubbleAdapter.kt @@ -33,6 +33,8 @@ class DriverMsgBoxBubbleAdapter(private val activity: Activity) : RecyclerView.A private var data: ArrayList ?= null private val operation: Int = 1 + private val operationReturn: Int = 10 + private val operationStop: Int = 11 private val notice: Int = 2 private val v2x: Int = 3 private val report: Int = 4 @@ -55,6 +57,16 @@ class DriverMsgBoxBubbleAdapter(private val activity: Activity) : RecyclerView.A val view = LayoutInflater.from(parent.context).inflate(R.layout.item_msg_bubble_operation,parent,false) return BubbleOperationHolder(view) } + operationReturn -> { + val view = LayoutInflater.from(parent.context) + .inflate(R.layout.item_msg_bubble_operation_return, parent, false) + return BubbleOperationReturnHolder(view) + } + operationStop -> { + val view = LayoutInflater.from(parent.context) + .inflate(R.layout.item_msg_bubble_operation_stop, parent, false) + return BubbleOperationStopHolder(view) + } report -> { val view = LayoutInflater.from(parent.context).inflate(R.layout.item_msg_bubble_report,parent,false) return BubbleReportHolder(view) @@ -87,6 +99,23 @@ class DriverMsgBoxBubbleAdapter(private val activity: Activity) : RecyclerView.A } } } + //运营平台还车通知 + is BubbleOperationReturnHolder -> { + data?.let { + val operationReturnMsg = it[position].bean as OperationMsg + holder.tvOperationReturnContent.text = operationReturnMsg.content + holder.tvOperationReturnTime.text = + TimeUtils.millis2String(operationReturnMsg.timestamp, getHourMinFormat()) + } + } + //运营平台靠边停车 + is BubbleOperationStopHolder -> { + data?.let { + val operationStopMsg = it[position].bean as OperationMsg + holder.tvOperationStopTime.text = + TimeUtils.millis2String(operationStopMsg.timestamp, getHourMinFormat()) + } + } is BubbleReportHolder -> { data?.let { val msgBoxBean = it[position] @@ -187,7 +216,16 @@ class DriverMsgBoxBubbleAdapter(private val activity: Activity) : RecyclerView.A override fun getItemViewType(position: Int): Int { return if(data!![position].type == MsgBoxType.OPERATION){ - operation + if((data!![position].bean as OperationMsg).type == 0){ + //运营平台还车通知 + operationReturn + }else if((data!![position].bean as OperationMsg).type == 1){ + //运营平台靠边停车 + operationStop + }else{ + //普通运营平台 + operation + } }else if(data!![position].type == MsgBoxType.REPORT){ report }else if(data!![position].type == MsgBoxType.NOTICE){ @@ -214,6 +252,17 @@ class DriverMsgBoxBubbleAdapter(private val activity: Activity) : RecyclerView.A var clBubbleOperationLayout: RoundCanClickConstraintLayout = itemView.findViewById(R.id.clBubbleOperationLayout) } + //运营平台还车通知 + class BubbleOperationReturnHolder(itemView: View): RecyclerView.ViewHolder(itemView){ + var tvOperationReturnTime: TextView = itemView.findViewById(R.id.tvOperationReturnTime) + var tvOperationReturnContent: TextView = itemView.findViewById(R.id.tvOperationReturnContent) + } + + //运营平台靠边停车通知 + class BubbleOperationStopHolder(itemView: View): RecyclerView.ViewHolder(itemView){ + var tvOperationStopTime: TextView = itemView.findViewById(R.id.tvOperationStopTime) + } + //Notice class BubbleNoticeHolder(itemView: View): RecyclerView.ViewHolder(itemView){ var ivNoticeImage: ImageView = itemView.findViewById(R.id.ivNoticeImage) diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/adapter/DriverMsgBoxListAdapter.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/adapter/DriverMsgBoxListAdapter.kt index 95ea8caef9..b020fd0ee7 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/adapter/DriverMsgBoxListAdapter.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/adapter/DriverMsgBoxListAdapter.kt @@ -35,6 +35,8 @@ class DriverMsgBoxListAdapter(private val activity: Activity) : private var reportBean: MsgBoxBean ?= null private val operation: Int = 1 + private val operationReturn: Int = 10 + private val operationStop: Int = 11 private val notice: Int = 2 private val v2x: Int = 3 private val report: Int = 5 @@ -72,6 +74,16 @@ class DriverMsgBoxListAdapter(private val activity: Activity) : .inflate(R.layout.item_msg_box_operation, parent, false) return MsgBoxOperation(view) } + operationReturn -> { + val view = LayoutInflater.from(parent.context) + .inflate(R.layout.item_msg_box_operation_return, parent, false) + return MsgBoxOperationReturn(view) + } + operationStop -> { + val view = LayoutInflater.from(parent.context) + .inflate(R.layout.item_msg_box_operation_stop, parent, false) + return MsgBoxOperationStop(view) + } notice -> { val view = LayoutInflater.from(parent.context) .inflate(R.layout.item_msg_box_notice, parent, false) @@ -244,6 +256,23 @@ class DriverMsgBoxListAdapter(private val activity: Activity) : } } } + //运营平台还车通知 + is MsgBoxOperationReturn -> { + data?.let { + val operationReturnMsg = it[position].bean as OperationMsg + holder.tvOperationReturnContent.text = operationReturnMsg.content + holder.tvOperationReturnTime.text = + TimeUtils.millis2String(operationReturnMsg.timestamp, getHourMinFormat()) + } + } + //运营平台靠边停车 + is MsgBoxOperationStop -> { + data?.let { + val operationStopMsg = it[position].bean as OperationMsg + holder.tvOperationStopTime.text = + TimeUtils.millis2String(operationStopMsg.timestamp, getHourMinFormat()) + } + } is MsgBoxNotice -> { data?.let { val noticeFrCloudMsg = it[position].bean as NoticeFrCloudMsg @@ -314,7 +343,16 @@ class DriverMsgBoxListAdapter(private val activity: Activity) : override fun getItemViewType(position: Int): Int { return if (data!![position].type == MsgBoxType.OPERATION) { - operation + if((data!![position].bean as OperationMsg).type == 0){ + //运营平台还车通知 + operationReturn + }else if((data!![position].bean as OperationMsg).type == 1){ + //运营平台靠边停车 + operationStop + }else{ + //普通运营平台 + operation + } } else if (data!![position].type == MsgBoxType.NOTICE) { notice } else if (data!![position].type == MsgBoxType.V2X && data!![position].sourceType == DataSourceType.SUMMARY) { @@ -365,6 +403,17 @@ class DriverMsgBoxListAdapter(private val activity: Activity) : var tvOperationContentOpen: TextView = itemView.findViewById(R.id.tvOperationContentOpen) } + //运营平台还车通知 + class MsgBoxOperationReturn(itemView: View) : RecyclerView.ViewHolder(itemView){ + var tvOperationReturnTime: TextView = itemView.findViewById(R.id.tvOperationReturnTime) + var tvOperationReturnContent: TextView = itemView.findViewById(R.id.tvOperationReturnContent) + } + + //运营平台靠边停车通知 + class MsgBoxOperationStop(itemView: View) : RecyclerView.ViewHolder(itemView){ + var tvOperationStopTime: TextView = itemView.findViewById(R.id.tvOperationStopTime) + } + //Notice class MsgBoxNotice(itemView: View) : RecyclerView.ViewHolder(itemView) { var ivNoticeImage: ImageView = itemView.findViewById(R.id.ivNoticeImage) diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/ToolsView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/ToolsView.kt index a81a76c890..a765f0434a 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/ToolsView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/ToolsView.kt @@ -55,7 +55,8 @@ class ToolsView private constructor() { } override fun showBadCaseManagerView() { - ToastUtils.showShort("代码合并中") + dismissToolsFloatView() + CallerDevaToolsManager.showBadCaseManagerView(it) } }) } diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/LimitingVelocityView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/LimitingVelocityView.kt index de83239e19..a631acac8e 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/LimitingVelocityView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/LimitingVelocityView.kt @@ -42,10 +42,10 @@ class LimitingVelocityView constructor( if (limitingVelocity > 0) { visibility = View.VISIBLE tvLimitingVelocity.text = "$limitingVelocity" - tvLimitingSource.text = DataSourceType.getName(sourceType) + tvLimitingSource?.text = DataSourceType.getName(sourceType) } else { visibility = View.GONE - tvLimitingSource.text = "" + tvLimitingSource?.text = "" } } } diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/icon_msg_box_operation_return.png b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/icon_msg_box_operation_return.png new file mode 100644 index 0000000000..d1363d1a96 Binary files /dev/null and b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/icon_msg_box_operation_return.png differ diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/icon_msg_box_operation_stop.png b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/icon_msg_box_operation_stop.png new file mode 100644 index 0000000000..1ba1c633ec Binary files /dev/null and b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/icon_msg_box_operation_stop.png differ diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_msg_box_operation_return.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_msg_box_operation_return.xml new file mode 100644 index 0000000000..dd210d1341 --- /dev/null +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_msg_box_operation_return.xml @@ -0,0 +1,64 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_msg_box_operation_stop.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_msg_box_operation_stop.xml new file mode 100644 index 0000000000..bae20dc545 --- /dev/null +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_msg_box_operation_stop.xml @@ -0,0 +1,54 @@ + + + + + + + + + + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_msg_bubble_operation_return.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_msg_bubble_operation_return.xml new file mode 100644 index 0000000000..224dc865f1 --- /dev/null +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_msg_bubble_operation_return.xml @@ -0,0 +1,64 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_msg_bubble_operation_stop.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_msg_bubble_operation_stop.xml new file mode 100644 index 0000000000..e6b647840f --- /dev/null +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_msg_bubble_operation_stop.xml @@ -0,0 +1,52 @@ + + + + + + + + + + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/identify/CircleQueue.java b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/identify/CircleQueue.java index 5f7b50180e..a4faef0d56 100644 --- a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/identify/CircleQueue.java +++ b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/identify/CircleQueue.java @@ -24,18 +24,10 @@ public class CircleQueue { objQueue.add(obj); } - public void deleteObj(ObjQueue obj) { - objQueue.remove(obj); - } - public List getLastThreeFrame() { return objQueue.subList(objQueue.size() - 3, objQueue.size()); } - public List getLastFiveFrame() { - return objQueue.subList(objQueue.size() - 5, objQueue.size()); - } - public List getPreFrame() { return objQueue.subList(0, objQueue.size()); } @@ -44,6 +36,10 @@ public class CircleQueue { return objQueue.lastElement(); } + public void clear(){ + objQueue.clear(); + } + @Override public String toString() { return "CircleQueue{" + diff --git a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/identify/TrackManager.java b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/identify/TrackManager.java index 907f04ce8d..b4d2daa6c6 100644 --- a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/identify/TrackManager.java +++ b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/identify/TrackManager.java @@ -2,6 +2,7 @@ package com.mogo.eagle.core.function.business.identify; import android.annotation.SuppressLint; import android.os.Build; +import android.util.Log; import androidx.annotation.RequiresApi; @@ -50,7 +51,7 @@ public class TrackManager { * 记录每次实际绘制的交通元素UUID */ @SuppressLint("NewApi") - private final HashMap trafficDataUuid = new HashMap<>(); + private final ConcurrentHashMap trafficDataUuid = new ConcurrentHashMap<>(); /** * 过滤后的数据集合 @@ -101,7 +102,7 @@ public class TrackManager { trackObj = cacheTrack; MessagePad.TrackedObject cache = cacheTrack.getCache(); if (cache != null) { - //相对静止物体并且非obu数据,则不改变,为感知融合同位置物体,使用缓存数据做覆盖 + //相对静止物体 感知融合同位置物体,使用缓存数据做覆盖 if (cacheTrack.relativeStatic()) { if (data.getColor() != null && !data.getColor().isEmpty()) { cache = cache.toBuilder().setColor(data.getColor()).build(); @@ -112,10 +113,10 @@ public class TrackManager { uuid = findSameValue; trackObj.updateObj(data); } else { - trackObj = new TrackObj(data); + trackObj = new TrackObj(data,s2CellId,s2LatLng); } } else { - trackObj = new TrackObj(data); + trackObj = new TrackObj(data,s2CellId,s2LatLng); } } mFilterTrafficData.put(uuid, trackObj.getCache()); @@ -150,17 +151,23 @@ public class TrackManager { } public synchronized void removeKey(String key) { - mMarkersCaches.remove(key); cellIdCaches.remove(key); + mMarkersCaches.remove(key); + WarningHelper.INSTANCE.remove(key); MogoMarkerManager.getInstance(AbsMogoApplication.getApp()) .removeMarker(key); } @SuppressLint("NewApi") public void clearAll() { + MogoMarkerManager.getInstance(AbsMogoApplication.getApp()).clearAllMarker(); + cellIdCaches.clear(); trafficDataUuid.clear(); WarningHelper.INSTANCE.clear(); - mMarkersCaches.forEach((uuid, trackObj) -> removeKey(uuid)); + mMarkersCaches.forEach((uuid, trackObj) -> { + trackObj.clear(); + }); + mMarkersCaches.clear(); } } diff --git a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/identify/TrackObj.java b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/identify/TrackObj.java index 0a1d3829b7..55ef457a88 100644 --- a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/identify/TrackObj.java +++ b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/identify/TrackObj.java @@ -5,8 +5,6 @@ import static com.mogo.eagle.core.function.business.identify.TrackManager.LIMIT_ import android.annotation.SuppressLint; import com.mogo.eagle.core.data.enums.TrafficTypeEnum; -import com.mogo.eagle.core.data.map.CenterLine; -import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager; import com.mogo.eagle.core.utilcode.geometry.S2CellId; import com.mogo.eagle.core.utilcode.geometry.S2LatLng; import com.mogo.eagle.core.utilcode.util.CoordinateUtils; @@ -22,26 +20,18 @@ public class TrackObj { private final CircleQueue circleQueue = new CircleQueue(6); private S2CellId s2CellId; //s2 id权重 private S2LatLng s2LatLng; //s2 经纬度 - private double recentlyTime; //用于缓存帧数判断,暂定缓存1秒数据,中间如果有物体未出现,1秒后删除 - private double roadAngle; //道路航向 private int[] typeArray = new int[3]; private int typeWeight; //类型权重 private double lat; private double lon; private double speedAverage; - public TrackObj(MessagePad.TrackedObject data) { + public TrackObj(MessagePad.TrackedObject data, S2CellId cellId, S2LatLng latLng) { circleQueue.addQueue(new ObjQueue(data.getHeading(), data.getSpeed(), data.getLatitude(), data.getLongitude(), data.getType())); - recentlyTime = data.getSatelliteTime(); lat = data.getLatitude(); lon = data.getLongitude(); - s2LatLng = S2LatLng.fromDegrees(data.getLatitude(), data.getLongitude()); - s2CellId = S2CellId.fromLatLng(s2LatLng).parent(22); //需要验证22前后 - CenterLine centerLine = CallerMapUIServiceManager.INSTANCE.getMapUIController().getCenterLineInfo(lon, lat, -1); - if (centerLine != null && centerLine.getAngle() != 0) { - roadAngle = centerLine.getAngle(); - } - + s2LatLng = latLng; + s2CellId = cellId; //需要验证22前后 } private MessagePad.TrackedObject cacheData; @@ -50,14 +40,12 @@ public class TrackObj { public void updateObj(MessagePad.TrackedObject data) { cacheData = data; correct(); - recentlyTime = data.getSatelliteTime(); circleQueue.addQueue(new ObjQueue(cacheData.getHeading(), cacheData.getSpeed(), data.getLatitude(), data.getLongitude(), data.getType())); } private void correct() { calAverageSpeedAndType(); calLoc(); -// calHeading(); } @SuppressLint("NewApi") @@ -80,8 +68,10 @@ public class TrackObj { } speedAverage = cal / objQueueList.size(); } - typeArray = Arrays.stream(typeArray).sorted().toArray(); - typeWeight = typeArray[typeArray.length / 2] == 0 ? cacheData.getType() : typeArray[typeArray.length / 2]; + if(typeArray.length > 0){ + typeArray = Arrays.stream(typeArray).sorted().toArray(); + typeWeight = typeArray[typeArray.length / 2] == 0 ? cacheData.getType() : typeArray[typeArray.length / 2]; + } // 重新给静止物体赋值速度 if (relativeStatic()) { @@ -105,26 +95,6 @@ public class TrackObj { } } - private void calHeading() { - //更正数据,速度小于LIMIT_SPEED使用上一帧数据 -// if (relativeStatic()) { -// if (roadAngle != 0.0) { -// CenterLine centerLine = CallerHDMapManager.INSTANCE.getCenterLineInfo(lon, lat, -1); -// if (centerLine != null && centerLine.getAngle() != 0) { -// cacheData = cacheData.toBuilder().setHeading(centerLine.getAngle()).build(); -// } else { -// cacheData = cacheData.toBuilder().setHeading(circleQueue.getLastFrame().getHeading()).build(); -// } -// } else { -// cacheData = cacheData.toBuilder().setHeading(circleQueue.getLastFrame().getHeading()).build(); -// } -// } - } - - public double getRecentlyTime() { - return recentlyTime; - } - public long getCellIdPos() { return s2CellId.pos(); } @@ -167,12 +137,6 @@ public class TrackObj { } } - public boolean isFourWheelType() { - return typeWeight != TrafficTypeEnum.TYPE_TRAFFIC_ID_PEOPLE.getType() - && typeWeight != TrafficTypeEnum.TYPE_TRAFFIC_ID_BICYCLE.getType() - && typeWeight != TrafficTypeEnum.TYPE_TRAFFIC_ID_MOTO.getType(); - } - private double[] getCenterPoint(List objQueueList) { int total = objQueueList.size(); double X = 0, Y = 0, Z = 0; @@ -202,12 +166,18 @@ public class TrackObj { return d; } + public void clear(){ + circleQueue.clear(); + s2CellId = null; + s2LatLng = null; + typeArray = null; + } + @Override public String toString() { return "TrackObj{" + "circleQueue=" + circleQueue + ", s2CellId=" + s2CellId + - ", recentlyTime=" + recentlyTime + ", cacheData=" + cacheData + '}'; } diff --git a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/identify/TrackerSourceColorHelper.kt b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/identify/TrackerSourceColorHelper.kt index 489cce927c..d530f02c48 100644 --- a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/identify/TrackerSourceColorHelper.kt +++ b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/identify/TrackerSourceColorHelper.kt @@ -64,7 +64,7 @@ object TrackerSourceColorHelper { //僵尸车 if(data.addAttribute == AdditionalAttribute.ATTR_ZOMBIE){ - color = "#8F9AADFF" + color = "#AE7887FF" } // pnc预警 diff --git a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/identify/WarningHelper.kt b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/identify/WarningHelper.kt index 2d7a5c69a4..81f546cb3d 100644 --- a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/identify/WarningHelper.kt +++ b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/identify/WarningHelper.kt @@ -139,6 +139,12 @@ object WarningHelper { } } + fun remove(key:String){ + pncWarningBeautyTrafficData.remove(key) + pncWarningOriginTrafficData.remove(key) + obuWarningTrafficData.remove(key) + } + fun clear() { pncWarningBeautyTrafficData.clear() pncWarningOriginTrafficData.clear() diff --git a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/config/FunctionBuildConfig.kt b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/config/FunctionBuildConfig.kt index 8831a67f91..556522a191 100644 --- a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/config/FunctionBuildConfig.kt +++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/config/FunctionBuildConfig.kt @@ -1,5 +1,6 @@ package com.mogo.eagle.core.data.config +import chassis.Chassis import com.mogo.eagle.core.data.deva.net.UrlConfig import com.mogo.eagle.core.utilcode.util.GsonUtils @@ -213,4 +214,10 @@ object FunctionBuildConfig { @JvmField var urlJson: UrlConfig = GsonUtils.fromJson("{\"och_url\":\"https://tech.zhidaohulian.com\"}", UrlConfig::class.java) + /** + * 最外层设置的Url + */ + @Volatile + @JvmField + var unableLaunchAutopilotGear: Set? = null } \ No newline at end of file diff --git a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/devatools/IDevaToolsProvider.kt b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/devatools/IDevaToolsProvider.kt index 5f7cca0772..0de776cdd9 100644 --- a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/devatools/IDevaToolsProvider.kt +++ b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/devatools/IDevaToolsProvider.kt @@ -105,6 +105,11 @@ interface IDevaToolsProvider : IProvider { */ fun showFeedbackWindow(ctx: Context) + /** + * 展示录包管理页面 + */ + fun showBadCaseManagerView(context: Context) + /** * 下载指定包 */ diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/devatools/CallerDevaToolsManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/devatools/CallerDevaToolsManager.kt index 6c9cab0897..91f1d0e9e8 100644 --- a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/devatools/CallerDevaToolsManager.kt +++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/devatools/CallerDevaToolsManager.kt @@ -141,6 +141,13 @@ object CallerDevaToolsManager { devaToolsProviderApi?.showFeedbackWindow(ctx) } + /** + * 展示录包管理页面 + */ + fun showBadCaseManagerView(context: Context){ + devaToolsProviderApi?.showBadCaseManagerView(context) + } + /** * 下载指定包 */ diff --git a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/AdasOptions.java b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/AdasOptions.java index 3c38a18599..dcdc047c72 100644 --- a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/AdasOptions.java +++ b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/AdasOptions.java @@ -4,6 +4,9 @@ import com.zhidao.support.adas.high.common.autopilot.ability.AutopilotAbilityMan import com.zhidao.support.adas.high.subscribe.SubscribeInterfaceOptions; import java.util.HashSet; +import java.util.Set; + +import chassis.Chassis; /** * Date:2019/5/31。 @@ -126,13 +129,13 @@ public class AdasOptions { } /** - * 身份/车型 + * 不能启动自驾的档位 * - * @param identityMode 车型 + * @param unableLaunchAutopilotGear 档位 * @return */ - public Builder setIdentityMode(String identityMode) { - options.setIdentityMode(identityMode); + public Builder setUnableLaunchAutopilotGear(Set unableLaunchAutopilotGear) { + options.setUnableLaunchAutopilotGear(unableLaunchAutopilotGear); return this; } @@ -153,7 +156,7 @@ public class AdasOptions { options.ipcAssignIP = null; options.ipcFixationIP = null; options.subscribeInterfaceOptions = null; - options.setIdentityMode(""); + options.setUnableLaunchAutopilotGear(null); return options; } @@ -197,7 +200,7 @@ public class AdasOptions { this.subscribeInterfaceOptions = subscribeInterfaceOptions; } - public void setIdentityMode(String identityMode) { - AutopilotAbilityManager.getInstance().setIdentityMode(identityMode); + public void setUnableLaunchAutopilotGear(Set unableLaunchAutopilotGear) { + AutopilotAbilityManager.getInstance().setUnableLaunchAutopilotGear(unableLaunchAutopilotGear); } } diff --git a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/autopilot/ability/AutopilotAbility230.java b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/autopilot/ability/AutopilotAbility230.java index 9c6ce3ea4c..d6e4188abc 100644 --- a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/autopilot/ability/AutopilotAbility230.java +++ b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/autopilot/ability/AutopilotAbility230.java @@ -1,10 +1,7 @@ package com.zhidao.support.adas.high.common.autopilot.ability; -import com.zhidao.support.adas.high.OnAdasListener; - import java.util.Timer; import java.util.TimerTask; -import java.util.regex.Pattern; import chassis.Chassis; import chassis.ChassisStatesOuterClass; @@ -31,10 +28,6 @@ public class AutopilotAbility230 { } private void onCallback() { - //金旅、开沃小巴乘客端 不能启动自动驾驶 - if (AutopilotAbilityManager.getInstance().isBusPassenger()) { - return; - } boolean isAutopilotAbility = true;//是否能启动自动驾驶 String unableAutopilotReason = null;//不能启动自动驾驶原因 //检测底盘相关 @@ -47,36 +40,14 @@ public class AutopilotAbility230 { } } if (isAutopilotAbility) { - /** - * 档位状态判断 目前判断的车型包括 东风Taxi 红旗Taxi 金旅Bus 金旅M1 金旅M1 福田清扫车 开沃 - * TODO 如果 identityMode 未赋值以及目前已知其他车型判断逻辑跟东风Taxi和红旗 走 - */ - //开沃任何档位都能启动自驾 - if (!AutopilotAbilityManager.getInstance().isBusDriverVan()) { - if (chassisStates.hasGearSystemStates()) { - Chassis.GearPosition gear = chassisStates.getGearSystemStates().getGearPosition(); - //金旅Bus和清扫车 档位不正常 - if (AutopilotAbilityManager.getInstance().isBusDriver()) { - if (gear == Chassis.GearPosition.GEAR_N || gear == Chassis.GearPosition.GEAR_R) { - isAutopilotAbility = false; - unableAutopilotReason = "档位不正常"; - } - } else if (AutopilotAbilityManager.getInstance().isSweeperDriverFutian()) { - if (gear == Chassis.GearPosition.GEAR_N) { - isAutopilotAbility = false; - unableAutopilotReason = "档位不正常"; - } - } else { - //东风Taxi和红旗 司机端和乘客端 档位不正常 - if (gear == Chassis.GearPosition.GEAR_P || gear == Chassis.GearPosition.GEAR_R) { - isAutopilotAbility = false; - unableAutopilotReason = "档位不正常"; - } - } + if (chassisStates.hasGearSystemStates()) { + Chassis.GearPosition gear = chassisStates.getGearSystemStates().getGearPosition(); + if (!AutopilotAbilityManager.getInstance().isLaunchAutopilot(gear)) { + isAutopilotAbility = false; + unableAutopilotReason = "档位不正常"; } } } - //TODO 关于手刹:不同车型的实现不同所以目前没法使用此字段 // if (isAutopilotAbility) { // //电子驻车制动系统 @@ -88,9 +59,7 @@ public class AutopilotAbility230 { // } // } } - if (AutopilotAbilityManager.getInstance().getListener() != null) { - AutopilotAbilityManager.getInstance().getListener().onAutopilotAbility(isAutopilotAbility, unableAutopilotReason); - } + AutopilotAbilityManager.getInstance().onAutopilotAbility(isAutopilotAbility, unableAutopilotReason); } public synchronized void start() { @@ -114,5 +83,4 @@ public class AutopilotAbility230 { } - } diff --git a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/autopilot/ability/AutopilotAbility250.java b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/autopilot/ability/AutopilotAbility250.java index 01bf359101..0c459e56a6 100644 --- a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/autopilot/ability/AutopilotAbility250.java +++ b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/autopilot/ability/AutopilotAbility250.java @@ -45,10 +45,6 @@ public class AutopilotAbility250 { } private void onCallback(SystemStatusInfo.StatusInfo statusInfo) { - //金旅、开沃小巴乘客端 不能启动自动驾驶 - if (AutopilotAbilityManager.getInstance().isBusPassenger()) { - return; - } boolean isAutopilotAbility = true;//是否能启动自动驾驶 String unableAutopilotReason = null;//不能启动自动驾驶原因 //检测节点状态相关 @@ -122,36 +118,14 @@ public class AutopilotAbility250 { } } if (isAutopilotAbility) { - /** - * 档位状态判断 目前判断的车型包括 东风Taxi 红旗Taxi 金旅Bus 金旅M1 金旅M1 福田清扫车 开沃 - * TODO 如果 identityMode 未赋值以及目前已知其他车型判断逻辑跟东风Taxi和红旗 走 - */ - //开沃任何档位都能启动自驾 - if (!AutopilotAbilityManager.getInstance().isBusDriverVan()) { - if (chassisStates.hasGearSystemStates()) { - Chassis.GearPosition gear = chassisStates.getGearSystemStates().getGearPosition(); - //金旅Bus和清扫车 档位不正常 - if (AutopilotAbilityManager.getInstance().isBusDriver()) { - if (gear == Chassis.GearPosition.GEAR_N || gear == Chassis.GearPosition.GEAR_R) { - isAutopilotAbility = false; - unableAutopilotReason = "档位不正常"; - } - } else if (AutopilotAbilityManager.getInstance().isSweeperDriverFutian()) { - if (gear == Chassis.GearPosition.GEAR_N) { - isAutopilotAbility = false; - unableAutopilotReason = "档位不正常"; - } - } else { - //东风Taxi和红旗 司机端和乘客端 档位不正常 - if (gear == Chassis.GearPosition.GEAR_P || gear == Chassis.GearPosition.GEAR_R) { - isAutopilotAbility = false; - unableAutopilotReason = "档位不正常"; - } - } + if (chassisStates.hasGearSystemStates()) { + Chassis.GearPosition gear = chassisStates.getGearSystemStates().getGearPosition(); + if (!AutopilotAbilityManager.getInstance().isLaunchAutopilot(gear)) { + isAutopilotAbility = false; + unableAutopilotReason = "档位不正常"; } } } - //TODO 关于手刹:不同车型的实现不同所以目前没法使用此字段 // if (isAutopilotAbility) { // //电子驻车制动系统 @@ -163,9 +137,7 @@ public class AutopilotAbility250 { // } // } } - if (AutopilotAbilityManager.getInstance().getListener() != null) { - AutopilotAbilityManager.getInstance().getListener().onAutopilotAbility(isAutopilotAbility, unableAutopilotReason); - } + AutopilotAbilityManager.getInstance().onAutopilotAbility(isAutopilotAbility, unableAutopilotReason); } public synchronized void start() { diff --git a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/autopilot/ability/AutopilotAbilityManager.java b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/autopilot/ability/AutopilotAbilityManager.java index 1e80fe6805..429e08162f 100644 --- a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/autopilot/ability/AutopilotAbilityManager.java +++ b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/autopilot/ability/AutopilotAbilityManager.java @@ -10,11 +10,13 @@ import com.zhidao.support.adas.high.OnAdasListener; import com.zhidao.support.adas.high.common.Constants; import com.zhidao.support.adas.high.common.CupidLogUtils; +import java.util.Set; import java.util.Timer; import java.util.TimerTask; import java.util.regex.Matcher; import java.util.regex.Pattern; +import chassis.Chassis; import chassis.ChassisStatesOuterClass; import mogo.telematics.pad.MessagePad; import system_master.SystemStatusInfo; @@ -38,37 +40,14 @@ public class AutopilotAbilityManager { private AutopilotAbility250 autopilotAbility250; private Timer startTimer; /** - * 身份/车型 + * 不能启动自动驾驶的档位 */ - private String identityMode; + private Set unableLaunchAutopilotGear; public interface OnAutopilotAbilityListener { void onStatusQuery();//查询是被调用 } - /** - * 身份规则定义根据app/productFlavors/README.md - * * taxi司机屏 Taxi_Driver_Base (东风、红旗司机端) - * * taxi乘客屏 Taxi_Passenger_Base (东风、红旗乘客端) - * * bus司机屏 Bus_Driver_Base (金旅小巴司机端) - * * Bus_Driver_Van (开沃小巴司机端) - * * bus乘客屏 Bus_Passenger_Base (金旅、开沃小巴乘客端) - * * Bus_Passenger_M1 (M1小巴乘客端) - * * Bus_Passenger_M2 (M2小巴乘客端) - * * 清扫车 Sweeper_Driver_FT (福田清扫车司机端) - *

- * 此定义不区分角色,只区分业务线和车型 - */ - private interface IDENTITY_MODE { - String TAXI_DRIVER_BASE = "Taxi_Driver_Base";//(东风、红旗司机端) - String TAXI_PASSENGER_BASE = "Taxi_Passenger_Base";//(东风、红旗乘客端) - String BUS_DRIVER_BASE = "Bus_Driver_Base";//(金旅小巴司机端) - String BUS_DRIVER_VAN = "Bus_Driver_Van";//(开沃小巴司机端) - String BUS_PASSENGER_BASE = "Bus_Passenger_Base";//(金旅、开沃小巴乘客端) - String BUS_PASSENGER_M1 = "Bus_Passenger_M1";//(M1小巴乘客端) - String BUS_PASSENGER_M2 = "Bus_Passenger_M2";//(M2小巴乘客端) - String SWEEPER_DRIVER_FT = "Sweeper_Driver_FT";//(福田清扫车司机端) - } private AutopilotAbilityManager() { } @@ -84,8 +63,22 @@ public class AutopilotAbilityManager { return INSTANCE; } - public void setIdentityMode(String identityMode) { - this.identityMode = identityMode; + public void setUnableLaunchAutopilotGear(Set unableLaunchAutopilotGear) { + this.unableLaunchAutopilotGear = unableLaunchAutopilotGear; + } + + /** + * 获取当前档位是否能启动自动驾驶 如果不传递默认可以启动 + * 不能启动自驾档位规则:app/README.md/不能启动自动驾驶的档位 + * + * @param currentGear 当前档位 + * @return 是否能启动自驾 + */ + public boolean isLaunchAutopilot(Chassis.GearPosition currentGear) { + if (unableLaunchAutopilotGear != null && !unableLaunchAutopilotGear.isEmpty()) { + return !unableLaunchAutopilotGear.contains(currentGear); + } + return true; } public void setCarConfig(MessagePad.CarConfigResp carConfig) { @@ -105,8 +98,10 @@ public class AutopilotAbilityManager { this.listener = listener; } - public OnAdasListener getListener() { - return listener; + public void onAutopilotAbility(boolean isAutopilotAbility, String unableAutopilotReason) { + if (listener != null) { + listener.onAutopilotAbility(isAutopilotAbility, unableAutopilotReason); + } } public void setHandler(Handler handler) { @@ -243,32 +238,4 @@ public class AutopilotAbilityManager { } return version; } - - /** - * 金旅、开沃小巴乘客端 - */ - public boolean isBusPassenger() { - return IDENTITY_MODE.BUS_PASSENGER_BASE.equalsIgnoreCase(identityMode); - } - - /** - * 开沃小巴司机端 - */ - public boolean isBusDriverVan() { - return IDENTITY_MODE.BUS_DRIVER_VAN.equalsIgnoreCase(identityMode); - } - - /** - * 金旅小巴司机端 - */ - public boolean isBusDriver() { - return IDENTITY_MODE.BUS_DRIVER_BASE.equalsIgnoreCase(identityMode); - } - - /** - * 福田清扫车司机端 - */ - public boolean isSweeperDriverFutian() { - return IDENTITY_MODE.SWEEPER_DRIVER_FT.equalsIgnoreCase(identityMode); - } } diff --git a/libraries/mogo-map-api/src/main/java/com/mogo/map/IMogoMap.java b/libraries/mogo-map-api/src/main/java/com/mogo/map/IMogoMap.java index 07ba7245d8..5fad00ad88 100644 --- a/libraries/mogo-map-api/src/main/java/com/mogo/map/IMogoMap.java +++ b/libraries/mogo-map-api/src/main/java/com/mogo/map/IMogoMap.java @@ -46,6 +46,11 @@ public interface IMogoMap { */ IMogoMarker addMarker(String tag, MogoMarkerOptions options); + /** + * 清除所有marker + */ + void clearAllMarkers(); + /** * 批量更新锚点位置 * diff --git a/libraries/mogo-map-api/src/main/java/com/mogo/map/marker/IMogoMarkerManager.java b/libraries/mogo-map-api/src/main/java/com/mogo/map/marker/IMogoMarkerManager.java index 8e7e2db59f..f4c23bb89b 100644 --- a/libraries/mogo-map-api/src/main/java/com/mogo/map/marker/IMogoMarkerManager.java +++ b/libraries/mogo-map-api/src/main/java/com/mogo/map/marker/IMogoMarkerManager.java @@ -38,6 +38,11 @@ public interface IMogoMarkerManager { */ List addMarkers(String tag, ArrayList options, boolean moveToCenter); + /** + * 清除所有marker + */ + void clearAllMarker(); + /** * 批量更新锚点位置 * diff --git a/libraries/mogo-map/src/main/java/com/mogo/map/AMapWrapper.java b/libraries/mogo-map/src/main/java/com/mogo/map/AMapWrapper.java index d471356be8..a517eca07a 100644 --- a/libraries/mogo-map/src/main/java/com/mogo/map/AMapWrapper.java +++ b/libraries/mogo-map/src/main/java/com/mogo/map/AMapWrapper.java @@ -3,10 +3,10 @@ package com.mogo.map; import android.annotation.SuppressLint; import android.content.Context; import android.graphics.Point; +import android.util.Log; import android.util.Pair; import com.mogo.eagle.core.data.config.FunctionBuildConfig; -import com.mogo.eagle.core.data.map.MogoLatLng; import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; import com.mogo.map.center.CenterLine; import com.mogo.map.marker.AMapInfoWindowAdapter; @@ -108,6 +108,13 @@ public class AMapWrapper implements IMogoMap { return mogoMarker; } + @Override + public void clearAllMarkers() { + if (sAMap != null) { + sAMap.clearAllMarkers(); + } + } + @SuppressLint("NewApi") @Override public void updateBatchMarkerPosition(HashMap optionsArrayList) { @@ -119,6 +126,9 @@ public class AMapWrapper implements IMogoMap { MarkerSimpleData markerOptions = ObjectUtils.fromTrafficData(trackedObject); if (markerOptions != null) { markerOptionsArrayList.add(markerOptions); + if(markerOptions.id == 65061){ + Log.i("emArrow","time :" + markerOptions.time + " , lat : " + markerOptions.lat + " , lon : " + markerOptions.lon); + } } }); long time = markerOptionsArrayList.get(0).getTime(); diff --git a/libraries/mogo-map/src/main/java/com/mogo/map/MogoMarkerManager.java b/libraries/mogo-map/src/main/java/com/mogo/map/MogoMarkerManager.java index ceb1a65a6b..db9333517e 100644 --- a/libraries/mogo-map/src/main/java/com/mogo/map/MogoMarkerManager.java +++ b/libraries/mogo-map/src/main/java/com/mogo/map/MogoMarkerManager.java @@ -71,6 +71,15 @@ public class MogoMarkerManager implements IMogoMarkerManager { } } + @Override + public void clearAllMarker() { + try{ + MogoMap.getInstance().getMogoMap().clearAllMarkers(); + }catch (Exception e){ + e.printStackTrace(); + } + } + @Override public void updateBatchMarkerPosition(HashMap optionsArrayList) { try {