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 9849c55113..9b06a4edfb 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
@@ -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
diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/SOPSettingView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/SOPSettingView.kt
index 368e2d6a61..b0fa1c1e75 100644
--- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/SOPSettingView.kt
+++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/SOPSettingView.kt
@@ -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 ->
diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_sop_setting.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_sop_setting.xml
index c41a080f15..f94f9a8ae7 100644
--- a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_sop_setting.xml
+++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_sop_setting.xml
@@ -410,6 +410,36 @@
app:layout_constraintGuide_percent="0.5"
app:layout_constraintLeft_toLeftOf="@id/tvVehicleTitle"
app:layout_constraintRight_toRightOf="parent" />
+
+
+
+
+
+
+
+ app:layout_constraintTop_toBottomOf="@id/scParkVehCross" />
+ app:layout_constraintTop_toBottomOf="@id/scParkVehOvertake" />
=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
diff --git a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/AdasManager.java b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/AdasManager.java
index f29f121e3c..a82e210b6f 100644
--- a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/AdasManager.java
+++ b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/AdasManager.java
@@ -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发送消息队列
diff --git a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/IAdasNetCommApi.java b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/IAdasNetCommApi.java
index 5ba39f8bf5..0fb65021f7 100644
--- a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/IAdasNetCommApi.java
+++ b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/IAdasNetCommApi.java
@@ -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发送消息队列