[dev2.15.0][adas]添加弱网减速停车策略开关、添加参数获取请求和添加参数获取应答回调
This commit is contained in:
@@ -52,9 +52,11 @@ public class DataDistribution {
|
||||
}
|
||||
return INSTANCE;
|
||||
}
|
||||
|
||||
public void setResId(int resId) {
|
||||
this.resId = resId;
|
||||
}
|
||||
|
||||
public void registerAdasClientListener(Pair<String, OnAdasClientListener> listener) {
|
||||
this.listener = listener;
|
||||
}
|
||||
@@ -120,6 +122,7 @@ public class DataDistribution {
|
||||
public final List<DataShow> listObuMap = new ArrayList<>();
|
||||
public final List<DataShow> listV2nCongestionEvent = new ArrayList<>();
|
||||
public final List<DataShow> listV2nGlobalPathEvents = new ArrayList<>();
|
||||
public final List<DataShow> listGetParamResp = new ArrayList<>();
|
||||
|
||||
private long listTrajectorySize = 0;
|
||||
private long listTrackedObjectsSize = 0;
|
||||
@@ -150,6 +153,7 @@ public class DataDistribution {
|
||||
private long listObuMapSize = 0;
|
||||
private long listV2nCongestionEventSize = 0;
|
||||
private long listV2nGlobalPathEventsSize = 0;
|
||||
private long listGetParamRespSize = 0;
|
||||
|
||||
public void clearCount() {
|
||||
listTrajectorySize = 1;
|
||||
@@ -181,6 +185,7 @@ public class DataDistribution {
|
||||
listObuMapSize = 1;
|
||||
listV2nCongestionEventSize = 1;
|
||||
listV2nGlobalPathEventsSize = 1;
|
||||
listGetParamRespSize = 1;
|
||||
}
|
||||
|
||||
public String cutDown(String str) {
|
||||
@@ -393,6 +398,14 @@ public class DataDistribution {
|
||||
if (listener != null && Constants.TITLE.RECEIVE_V2N_GLOBAL_PATH_EVENTS.equals(listener.first)) {
|
||||
listener.second.onRefresh();
|
||||
}
|
||||
} else if (messageType == MessagePad.MessageType.MsgTypeGetParamResp) {
|
||||
listGetParamResp.add(0, new DataShow(listGetParamRespSize++, time + str));
|
||||
if (listGetParamResp.size() > LIST_SIZE) {
|
||||
listGetParamResp.remove(listGetParamResp.size() - 1);
|
||||
}
|
||||
if (listener != null && Constants.TITLE.RECEIVE_GET_PARAM_RESP.equals(listener.first)) {
|
||||
listener.second.onRefresh();
|
||||
}
|
||||
} else if (data instanceof PerceptionTrafficLight) {
|
||||
listPerceptionTrafficLight.add(0, new DataShow(listPerceptionTrafficLightSize++, time + str));
|
||||
if (listPerceptionTrafficLight.size() > LIST_SIZE) {
|
||||
|
||||
@@ -99,6 +99,7 @@ public class SendCmd<T> {
|
||||
cmds.add(new SendCmdOption<Integer>("不使用地图限速功能", SendCmdOption.TAG.HADMAP_SPEED_LIMIT_VALID, 0));
|
||||
return new SendCmd<Integer>(Constants.TITLE.SEND_HADMAP_SPEED_LIMIT_VALID, cmds);
|
||||
}
|
||||
|
||||
//环岛模式开关
|
||||
public static SendCmd<Integer> getSendRampThetaValid() {
|
||||
List<SendCmdOption<Integer>> cmds = new ArrayList<>();
|
||||
@@ -106,4 +107,19 @@ public class SendCmd<T> {
|
||||
cmds.add(new SendCmdOption<Integer>("普通模式", SendCmdOption.TAG.RAMP_THETA_VALID, 0));
|
||||
return new SendCmd<Integer>(Constants.TITLE.SEND_RAMP_THETA_VALID, cmds);
|
||||
}
|
||||
|
||||
//参数获取请求
|
||||
public static SendCmd<Integer> getSendGetParamReq() {
|
||||
List<SendCmdOption<Integer>> cmds = new ArrayList<>();
|
||||
cmds.add(new SendCmdOption<Integer>("获取全部", com.zhidao.support.adas.high.common.Constants.PARAM_TYPE.UNKNOWN, com.zhidao.support.adas.high.common.Constants.PARAM_TYPE.UNKNOWN));
|
||||
cmds.add(new SendCmdOption<Integer>("绕障类功能开关", com.zhidao.support.adas.high.common.Constants.PARAM_TYPE.DETOURING, com.zhidao.support.adas.high.common.Constants.PARAM_TYPE.DETOURING));
|
||||
cmds.add(new SendCmdOption<Integer>("变道绕障的目标障碍物速度阈值", com.zhidao.support.adas.high.common.Constants.PARAM_TYPE.DETOURING_SPEED, com.zhidao.support.adas.high.common.Constants.PARAM_TYPE.DETOURING_SPEED));
|
||||
cmds.add(new SendCmdOption<Integer>("AEB开关", com.zhidao.support.adas.high.common.Constants.PARAM_TYPE.AEB, com.zhidao.support.adas.high.common.Constants.PARAM_TYPE.AEB));
|
||||
cmds.add(new SendCmdOption<Integer>("限制绕障开关", com.zhidao.support.adas.high.common.Constants.PARAM_TYPE.LANE_CHANGE_RESTRAIN_VALID, com.zhidao.support.adas.high.common.Constants.PARAM_TYPE.LANE_CHANGE_RESTRAIN_VALID));
|
||||
cmds.add(new SendCmdOption<Integer>("停车让行线前避让等待开关", com.zhidao.support.adas.high.common.Constants.PARAM_TYPE.STOP_YIELD_VALID, com.zhidao.support.adas.high.common.Constants.PARAM_TYPE.STOP_YIELD_VALID));
|
||||
cmds.add(new SendCmdOption<Integer>("地图限速功能开关", com.zhidao.support.adas.high.common.Constants.PARAM_TYPE.HADMAP_SPEED_LIMIT_VALID, com.zhidao.support.adas.high.common.Constants.PARAM_TYPE.HADMAP_SPEED_LIMIT_VALID));
|
||||
cmds.add(new SendCmdOption<Integer>("环岛模式开关", com.zhidao.support.adas.high.common.Constants.PARAM_TYPE.RAMP_THETA_VALID, com.zhidao.support.adas.high.common.Constants.PARAM_TYPE.RAMP_THETA_VALID));
|
||||
cmds.add(new SendCmdOption<Integer>("弱网减速停车策略开关", com.zhidao.support.adas.high.common.Constants.PARAM_TYPE.WEAK_NET_SLOW_DOWN, com.zhidao.support.adas.high.common.Constants.PARAM_TYPE.WEAK_NET_SLOW_DOWN));
|
||||
return new SendCmd<Integer>(Constants.TITLE.SEND_GET_PARAM_REQ, cmds);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -231,7 +231,9 @@ public class InfoFragment extends BaseFragment {
|
||||
adapter.setData(DataDistribution.getInstance().listV2nCongestionEvent);
|
||||
} else if (Constants.TITLE.RECEIVE_V2N_GLOBAL_PATH_EVENTS.equals(title)) {
|
||||
adapter.setData(DataDistribution.getInstance().listV2nGlobalPathEvents);
|
||||
} else {
|
||||
}else if (Constants.TITLE.RECEIVE_GET_PARAM_RESP.equals(title)) {
|
||||
adapter.setData(DataDistribution.getInstance().listGetParamResp);
|
||||
} else {
|
||||
adapter.setData(DataDistribution.getInstance().listErrorData);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -833,6 +833,7 @@ public class MainActivity extends BaseActivity implements OnAdasListener, OnAdas
|
||||
titleFragmentData.add(Constants.TITLE.RECEIVE_BACK_CAMERA_VIDEO);
|
||||
titleFragmentData.add(Constants.TITLE.RECEIVE_V2N_CONGESTION_EVENT);
|
||||
titleFragmentData.add(Constants.TITLE.RECEIVE_V2N_GLOBAL_PATH_EVENTS);
|
||||
titleFragmentData.add(Constants.TITLE.RECEIVE_GET_PARAM_RESP);
|
||||
titleFragmentData.add(Constants.TITLE.RECEIVE_WARN);
|
||||
titleFragmentData.add(Constants.TITLE.RECEIVE_ERROR);
|
||||
|
||||
@@ -863,6 +864,7 @@ public class MainActivity extends BaseActivity implements OnAdasListener, OnAdas
|
||||
titleBtnData.add(Constants.TITLE.SEND_PLANNING_CMD);
|
||||
titleBtnData.add(Constants.TITLE.SEND_BLIND_AREA);
|
||||
titleBtnData.add(Constants.TITLE.SEND_V2N_TO_PNC);
|
||||
titleBtnData.add(Constants.TITLE.SEND_GET_PARAM_REQ);
|
||||
}
|
||||
|
||||
private void initBtnRecyclerView() {
|
||||
@@ -1276,6 +1278,12 @@ public class MainActivity extends BaseActivity implements OnAdasListener, OnAdas
|
||||
DataDistribution.getInstance().addData(base);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onGetParamResp(@NonNull MessagePad.Header header, @NonNull MessagePad.SetParamReq getParamResp) {
|
||||
ReceiveData base = new ReceiveData(header, getParamResp, sdf);
|
||||
DataDistribution.getInstance().addData(base);
|
||||
}
|
||||
|
||||
private void initAdas() {
|
||||
CupidLogUtils.e(TAG, "--->初始化");
|
||||
AdasOptions options;
|
||||
@@ -1690,6 +1698,10 @@ public class MainActivity extends BaseActivity implements OnAdasListener, OnAdas
|
||||
//环岛模式开关
|
||||
new SendCmdDialog(this, SendCmd.getSendRampThetaValid()).show();
|
||||
break;
|
||||
case Constants.TITLE.SEND_GET_PARAM_REQ:
|
||||
//获取参数
|
||||
new SendCmdDialog(this, SendCmd.getSendGetParamReq()).show();
|
||||
break;
|
||||
case Constants.TITLE.SEND_DETOURING_SPEED:
|
||||
//绕障速度设置
|
||||
showDetouringSpeedDialog();
|
||||
|
||||
@@ -112,6 +112,12 @@ public class SendCmdDialog extends Dialog {
|
||||
if (data.tag == SendCmdOption.TAG.RAMP_THETA_VALID) {
|
||||
AdasManager.getInstance().sendRampThetaValid((int) data.value);
|
||||
}
|
||||
} else if (Constants.TITLE.SEND_GET_PARAM_REQ.equals(name)) {
|
||||
if (data.tag == com.zhidao.support.adas.high.common.Constants.PARAM_TYPE.UNKNOWN) {
|
||||
AdasManager.getInstance().sendGetAllParamReq();
|
||||
} else {
|
||||
AdasManager.getInstance().sendGetParamReq((int) data.value);
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
@@ -164,6 +164,7 @@ public class Constants {
|
||||
String RECEIVE_SWEEPER_TASK_INDEX_DATA = MessageType.TYPE_RECEIVE_SWEEPER_TASK_INDEX_DATA.desc;
|
||||
String RECEIVE_V2N_CONGESTION_EVENT = MessageType.TYPE_RECEIVE_V2N_CONGESTION_EVENT.desc;
|
||||
String RECEIVE_V2N_GLOBAL_PATH_EVENTS = MessageType.TYPE_RECEIVE_V2N_GLOBAL_PATH_EVENTS.desc;
|
||||
String RECEIVE_GET_PARAM_RESP = MessageType.TYPE_RECEIVE_GET_PARAM_RESP.desc;
|
||||
|
||||
// String RECEIVE_BASIC_INFO_REQ = "自动驾驶设备基础信息请求";
|
||||
String TITLE_CAR_CONFIG_RESP = "工控机版本\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t配置";
|
||||
@@ -208,6 +209,7 @@ public class Constants {
|
||||
String SEND_STOP_YIELD_VALID = "停车让行线前避让等待开关";
|
||||
String SEND_HADMAP_SPEED_LIMIT_VALID = "地图限速开关";
|
||||
String SEND_RAMP_THETA_VALID = "环岛模式开关";
|
||||
String SEND_GET_PARAM_REQ = "参数获取";
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -536,6 +536,41 @@ class MoGoAutopilotControlProvider :
|
||||
return AdasManager.getInstance().sendDetouringSpeed(speed)
|
||||
}
|
||||
|
||||
/**
|
||||
* 弱网减速停车策略开关
|
||||
* isEnable = true 使用弱网减速停车策略
|
||||
* isEnable = false 关闭弱网减速停车策略
|
||||
* @return boolean
|
||||
*/
|
||||
override fun sendWeakNetSlowDown(isEnable: Boolean): Boolean {
|
||||
return if(isEnable){
|
||||
AdasManager.getInstance().sendWeakNetSlowDown(1)
|
||||
}else{
|
||||
AdasManager.getInstance().sendWeakNetSlowDown(0)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取全部参数
|
||||
* 结果回调{@link OnAdasListener#onGetParamResp(MessagePad.Header, MessagePad.SetParamReq)}
|
||||
*
|
||||
* @return boolean
|
||||
*/
|
||||
override fun sendGetAllParamReq(): Boolean {
|
||||
return AdasManager.getInstance().sendGetAllParamReq()
|
||||
}
|
||||
|
||||
/**
|
||||
* 参数获取请求
|
||||
* 结果回调{@link OnAdasListener#onGetParamResp(MessagePad.Header, MessagePad.SetParamReq)}
|
||||
*
|
||||
* @param paramType 参数类型{@link com.zhidao.support.adas.high.common.Constants.PARAM_TYPE}
|
||||
* @return boolean
|
||||
*/
|
||||
override fun sendGetParamReq(paramType: Int): Boolean {
|
||||
return AdasManager.getInstance().sendGetParamReq(paramType)
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取数据采集录制模式配置列表
|
||||
* @param reqType 0: all, 1:获取当前所有topic列表, 2:配置需要预加载的topic组合
|
||||
|
||||
@@ -676,6 +676,18 @@ class MoGoAdasListenerImpl : OnAdasListener {
|
||||
CallerV2XListenerManager.dispatchV2nGlobalPathEvents(roadOverview.eventCount, construct, triangle, congestion, parkingViolation)
|
||||
}
|
||||
|
||||
/**
|
||||
* 参数获取应答
|
||||
* <p>
|
||||
* 调用{@link AdasManager#sendGetAllParamReq()}或{@link AdasManager#sendGetParamReq(int)}
|
||||
* 如果对应的value是空串,说明没有这个param或者get失败了。重启后值还是在redis里
|
||||
*
|
||||
* @param header 头
|
||||
* @param getParamResp 配置参数
|
||||
*/
|
||||
override fun onGetParamResp(header: MessagePad.Header, getParamResp: MessagePad.SetParamReq) {
|
||||
}
|
||||
|
||||
/**
|
||||
* 是否可以启动自动驾驶
|
||||
* 使用方法查看:app_ipc_monitoring/uiMainActivity/onAutopilotAbility
|
||||
|
||||
@@ -2,8 +2,8 @@ package com.mogo.eagle.core.function.api.autopilot
|
||||
|
||||
import chassis.SpecialVehicleTaskCmdOuterClass
|
||||
import com.mogo.eagle.core.data.autopilot.AutopilotControlParameters
|
||||
import com.mogo.eagle.core.data.deva.badcase.BagManagerEntity
|
||||
import com.mogo.eagle.core.data.biz.trafficlight.TrafficLightResult
|
||||
import com.mogo.eagle.core.data.deva.badcase.BagManagerEntity
|
||||
import com.mogo.eagle.core.function.api.base.IMoGoFunctionServerProvider
|
||||
|
||||
/**
|
||||
@@ -179,6 +179,31 @@ interface IMoGoAutopilotControlProvider : IMoGoFunctionServerProvider {
|
||||
*/
|
||||
fun sendDetouringSpeed(speed: Double): Boolean
|
||||
|
||||
/**
|
||||
* 弱网减速停车策略开关
|
||||
* isEnable = true 使用弱网减速停车策略
|
||||
* isEnable = false 关闭弱网减速停车策略
|
||||
* @return boolean
|
||||
*/
|
||||
fun sendWeakNetSlowDown(isEnable: Boolean): Boolean
|
||||
|
||||
/**
|
||||
* 获取全部参数
|
||||
* 结果回调{@link OnAdasListener#onGetParamResp(MessagePad.Header, MessagePad.SetParamReq)}
|
||||
*
|
||||
* @return boolean
|
||||
*/
|
||||
fun sendGetAllParamReq(): Boolean
|
||||
|
||||
/**
|
||||
* 参数获取请求
|
||||
* 结果回调{@link OnAdasListener#onGetParamResp(MessagePad.Header, MessagePad.SetParamReq)}
|
||||
*
|
||||
* @param paramType 参数类型{@link com.zhidao.support.adas.high.common.Constants.PARAM_TYPE}
|
||||
* @return boolean
|
||||
*/
|
||||
fun sendGetParamReq(paramType: Int): Boolean
|
||||
|
||||
/**
|
||||
* 获取数据采集录制模式配置列表
|
||||
* @param reqType 0: all, 1:获取当前所有topic列表, 2:配置需要预加载的topic组合
|
||||
|
||||
@@ -254,6 +254,36 @@ object CallerAutoPilotControlManager {
|
||||
return providerApi?.sendDetouringSpeed(speed)
|
||||
}
|
||||
|
||||
/**
|
||||
* 弱网减速停车策略开关
|
||||
* isEnable = true 使用弱网减速停车策略
|
||||
* isEnable = false 关闭弱网减速停车策略
|
||||
* @return boolean
|
||||
*/
|
||||
fun sendWeakNetSlowDown(isEnable: Boolean): Boolean? {
|
||||
return providerApi?.sendWeakNetSlowDown(isEnable)
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取全部参数
|
||||
* 结果回调{@link OnAdasListener#onGetParamResp(MessagePad.Header, MessagePad.SetParamReq)}
|
||||
*
|
||||
* @return boolean
|
||||
*/
|
||||
fun sendGetAllParamReq(): Boolean? {
|
||||
return providerApi?.sendGetAllParamReq()
|
||||
}
|
||||
|
||||
/**
|
||||
* 参数获取请求
|
||||
* 结果回调{@link OnAdasListener#onGetParamResp(MessagePad.Header, MessagePad.SetParamReq)}
|
||||
*
|
||||
* @param paramType 参数类型{@link com.zhidao.support.adas.high.common.Constants.PARAM_TYPE}
|
||||
* @return boolean
|
||||
*/
|
||||
fun sendGetParamReq(paramType: Int): Boolean? {
|
||||
return providerApi?.sendGetParamReq(paramType)
|
||||
}
|
||||
/**
|
||||
* 获取数据采集录制模式配置列表
|
||||
* @param reqType 0: all, 1:获取当前所有topic列表, 2:配置需要预加载的topic组合
|
||||
|
||||
@@ -64,6 +64,8 @@ enum MessageType
|
||||
MsgTypeSetParamReqV2 = 0x1011d; //设置参数命令V2
|
||||
MsgTypeV2nCongestionEvent = 0x1011e; //主车附近拥堵事件推送, 透传
|
||||
MsgTypeV2nGlobalPathEvents = 0x1011f; //主车路径全局事件推送, 透传
|
||||
MsgTypeGetParamReq = 0x10120; //参数获取请求
|
||||
MsgTypeGetParamResp = 0x10121; //参数获取应答
|
||||
}
|
||||
|
||||
message Header
|
||||
@@ -251,7 +253,7 @@ message BasicInfoReq
|
||||
{
|
||||
}
|
||||
|
||||
// message definition for MessageType: MsgTypeBasicInfoRsp
|
||||
// message definition for MessageType: MsgTypeBasicInfoResp
|
||||
message BasicInfoResp
|
||||
{
|
||||
string sn = 1;
|
||||
@@ -312,6 +314,8 @@ message CarConfigResp
|
||||
double maxSpeedLimit = 6; //最大自动驾驶限速, 单位:m/s
|
||||
double minAcceleration = 7; //最小加速度, 单位:m/s²
|
||||
double maxAcceleration = 8; //最大加速度, 单位:m/s²
|
||||
string carType = 9; //车辆类型
|
||||
string subCarType = 10; //车辆子类型
|
||||
}
|
||||
|
||||
// message definition for MsgTypeRecordCause
|
||||
@@ -502,19 +506,19 @@ enum DrivingState
|
||||
AUTO_LANE_CHANGE_RIGHT_RSI = 18; //V2N RSI主动向右变道状态: driving_action:1 表示触发变道;driving_action:2 表示执行变道;driving_action:3 表示变道取消;driving_action:4 表示变道完成
|
||||
LANE_AVOID_LEFT_RSI = 19; //V2N RSI主动向左绕行状态: driving_action:1 表示触发绕行;driving_action:2 表示执行绕行;driving_action:3 表示绕行取消;driving_action:4 表示绕行完成
|
||||
LANE_AVOID_RIGHT_RSI = 20; //V2N RSI主动向右绕行状态: driving_action:1 表示触发绕行;driving_action:2 表示执行绕行;driving_action:3 表示绕行取消;driving_action:4 表示绕行完成
|
||||
WAITING_RSI = 21; //V2N RSI正在等待变道避让施工场景: driving_action:1 表示正在等待;driving_action:2 表示等待超时请求平行驾驶;
|
||||
WAITING_RSI = 21; //V2N RSI正在等待变道避让施工场景/静止障碍物: driving_action:1 表示正在等待;driving_action:2 表示等待超时请求平行驾驶;
|
||||
|
||||
AUTO_LANE_CHANGE_LEFT_RSM = 22; //V2N RSM主动向左变道状态: driving_action:1 表示触发变道;driving_action:2 表示执行变道;driving_action:3 表示变道取消;driving_action:4 表示变道完成
|
||||
AUTO_LANE_CHANGE_RIGHT_RSM = 23; //V2N RSM主动向右变道状态: driving_action:1 表示触发变道;driving_action:2 表示执行变道;driving_action:3 表示变道取消;driving_action:4 表示变道完成
|
||||
LANE_AVOID_LEFT_RSM = 24; //V2N RSM主动向左绕行状态: driving_action:1 表示触发绕行;driving_action:2 表示执行绕行;driving_action:3 表示绕行取消;driving_action:4 表示绕行完成
|
||||
LANE_AVOID_RIGHT_RSM = 25; //V2N RSM主动向右绕行状态: driving_action:1 表示触发绕行;driving_action:2 表示执行绕行;driving_action:3 表示绕行取消;driving_action:4 表示绕行完成
|
||||
WAITING_RSM = 26; //V2N RSM正在等待变道避让静止障碍物: driving_action:1 表示正在等待;driving_action:2 表示等待超时请求平行驾驶;
|
||||
WAITING_RSM = 26; //V2N RSM正在等待变道避让施工场景/静止障碍物: driving_action:1 表示正在等待;driving_action:2 表示等待超时请求平行驾驶;
|
||||
|
||||
AUTO_LANE_CHANGE_LEFT_RSI_TRIANGLE = 27; //V2N 三角牌(道路事故)主动向左变道状态: driving_action:1 表示触发变道;driving_action:2 表示执行变道;driving_action:3 表示变道取消;driving_action:4 表示变道完成
|
||||
AUTO_LANE_CHANGE_RIGHT_RSI_TRIANGLE = 28; //V2N 三角牌(道路事故)主动向右变道状态: driving_action:1 表示触发变道;driving_action:2 表示执行变道;driving_action:3 表示变道取消;driving_action:4 表示变道完成
|
||||
LANE_AVOID_LEFT_RSI_TRIANGLE = 29; //V2N 三角牌(道路事故)主动向左绕行状态: driving_action:1 表示触发绕行;driving_action:2 表示执行绕行;driving_action:3 表示绕行取消;driving_action:4 表示绕行完成
|
||||
LANE_AVOID_RIGHT_RSI_TRIANGLE = 30; //V2N 三角牌(道路事故)主动向右绕行状态: driving_action:1 表示触发绕行;driving_action:2 表示执行绕行;driving_action:3 表示绕行取消;driving_action:4 表示绕行完成
|
||||
WAITING_RSI_TRIANGLE = 31; //V2N 正在等待变道避让三角牌(道路事故): driving_action:1 表示正在等待;driving_action:2 表示等待超时请求平行驾驶
|
||||
AUTO_LANE_CHANGE_LEFT_RSI_TRIANGLE = 27; //V2N 三角锥主动向左变道状态: driving_action:1 表示触发变道;driving_action:2 表示执行变道;driving_action:3 表示变道取消;driving_action:4 表示变道完成
|
||||
AUTO_LANE_CHANGE_RIGHT_RSI_TRIANGLE = 28; //V2N 三角锥主动向右变道状态: driving_action:1 表示触发变道;driving_action:2 表示执行变道;driving_action:3 表示变道取消;driving_action:4 表示变道完成
|
||||
LANE_AVOID_LEFT_RSI_TRIANGLE = 29; //V2N 三角锥主动向左绕行状态: driving_action:1 表示触发绕行;driving_action:2 表示执行绕行;driving_action:3 表示绕行取消;driving_action:4 表示绕行完成
|
||||
LANE_AVOID_RIGHT_RSI_TRIANGLE = 30; //V2N 三角锥主动向右绕行状态: driving_action:1 表示触发绕行;driving_action:2 表示执行绕行;driving_action:3 表示绕行取消;driving_action:4 表示绕行完成
|
||||
WAITING_RSI_TRIANGLE = 31; //V2N 三角锥正在等待变道避让施工场景/静止障碍物: driving_action:1 表示正在等待;driving_action:2 表示等待超时请求平行驾驶
|
||||
}
|
||||
|
||||
enum DrivingAction
|
||||
@@ -575,12 +579,13 @@ message PlanningActionMsg
|
||||
//message definition for MsgTypeSetParamReq
|
||||
message SetOneParam
|
||||
{
|
||||
uint32 type = 1; // 0:default 1:绕障类功能开关(bool) 2:变道绕障的目标碍物速度闻值(double,Ds)
|
||||
// 3:AEB开关(bool) 0: 关闭自动紧急制动功能 1:启用自动紧急制动功能
|
||||
// 4:限制绕障开关(bool) 0:正常绕障 1:限制绕障 默认0
|
||||
// 5:停车让行线前避让等待开关(bool) 0:停车让行线前无需等待 1:停车让行线前需要等待 默认0
|
||||
// 6:地图限速功能开关(bol) :不使用地图限速功能 1:使用地图限速功能 默认0
|
||||
// 7:环岛模式开关(bool) //0:普通模式 1:环岛模式 默认0
|
||||
uint32 type = 1; // 0:default 1:绕障类功能开关(bool) 2:变道绕障的目标障碍物速度阈值(double, m/s)
|
||||
// 3:AEB开关(bool) 0:关闭自动紧急制动功能 1:启用自动紧急制动功能
|
||||
// 4:限制绕障开关(bool) 0:正常绕障 1:限制绕障 默认0
|
||||
// 5:停车让行线前避让等待开关(bool) 0:停车让行线前无需等待 1:停车让行线前需要等待 默认0
|
||||
// 6:地图限速功能开关(bool) 0:不使用地图限速功能 1:使用地图限速功能 默认0
|
||||
// 7:环岛模式开关(bool) 0:普通模式 1:环岛模式 默认0
|
||||
// 8:弱网减速停车策略开关(bool) 0:关闭弱网减速停车策略 1:使用弱网减速停车策略
|
||||
string value = 2; // 转成字符串的值
|
||||
}
|
||||
|
||||
@@ -643,3 +648,9 @@ message PlanningCmd
|
||||
//message definition for MsgTypeV2nGlobalPathEvents
|
||||
//refer to road_overview_events.proto for details
|
||||
|
||||
//message definition for MsgTypeGetParamReq
|
||||
//复用 SetParamReq
|
||||
|
||||
//message definition for MsgTypeGetParamResp
|
||||
//复用 SetParamReq
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@ package mogo.telematics;
|
||||
enum ParamSetType
|
||||
{
|
||||
ParamSetTypeNone = 0;
|
||||
ParamSetTypeBlindArea = 1; //bool, :off 1:on
|
||||
ParamSetTypeBlindArea = 1; //bool, 0:off 1:on
|
||||
ParamSetTypeV2N = 2; //bool, 0:不发给PnC 1:发给Pnc
|
||||
}
|
||||
|
||||
|
||||
@@ -1541,7 +1541,7 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec
|
||||
*/
|
||||
@Override
|
||||
public boolean sendDetouring(int enable) {
|
||||
return sendSetParamReq(1, String.valueOf(enable));
|
||||
return sendSetParamReq(Constants.PARAM_TYPE.DETOURING, String.valueOf(enable));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1552,7 +1552,7 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec
|
||||
*/
|
||||
@Override
|
||||
public boolean sendDetouringSpeed(double speed) {
|
||||
return sendSetParamReq(2, String.valueOf(speed));
|
||||
return sendSetParamReq(Constants.PARAM_TYPE.DETOURING_SPEED, String.valueOf(speed));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1564,7 +1564,7 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec
|
||||
*/
|
||||
@Override
|
||||
public boolean sendAebCmd(int enable) {
|
||||
return sendSetParamReq(3, String.valueOf(enable));
|
||||
return sendSetParamReq(Constants.PARAM_TYPE.AEB, String.valueOf(enable));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1576,7 +1576,7 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec
|
||||
*/
|
||||
@Override
|
||||
public boolean sendLaneChangeRestrainValid(int enable) {
|
||||
return sendSetParamReq(4, String.valueOf(enable));
|
||||
return sendSetParamReq(Constants.PARAM_TYPE.LANE_CHANGE_RESTRAIN_VALID, String.valueOf(enable));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1588,7 +1588,7 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec
|
||||
*/
|
||||
@Override
|
||||
public boolean sendStopYieldValid(int enable) {
|
||||
return sendSetParamReq(5, String.valueOf(enable));
|
||||
return sendSetParamReq(Constants.PARAM_TYPE.STOP_YIELD_VALID, String.valueOf(enable));
|
||||
}
|
||||
|
||||
|
||||
@@ -1601,7 +1601,7 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec
|
||||
*/
|
||||
@Override
|
||||
public boolean sendHadmapSpeedLimitValid(int enable) {
|
||||
return sendSetParamReq(6, String.valueOf(enable));
|
||||
return sendSetParamReq(Constants.PARAM_TYPE.HADMAP_SPEED_LIMIT_VALID, String.valueOf(enable));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1613,7 +1613,60 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec
|
||||
*/
|
||||
@Override
|
||||
public boolean sendRampThetaValid(int enable) {
|
||||
return sendSetParamReq(7, String.valueOf(enable));
|
||||
return sendSetParamReq(Constants.PARAM_TYPE.RAMP_THETA_VALID, String.valueOf(enable));
|
||||
}
|
||||
|
||||
/**
|
||||
* 弱网减速停车策略开关
|
||||
*
|
||||
* @param enable 0:关闭弱网减速停车策略 1:使用弱网减速停车策略
|
||||
* @return boolean
|
||||
*/
|
||||
@Override
|
||||
public boolean sendWeakNetSlowDown(int enable) {
|
||||
return sendSetParamReq(Constants.PARAM_TYPE.WEAK_NET_SLOW_DOWN, String.valueOf(enable));
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取全部参数
|
||||
* 结果回调{@link OnAdasListener#onGetParamResp(MessagePad.Header, MessagePad.SetParamReq)}
|
||||
*
|
||||
* @return boolean
|
||||
*/
|
||||
@Override
|
||||
public boolean sendGetAllParamReq() {
|
||||
return sendGetParamReq(Constants.PARAM_TYPE.UNKNOWN);
|
||||
}
|
||||
|
||||
/**
|
||||
* 参数获取请求
|
||||
* 结果回调{@link OnAdasListener#onGetParamResp(MessagePad.Header, MessagePad.SetParamReq)}
|
||||
*
|
||||
* @param paramType 参数类型{@link Constants.PARAM_TYPE}
|
||||
* @return boolean
|
||||
*/
|
||||
@Override
|
||||
public boolean sendGetParamReq(@Define.ParamType int paramType) {
|
||||
MessagePad.SetParamReq req;
|
||||
if (paramType == Constants.PARAM_TYPE.UNKNOWN) {
|
||||
req = MessagePad.SetParamReq
|
||||
.newBuilder()
|
||||
.addReqs(MessagePad.SetOneParam.newBuilder().setType(Constants.PARAM_TYPE.DETOURING))
|
||||
.addReqs(MessagePad.SetOneParam.newBuilder().setType(Constants.PARAM_TYPE.DETOURING_SPEED))
|
||||
.addReqs(MessagePad.SetOneParam.newBuilder().setType(Constants.PARAM_TYPE.AEB))
|
||||
.addReqs(MessagePad.SetOneParam.newBuilder().setType(Constants.PARAM_TYPE.LANE_CHANGE_RESTRAIN_VALID))
|
||||
.addReqs(MessagePad.SetOneParam.newBuilder().setType(Constants.PARAM_TYPE.STOP_YIELD_VALID))
|
||||
.addReqs(MessagePad.SetOneParam.newBuilder().setType(Constants.PARAM_TYPE.HADMAP_SPEED_LIMIT_VALID))
|
||||
.addReqs(MessagePad.SetOneParam.newBuilder().setType(Constants.PARAM_TYPE.RAMP_THETA_VALID))
|
||||
.addReqs(MessagePad.SetOneParam.newBuilder().setType(Constants.PARAM_TYPE.WEAK_NET_SLOW_DOWN))
|
||||
.build();
|
||||
} else {
|
||||
req = MessagePad.SetParamReq
|
||||
.newBuilder()
|
||||
.addReqs(MessagePad.SetOneParam.newBuilder().setType(paramType))
|
||||
.build();
|
||||
}
|
||||
return sendPBMessage(MessageType.TYPE_SEND_GET_PARAM_REQ.typeCode, req.toByteArray());
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -894,6 +894,40 @@ public class AdasManager implements IAdasNetCommApi {
|
||||
return mChannel != null && mChannel.sendRampThetaValid(enable);
|
||||
}
|
||||
|
||||
/**
|
||||
* 弱网减速停车策略开关
|
||||
*
|
||||
* @param enable 0:关闭弱网减速停车策略 1:使用弱网减速停车策略
|
||||
* @return boolean
|
||||
*/
|
||||
@Override
|
||||
public boolean sendWeakNetSlowDown(int enable) {
|
||||
return mChannel != null && mChannel.sendWeakNetSlowDown(enable);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取全部参数
|
||||
* 结果回调{@link OnAdasListener#onGetParamResp(MessagePad.Header, MessagePad.SetParamReq)}
|
||||
*
|
||||
* @return boolean
|
||||
*/
|
||||
@Override
|
||||
public boolean sendGetAllParamReq() {
|
||||
return mChannel != null && mChannel.sendGetAllParamReq();
|
||||
}
|
||||
|
||||
/**
|
||||
* 参数获取请求
|
||||
* 结果回调{@link OnAdasListener#onGetParamResp(MessagePad.Header, MessagePad.SetParamReq)}
|
||||
*
|
||||
* @param paramType 参数类型{@link Constants.PARAM_TYPE}
|
||||
* @return boolean
|
||||
*/
|
||||
@Override
|
||||
public boolean sendGetParamReq(@Define.ParamType int paramType) {
|
||||
return mChannel != null && mChannel.sendGetParamReq(paramType);
|
||||
}
|
||||
|
||||
/**
|
||||
* 发生行程相关
|
||||
* type=1或2的时 需要参数 lineName
|
||||
|
||||
@@ -548,6 +548,30 @@ public interface IAdasNetCommApi {
|
||||
*/
|
||||
boolean sendRampThetaValid(int enable);
|
||||
|
||||
/**
|
||||
* 弱网减速停车策略开关
|
||||
*
|
||||
* @param enable 0:关闭弱网减速停车策略 1:使用弱网减速停车策略
|
||||
* @return boolean
|
||||
*/
|
||||
boolean sendWeakNetSlowDown(int enable);
|
||||
|
||||
/**
|
||||
* 获取全部参数
|
||||
*
|
||||
* @return boolean
|
||||
*/
|
||||
boolean sendGetAllParamReq();
|
||||
|
||||
/**
|
||||
* 参数获取请求
|
||||
*
|
||||
* @param paramType
|
||||
* @return boolean
|
||||
*/
|
||||
boolean sendGetParamReq(@Define.ParamType int paramType);
|
||||
|
||||
|
||||
/**
|
||||
* 发生行程相关
|
||||
* type=1或2的时 需要参数 lineName
|
||||
|
||||
@@ -284,6 +284,17 @@ public interface OnAdasListener {
|
||||
*/
|
||||
void onV2nGlobalPathEvents(@NotNull MessagePad.Header header, @NotNull RoadOverviewEvents.RoadOverviewData roadOverview, @Nullable MogoV2X.RSI_PB construct, @Nullable MogoV2X.RSI_PB triangle, @Nullable MogoV2X.RSI_PB congestion, @Nullable MogoV2X.RSM_PB parkingViolation);
|
||||
|
||||
/**
|
||||
* 参数获取应答
|
||||
* <p>
|
||||
* 调用{@link AdasManager#sendGetAllParamReq()}或{@link AdasManager#sendGetParamReq(int)}
|
||||
* 如果对应的value是空串,说明没有这个param或者get失败了。重启后值还是在redis里
|
||||
*
|
||||
* @param header 头
|
||||
* @param getParamResp 配置参数
|
||||
*/
|
||||
void onGetParamResp(@NotNull MessagePad.Header header, @NotNull MessagePad.SetParamReq getParamResp);
|
||||
|
||||
/**
|
||||
* 是否有能力启动自动驾驶
|
||||
*
|
||||
|
||||
@@ -120,4 +120,18 @@ public class Constants {
|
||||
int OLD_CHASSIS = 1;//老底盘
|
||||
}
|
||||
|
||||
/**
|
||||
* 参数类型
|
||||
*/
|
||||
public interface PARAM_TYPE {
|
||||
int UNKNOWN = -1;
|
||||
int DETOURING = 1;//绕障类功能开关
|
||||
int DETOURING_SPEED = 2;//变道绕障的目标障碍物速度阈值
|
||||
int AEB = 3;//AEB开关
|
||||
int LANE_CHANGE_RESTRAIN_VALID = 4;//限制绕障开关
|
||||
int STOP_YIELD_VALID = 5;//停车让行线前避让等待开关
|
||||
int HADMAP_SPEED_LIMIT_VALID = 6;//地图限速功能开关
|
||||
int RAMP_THETA_VALID = 7;//环岛模式开关
|
||||
int WEAK_NET_SLOW_DOWN = 8;//弱网减速停车策略开关
|
||||
}
|
||||
}
|
||||
|
||||
@@ -54,4 +54,12 @@ public final class Define {
|
||||
@Retention(RetentionPolicy.SOURCE)
|
||||
public @interface AutopilotStartStatus {
|
||||
}
|
||||
|
||||
@IntDef(flag = true, value = {Constants.PARAM_TYPE.DETOURING, Constants.PARAM_TYPE.DETOURING_SPEED,
|
||||
Constants.PARAM_TYPE.AEB, Constants.PARAM_TYPE.LANE_CHANGE_RESTRAIN_VALID,
|
||||
Constants.PARAM_TYPE.STOP_YIELD_VALID, Constants.PARAM_TYPE.HADMAP_SPEED_LIMIT_VALID,
|
||||
Constants.PARAM_TYPE.RAMP_THETA_VALID, Constants.PARAM_TYPE.WEAK_NET_SLOW_DOWN})
|
||||
@Retention(RetentionPolicy.SOURCE)
|
||||
public @interface ParamType {
|
||||
}
|
||||
}
|
||||
|
||||
@@ -62,6 +62,8 @@ public enum MessageType {
|
||||
TYPE_SEND_SET_PARAM_REQ_V2(MessagePad.MessageType.MsgTypeSetParamReqV2, "设置参数命令V2"),
|
||||
TYPE_RECEIVE_V2N_CONGESTION_EVENT(MessagePad.MessageType.MsgTypeV2nCongestionEvent, "主车附近事件推送"),
|
||||
TYPE_RECEIVE_V2N_GLOBAL_PATH_EVENTS(MessagePad.MessageType.MsgTypeV2nGlobalPathEvents, "主车路径全局事件推送"),
|
||||
TYPE_SEND_GET_PARAM_REQ(MessagePad.MessageType.MsgTypeGetParamReq, "参数获取请求"),
|
||||
TYPE_RECEIVE_GET_PARAM_RESP(MessagePad.MessageType.MsgTypeGetParamResp, "参数获取应答"),
|
||||
//TODO 透传原始pb文件中不存在以下type。由于Java中无法强转,所以在mogo-adas-data/message_pad.proto中放开注释
|
||||
TYPE_RECEIVE_PLANNING_DECISION_STATE(MessagePad.MessageType.MsgTypePlanningDecisionState, "Planning决策状态"),
|
||||
TYPE_RECEIVE_SWEEPER_TASK_INDEX_DATA(MessagePad.MessageType.MsgTypeSweeperTaskIndexData, "清扫车指标数据"),
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
package com.zhidao.support.adas.high.msg;
|
||||
|
||||
import android.os.SystemClock;
|
||||
|
||||
import com.google.protobuf.InvalidProtocolBufferException;
|
||||
import com.zhidao.support.adas.high.AdasChannel;
|
||||
import com.zhidao.support.adas.high.OnAdasListener;
|
||||
import com.zhidao.support.adas.high.common.CupidLogUtils;
|
||||
import com.zhidao.support.adas.high.protocol.RawData;
|
||||
|
||||
import mogo.telematics.pad.MessagePad;
|
||||
|
||||
/**
|
||||
* 参数获取应答
|
||||
*/
|
||||
public class GetParamRespMessage extends MyAbstractMessageHandler {
|
||||
|
||||
@Override
|
||||
public void handlerMsg(RawData raw, OnAdasListener adasListener) throws InvalidProtocolBufferException {
|
||||
MessagePad.SetParamReq getParamResp = MessagePad.SetParamReq.parser().parseFrom(raw.originalData.toByteArray(), raw.getOffsetValue(), raw.getPackageLengthValue() - raw.getOffsetValue());
|
||||
AdasChannel.calculateTimeConsumingOnDispatchRaw("参数获取应答", raw.receiveTime);
|
||||
long nowTime = 0;
|
||||
if (CupidLogUtils.isEnableLog())
|
||||
nowTime = SystemClock.elapsedRealtime();
|
||||
if (adasListener != null) {
|
||||
adasListener.onGetParamResp(raw.getHeader(), getParamResp);
|
||||
}
|
||||
AdasChannel.calculateTimeConsumingBusiness("参数获取应答", nowTime);
|
||||
// CupidLogUtils.e("到站提醒--->" + arrivalNotification.toString());
|
||||
}
|
||||
|
||||
}
|
||||
@@ -40,6 +40,7 @@ public class MyMessageFactory implements IMyMessageFactory {
|
||||
private IMsg pointCloudMessage;//3D点云
|
||||
private IMsg v2nCongestionEventMessage;//主车附近事件推送
|
||||
private IMsg v2nGlobalPathEventsMessage;//主车路径全局事件推送
|
||||
private IMsg getParamRespMessage;//参数获取应答
|
||||
|
||||
private final AutopilotReview autopilotReview;
|
||||
|
||||
@@ -211,6 +212,12 @@ public class MyMessageFactory implements IMyMessageFactory {
|
||||
v2nGlobalPathEventsMessage = new V2nGlobalPathEventsMessage();
|
||||
}
|
||||
return v2nGlobalPathEventsMessage;
|
||||
} else if (messageType == MessageType.TYPE_RECEIVE_GET_PARAM_RESP.typeCode) {
|
||||
//参数获取应答
|
||||
if (getParamRespMessage == null) {
|
||||
getParamRespMessage = new GetParamRespMessage();
|
||||
}
|
||||
return getParamRespMessage;
|
||||
} else {
|
||||
//MessageType.TYPE_DEFAULT.typeCode
|
||||
return null;
|
||||
|
||||
Reference in New Issue
Block a user