Merge branch 'dev_robotaxi-d_230912_6.1.0' of gitlab.zhidaoauto.com:SCA/L4HA/AndroidApp/MoGoEagleEye into dev_robotaxi-d_230912_6.1.0

# Conflicts:
#	OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/base/TaxiFragment.kt
This commit is contained in:
wangmingjun
2023-09-18 18:04:41 +08:00
14 changed files with 282 additions and 85 deletions

View File

@@ -3,6 +3,7 @@ package com.mogo.och.charter.passenger.bean.response
import com.mogo.commons.AbsMogoApplication
import com.mogo.eagle.core.data.BaseData
import com.mogo.och.common.module.utils.CoordinateCalculateRouteUtil
import com.mogo.och.common.module.utils.DateTimeUtil
/**
*
@@ -65,6 +66,20 @@ data class OrderInfoResponse(val data: OrderInfo?) : BaseData() {
return null
}
}
override fun toString(): String {
return "OrderInfo(orderNo=$orderNo, sn=$sn, productType=${getProductTypeName()}, lineId=$lineId, lineName=$lineName, startSiteId=$startSiteId, startSiteName=$startSiteName, startSiteNameKr=$startSiteNameKr, siteId=$siteId, siteName=$siteName, siteNameKr=$siteNameKr, wgs84Lat=$wgs84Lat, wgs84Lon=$wgs84Lon, startTime=${DateTimeUtil.formatLongToString(startTime?:System.currentTimeMillis(), DateTimeUtil.MM_dd_HH_mm)}, endTime=${DateTimeUtil.formatLongToString(endTime?:System.currentTimeMillis(), DateTimeUtil.MM_dd_HH_mm)}, passengerPhone=$passengerPhone, arriveStatus=$arriveStatus)"
}
fun getProductTypeName(): String {
return when (productType) {
M1_LOVE -> "爱情号"
M1_FAMILY -> "家庭号"
M1_FRIENDLY -> "朋友号"
else -> "未知"
}
}
}
companion object{
val ARRIVING = 1

View File

@@ -42,6 +42,7 @@ import com.mogo.och.common.module.biz.network.OchCommonServiceCallback
import com.mogo.och.common.module.manager.CharterSendTripInfoManager
import com.mogo.och.common.module.manager.CharterSendTripInfoManager.LEAVE_STATION
import com.mogo.och.common.module.manager.autopilotmanager.OCHAdasAbilityManager
import com.mogo.och.common.module.manager.orderlogmanager.OchChainLogManager
import com.mogo.och.common.module.utils.CoordinateCalculateRouteUtil
import com.mogo.och.common.module.utils.DateTimeUtil
import com.mogo.och.common.module.utils.PinYinUtil
@@ -393,6 +394,7 @@ object CharterPassengerModel {
this.orderInfo = orderData
setOrderStatus(OrderStatusEnum.OrdersWithLine)
updateAutopilotControlParameters()
OchChainLogManager.writeChainLog(this.orderInfo.toString(),"更改线路成功:${orderData.siteName}")
} else {
this.orderInfo = orderData
}
@@ -727,6 +729,7 @@ object CharterPassengerModel {
private fun setOrderStatus(orderStatus: OrderStatusEnum) {
if (this.orderStatus != orderStatus) {
d(M_BUS_P + TAG, "${this.orderInfo?.orderNo}新的状态:$orderStatus")
OchChainLogManager.writeChainLog(this.orderInfo.toString(),"新的状态:$orderStatus")
this.orderStatus = orderStatus
for (callback in orderStatusChangeListeners.values) {
callback.onStatusChange(this.orderStatus)
@@ -737,6 +740,7 @@ object CharterPassengerModel {
fun setEndOrderStatus() {
UiThreadHandler.postDelayed({
setOrderStatus(OrderStatusEnum.NoOrderUse)
OchChainLogManager.writeChainLog(this.orderInfo.toString(),"手动结束订单:$orderStatus")
}, 1000)
}
@@ -933,6 +937,7 @@ object CharterPassengerModel {
}
if (order != null && lineId != null && siteId != null) {
OchChainLogManager.writeChainLog(this.orderInfo.toString(),"到站成功:${order.siteName}")
VoiceManager.arrivedStation(
order.siteName!!,
order.siteNameKr ?: "",

View File

@@ -549,13 +549,13 @@ object TrajectoryAndDistanceManager: IMoGoPlanningRottingListener{
}
}
@ChainLog(
linkChainLog = ChainConstant.CHAIN_TYPE_OCH,
linkCode = ChainConstant.CHAIN_SOURCE_OCH,
nodeAliasCode = ChainConstant.CHAIN_CODE_OCH_COMMON_DISTANCE,
paramIndexes = [0,1]
)
fun writeLog(carLocationInfo: String, location: String) {
// @ChainLog(
// linkChainLog = ChainConstant.CHAIN_TYPE_OCH,
// linkCode = ChainConstant.CHAIN_SOURCE_OCH,
// nodeAliasCode = ChainConstant.CHAIN_CODE_OCH_COMMON_DISTANCE,
// paramIndexes = [0,1]
// )
private fun writeLog(carLocationInfo: String, location: String) {
d(M_OCHCOMMON+ TAG,carLocationInfo)
d(M_OCHCOMMON+ TAG,location)
}

View File

@@ -0,0 +1,44 @@
package com.mogo.och.common.module.manager.orderlogmanager
import android.text.TextUtils
import com.mogo.cloud.passport.MoGoAiCloudClientConfig
import com.mogo.commons.debug.DebugConfig
import com.mogo.commons.utils.MogoAnalyticUtils
import com.mogo.eagle.core.data.app.AppConfigInfo
import com.mogo.eagle.core.data.deva.chain.ChainConstant
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.DateTimeUtils
import com.zhjt.service.chain.ChainLog
object OchChainLogManager {
private val TAG = OchChainLogManager::class.java.simpleName
const val EVENT_KEY_INFE_WITH_CHANGE = "event_key_och_common_info_and_changeinfo"
/**
* @param Info 订单详细信息
* @param changeInfo 变化信息
*/
@ChainLog(
linkChainLog = ChainConstant.CHAIN_TYPE_OCH,
linkCode = ChainConstant.CHAIN_SOURCE_OCH,
nodeAliasCode = ChainConstant.CHAIN_CODE_OCH_COMMON_DISTANCE,
paramIndexes = [0,1]
)
fun writeChainLog(Info: String, changeInfo: String) {
d(SceneConstant.M_OCHCOMMON + TAG, Info)
d(SceneConstant.M_OCHCOMMON + TAG, changeInfo)
val plateNum = AppConfigInfo.plateNumber
val params = HashMap<String, Any>()
params["sn"] = MoGoAiCloudClientConfig.getInstance().sn
params["env"] = DebugConfig.getNetMode()
params["plate_number"] = if (TextUtils.isEmpty(plateNum)) "" else plateNum
params["time"] = DateTimeUtils.getTimeText(DateTimeUtils.yyyy_MM_dd_HH_mm_ss)
params["info"] = Info
params["changeInfo"] = changeInfo
MogoAnalyticUtils.track(EVENT_KEY_INFE_WITH_CHANGE, params)
}
}

View File

@@ -0,0 +1,27 @@
package com.mogo.och.common.module.manager.orderlogmanager
import com.mogo.eagle.core.data.deva.chain.ChainConstant
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant
import com.zhjt.service.chain.ChainLog
object OrderChainLogManager {
private val TAG = OrderChainLogManager::class.java.simpleName
/**
* @param orderInfo 订单详细信息
* @param changeInfo 变化信息
*/
@ChainLog(
linkChainLog = ChainConstant.CHAIN_TYPE_OCH,
linkCode = ChainConstant.CHAIN_SOURCE_OCH,
nodeAliasCode = ChainConstant.CHAIN_CODE_OCH_COMMON_DISTANCE,
paramIndexes = [0,1]
)
fun writeChainLog(orderInfo: String, changeInfo: String) {
d(SceneConstant.M_OCHCOMMON + TAG, orderInfo)
d(SceneConstant.M_OCHCOMMON + TAG, changeInfo)
}
}

View File

@@ -0,0 +1,16 @@
package com.mogo.och.taxi.constant;
public interface TaxiDriverEventConst {
interface TaxiFragmentEvent {
String EVENT_TYPE_SHOW_DEBUG_VIEW = "event_type_taxi_fragment_show_debug_view";
String EVENT_TYPE_SHOW_AMAP_NAVI_TO_STATION_FRAGMENT = "event_type_taxi_fragment_show_amap_navi_to_station_fragment";
String EVENT_TYPE_SHOW_ROUTING_TO_STATION_FRAGMENT = "event_type_taxi_fragment_show_routing_to_station_fragment";
String EVENT_TYPE_START_NAVI_TO_END_STATION = "event_type_taxi_fragment_start_navi_to_end_station";
}
interface TabFragmentEvent {
String EVENT_TYPE_SHOW_RED_POINT = "event_type_tab_fragment_show_red_point";
String EVENT_TYPE_TASK_WITH_ORDER_CHANGED = "event_type_tab_fragment_task_with_order_changed";
}
}

View File

@@ -1,6 +0,0 @@
package com.mogo.och.taxi.constant
object TaxiDriverEventConst {
val EVENT_TYPE_TAB_FRAGMENT_SHOW_RED_POINT = "event_type_tab_fragment_show_red_point"
val EVENT_TYPE_TAB_FRAGMENT_TASK_WITH_ORDER_CHANGED = "event_type_tab_fragment_task_with_order_changed"
}

View File

@@ -15,7 +15,9 @@ import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant
import com.mogo.eagle.core.utilcode.util.ToastUtils
import com.mogo.och.common.module.biz.constant.OchCommonConst
import com.mogo.och.common.module.biz.provider.LoginService
import com.mogo.och.common.module.utils.FlowBus
import com.mogo.och.taxi.R
import com.mogo.och.taxi.constant.TaxiDriverEventConst
import com.mogo.och.taxi.constant.TaxiOrderStatusEnum
import com.mogo.och.taxi.network.TaxiDriverLoginImpl
import com.mogo.och.taxi.ui.personal.TaxiPersonalDialogFragment
@@ -123,6 +125,7 @@ class TaxiFragment : BaseTaxiTabFragment<TaxiFragment, TaxiPresenter>(),
override fun initViews() {
super.initViews()
initFlowEvent()
initFragment()
hideDebugPanel()
switchVRFlatMode(MogoStatusManager.getInstance().isVrMode)
@@ -134,6 +137,25 @@ class TaxiFragment : BaseTaxiTabFragment<TaxiFragment, TaxiPresenter>(),
mPresenter.stopAutoStartAutopilot()
}
private fun initFlowEvent() {
FlowBus.with<Boolean>(TaxiDriverEventConst.TaxiFragmentEvent.EVENT_TYPE_SHOW_DEBUG_VIEW)
.register(this) { _ ->
clickOrderDebugView()
}
FlowBus.with<Boolean>(TaxiDriverEventConst.TaxiFragmentEvent.EVENT_TYPE_SHOW_AMAP_NAVI_TO_STATION_FRAGMENT)
.register(this) { show ->
showAmapNaviToStationFragment(show)
}
FlowBus.with<Boolean>(TaxiDriverEventConst.TaxiFragmentEvent.EVENT_TYPE_SHOW_ROUTING_TO_STATION_FRAGMENT)
.register(this) { show ->
showRoutingToStationFragment(show)
}
FlowBus.with<Boolean>(TaxiDriverEventConst.TaxiFragmentEvent.EVENT_TYPE_START_NAVI_TO_END_STATION)
.register(this) { show ->
startNaviToEndStation(show)
}
}
private fun initFragment() {
taskTabFragment = WeakReference(TaxiTaskTabFragment.newInstance())
val transaction: FragmentTransaction = childFragmentManager.beginTransaction()

View File

@@ -41,7 +41,6 @@ import com.mogo.och.taxi.constant.TaxiOrderStatusEnum
import com.mogo.och.taxi.constant.TaxiUnmannedConst.Companion.TAXI_END_MAP_MAKER
import com.mogo.och.taxi.constant.TaxiUnmannedConst.Companion.TAXI_START_MAP_MAKER
import com.mogo.och.taxi.constant.TaxiUnmannedConst.Companion.TYPE_MARKER_TAXI_ORDER
import com.mogo.och.taxi.ui.base.TaxiFragment
import com.mogo.och.taxi.utils.MapMakerManager
import com.mogo.och.taxi.utils.TaskUtils
import kotlinx.android.synthetic.main.task_fragment_current.cancelOrder
@@ -76,10 +75,8 @@ class TaxiCurrentTaskFragment : BaseFragment(),
companion object {
const val TAG = M_TAXI + "TaxiCurrentTaskFragment"
private var mTaxiFragment: TaxiFragment? = null
fun newInstance(taxiFragment: TaxiFragment?): TaxiCurrentTaskFragment {
mTaxiFragment = taxiFragment
fun newInstance(): TaxiCurrentTaskFragment {
val args = Bundle()
val fragment = TaxiCurrentTaskFragment()
fragment.arguments = args
@@ -146,7 +143,8 @@ class TaxiCurrentTaskFragment : BaseFragment(),
private fun initTaskDebugViewListener() {
taskStatus.setOnLongClickListener {
mTaxiFragment?.clickOrderDebugView()
FlowBus.with<Boolean>(TaxiDriverEventConst.TaxiFragmentEvent.EVENT_TYPE_SHOW_DEBUG_VIEW)
.post(this.lifecycleScope, true)
false
}
}
@@ -296,7 +294,7 @@ class TaxiCurrentTaskFragment : BaseFragment(),
}
private fun updateNextTaskFragment(result: QueryCurrentTaskRespBean.Result?) {
FlowBus.with<QueryCurrentTaskRespBean.Result?>(TaxiDriverEventConst.EVENT_TYPE_TAB_FRAGMENT_TASK_WITH_ORDER_CHANGED)
FlowBus.with<QueryCurrentTaskRespBean.Result?>(TaxiDriverEventConst.TabFragmentEvent.EVENT_TYPE_TASK_WITH_ORDER_CHANGED)
.post(this.lifecycleScope, result)
if (result != null
@@ -305,10 +303,10 @@ class TaxiCurrentTaskFragment : BaseFragment(),
&& result.currentStatus != TaskStatusEnum.CompleteTask.code
) {
VoiceNotice.showNotice("已为您提前接到下一订单,待完成当前任务后服务")
FlowBus.with<Boolean>(TaxiDriverEventConst.EVENT_TYPE_TAB_FRAGMENT_SHOW_RED_POINT)
FlowBus.with<Boolean>(TaxiDriverEventConst.TabFragmentEvent.EVENT_TYPE_SHOW_RED_POINT)
.post(this.lifecycleScope, true)
} else {
FlowBus.with<Boolean>(TaxiDriverEventConst.EVENT_TYPE_TAB_FRAGMENT_SHOW_RED_POINT)
FlowBus.with<Boolean>(TaxiDriverEventConst.TabFragmentEvent.EVENT_TYPE_SHOW_RED_POINT)
.post(this.lifecycleScope, false)
}
}
@@ -327,7 +325,7 @@ class TaxiCurrentTaskFragment : BaseFragment(),
private fun updateRemainDistanceAndTime(isVoicePlay: Boolean) {
val currentTaskWithOrder = TaxiTaskModel.getCurrentTaskWithOrder() ?: return
d(TAG, "updateRemainDistanceAndTime ${currentTaskWithOrder.currentStatus}")
if (currentTaskWithOrder.currentStatus == TaskStatusEnum.StartTask.code){
if (currentTaskWithOrder.currentStatus == TaskStatusEnum.StartTask.code) {
if (currentTaskWithOrder.endSite != null) {
startNaviToStation(
isVoicePlay, currentTaskWithOrder.endSite!!.gcjLat,
@@ -335,10 +333,11 @@ class TaxiCurrentTaskFragment : BaseFragment(),
)
}
}else if(currentTaskWithOrder.currentStatus == TaskStatusEnum.CompleteTask.code &&
currentTaskWithOrder.taskType <= TaskTypeEnum.ToOrderStartTask.code){
} else if (currentTaskWithOrder.currentStatus == TaskStatusEnum.CompleteTask.code &&
currentTaskWithOrder.taskType <= TaskTypeEnum.ToOrderStartTask.code
) {
taskOtherInfo.text = "已到达 ${currentTaskWithOrder.endSite?.siteName}"
}else {
} else {
taskOtherInfo.text = "距离 -- 公里, 用时 -- 分钟"
}
}
@@ -588,8 +587,11 @@ class TaxiCurrentTaskFragment : BaseFragment(),
naviToStart.visibility = View.GONE
naviToEnd.visibility = View.GONE
AmapNaviToDestinationModel.getInstance(context).destroyAmaNavi()
mTaxiFragment?.showAmapNaviToStationFragment(false)
mTaxiFragment?.showRoutingToStationFragment(false)
FlowBus.with<Boolean>(TaxiDriverEventConst.TaxiFragmentEvent.EVENT_TYPE_SHOW_AMAP_NAVI_TO_STATION_FRAGMENT)
.post(this.lifecycleScope, false)
FlowBus.with<Boolean>(TaxiDriverEventConst.TaxiFragmentEvent.EVENT_TYPE_SHOW_ROUTING_TO_STATION_FRAGMENT)
.post(this.lifecycleScope, false)
}
private fun startNaviToStation(isVoicePlay: Boolean, stationLat: Double, stationLng: Double) {
@@ -713,7 +715,8 @@ class TaxiCurrentTaskFragment : BaseFragment(),
* @param isShow
*/
private fun showNaviToEndStationFragment(isShow: Boolean) {
mTaxiFragment?.startNaviToEndStation(isShow)
FlowBus.with<Boolean>(TaxiDriverEventConst.TaxiFragmentEvent.EVENT_TYPE_START_NAVI_TO_END_STATION)
.post(this.lifecycleScope, isShow)
}
override fun onCurrentNaviDistAndTimeChanged(meters: Int, timeInSecond: Long) {
@@ -723,7 +726,8 @@ class TaxiCurrentTaskFragment : BaseFragment(),
override fun reInitNaviAmap(isPlay: Boolean, isRestart: Boolean) {
d(TAG, "isPlay = $isPlay, isRestart=$isRestart")
if (!isRestart) {
mTaxiFragment?.showAmapNaviToStationFragment(false)
FlowBus.with<Boolean>(TaxiDriverEventConst.TaxiFragmentEvent.EVENT_TYPE_SHOW_AMAP_NAVI_TO_STATION_FRAGMENT)
.post(this.lifecycleScope, false)
return
}
val currentTaskWithOrder = TaxiTaskModel.getCurrentTaskWithOrder()
@@ -753,10 +757,14 @@ class TaxiCurrentTaskFragment : BaseFragment(),
fun onNaviToEndStationByAmap(isShow: Boolean) {
val currentTaskWithOrder = TaxiTaskModel.getCurrentTaskWithOrder() ?: return
mTaxiFragment?.showAmapNaviToStationFragment(
if (currentTaskWithOrder.currentStatus == TaskStatusEnum.StartTask.code)
isShow else true
)
FlowBus.with<Boolean>(TaxiDriverEventConst.TaxiFragmentEvent.EVENT_TYPE_SHOW_AMAP_NAVI_TO_STATION_FRAGMENT)
.post(
this.lifecycleScope,
if (currentTaskWithOrder.currentStatus == TaskStatusEnum.StartTask.code)
isShow
else
true
)
updateRemainDistanceAndTime(
if (currentTaskWithOrder.currentStatus == TaskStatusEnum.StartTask.code)
isShow else true

View File

@@ -19,7 +19,6 @@ import com.mogo.och.common.module.utils.FlowBus
import com.mogo.och.taxi.R
import com.mogo.och.taxi.bean.QueryCurrentTaskRespBean
import com.mogo.och.taxi.constant.TaxiDriverEventConst
import com.mogo.och.taxi.ui.base.TaxiFragment
import kotlinx.android.synthetic.main.taxi_server_orders_panel.module_och_taxi_tab
import kotlinx.android.synthetic.main.taxi_server_orders_panel.module_och_taxi_view_pager
import kotlinx.android.synthetic.main.taxi_server_orders_panel.wait_order_num
@@ -84,9 +83,7 @@ class TaxiTaskTabFragment : BaseFragment() {
if (TAB_POSITION_CURRENT == position) {
module_och_taxi_tab.addTab(tab, true)
changeTabLayoutUI(tab, true)
currentTaskFragment = TaxiCurrentTaskFragment.newInstance(
parentFragment as TaxiFragment?
)
currentTaskFragment = TaxiCurrentTaskFragment.newInstance()
mFragments.add(currentTaskFragment!!)
} else if (TAB_POSITION_NEXT == position) {
module_och_taxi_tab.addTab(tab)
@@ -184,11 +181,11 @@ class TaxiTaskTabFragment : BaseFragment() {
}
private fun initEventBus() {
FlowBus.with<Boolean>(TaxiDriverEventConst.EVENT_TYPE_TAB_FRAGMENT_SHOW_RED_POINT)
FlowBus.with<Boolean>(TaxiDriverEventConst.TabFragmentEvent.EVENT_TYPE_SHOW_RED_POINT)
.register(this) { show ->
wait_order_num.visibility = if (show) View.VISIBLE else View.GONE
}
FlowBus.with<QueryCurrentTaskRespBean.Result?>(TaxiDriverEventConst.EVENT_TYPE_TAB_FRAGMENT_TASK_WITH_ORDER_CHANGED)
FlowBus.with<QueryCurrentTaskRespBean.Result?>(TaxiDriverEventConst.TabFragmentEvent.EVENT_TYPE_TASK_WITH_ORDER_CHANGED)
.register(this) { taskWithOrder ->
nextTaskFragment?.onTaskDataChanged(taskWithOrder)
}

View File

@@ -296,6 +296,7 @@ class TaxiPassengerBaseFragment() :
}
fun showOrHideOverMapView(){
CallerLogger.d(M_TAXI_P + TAG, "showOrHideOverMapView 清理轨迹和站点")
overMapView?.clearV2XMarkers()
overMapView?.clearCustomPolyline()
}

View File

@@ -40,8 +40,8 @@ import kotlinx.android.synthetic.main.taxi_p_start_autopilot_view.view.cl_car_ty
* ①:不能启动自驾
* ②:可以启动自驾
* ③:启动自驾中
* ④:启动自驾失败
* ⑤:初始状态
* ④:启动自驾超时
* ⑤:启动自驾失败
*/
class StartAutopilotView : WindowRelativeLayout, StartAutopilotViewModel.StartAutopilotCallback {
@@ -190,7 +190,9 @@ class StartAutopilotView : WindowRelativeLayout, StartAutopilotViewModel.StartAu
taxiPXiaozhiBelt?.start()
}
// ①:不能启动自驾
/**
* ①:不能启动自驾
*/
private fun unableStartAutopilot() {
taxiPStartAutopilot?.stop()
taxiPStartAutopilotCar?.stop()
@@ -201,7 +203,9 @@ class StartAutopilotView : WindowRelativeLayout, StartAutopilotViewModel.StartAu
taxi_p_start_autopilot.text = resources.getString(R.string.taxi_p_start_autopilot_txt)
}
// ②:可以启动自驾
/**
* ②:可以启动自驾
*/
private fun ableStartAutopilot() {
taxiPStartAutopilot?.reStart()
taxiPStartAutopilotCar?.stop()
@@ -210,7 +214,9 @@ class StartAutopilotView : WindowRelativeLayout, StartAutopilotViewModel.StartAu
taxi_p_start_autopilot.text = resources.getString(R.string.taxi_p_start_autopilot_txt)
}
// ③:启动自驾中
/**
* ③:启动自驾中
*/
fun startAutopiloting() {
taxiPStartAutopilot?.reStart()
taxiPStartAutopilotCar?.reStart()
@@ -221,12 +227,16 @@ class StartAutopilotView : WindowRelativeLayout, StartAutopilotViewModel.StartAu
)
}
// ④:启动自驾超时
/**
* ④:启动自驾超时
*/
override fun startAutopilotingTimeout() {
ableStartAutopilot()
}
// ⑤:启动自驾失败
/**
* ⑤:启动自驾失败
*/
override fun startAutopilotingFail() {
ableStartAutopilot()
}

View File

@@ -81,33 +81,45 @@ internal class SOPSettingView @JvmOverloads constructor(
scV2XSwitch.isChecked = FunctionBuildConfig.v2xMainSwitch
scV2XSwitch.setOnCheckedChangeListener { _, isChecked ->
FunctionBuildConfig.v2xMainSwitch = isChecked
hmiAction("SOP V2X总开关, ",isChecked)
Log.i(TAG,"SOP V2X总开关,$isChecked")
if(isChecked){
//V2N总开关
scV2NSwitch.isChecked = FunctionBuildConfig.v2nMainSwitch
hmiAction("SOP V2N总开关, ",FunctionBuildConfig.v2nMainSwitch)
Log.i(TAG,"SOP V2N总开关, ${FunctionBuildConfig.v2nMainSwitch}")
//V2I总开关
scV2ISwitch.isChecked = HmiBuildConfig.isShowObuV2iView
hmiAction("SOP V2I总开关, ",HmiBuildConfig.isShowObuV2iView)
Log.i(TAG,"SOP V2I总开关, ${HmiBuildConfig.isShowObuV2iView}")
//V2V总开关
scObuV2vView.isChecked = HmiBuildConfig.isShowObuV2vView
hmiAction("SOP V2V总开关, ",HmiBuildConfig.isShowObuV2vView)
Log.i(TAG,"SOP V2V总开关, ${HmiBuildConfig.isShowObuV2vView}")
//obu总开关
scObu.isChecked = obuConnectStatus
hmiAction("SOP obu总开关, ",obuConnectStatus)
Log.i(TAG,"SOP obu总开关, $obuConnectStatus")
if(obuConnectStatus){
CallerObuApiManager.resetObuIpAddress(MogoObuConst.OBU_DEFAULT_IP)
}
}else{
//V2N总开关
scV2NSwitch.isChecked = false
hmiAction("SOP V2N总开关, ",false)
Log.i(TAG,"SOP V2N总开关, false")
//V2I总开关
scV2ISwitch.isChecked = false
hmiAction("SOP V2I总开关, ",false)
Log.i(TAG,"SOP V2I总开关, false")
//V2V总开关
scObuV2vView.isChecked = false
hmiAction("SOP obuV2V开关, ",false)
hmiAction("SOP V2V开关, ",false)
Log.i(TAG,"SOP V2V总开关, false")
//obu总开关
scObu.isChecked = false
hmiAction("SOP OBU控制总开关, ",false)
Log.i(TAG,"SOP OBU控制总开关, false")
//断开链接
CallerObuApiManager.disConnectObu()
}
@@ -131,25 +143,31 @@ internal class SOPSettingView @JvmOverloads constructor(
//V2N新链路
scNewV2NData.isChecked = FunctionBuildConfig.isNewV2NData
hmiAction("SOP 是否是V2N新链路(云->工控机->App)",FunctionBuildConfig.isNewV2NData)
Log.i(TAG,"SOP 是否是V2N新链路(云->工控机->App), ${FunctionBuildConfig.isNewV2NData}")
//V2N场景进PNC
scV2nPnc.isChecked = FunctionBuildConfig.isV2NPnc
hmiAction("SOP V2N场景进PNC, ",FunctionBuildConfig.isV2NPnc)
Log.i(TAG,"SOP V2N场景进PNC, ${FunctionBuildConfig.isV2NPnc}")
CallerAutoPilotControlManager.sendV2nToPncCmd(FunctionBuildConfig.isV2NPnc)
//绿波通行
scGreenWaveSop.isChecked = HmiBuildConfig.isShowGreenWaveView
hmiAction("SOP obu绿波通行, ",HmiBuildConfig.isShowGreenWaveView)
Log.i(TAG,"SOP obu绿波通行, ${HmiBuildConfig.isShowGreenWaveView}")
CallerTelematicManager.sendMsgToAllClients(TelematicConstant.OBU_GREENWAVE_WARNING, "1".toByteArray())
}else{
//V2N新链路
scNewV2NData.isChecked = false
hmiAction("SOP 是否是V2N新链路(云->工控机->App)",false)
Log.i(TAG,"SOP 是否是V2N新链路(云->工控机->App), false")
//V2N场景进PNC
scV2nPnc.isChecked = false
hmiAction("SOP V2N场景进PNC, ",false)
Log.i(TAG,"SOP V2N场景进PNC, false")
CallerAutoPilotControlManager.sendV2nToPncCmd(false)
//绿波通行
scGreenWaveSop.isChecked = false
hmiAction("SOP obu绿波通行, ",false)
Log.i(TAG,"SOP obu绿波通行, false")
CallerTelematicManager.sendMsgToAllClients(TelematicConstant.OBU_GREENWAVE_WARNING, "0".toByteArray())
}
scNewV2NData.isEnabled = isChecked
@@ -172,28 +190,32 @@ internal class SOPSettingView @JvmOverloads constructor(
//V2I场景进PNC
scV2iPnc.isChecked = FunctionBuildConfig.isV2IPnc
hmiAction("SOP V2I场景进PNC, ",FunctionBuildConfig.isV2IPnc)
Log.i(TAG,"SOP V2I场景进PNC,${FunctionBuildConfig.isV2IPnc}")
CallerAutoPilotControlManager.sendV2iToPncCmd(FunctionBuildConfig.isV2IPnc)
//闯红灯预警
scRunRedLightSop.isChecked = HmiBuildConfig.isShowRunRedLightView
hmiAction("SOP obu闯红灯预警, ",HmiBuildConfig.isShowRunRedLightView)
Log.i(TAG,"SOP obu闯红灯预警, ${HmiBuildConfig.isShowRunRedLightView}")
CallerTelematicManager.sendMsgToAllClients(TelematicConstant.OBU_RUNREDLIGHT_WARNING, "1".toByteArray())
//路侧弱势交通参与者
scObuWeaknessTrafficSop.isChecked = HmiBuildConfig.isShowObuWeaknessTrafficView
hmiAction("SOP obu弱势交通控制, ",HmiBuildConfig.isShowObuWeaknessTrafficView)
Log.i(TAG,"SOP obu弱势交通控制, ${HmiBuildConfig.isShowObuWeaknessTrafficView}")
}else{
//V2I场景进PNC
scV2iPnc.isChecked = false
CallerAutoPilotControlManager.sendV2iToPncCmd(false)
hmiAction("SOP V2I场景进PNC, ",false)
Log.i(TAG,"SOP V2I场景进PNC, false")
//闯红灯预警
scRunRedLightSop.isChecked = false
hmiAction("SOP obu闯红灯预警, ",false)
Log.i(TAG,"SOP obu闯红灯预警, false")
CallerTelematicManager.sendMsgToAllClients(TelematicConstant.OBU_RUNREDLIGHT_WARNING, "0".toByteArray())
//路侧弱势交通参与者
scObuWeaknessTrafficSop.isChecked = false
hmiAction("SOP obu弱势交通控制, ",false)
Log.i(TAG,"SOP obu弱势交通控制, false")
}
scV2iPnc.isEnabled = isChecked
scRunRedLightSop.isEnabled = isChecked
@@ -211,6 +233,7 @@ internal class SOPSettingView @JvmOverloads constructor(
return@setOnCheckedChangeListener
}
hmiAction("SOP 是否是V2N新链路(云->工控机->App)",isChecked)
Log.i(TAG,"SOP 是否是V2N新链路(云->工控机->App) ${isChecked}")
FunctionBuildConfig.isNewV2NData = isChecked
}
@@ -221,6 +244,7 @@ internal class SOPSettingView @JvmOverloads constructor(
return@setOnCheckedChangeListener
}
hmiAction("SOP V2N场景进PNC, ",isChecked)
Log.i(TAG,"SOP V2N场景进PNC, $isChecked")
CallerAutoPilotControlManager.sendV2nToPncCmd(isChecked)
FunctionBuildConfig.isV2NPnc = isChecked
}
@@ -232,6 +256,7 @@ internal class SOPSettingView @JvmOverloads constructor(
return@setOnCheckedChangeListener
}
hmiAction("SOP obu绿波通行, ",isChecked)
Log.i(TAG,"SOP obu绿波通行, $isChecked")
HmiBuildConfig.isShowGreenWaveView = isChecked
if (HmiBuildConfig.isShowGreenWaveView) {
CallerTelematicManager.sendMsgToAllClients(TelematicConstant.OBU_GREENWAVE_WARNING, "1".toByteArray())
@@ -247,6 +272,7 @@ internal class SOPSettingView @JvmOverloads constructor(
return@setOnCheckedChangeListener
}
hmiAction("SOP V2I场景进PNC, ",isChecked)
Log.i(TAG,"SOP V2I场景进PNC, $isChecked")
CallerAutoPilotControlManager.sendV2iToPncCmd(isChecked)
FunctionBuildConfig.isV2IPnc = isChecked
}
@@ -258,6 +284,7 @@ internal class SOPSettingView @JvmOverloads constructor(
return@setOnCheckedChangeListener
}
hmiAction("SOP obu闯红灯预警, ",isChecked)
Log.i(TAG,"SOP obu闯红灯预警, $isChecked")
HmiBuildConfig.isShowRunRedLightView = isChecked
if (HmiBuildConfig.isShowRunRedLightView) {
CallerTelematicManager.sendMsgToAllClients(TelematicConstant.OBU_RUNREDLIGHT_WARNING, "1".toByteArray())
@@ -273,6 +300,7 @@ internal class SOPSettingView @JvmOverloads constructor(
return@setOnCheckedChangeListener
}
hmiAction("SOP obu弱势交通控制, ",isChecked)
Log.i(TAG,"SOP obu弱势交通控制, $isChecked")
HmiBuildConfig.isShowObuWeaknessTrafficView = isChecked
}
@@ -283,6 +311,7 @@ internal class SOPSettingView @JvmOverloads constructor(
return@setOnCheckedChangeListener
}
hmiAction("SOP obuV2V开关, ",isChecked)
Log.i(TAG,"SOP obuV2V开关, $isChecked")
HmiBuildConfig.isShowObuV2vView = isChecked
}
@@ -294,6 +323,7 @@ internal class SOPSettingView @JvmOverloads constructor(
return@setOnCheckedChangeListener
}
hmiAction("SOP OBU控制总开关, ",isChecked)
Log.i(TAG,"SOP OBU控制总开关, $isChecked")
if (isChecked) {
CallerObuApiManager.resetObuIpAddress(MogoObuConst.OBU_DEFAULT_IP)
} else {
@@ -311,7 +341,8 @@ internal class SOPSettingView @JvmOverloads constructor(
//危险障碍物颜色标记开关
scMarkingObstacles.isChecked = FunctionBuildConfig.isPNCWarning
scMarkingObstacles.setOnCheckedChangeListener { _, isChecked ->
hmiAction("SOP 危险障碍物颜色标记开关",isChecked)
hmiAction("SOP 危险障碍物颜色标记开关, ",isChecked)
Log.i(TAG,"SOP 危险障碍物颜色标记开关, $isChecked")
FunctionBuildConfig.isPNCWarning = isChecked
}
if (AppIdentityModeUtils.isBus(FunctionBuildConfig.appIdentityMode)) {
@@ -321,7 +352,8 @@ internal class SOPSettingView @JvmOverloads constructor(
//引导线动态效果
scRouteDynamicEffect.isChecked = HmiBuildConfig.isShowRouteStrategy
scRouteDynamicEffect.setOnCheckedChangeListener { _, isChecked ->
hmiAction("SOP 引导线动态效果",isChecked)
hmiAction("SOP 引导线动态效果, ",isChecked)
Log.i(TAG,"SOP 引导线动态效果, $isChecked")
HmiBuildConfig.isShowRouteStrategy = isChecked
}
@@ -333,6 +365,8 @@ internal class SOPSettingView @JvmOverloads constructor(
CallerAutoPilotControlManager.setIsDrawPointCloud(isChecked)
FunctionBuildConfig.isDrawPointCloudData = isChecked
CallerMapUIServiceManager.getMapUIController()?.setIsDrawPointCloud(isChecked)
hmiAction("SOP 是否渲染点云数据, ",isChecked)
Log.i(TAG,"SOP 是否渲染点云数据, $isChecked")
}
//自车光圈
@@ -340,6 +374,8 @@ internal class SOPSettingView @JvmOverloads constructor(
scCarAperture.setOnCheckedChangeListener { _, isChecked ->
CallerMapUIServiceManager.getMapUIController()?.setDisplayAnimEnable(isChecked)
FunctionBuildConfig.isDisplayAnimEnable = isChecked
hmiAction("SOP 是否展示自车光圈,",isChecked)
Log.i(TAG,"SOP 是否展示自车光圈,$isChecked")
}
}
@@ -350,7 +386,8 @@ internal class SOPSettingView @JvmOverloads constructor(
//绕障类功能
scObstacleAvoidance.isChecked = FunctionBuildConfig.isDetouring
scObstacleAvoidance.setOnCheckedChangeListener { _, isChecked ->
hmiAction("SOP 绕障类功能开关",isChecked)
hmiAction("SOP 绕障类功能开关, ",isChecked)
Log.i(TAG,"SOP 绕障类功能开关, $isChecked")
CallerAutoPilotControlManager.sendDetouring(isChecked)
FunctionBuildConfig.isDetouring = isChecked
}
@@ -362,6 +399,7 @@ internal class SOPSettingView @JvmOverloads constructor(
return@setOnCheckedChangeListener
}
hmiAction("SOP 演示模式开关, ",!FunctionBuildConfig.isDemoMode)
Log.i(TAG,"SOP 演示模式开关, ${!FunctionBuildConfig.isDemoMode}")
FunctionBuildConfig.isDemoMode = !FunctionBuildConfig.isDemoMode
CallerAutoPilotControlManager.setDemoMode(FunctionBuildConfig.isDemoMode)
CallerHmiViewControlListenerManager.invokeFuncMode(FUNC_MODE_DEMO, FunctionBuildConfig.isDemoMode)
@@ -382,13 +420,14 @@ internal class SOPSettingView @JvmOverloads constructor(
return@setOnCheckedChangeListener
}
hmiAction("SOP 雨天模式开关, ",isChecked)
Log.i(TAG,"SOP 雨天模式开关, $isChecked")
FunctionBuildConfig.isRainMode = isChecked
CallerAutoPilotControlManager.setRainMode(isChecked)
CallerHmiViewControlListenerManager.invokeFuncMode(FUNC_MODE_RAIN, isChecked)
}
//雨天模式按钮只在司机屏生效,乘客屏不显示
if (AppIdentityModeUtils.isPassenger(FunctionBuildConfig.appIdentityMode)) {
scRainMode.visibility = View.GONE
scRainMode.isEnabled = false
}
//弱网减速停车
@@ -397,6 +436,7 @@ internal class SOPSettingView @JvmOverloads constructor(
FunctionBuildConfig.isWeakNetSlowDown = isChecked
CallerAutoPilotControlManager.sendWeakNetSlowDown(isChecked)
hmiAction("SOP 弱网减速停车, ",isChecked)
Log.i(TAG,"SOP 弱网减速停车, $isChecked")
}
//故障减速停车
@@ -405,6 +445,7 @@ internal class SOPSettingView @JvmOverloads constructor(
FunctionBuildConfig.isFaultSlowDown = isChecked
CallerAutoPilotControlManager.sendBreakdownSlowDown(isChecked)
hmiAction("SOP 故障减速停车, ",isChecked)
Log.i(TAG,"SOP 故障减速停车, $isChecked")
}
//融合模式
rgFusionMode.setOnCheckedChangeListener { _, p1 ->
@@ -430,6 +471,8 @@ internal class SOPSettingView @JvmOverloads constructor(
FunctionBuildConfig.fusionMode = 5
}
}
hmiAction("SOP 融合模式, ",FunctionBuildConfig.fusionMode)
Log.i(TAG,"SOP 融合模式, ${FunctionBuildConfig.fusionMode}")
CallerAutoPilotControlManager.sendFusionMode(FunctionBuildConfig.fusionMode)
}
}
@@ -442,6 +485,7 @@ internal class SOPSettingView @JvmOverloads constructor(
scTrafficLight.isChecked = !HmiBuildConfig.isShowTrafficLightView
scTrafficLight.setOnCheckedChangeListener { _, isChecked ->
hmiAction("SOP 红绿灯标识开关, ",isChecked)
Log.i(TAG,"SOP 红绿灯标识开关, $isChecked")
if (isChecked) {
CallerHmiManager.showTrafficLightView()
} else {
@@ -453,6 +497,7 @@ internal class SOPSettingView @JvmOverloads constructor(
scSpeedLimit.isChecked = HmiBuildConfig.isShowLimitingVelocityView
scSpeedLimit.setOnCheckedChangeListener { _, isChecked ->
hmiAction("SOP 限速标识开关, ",isChecked)
Log.i(TAG,"SOP 限速标识开关, $isChecked")
if (isChecked) {
HmiBuildConfig.isShowLimitingVelocityView = true
CallerHmiViewControlListenerManager.invokeVisible(IViewControlListener.LimitingVelocityView_TAG,View.VISIBLE)
@@ -466,6 +511,7 @@ internal class SOPSettingView @JvmOverloads constructor(
scIPCReport.isChecked = FunctionBuildConfig.isReportWarning
scIPCReport.setOnCheckedChangeListener { _, isChecked ->
hmiAction("SOP 是否开启异常上报, ",isChecked)
Log.i(TAG,"SOP 是否开启异常上报, $isChecked")
FunctionBuildConfig.isReportWarning = isChecked
}
@@ -491,6 +537,7 @@ internal class SOPSettingView @JvmOverloads constructor(
scShowBagRecordWindow.setOnCheckedChangeListener{_, isChecked ->
FunctionBuildConfig.isShowBagRecordWindow = isChecked
hmiAction("SOP 是否展示被动触发的录包弹窗, ",isChecked)
Log.i(TAG,"SOP 是否展示被动触发的录包弹窗, $isChecked")
}
//变道绕障的目标障碍物速度阈值

View File

@@ -53,10 +53,10 @@
app:layout_constraintStart_toStartOf="parent"
android:text="V2N总开关"
android:textSize="@dimen/sp_28"
android:scaleX="1.4"
android:scaleY="1.4"
android:layout_marginStart="@dimen/dp_50"
android:layout_marginTop="@dimen/dp_20"
android:scaleX="1.2"
android:scaleY="1.2"
android:layout_marginStart="@dimen/dp_60"
android:layout_marginTop="@dimen/dp_25"
/>
<androidx.constraintlayout.widget.Guideline
@@ -66,7 +66,7 @@
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
android:orientation="vertical"
app:layout_constraintGuide_percent="0.5"
app:layout_constraintGuide_percent="0.55"
/>
<!--V2N新链路-->
<androidx.appcompat.widget.SwitchCompat
@@ -80,7 +80,7 @@
app:layout_constraintLeft_toLeftOf="@id/scV2XSwitch"
app:layout_constraintRight_toRightOf="@id/v2xGuideLine"
app:layout_constraintTop_toBottomOf="@id/scV2NSwitch"
android:layout_marginTop="@dimen/dp_20"
android:layout_marginTop="@dimen/dp_25"
/>
<!--V2N场景进PNC-->
<androidx.appcompat.widget.SwitchCompat
@@ -94,7 +94,7 @@
app:layout_constraintLeft_toLeftOf="@id/v2xGuideLine"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@id/scV2NSwitch"
android:layout_marginTop="@dimen/dp_20"
android:layout_marginTop="@dimen/dp_25"
/>
<!--绿波通行-->
<androidx.appcompat.widget.SwitchCompat
@@ -105,10 +105,9 @@
android:textSize="@dimen/sp_28"
android:scaleX="1.2"
android:scaleY="1.2"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="@id/v2xGuideLine"
app:layout_constraintLeft_toLeftOf="@id/scNewV2NData"
app:layout_constraintTop_toBottomOf="@id/scNewV2NData"
android:layout_marginTop="@dimen/dp_20"
android:layout_marginTop="@dimen/dp_25"
/>
<!--V2I总开关-->
<androidx.appcompat.widget.SwitchCompat
@@ -121,8 +120,8 @@
android:scaleY="1.2"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toBottomOf="@id/scGreenWaveSop"
android:layout_marginTop="@dimen/dp_20"
android:layout_marginStart="@dimen/dp_20"
android:layout_marginTop="@dimen/dp_25"
android:layout_marginStart="@dimen/dp_60"
/>
<!--V2I场景进PNC-->
<androidx.appcompat.widget.SwitchCompat
@@ -136,6 +135,8 @@
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="@id/v2xGuideLine"
app:layout_constraintTop_toBottomOf="@id/scV2ISwitch"
android:layout_marginTop="@dimen/dp_25"
android:layout_marginStart="@dimen/dp_10"
/>
<!--闯红灯预警-->
<androidx.appcompat.widget.SwitchCompat
@@ -149,6 +150,7 @@
app:layout_constraintLeft_toLeftOf="@id/v2xGuideLine"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@id/scV2ISwitch"
android:layout_marginTop="@dimen/dp_25"
/>
<!--路侧弱势交通参与者-->
<androidx.appcompat.widget.SwitchCompat
@@ -159,9 +161,9 @@
android:textSize="@dimen/sp_28"
android:scaleX="1.2"
android:scaleY="1.2"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="@id/v2xGuideLine"
app:layout_constraintLeft_toLeftOf="@id/scV2iPnc"
app:layout_constraintTop_toBottomOf="@id/scV2iPnc"
android:layout_marginTop="@dimen/dp_25"
/>
<!--V2V总开关-->
<androidx.appcompat.widget.SwitchCompat
@@ -174,22 +176,24 @@
android:scaleY="1.2"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toBottomOf="@id/scObuWeaknessTrafficSop"
android:layout_marginTop="@dimen/dp_20"
android:layout_marginStart="@dimen/dp_20"
android:layout_marginTop="@dimen/dp_25"
android:layout_marginStart="@dimen/dp_60"
/>
<!--obu总开关-->
<androidx.appcompat.widget.SwitchCompat
android:id="@+id/scObu"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="obu总开关"
android:text="OBU总开关"
android:textSize="@dimen/sp_28"
android:scaleX="1.2"
android:scaleY="1.2"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toBottomOf="@id/scObuV2vView"
android:layout_marginTop="@dimen/dp_20"
android:layout_marginStart="@dimen/dp_20"
app:layout_constraintBottom_toBottomOf="parent"
android:layout_marginTop="@dimen/dp_25"
android:layout_marginStart="@dimen/dp_60"
android:layout_marginBottom="@dimen/dp_10"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
@@ -219,7 +223,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="地图效果类"
android:textSize="@dimen/sp_30"
android:textSize="@dimen/sp_36"
android:textColor="@color/black"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
@@ -273,7 +277,9 @@
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="@id/mapGuideLine"
app:layout_constraintTop_toBottomOf="@id/scMarkingObstacles"
android:layout_marginTop="@dimen/dp_20"
app:layout_constraintBottom_toBottomOf="parent"
android:layout_marginTop="@dimen/dp_25"
android:layout_marginBottom="@dimen/dp_10"
android:text="点云效果"
android:textSize="@dimen/sp_28"
android:scaleX="1.2"
@@ -287,7 +293,9 @@
app:layout_constraintLeft_toLeftOf="@id/mapGuideLine"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@id/scRouteDynamicEffect"
android:layout_marginTop="@dimen/dp_20"
app:layout_constraintBottom_toBottomOf="parent"
android:layout_marginTop="@dimen/dp_25"
android:layout_marginBottom="@dimen/dp_10"
android:text="自车光圈"
android:textSize="@dimen/sp_28"
android:scaleX="1.2"
@@ -323,7 +331,7 @@
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="parent"
android:text="与车相关类"
android:textSize="@dimen/sp_30"
android:textSize="@dimen/sp_36"
android:textColor="@color/black"
android:layout_marginStart="@dimen/dp_10"
android:layout_marginTop="@dimen/dp_10"
@@ -374,7 +382,7 @@
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="@id/vehicleGuideLine"
app:layout_constraintTop_toBottomOf="@id/scObstacleAvoidance"
android:layout_marginTop="@dimen/dp_20"
android:layout_marginTop="@dimen/dp_25"
android:text="雨天模式"
android:textSize="@dimen/sp_28"
android:scaleX="1.2"
@@ -388,7 +396,7 @@
app:layout_constraintLeft_toLeftOf="@id/vehicleGuideLine"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@id/scDemoMode"
android:layout_marginTop="@dimen/dp_20"
android:layout_marginTop="@dimen/dp_25"
android:text="弱网减速停车"
android:textSize="@dimen/sp_28"
android:scaleX="1.2"
@@ -402,7 +410,7 @@
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="@id/vehicleGuideLine"
app:layout_constraintTop_toBottomOf="@id/scRainMode"
android:layout_marginTop="@dimen/dp_20"
android:layout_marginTop="@dimen/dp_25"
android:text="故障减速停车"
android:textSize="@dimen/sp_28"
android:scaleX="1.2"
@@ -417,7 +425,8 @@
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@id/scFaultSlowDown"
android:layout_marginStart="20dp"
android:layout_marginStart="@dimen/dp_40"
android:layout_marginTop="@dimen/dp_10"
>
<RadioButton
@@ -496,7 +505,7 @@
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="parent"
android:text="其他"
android:textSize="@dimen/sp_30"
android:textSize="@dimen/sp_36"
android:textColor="@color/black"
android:layout_marginStart="@dimen/dp_10"
android:layout_marginTop="@dimen/dp_10"
@@ -549,7 +558,7 @@
android:text="异常上报提示"
android:scaleY="1.2"
android:scaleX="1.2"
android:layout_marginTop="@dimen/dp_20"
android:layout_marginTop="@dimen/dp_25"
/>
<!--360环视-->
<androidx.appcompat.widget.SwitchCompat
@@ -562,7 +571,7 @@
android:text="360环视"
android:scaleY="1.2"
android:scaleX="1.2"
android:layout_marginTop="@dimen/dp_20"
android:layout_marginTop="@dimen/dp_25"
/>
<!--是否展示被动录包弹窗-->
<androidx.appcompat.widget.SwitchCompat
@@ -572,10 +581,12 @@
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="@id/otherGuideLine"
app:layout_constraintTop_toBottomOf="@id/scIPCReport"
app:layout_constraintBottom_toBottomOf="parent"
android:text="录包弹窗"
android:scaleY="1.2"
android:scaleX="1.2"
android:layout_marginTop="@dimen/dp_20"
android:layout_marginTop="@dimen/dp_25"
android:layout_marginBottom="@dimen/dp_10"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
@@ -672,7 +683,7 @@
app:layout_constraintEnd_toEndOf="parent"
android:padding="5dip"
android:background="@drawable/bg_mf_sop_operator"
android:layout_marginTop="10dp"
android:layout_marginTop="@dimen/dp_20"
android:layout_marginStart="15dp"
android:layout_marginEnd="15dp" >