Merge branch 'dev_robotaxi-d_241112_6.8.0' of gitlab.zhidaoauto.com:SCA/L4HA/AndroidApp/MoGoEagleEye into dev_robotaxi-d_241112_6.8.0
This commit is contained in:
@@ -597,6 +597,11 @@ class DriverM1Model {
|
||||
parameters.endLatLon =
|
||||
AutopilotControlParameters.AutoPilotLonLat(mCurrentOrder?.wgs84Lat!!, mCurrentOrder?.wgs84Lon!!)
|
||||
parameters.vehicleType = VEHICLE_TYPE
|
||||
|
||||
// TODO 这里需要增加传入 白名单点列表、黑名单点列表,顺序按照服务端传入顺序为准。
|
||||
//parameters.wayLatLons
|
||||
//parameters.blackLatLons
|
||||
|
||||
if (parameters.autoPilotLine == null) {
|
||||
parameters.autoPilotLine = AutopilotControlParameters.AutoPilotLine(
|
||||
mCurrentOrder!!.lineId.toLong(), mCurrentOrder!!.lineName,
|
||||
|
||||
@@ -1190,6 +1190,11 @@ object CharterPassengerModel {
|
||||
parameters.endName = PinYinUtil.getPinYinHeadChar(orderInfo.siteName)
|
||||
parameters.startLatLon = AutoPilotLonLat(startWgsLat, startWgsLon)
|
||||
parameters.endLatLon = AutoPilotLonLat(endWgsLat, endWgsLon)
|
||||
|
||||
// TODO 这里需要增加传入 白名单点列表、黑名单点列表,顺序按照服务端传入顺序为准。
|
||||
//parameters.wayLatLons
|
||||
//parameters.blackLatLons
|
||||
|
||||
locusInfo?.let { locus ->
|
||||
if (parameters.autoPilotLine == null) {
|
||||
parameters.autoPilotLine = AutoPilotLine(
|
||||
|
||||
@@ -4,4 +4,6 @@ import com.mogo.och.common.module.wigets.media.MediaItem
|
||||
|
||||
interface IMediaDispatch {
|
||||
fun diapatchMedia(list :MutableList<MediaItem>)
|
||||
fun setMediaPause(){}
|
||||
fun setMediaResume(){}
|
||||
}
|
||||
@@ -12,4 +12,18 @@ object MediaManager : CallerBase<IMediaDispatch>() {
|
||||
}
|
||||
}
|
||||
|
||||
fun setMediaResume(){
|
||||
M_LISTENERS.forEach {
|
||||
val listener = it.value
|
||||
listener.setMediaResume()
|
||||
}
|
||||
}
|
||||
|
||||
fun setMediaPause(){
|
||||
M_LISTENERS.forEach {
|
||||
val listener = it.value
|
||||
listener.setMediaPause()
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -12,6 +12,7 @@ import com.mogo.och.common.module.R
|
||||
import com.mogo.och.common.module.biz.media.IMediaDispatch
|
||||
import com.mogo.och.common.module.biz.media.MediaManager
|
||||
import com.mogo.och.common.module.manager.download.DownloadManager
|
||||
import com.mogo.och.common.module.manager.loop.BizLoopManager
|
||||
import com.mogo.och.common.module.utils.RxUtils
|
||||
import com.shuyu.gsyvideoplayer.GSYVideoManager
|
||||
import io.reactivex.disposables.Disposable
|
||||
@@ -113,6 +114,20 @@ class MediaPlayerFragment :
|
||||
fisrtData = RxUtils.createSubscribe(3_000) {}
|
||||
setHightPriorityMediaItem(list)
|
||||
}
|
||||
|
||||
override fun setMediaPause() {
|
||||
super.setMediaPause()
|
||||
BizLoopManager.runInMainThread{
|
||||
imageVideoRotationView.setPause()
|
||||
}
|
||||
}
|
||||
|
||||
override fun setMediaResume() {
|
||||
super.setMediaResume()
|
||||
BizLoopManager.runInMainThread {
|
||||
imageVideoRotationView.setResume()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
class MediaPlayerPresenter(view: MediaPlayerFragment?) :
|
||||
|
||||
@@ -1,11 +1,19 @@
|
||||
package com.mogo.och.shuttle.weaknet.passenger.ui
|
||||
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import android.widget.FrameLayout
|
||||
import com.mogo.commons.mvp.MvpFragment
|
||||
import com.mogo.eagle.core.utilcode.util.AppUtils
|
||||
import com.mogo.och.common.module.biz.media.MediaManager
|
||||
import com.mogo.och.common.module.manager.loop.BizLoopManager
|
||||
import com.mogo.och.common.module.manager.transform.OchTransform
|
||||
import com.mogo.och.common.module.manager.transform.OchTransformDispatch
|
||||
import com.mogo.och.shuttle.weaknet.passenger.R
|
||||
import com.mogo.och.shuttle.weaknet.passenger.presenter.PM2Presenter
|
||||
import com.mogo.och.common.module.wigets.media.MediaPlayerFragment
|
||||
import kotlinx.android.synthetic.main.shuttle_p_m2_fragment.tv_shuttle_b2_p_version
|
||||
import kotlinx.android.synthetic.main.shuttle_p_m2_fragment.video_fragment
|
||||
|
||||
|
||||
/**
|
||||
@@ -19,6 +27,27 @@ class PM2BaseFragment :
|
||||
private var hdMapFragment : PM2HPMapFragment? = null
|
||||
private var mediaFragment : MediaPlayerFragment? = null
|
||||
|
||||
private val ochTransform = object : OchTransformDispatch{
|
||||
override fun setVideoView(target: View?) {
|
||||
super.setVideoView(target)
|
||||
if(target!=null){
|
||||
BizLoopManager.runInMainThread{
|
||||
target.id = R.id.video_show
|
||||
val params = FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,ViewGroup.LayoutParams.MATCH_PARENT)
|
||||
video_fragment.addView(target,params)
|
||||
MediaManager.setMediaPause()
|
||||
}
|
||||
}else{
|
||||
BizLoopManager.runInMainThread{
|
||||
findViewById<View>(R.id.video_show)?.let {
|
||||
video_fragment.removeView(it)
|
||||
MediaManager.setMediaResume()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
override fun getLayoutId(): Int {
|
||||
return R.layout.shuttle_p_m2_fragment
|
||||
}
|
||||
@@ -31,6 +60,12 @@ class PM2BaseFragment :
|
||||
tv_shuttle_b2_p_version.text = "版本:${AppUtils.getAppVersionName()}"
|
||||
//隐藏小地图
|
||||
initFragment()
|
||||
OchTransform.addListener(TAG,ochTransform)
|
||||
}
|
||||
|
||||
override fun onDestroy() {
|
||||
OchTransform.removeListener(TAG)
|
||||
super.onDestroy()
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<item name="video_show" type="id" />
|
||||
</resources>
|
||||
@@ -1013,6 +1013,11 @@ public class TaxiModel {
|
||||
parameters.endName = PinYinUtil.getPinYinHeadChar(mCurrentOCHOrder.endSiteAddr); // 终点名称拼音首字母大写:科学城C区三号门(KXCCQSHM)
|
||||
parameters.startLatLon = new AutopilotControlParameters.AutoPilotLonLat(startWgsLat, startWgsLon);
|
||||
parameters.endLatLon = new AutopilotControlParameters.AutoPilotLonLat(endWgsLat, endWgsLon);
|
||||
|
||||
// TODO 这里需要增加传入 白名单点列表、黑名单点列表,顺序按照服务端传入顺序为准。
|
||||
//parameters.wayLatLons
|
||||
//parameters.blackLatLons
|
||||
|
||||
if (parameters.autoPilotLine == null) {
|
||||
parameters.autoPilotLine = new AutopilotControlParameters.AutoPilotLine(
|
||||
mCurrentOCHOrder.lineId, mCurrentOCHOrder.lineName,
|
||||
|
||||
@@ -161,6 +161,11 @@ object AutopilotManager : IOchAutopilotStatusListener {
|
||||
parameters.startLatLon =
|
||||
AutopilotControlParameters.AutoPilotLonLat(startWgsLat, startWgsLon)
|
||||
parameters.endLatLon = AutopilotControlParameters.AutoPilotLonLat(endWgsLat, endWgsLon)
|
||||
|
||||
// TODO 这里需要增加传入 白名单点列表、黑名单点列表,顺序按照服务端传入顺序为准。
|
||||
//parameters.wayLatLons
|
||||
//parameters.blackLatLons
|
||||
|
||||
if (parameters.autoPilotLine == null) {
|
||||
parameters.autoPilotLine = AutopilotControlParameters.AutoPilotLine(
|
||||
TaxiPassengerModel.currentOCHOrder!!.lineId,
|
||||
|
||||
@@ -1288,6 +1288,11 @@ object TaxiTaskModel {
|
||||
parameters.startLatLon =
|
||||
AutopilotControlParameters.AutoPilotLonLat(startWgsLat, startWgsLon)
|
||||
parameters.endLatLon = AutopilotControlParameters.AutoPilotLonLat(endWgsLat, endWgsLon)
|
||||
|
||||
// TODO 这里需要增加传入 白名单点列表、黑名单点列表,顺序按照服务端传入顺序为准。
|
||||
//parameters.wayLatLons
|
||||
//parameters.blackLatLons
|
||||
|
||||
if (parameters.autoPilotLine == null) {
|
||||
parameters.autoPilotLine = AutopilotControlParameters.AutoPilotLine(
|
||||
mCurrentTaskTrajectory!!.lineId,
|
||||
|
||||
@@ -153,6 +153,11 @@ object AutopilotManager : IOchAutopilotStatusListener {
|
||||
parameters.startLatLon =
|
||||
AutopilotControlParameters.AutoPilotLonLat(startWgsLat, startWgsLon)
|
||||
parameters.endLatLon = AutopilotControlParameters.AutoPilotLonLat(endWgsLat, endWgsLon)
|
||||
|
||||
// TODO 这里需要增加传入 白名单点列表、黑名单点列表,顺序按照服务端传入顺序为准。
|
||||
//parameters.wayLatLons
|
||||
//parameters.blackLatLons
|
||||
|
||||
if (parameters.autoPilotLine == null) {
|
||||
if (TaxiPassengerModel.currentLineId != null
|
||||
&& TaxiPassengerModel.currentTrajectoryInfo != null
|
||||
|
||||
@@ -173,6 +173,7 @@ class ReportTypeView @JvmOverloads constructor(
|
||||
reportTypeGroup.visibility = View.GONE
|
||||
tvReportSuccess.visibility = View.GONE
|
||||
tvOneClickReportTitle.text = String.format(resources.getString(R.string.identified_vehicle_malfunction),5)
|
||||
hasReportOperate = false
|
||||
oneClickTimer?.cancel()
|
||||
oneClickTimer = object : CountDownTimer(5000, 1000) {
|
||||
override fun onTick(count: Long) {
|
||||
@@ -186,12 +187,14 @@ class ReportTypeView @JvmOverloads constructor(
|
||||
if(!hasReportOperate){
|
||||
ThreadUtils.runOnUiThread {
|
||||
this@ReportTypeView.visibility = View.GONE
|
||||
clickListener?.closeReportView()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
oneClickTimer?.start()
|
||||
//请求一键上报故障码
|
||||
level = 1
|
||||
CallerDevaToolsManager.getCategories(BadCaseConfig.tenantId,level,0,4,1)
|
||||
}
|
||||
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
package com.mogo.eagle.core.function.hmi.ui.widget
|
||||
|
||||
import android.content.Context
|
||||
import android.graphics.drawable.Drawable
|
||||
import android.graphics.drawable.TransitionDrawable
|
||||
import android.os.CountDownTimer
|
||||
import android.text.TextUtils
|
||||
@@ -14,8 +13,10 @@ import androidx.core.content.ContextCompat
|
||||
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener
|
||||
import com.mogo.eagle.core.function.api.autopilot.IMoGoColdStartStateListener
|
||||
import com.mogo.eagle.core.function.api.hmi.view.IViewControlListener
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerColdStartStateListenerManager
|
||||
import com.mogo.eagle.core.function.call.hmi.CallerHmiManager
|
||||
import com.mogo.eagle.core.function.call.hmi.CallerHmiViewControlListenerManager
|
||||
import com.mogo.eagle.core.function.hmi.R
|
||||
import com.mogo.eagle.core.function.hmi.util.FrameAnimatorContainerUtils
|
||||
@@ -45,6 +46,8 @@ class ColdStartProcessView @JvmOverloads constructor(
|
||||
const val TAG = "ColdStartProcessView"
|
||||
const val LOAD_SSM_WAITING_TIME = 180000L //SSM加载超时等待时间
|
||||
const val COLD_START_WAITING_TIME = 600000L //冷启动超时等待时间
|
||||
const val COLD_START_SUCCESS_SHOW_TIME = 3000L //冷启动成功视图展示时长
|
||||
const val COLD_START_SUCCESS_TICK_TIME = 500L //冷启动成功视图呼吸时长
|
||||
}
|
||||
|
||||
private var ipcConnectStatus = false //连接域控状态,默认是未连接
|
||||
@@ -62,6 +65,9 @@ class ColdStartProcessView @JvmOverloads constructor(
|
||||
private var coldStartProcessNormalAnim: FrameAnimatorContainerUtils ?= null
|
||||
private var coldStartProcessAbnormalAnim: FrameAnimatorContainerUtils ?= null
|
||||
|
||||
private var transition: TransitionDrawable ?= null
|
||||
private var coldStartSuccessTimer: CountDownTimer?= null //冷启动成功动画倒计时
|
||||
|
||||
init {
|
||||
LayoutInflater.from(context).inflate(R.layout.view_cold_start_process, this, true)
|
||||
initView()
|
||||
@@ -72,37 +78,17 @@ class ColdStartProcessView @JvmOverloads constructor(
|
||||
coldStartProcessAbnormalAnim = FrameAnimatorContainerUtils(R.array.cold_start_process_abnormal,40,ivColdStartProcess)
|
||||
|
||||
|
||||
val transition = TransitionDrawable(
|
||||
transition = TransitionDrawable(
|
||||
arrayOf(
|
||||
ContextCompat.getDrawable(context, R.drawable.icon_cold_start_success_01), // 当前图片
|
||||
ContextCompat.getDrawable(context, R.drawable.icon_cold_start_success_02) // 要渐变到的图片
|
||||
)
|
||||
)
|
||||
ivColdStartProcess.setImageDrawable(transition)
|
||||
transition.isCrossFadeEnabled = true
|
||||
var tag = true
|
||||
val testTimer = object: CountDownTimer(30000,500){
|
||||
override fun onTick(millisUntilFinished: Long) {
|
||||
ThreadUtils.runOnUiThread {
|
||||
tag = if(tag){
|
||||
transition.startTransition(500)
|
||||
false
|
||||
}else{
|
||||
transition.reverseTransition(500)
|
||||
true
|
||||
}
|
||||
}
|
||||
}
|
||||
transition?.isCrossFadeEnabled = true
|
||||
|
||||
override fun onFinish() {
|
||||
ThreadUtils.runOnUiThread {
|
||||
this@ColdStartProcessView.visibility = View.GONE
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
ivColdStartProcess.setOnClickListener {
|
||||
testTimer.start()
|
||||
CallerHmiManager.showColdStartWindow()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -138,17 +124,10 @@ class ColdStartProcessView @JvmOverloads constructor(
|
||||
) {
|
||||
if(status == AdasConstants.IpcConnectionStatus.CONNECTED){
|
||||
//域控连接成功
|
||||
if(coldStartProcessAbnormalAnim?.isPlaying() == true){
|
||||
coldStartProcessAbnormalAnim?.stop()
|
||||
}
|
||||
coldStartProcessNormalAnim?.start()
|
||||
|
||||
coldStartNormalView()
|
||||
}else{
|
||||
//域控连接失败
|
||||
if(coldStartProcessNormalAnim?.isPlaying() == true){
|
||||
coldStartProcessNormalAnim?.stop()
|
||||
}
|
||||
coldStartProcessAbnormalAnim?.start()
|
||||
coldStartAbnormalView()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -158,16 +137,14 @@ class ColdStartProcessView @JvmOverloads constructor(
|
||||
* HQ、M1 MAP350开始弃用,其他车型MAP360开始弃用
|
||||
*/
|
||||
override fun onAutopilotStatusRespByQuery(status: SystemStatusInfo.StatusInfo){
|
||||
ThreadUtils.runOnUiThread{
|
||||
//SSM连接成功
|
||||
connectSSMSuccess()
|
||||
//通过autoPilotReady判断冷启动是否成功
|
||||
if(status.hasAutoPilotReady() && status.autoPilotReady && !coldStartStatus){
|
||||
coldStartStatus = true
|
||||
showColdStartSuccessView()
|
||||
//记录冷启动成功时间
|
||||
ColdStartConfig.setColdStartSuccessTime(System.currentTimeMillis())
|
||||
}
|
||||
//SSM连接成功
|
||||
coldStartNormalView()
|
||||
//通过autoPilotReady判断冷启动是否成功
|
||||
if(status.hasAutoPilotReady() && status.autoPilotReady && !coldStartStatus){
|
||||
coldStartStatus = true
|
||||
showColdStartSuccessView()
|
||||
//记录冷启动成功时间
|
||||
ColdStartConfig.setColdStartSuccessTime(System.currentTimeMillis())
|
||||
}
|
||||
}
|
||||
|
||||
@@ -178,11 +155,35 @@ class ColdStartProcessView @JvmOverloads constructor(
|
||||
* @param statusInf 数据
|
||||
*/
|
||||
override fun onSystemStatus(statusInf: SsmInfo.SsmStatusInf){
|
||||
|
||||
//SSM连接成功
|
||||
coldStartNormalView()
|
||||
//版本兼容
|
||||
if(parseVersion(true, statusInf.masterVersion) > 40600){
|
||||
//主动查询冷启动状态
|
||||
if(!newColdStart){
|
||||
newColdStart = true
|
||||
CallerAutoPilotControlManager.sendSsmFuncQueryColdStartState()
|
||||
}
|
||||
}else{
|
||||
newColdStart = false
|
||||
//通过autoPilotReady判断冷启动是否成功
|
||||
Log.i(TAG,"statusInf.autoPilotReady="+statusInf.autoPilotReady)
|
||||
if(statusInf.hasAutoPilotReady() && statusInf.autoPilotReady && !coldStartStatus){
|
||||
coldStartStatus = true
|
||||
showColdStartSuccessView()
|
||||
//记录冷启动成功时间
|
||||
ColdStartConfig.setColdStartSuccessTime(System.currentTimeMillis())
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 冷启动状态
|
||||
* 冷启动状态变更上报以及查询状态
|
||||
*
|
||||
* @param token 唯一消息ID
|
||||
* @param timestamp 消息发送时间 单位:毫秒
|
||||
* @param isQuery 是否是查询 ture:查询相应的结果 false:表示状态变动域控主动推送
|
||||
* @param coldStartState 数据 null表示 PadSsmMsg中的消息体为null
|
||||
*/
|
||||
override fun onColdStartState(
|
||||
token: Long,
|
||||
@@ -190,15 +191,93 @@ class ColdStartProcessView @JvmOverloads constructor(
|
||||
isQuery: Boolean,
|
||||
coldStartState: SsmInfo.ColdStartState?
|
||||
) {
|
||||
|
||||
if(newColdStart){
|
||||
coldStartState?.let{
|
||||
Log.i(TAG,"节点自上报冷启动状态="+it.eventStatus)
|
||||
ThreadUtils.runOnUiThread{
|
||||
if(it.eventStatus == SsmInfo.CSState.COLD_START_READY){
|
||||
if(!coldStartStatus){
|
||||
//冷启动就绪
|
||||
coldStartStatus = true
|
||||
showColdStartSuccessView()
|
||||
}
|
||||
//记录冷启动成功时间
|
||||
ColdStartConfig.setColdStartSuccessTime(System.currentTimeMillis())
|
||||
}
|
||||
if(it.eventStatus == SsmInfo.CSState.COLD_START_UNREADY || it.eventStatus == SsmInfo.CSState.COLD_START_TIMEOUT){
|
||||
//展示冷启动失败视图
|
||||
showColdStartFailView()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun connectSSMSuccess(){
|
||||
|
||||
/**
|
||||
* 冷启动进行中,不存在异常项
|
||||
*/
|
||||
private fun coldStartNormalView(){
|
||||
ThreadUtils.runOnUiThread {
|
||||
if(coldStartProcessAbnormalAnim?.isPlaying() == true){
|
||||
coldStartProcessAbnormalAnim?.stop()
|
||||
}
|
||||
if(coldStartProcessNormalAnim?.isPlaying() == false){
|
||||
coldStartProcessNormalAnim?.start()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 冷启动进行中,存在异常项
|
||||
*/
|
||||
private fun coldStartAbnormalView(){
|
||||
ThreadUtils.runOnUiThread {
|
||||
if(coldStartProcessNormalAnim?.isPlaying() == true){
|
||||
coldStartProcessNormalAnim?.stop()
|
||||
}
|
||||
if(coldStartProcessAbnormalAnim?.isPlaying() == false){
|
||||
coldStartProcessAbnormalAnim?.start()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 冷启动成功视图
|
||||
*/
|
||||
private fun showColdStartSuccessView(){
|
||||
ThreadUtils.runOnUiThread {
|
||||
var label = true
|
||||
coldStartSuccessTimer = object: CountDownTimer(COLD_START_SUCCESS_SHOW_TIME,COLD_START_SUCCESS_TICK_TIME){
|
||||
override fun onTick(millisUntilFinished: Long) {
|
||||
ThreadUtils.runOnUiThread {
|
||||
label = if(label){
|
||||
transition?.startTransition(500)
|
||||
false
|
||||
}else{
|
||||
transition?.reverseTransition(500)
|
||||
true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
override fun onFinish() {
|
||||
ThreadUtils.runOnUiThread {
|
||||
this@ColdStartProcessView.visibility = View.GONE
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
coldStartSuccessTimer?.start()
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 冷启动失败视图
|
||||
*/
|
||||
private fun showColdStartFailView(){
|
||||
ThreadUtils.runOnUiThread {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
private val pattern = Pattern.compile("\\d+\\.\\d+\\.\\d+")
|
||||
|
||||
@@ -43,12 +43,20 @@ fun AutopilotControlParameters.toRouteInfo(): MessagePad.RouteInfo {
|
||||
endLoc.latitude = it.lat
|
||||
endLoc.longitude = it.lon
|
||||
}
|
||||
// Routing算路白名单点赋值
|
||||
this.wayLatLons?.forEach {
|
||||
val locBuilder = MessagePad.Location.newBuilder()
|
||||
locBuilder.latitude = it.lat
|
||||
locBuilder.longitude = it.lon
|
||||
routeInfo.addWayPoints(locBuilder.build())
|
||||
}
|
||||
// Routing算路黑名单点赋值
|
||||
this.blackLatLons?.forEach {
|
||||
val locBuilder = MessagePad.Location.newBuilder()
|
||||
locBuilder.latitude = it.lat
|
||||
locBuilder.longitude = it.lon
|
||||
routeInfo.addBlackPoints(locBuilder.build())
|
||||
}
|
||||
if (this.routeID > 0) {
|
||||
routeInfo.routeID = this.routeID
|
||||
}
|
||||
@@ -61,7 +69,7 @@ fun AutopilotControlParameters.toRouteInfo(): MessagePad.RouteInfo {
|
||||
routeInfo.startLocation = startLoc.build()
|
||||
routeInfo.endLocation = endLoc.build()
|
||||
|
||||
//20240523 用于表示判断是否是站点下单。默认false:起点下单,接管下单; true: 中间站点下单
|
||||
// TODO 20240523 用于表示判断是否是站点下单。默认false:起点下单,接管下单; true: 中间站点下单
|
||||
//routeInfo.isStation = false
|
||||
|
||||
val line = MessagePad.Line.newBuilder()
|
||||
@@ -121,6 +129,7 @@ class AutopilotControlParameters {
|
||||
@JvmField
|
||||
var startLatLon: AutoPilotLonLat? = null
|
||||
|
||||
// Bus 需要将中间站点填充进去(运营平台完成此步骤)
|
||||
@JvmField
|
||||
var wayLatLons: List<AutoPilotLonLat>? = null // Routing 给算路引擎使用的经停点列表,不是真正的要停车
|
||||
|
||||
|
||||
@@ -57,6 +57,9 @@ interface IMoGoAutopilotControlProvider : IMoGoFunctionServerProvider {
|
||||
|
||||
/**
|
||||
* 发送 轨迹下载请求
|
||||
*
|
||||
* @param autoPilotLine 线路相关参数详情见PB message_pad.proto -> Line
|
||||
* @param routeInfo 20240523 进行自动算路,务必下单时候携带自动驾驶路径信息,否则可不填!
|
||||
*/
|
||||
fun sendTrajectoryDownloadReq(autoPilotLine: AutopilotControlParameters.AutoPilotLine, routeInfo: MessagePad.RouteInfo?)
|
||||
|
||||
|
||||
@@ -204,7 +204,7 @@ object CallerAutoPilotControlManager {
|
||||
}
|
||||
|
||||
/**
|
||||
* 发送 轨迹下载请求
|
||||
* 发送 轨迹下载请求。带有Routing的参数,让MAP进行离线算路。
|
||||
*/
|
||||
fun sendTrajectoryDownloadReq(autopilotControlParameters: AutopilotControlParameters) {
|
||||
if (AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)) {
|
||||
@@ -216,6 +216,7 @@ object CallerAutoPilotControlManager {
|
||||
|
||||
/**
|
||||
* 发送 轨迹下载请求
|
||||
* @param autoPilotLine 启动算路参数
|
||||
*/
|
||||
fun sendTrajectoryDownloadReq(autoPilotLine: AutopilotControlParameters.AutoPilotLine) {
|
||||
if (AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)) {
|
||||
|
||||
Reference in New Issue
Block a user