Merge remote-tracking branch 'origin/dev_robotaxi-d_240715_6.4.4_pnc_park' into dev_robotaxi-d_240715_6.4.4_pnc_park

This commit is contained in:
donghongyu
2024-07-16 10:30:39 +08:00
11 changed files with 230 additions and 2 deletions

View File

@@ -619,6 +619,34 @@ class MoGoAutopilotControlProvider :
}
}
/**
* 会车开关
* isEnable = true 开启
* isEnable = false 关闭
* @return boolean
*/
override fun sendParkVehCross(isEnable: Boolean): Boolean {
return if (isEnable) {
AdasManager.getInstance().sendParkVehCross(1) > -1
} else {
AdasManager.getInstance().sendParkVehCross(0) > -1
}
}
/**
* 超车开关
* isEnable = true 开启
* isEnable = false 关闭
* @return boolean
*/
override fun sendParkVehOvertake(isEnable: Boolean): Boolean {
return if (isEnable) {
AdasManager.getInstance().sendParkVehOvertake(1) > -1
} else {
AdasManager.getInstance().sendParkVehOvertake(0) > -1
}
}
/**
* 变道绕障的目标障碍物速度阈值
* @param speed 速度阈值 m/s

View File

@@ -71,6 +71,8 @@ import kotlinx.android.synthetic.main.view_sop_setting.view.scObstacleAvoidance
import kotlinx.android.synthetic.main.view_sop_setting.view.scObu
import kotlinx.android.synthetic.main.view_sop_setting.view.scObuV2vView
import kotlinx.android.synthetic.main.view_sop_setting.view.scObuWeaknessTrafficSop
import kotlinx.android.synthetic.main.view_sop_setting.view.scParkVehCross
import kotlinx.android.synthetic.main.view_sop_setting.view.scParkVehOvertake
import kotlinx.android.synthetic.main.view_sop_setting.view.scRainMode
import kotlinx.android.synthetic.main.view_sop_setting.view.scRouteDynamicEffect
import kotlinx.android.synthetic.main.view_sop_setting.view.scRunRedLightSop
@@ -511,6 +513,22 @@ internal class SOPSettingView @JvmOverloads constructor(
* 与车相关类设置
*/
private fun vehicleSetting() {
//PNC-park-会车
scParkVehCross.isChecked = FunctionBuildConfig.isOpenParkVehCross
scParkVehCross.setOnCheckedChangeListener { _, isChecked ->
hmiAction("SOP PNC-park-会车, ", isChecked)
CallerAutoPilotControlManager.sendParkVehCross(isChecked)
FunctionBuildConfig.isOpenParkVehCross = isChecked
}
//PNC-park-超车
scParkVehOvertake.isChecked = FunctionBuildConfig.isOpenOvertake
scParkVehOvertake.setOnCheckedChangeListener { _, isChecked ->
hmiAction("SOP PNC-park-超车, ", isChecked)
CallerAutoPilotControlManager.sendParkVehOvertake(isChecked)
FunctionBuildConfig.isOpenOvertake = isChecked
}
//绕障类功能
scObstacleAvoidance.isChecked = FunctionBuildConfig.isDetouring
scObstacleAvoidance.setOnCheckedChangeListener { _, isChecked ->

View File

@@ -410,6 +410,36 @@
app:layout_constraintGuide_percent="0.5"
app:layout_constraintLeft_toLeftOf="@id/tvVehicleTitle"
app:layout_constraintRight_toRightOf="parent" />
<!--PNC-park-会车-->
<androidx.appcompat.widget.SwitchCompat
android:id="@+id/scParkVehCross"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_20"
android:scaleX="1.2"
android:scaleY="1.2"
android:text="PNC-park-会车"
android:textSize="@dimen/sp_28"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="@id/vehicleGuideLine"
app:layout_constraintTop_toBottomOf="@id/tvVehicleTitle"
/>
<!--PNC-park-超车-->
<androidx.appcompat.widget.SwitchCompat
android:id="@+id/scParkVehOvertake"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_25"
android:scaleX="1.2"
android:scaleY="1.2"
android:text="PNC-park-超车"
android:textSize="@dimen/sp_28"
app:layout_constraintLeft_toLeftOf="@id/vehicleGuideLine"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvVehicleTitle" />
<!--绕障类功能-->
<androidx.appcompat.widget.SwitchCompat
android:id="@+id/scObstacleAvoidance"
@@ -422,7 +452,7 @@
android:textSize="@dimen/sp_28"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="@id/vehicleGuideLine"
app:layout_constraintTop_toBottomOf="@id/tvVehicleTitle" />
app:layout_constraintTop_toBottomOf="@id/scParkVehCross" />
<!--雨天模式-->
<androidx.appcompat.widget.SwitchCompat
@@ -436,7 +466,7 @@
android:textSize="@dimen/sp_28"
app:layout_constraintLeft_toLeftOf="@id/vehicleGuideLine"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvVehicleTitle" />
app:layout_constraintTop_toBottomOf="@id/scParkVehOvertake" />
<!--弱网减速停车-->
<androidx.appcompat.widget.SwitchCompat
android:id="@+id/scWeakNetSlowDown"

View File

@@ -52,6 +52,22 @@ object FunctionBuildConfig {
@JvmField
var isDetouring = true
/**
* PNC-park-会车
* 默认关闭
*/
@Volatile
@JvmField
var isOpenParkVehCross = false
/**
* PNC-park-超车
* 默认关闭
*/
@Volatile
@JvmField
var isOpenOvertake = false
/**
* 变道绕障的目标障碍物速度阈值
* 默认 3 m/s

View File

@@ -183,6 +183,22 @@ interface IMoGoAutopilotControlProvider : IMoGoFunctionServerProvider {
*/
fun sendDetouring(isEnable: Boolean): Boolean
/**
* 会车开关
* isEnable = true 开启
* isEnable = false 关闭
* @return boolean
*/
fun sendParkVehCross(isEnable: Boolean): Boolean
/**
* 超车开关
* isEnable = true 开启
* isEnable = false 关闭
* @return boolean
*/
fun sendParkVehOvertake(isEnable: Boolean): Boolean
/**
* 变道绕障的目标障碍物速度阈值
* @param speed 速度阈值 m/s

View File

@@ -358,6 +358,26 @@ object CallerAutoPilotControlManager {
return providerApi?.sendDetouring(isEnable)
}
/**
* 会车开关
* isEnable = true 开启
* isEnable = false 关闭
* @return boolean
*/
fun sendParkVehCross(isEnable: Boolean): Boolean?{
return providerApi?.sendParkVehCross(isEnable)
}
/**
* 超车开关
* isEnable = true 开启
* isEnable = false 关闭
* @return boolean
*/
fun sendParkVehOvertake(isEnable: Boolean): Boolean?{
return providerApi?.sendParkVehOvertake(isEnable)
}
/**
* 变道绕障的目标障碍物速度阈值
* @param speed 速度阈值 m/s

View File

@@ -643,6 +643,9 @@ message SetOneParam
// 15座椅状态(int) 0:表示仅主驾位有人,1:表示仅副驾位有人,2:表示主驾和副驾同时有人,3:表示仅后排有人,4:表示主驾有人+后排有人,5:表示副驾有人+后排有人,6:表示主驾和副驾同时有人+后排有人,7: 所有座位都无人, 255:缺省
// 16: 超车的最大速度阈值(double, m/s) T1/T2: 范围[3, 12.5], 默认值10
// 17: 故障模拟指令(int) default:0, 1:线控失效
// 18: 碰撞上报(null)
// 19: 会车开关(bool) 0: off 1:on 默认0
// 20: 超车开关(bool) 0: off 1:on 默认0
string value = 2; // 转成字符串的值
}

View File

@@ -22,6 +22,9 @@ enum MapSystemParamType{
SEAT_STATE = 15;//15: 座椅状态(int) 0:表示仅主驾位有人,1:表示仅副驾位有人,2:表示主驾和副驾同时有人,3:表示仅后排有人,4:表示主驾有人+后排有人,5:表示副驾有人+后排有人,6:表示主驾和副驾同时有人+后排有人,7: 所有座位都无人, 255:缺省
OVERTAKE_MAX_SPEED = 16;//16: 超车的最大速度阈值(double, m/s, 范围[3, 12.5])
FAULT_SIMULATION_CMD = 17;//17: 故障模拟指令(int) default:0(do nothing), 1:线控失效
COLLISION_REPORTING = 18;//18: 碰撞上报(null)
PARK_VEH_CROSS = 19;//19: 会车开关(bool) 0: off 1:on 默认0
PARK_VEH_OVERTAKE = 20;//20: 超车开关(bool) 0: off 1:on 默认0
}
/**

View File

@@ -2248,6 +2248,9 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec
* {@link AdasConstants.MapSystemParamType#SEAT_STATE Value类型int或int类型String}
* {@link AdasConstants.MapSystemParamType#OVERTAKE_MAX_SPEED Value类型double或double类型String}
* {@link AdasConstants.MapSystemParamType#FAULT_SIMULATION_CMD Value类型int或int类型String}
* {@link AdasConstants.MapSystemParamType#COLLISION_REPORTING Value类型null}
* {@link AdasConstants.MapSystemParamType#PARK_VEH_CROSS Value类型int或int类型String}
* {@link AdasConstants.MapSystemParamType#PARK_VEH_OVERTAKE Value类型int或int类型String}
* @return 消息是否添加到WS消息发送队列。由于批量设置参数调用的域控接口存在不同实际调用域控最多2个接口调用次数最多4次所以最多返回4条ID数据
* * 返回值为非0的正整数时表示下发消息的消息ID
* * >=0表示添加到WS发送消息队列
@@ -2455,6 +2458,36 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec
return sendSetParamReq(AdasConstants.MapSystemParamType.OVERTAKE_MAX_SPEED_VALUE, String.valueOf(maxSpeed));
}
/**
* 会车开关
* 此方法存在域控回执,监听{@link OnAdasListener#onReceiveReceivedAck(ReceivedAck)}回调.使用方法:将此方法的返回值与{@link ReceivedAck#getMsgId()}进行比较,如果相同判断{@link ReceivedAck#getStatus()}是否等于{@link ReceivedAck.Status#NORMAL}详情参见CheckSystemView中的onReceiveReceivedAck
*
* @param enable 0: off 1:on 默认0
* @return 消息是否添加到WS消息发送队列返回值为非0的正整数时表示下发消息的消息ID
* * >=0表示添加到WS发送消息队列
* * =0表示乘客屏模式添加到WS发送消息队列
* * -1L添加到WS发送消息队列失败
*/
@Override
public long sendParkVehCross(int enable) {
return sendSetParamReq(AdasConstants.MapSystemParamType.PARK_VEH_CROSS_VALUE, String.valueOf(enable));
}
/**
* 超车开关
* 此方法存在域控回执,监听{@link OnAdasListener#onReceiveReceivedAck(ReceivedAck)}回调.使用方法:将此方法的返回值与{@link ReceivedAck#getMsgId()}进行比较,如果相同判断{@link ReceivedAck#getStatus()}是否等于{@link ReceivedAck.Status#NORMAL}详情参见CheckSystemView中的onReceiveReceivedAck
*
* @param enable 0: off 1:on 默认0
* @return 消息是否添加到WS消息发送队列返回值为非0的正整数时表示下发消息的消息ID
* * >=0表示添加到WS发送消息队列
* * =0表示乘客屏模式添加到WS发送消息队列
* * -1L添加到WS发送消息队列失败
*/
@Override
public long sendParkVehOvertake(int enable) {
return sendSetParamReq(AdasConstants.MapSystemParamType.PARK_VEH_OVERTAKE_VALUE, String.valueOf(enable));
}
/**
* 盲区数据开关
* 此方法存在域控回执,监听{@link OnAdasListener#onReceiveReceivedAck(ReceivedAck)}回调.使用方法:将此方法的返回值与{@link ReceivedAck#getMsgId()}进行比较,如果相同判断{@link ReceivedAck#getStatus()}是否等于{@link ReceivedAck.Status#NORMAL}详情参见CheckSystemView中的onReceiveReceivedAck

View File

@@ -1371,6 +1371,36 @@ public class AdasManager implements IAdasNetCommApi {
return mChannel == null ? -1L : mChannel.sendOvertakeMaxSpeed(maxSpeed);
}
/**
* 会车开关
* 此方法存在域控回执,监听{@link OnAdasListener#onReceiveReceivedAck(ReceivedAck)}回调.使用方法:将此方法的返回值与{@link ReceivedAck#getMsgId()}进行比较,如果相同判断{@link ReceivedAck#getStatus()}是否等于{@link ReceivedAck.Status#NORMAL}详情参见CheckSystemView中的onReceiveReceivedAck
*
* @param enable 0: off 1:on 默认0
* @return 消息是否添加到WS消息发送队列返回值为非0的正整数时表示下发消息的消息ID
* * >=0表示添加到WS发送消息队列
* * =0表示乘客屏模式添加到WS发送消息队列
* * -1L添加到WS发送消息队列失败
*/
@Override
public long sendParkVehCross(int enable) {
return mChannel == null ? -1L : mChannel.sendParkVehCross(enable);
}
/**
* 超车开关
* 此方法存在域控回执,监听{@link OnAdasListener#onReceiveReceivedAck(ReceivedAck)}回调.使用方法:将此方法的返回值与{@link ReceivedAck#getMsgId()}进行比较,如果相同判断{@link ReceivedAck#getStatus()}是否等于{@link ReceivedAck.Status#NORMAL}详情参见CheckSystemView中的onReceiveReceivedAck
*
* @param enable 0: off 1:on 默认0
* @return 消息是否添加到WS消息发送队列返回值为非0的正整数时表示下发消息的消息ID
* * >=0表示添加到WS发送消息队列
* * =0表示乘客屏模式添加到WS发送消息队列
* * -1L添加到WS发送消息队列失败
*/
@Override
public long sendParkVehOvertake(int enable) {
return mChannel == null ? -1L : mChannel.sendParkVehOvertake(enable);
}
/**
* 盲区数据开关
* 此方法存在域控回执,监听{@link OnAdasListener#onReceiveReceivedAck(ReceivedAck)}回调.使用方法:将此方法的返回值与{@link ReceivedAck#getMsgId()}进行比较,如果相同判断{@link ReceivedAck#getStatus()}是否等于{@link ReceivedAck.Status#NORMAL}详情参见CheckSystemView中的onReceiveReceivedAck
@@ -1436,6 +1466,9 @@ public class AdasManager implements IAdasNetCommApi {
* {@link AdasConstants.MapSystemParamType#SEAT_STATE Value类型int或int类型String}
* {@link AdasConstants.MapSystemParamType#OVERTAKE_MAX_SPEED Value类型double或double类型String}
* {@link AdasConstants.MapSystemParamType#FAULT_SIMULATION_CMD Value类型int或int类型String}
* {@link AdasConstants.MapSystemParamType#COLLISION_REPORTING Value类型null}
* {@link AdasConstants.MapSystemParamType#PARK_VEH_CROSS Value类型int或int类型String}
* {@link AdasConstants.MapSystemParamType#PARK_VEH_OVERTAKE Value类型int或int类型String}
* @return 消息是否添加到WS消息发送队列。由于批量设置参数调用的域控接口存在不同实际调用域控最多2个接口调用次数最多4次所以最多返回4条ID数据
* * 返回值为非0的正整数时表示下发消息的消息ID
* * >=0表示添加到WS发送消息队列

View File

@@ -946,6 +946,31 @@ public interface IAdasNetCommApi {
*/
long sendOvertakeMaxSpeed(double maxSpeed);
/**
* 会车开关
* 此方法存在域控回执,监听{@link OnAdasListener#onReceiveReceivedAck(ReceivedAck)}回调.使用方法:将此方法的返回值与{@link ReceivedAck#getMsgId()}进行比较,如果相同判断{@link ReceivedAck#getStatus()}是否等于{@link ReceivedAck.Status#NORMAL}详情参见CheckSystemView中的onReceiveReceivedAck
*
* @param enable 0: off 1:on 默认0
* @return 消息是否添加到WS消息发送队列返回值为非0的正整数时表示下发消息的消息ID
* * >=0表示添加到WS发送消息队列
* * =0表示乘客屏模式添加到WS发送消息队列
* * -1L添加到WS发送消息队列失败
*/
long sendParkVehCross(int enable);
/**
* 超车开关
* 此方法存在域控回执,监听{@link OnAdasListener#onReceiveReceivedAck(ReceivedAck)}回调.使用方法:将此方法的返回值与{@link ReceivedAck#getMsgId()}进行比较,如果相同判断{@link ReceivedAck#getStatus()}是否等于{@link ReceivedAck.Status#NORMAL}详情参见CheckSystemView中的onReceiveReceivedAck
*
* @param enable 0: off 1:on 默认0
* @return 消息是否添加到WS消息发送队列返回值为非0的正整数时表示下发消息的消息ID
* * >=0表示添加到WS发送消息队列
* * =0表示乘客屏模式添加到WS发送消息队列
* * -1L添加到WS发送消息队列失败
*/
long sendParkVehOvertake(int enable);
/*******************************设置参数命令 V2************************************/
/**
* 盲区数据开关
@@ -1005,6 +1030,9 @@ public interface IAdasNetCommApi {
* {@link AdasConstants.MapSystemParamType#SEAT_STATE Value类型int或int类型String}
* {@link AdasConstants.MapSystemParamType#OVERTAKE_MAX_SPEED Value类型double或double类型String}
* {@link AdasConstants.MapSystemParamType#FAULT_SIMULATION_CMD Value类型int或int类型String}
* {@link AdasConstants.MapSystemParamType#COLLISION_REPORTING Value类型null}
* {@link AdasConstants.MapSystemParamType#PARK_VEH_CROSS Value类型int或int类型String}
* {@link AdasConstants.MapSystemParamType#PARK_VEH_OVERTAKE Value类型int或int类型String}
* @return 消息是否添加到WS消息发送队列。由于批量设置参数调用的域控接口存在不同实际调用域控最多2个接口调用次数最多4次所以最多返回4条ID数据
* * 返回值为非0的正整数时表示下发消息的消息ID
* * >=0表示添加到WS发送消息队列