Merge remote-tracking branch 'origin/dev_robotaxi-d_230809_6.0.0' into dev_robotaxi-d_230809_6.0.0

This commit is contained in:
wangmingjun
2023-08-16 19:45:49 +08:00
15 changed files with 439 additions and 177 deletions

View File

@@ -148,9 +148,11 @@ class ConsultVideoPlayer : StandardGSYVideoPlayer {
override fun onWindowFocusChanged(hasWindowFocus: Boolean) {
super.onWindowFocusChanged(hasWindowFocus)
if(isIfCurrentIsFullscreen&&smalllPlayer!=null){
if(hasWindowFocus){//获取焦点
onVideoResume()
}else{
if (hasWindowFocus) {//获取焦点
if (isInPlayingState && smalllPlayer!!.mCurrentState != CURRENT_STATE_PAUSE) {
onVideoResume()
}
} else {
onVideoPause()
}
}
@@ -392,6 +394,8 @@ class ConsultVideoPlayer : StandardGSYVideoPlayer {
}
}
}
// 点击视频不展示状态栏
gsyVideoPlayer.isHideKey = false
gsyVideoPlayer.smalllPlayer = this
frameLayout.setBackgroundColor(Color.BLACK)
val lp = LayoutParams(width, height)

View File

@@ -495,7 +495,8 @@ object TaxiModel {
parameters.endLatLon = AutopilotControlParameters.AutoPilotLonLat(endWgsLat, endWgsLon)
if (parameters.autoPilotLine == null) {
parameters.autoPilotLine = AutopilotControlParameters.AutoPilotLine(
mCurrentTaskAndOrder!!.lineId,
mCurTaskContrail!!.lineId,
mCurTaskContrail!!.lineName,
mCurTaskContrail!!.csvFileUrl,
mCurTaskContrail!!.csvFileMd5,
mCurTaskContrail!!.txtFileUrl,

View File

@@ -45,7 +45,7 @@ public class TaxiTrajectoryManager {
private String mPrevTaskLineId = "";
public TaxiTrajectoryManager() {
mAutoPilotLine = new AutopilotControlParameters.AutoPilotLine(-1,
mAutoPilotLine = new AutopilotControlParameters.AutoPilotLine(-1, "",
"", "", "", "", 0, "",
"", "", "", "", 0);
}
@@ -136,13 +136,14 @@ public class TaxiTrajectoryManager {
}
if (mAutoPilotLine == null) {
mAutoPilotLine = new AutopilotControlParameters.AutoPilotLine(taskAndOrder.getLineId(),
mAutoPilotLine = new AutopilotControlParameters.AutoPilotLine(curTaskContrail.getLineId(), curTaskContrail.getLineName(),
curTaskContrail.getCsvFileUrl(), curTaskContrail.getCsvFileMd5(), curTaskContrail.getTxtFileUrl(),
curTaskContrail.getTxtFileMd5(), curTaskContrail.getContrailSaveTime(), "",//todo curTaskContrail.getCarModel()
curTaskContrail.getCsvFileUrlDPQP(), curTaskContrail.getCsvFileMd5DPQP(), curTaskContrail.getTxtFileUrlDPQP(),
curTaskContrail.getTxtFileMd5DPQP(), curTaskContrail.getContrailSaveTimeDPQP());
} else {
mAutoPilotLine.setLineId(taskAndOrder.getLineId());
mAutoPilotLine.setLineName(curTaskContrail.getLineName());
mAutoPilotLine.setTrajUrl(curTaskContrail.getCsvFileUrl());
mAutoPilotLine.setTrajMd5(curTaskContrail.getCsvFileMd5());
mAutoPilotLine.setStopUrl(curTaskContrail.getTxtFileUrl());
@@ -161,6 +162,7 @@ public class TaxiTrajectoryManager {
private void clearAutoPilotLine() {
if (mAutoPilotLine == null) return;
mAutoPilotLine.setLineId(-1);
mAutoPilotLine.setLineName("");
mAutoPilotLine.setTrajUrl("");
mAutoPilotLine.setTrajMd5("");
mAutoPilotLine.setStopUrl("");
@@ -211,25 +213,6 @@ public class TaxiTrajectoryManager {
return;
}
// TODO: 2022/6/24
// test1
// mAutoPilotLine.setLineId(148);
// mAutoPilotLine.setTrajUrl("http://file-qa.zhidaozhixing.com/fileServer/upload/downloadFileStream?key=fileServer/online_car_hailing/e27c20c2da32481021d934c3ef084536/traj_148.csv");
// mAutoPilotLine.setTrajMd5("e27c20c2da32481021d934c3ef084536");
// mAutoPilotLine.setStopUrl("http://file-qa.zhidaozhixing.com/fileServer/upload/downloadFileStream?key=fileServer/online_car_hailing/6224c9dd2c0e2bd990c6482c0464de45/stop_148.txt");
// mAutoPilotLine.setStopMd5("6224c9dd2c0e2bd990c6482c0464de45");
// mAutoPilotLine.setTimestamp(1654596000000L); //20220607 18:00
// mAutoPilotLine.setVehicleModel("红旗H9");
// test2
// mAutoPilotLine.setLineId(148);
// mAutoPilotLine.setTrajUrl("http://file-qa.zhidaozhixing.com/fileServer/upload/downloadFileStream?key=fileServer/online_car_hailing/8654497cf918be461a59c7ad8e22920d/traj_148.csv");
// mAutoPilotLine.setTrajMd5("8654497cf918be461a59c7ad8e22920d");
// mAutoPilotLine.setStopUrl("http://file-qa.zhidaozhixing.com/fileServer/upload/downloadFileStream?key=fileServer/online_car_hailing/1bb098b244922649bf3e7bada0d3950f/stop_148.txt");
// mAutoPilotLine.setStopMd5("1bb098b244922649bf3e7bada0d3950f");
// mAutoPilotLine.setTimestamp(1654761600000L); //20220609 16:00
// mAutoPilotLine.setVehicleModel("红旗H9");
CallerAutoPilotControlManager.INSTANCE.sendTrajectoryDownloadReq(mAutoPilotLine);
CallerLogger.INSTANCE.d(M_TAXI + TAG, "sendTrajectoryReq(): "
+ GsonUtils.toJson(mAutoPilotLine));

View File

@@ -9,6 +9,7 @@ public class TaxiPassengerGetTrajectoryByLineIdRespBean extends BaseData {
public static class TrajectoryInfo {
public long lineId; // line id
public String lineName; // line name
public String csvFileUrl = ""; //轨迹文件下载的cos url默认“”
public String csvFileMd5 = ""; //轨迹文件md5默认“”
public String txtFileUrl = ""; //打点文件下载的cos url默认“”

View File

@@ -118,6 +118,7 @@ object AutopilotManager : IMoGoAutopilotStatusListener {
) {
parameters.autoPilotLine = AutopilotControlParameters.AutoPilotLine(
TaxiPassengerModel.currentLineId!!,
TaxiPassengerModel.currentTrajectoryInfo!!.lineName,
TaxiPassengerModel.currentTrajectoryInfo!!.csvFileUrl,
TaxiPassengerModel.currentTrajectoryInfo!!.csvFileMd5,
TaxiPassengerModel.currentTrajectoryInfo!!.txtFileUrl,

View File

@@ -615,6 +615,20 @@ class MoGoAutopilotControlProvider :
}
}
/**
* 融合模式
*
* @param cmd 1:全融合模式 2:盲区模式 3:超视距模式 4:透传模式 5:纯路侧模式默认1
* @return boolean
*/
override fun sendFusionMode(cmd: Int): Boolean {
return AdasManager.getInstance().sendFusionMode(cmd)
}
override fun sendSetParamReq(param: Map<AdasConstants.MapSystemParamType, Any>): Boolean {
return AdasManager.getInstance().sendSetParamReq(param)
}
/**
* 获取全部参数
* 结果回调{@link OnAdasListener#onGetParamResp(MessagePad.Header, MessagePad.SetParamReq, AdasParam)}
@@ -632,8 +646,8 @@ class MoGoAutopilotControlProvider :
* @param paramType 参数类型:libraries/mogo-adas-data/src/main/proto/personal/adas_constants.proto
* @return boolean
*/
override fun sendGetParamReq(paramType: AdasConstants.MapSystemParamType): Boolean {
return AdasManager.getInstance().sendGetParamReq(paramType)
override fun sendGetParamReq(vararg paramType: AdasConstants.MapSystemParamType): Boolean {
return AdasManager.getInstance().sendGetParamReq(*paramType)
}
/**
@@ -769,6 +783,15 @@ class MoGoAutopilotControlProvider :
AdasManager.getInstance().sendV2nToPncCmd(switchCmd)
}
/**
* 盲区数据开关
*
* @param switchCmd 数据开关
* @return boolean
*/
override fun sendBlindAreaCmd(switchCmd: Boolean) {
AdasManager.getInstance().sendBlindAreaCmd(switchCmd)
}
/**
* 向左变道
*/

View File

@@ -214,6 +214,33 @@ interface IMoGoAutopilotControlProvider : IMoGoFunctionServerProvider {
*/
fun sendBreakdownSlowDown(isEnable: Boolean): Boolean
/**
* 融合模式
*
* @param cmd 1:全融合模式 2:盲区模式 3:超视距模式 4:透传模式 5:纯路侧模式默认1
* @return boolean
*/
fun sendFusionMode(cmd: Int): Boolean
/**
* 批量设置参数命令
*
* @param param {@link AdasConstants.MapSystemParamType#DETOURING Value类型int或int类型String}
* {@link AdasConstants.MapSystemParamType#DETOURING_SPEED Value类型double或double类型String}
* {@link AdasConstants.MapSystemParamType#AEB Value类型int或int类型String}
* {@link AdasConstants.MapSystemParamType#LANE_CHANGE_RESTRAIN_VALID Value类型int或int类型String}
* {@link AdasConstants.MapSystemParamType#STOP_YIELD_VALID Value类型int或int类型String}
* {@link AdasConstants.MapSystemParamType#HADMAP_SPEED_LIMIT_VALID Value类型int或int类型String}
* {@link AdasConstants.MapSystemParamType#RAMP_THETA_VALID Value类型int或int类型String}
* {@link AdasConstants.MapSystemParamType#WEAK_NET_SLOW_DOWN Value类型int或int类型String}
* {@link AdasConstants.MapSystemParamType#BREAKDOWN_SLOW_DOWN Value类型int或int类型String}
* {@link AdasConstants.MapSystemParamType#BLIND_AREA Value类型boolean或boolean类型String}
* {@link AdasConstants.MapSystemParamType#V2N_TO_PNC Value类型boolean或boolean类型String}
* {@link AdasConstants.MapSystemParamType#V2I_TO_PNC Value类型boolean或boolean类型String}
* {@link AdasConstants.MapSystemParamType#FUSION_MODE Value类型int或int类型String}
* @return boolean
*/
fun sendSetParamReq(param: Map<AdasConstants.MapSystemParamType, Any>): Boolean
/**
* 获取全部参数
* 结果回调{@link OnAdasListener#onGetParamResp(MessagePad.Header, MessagePad.SetParamReq)}
@@ -226,10 +253,10 @@ interface IMoGoAutopilotControlProvider : IMoGoFunctionServerProvider {
* 参数获取请求
* 结果回调{@link OnAdasListener#onGetParamResp(MessagePad.Header, MessagePad.SetParamReq)}
*
* @param paramType 参数类型{@link com.zhidao.support.adas.high.common.Constants.PARAM_TYPE}
* @param paramType 参数类型:libraries/mogo-adas-data/src/main/proto/personal/adas_constants.proto
* @return boolean
*/
fun sendGetParamReq(paramType: AdasConstants.MapSystemParamType): Boolean
fun sendGetParamReq(vararg paramType: AdasConstants.MapSystemParamType): Boolean
/**
* 获取数据采集录制模式配置列表
@@ -262,6 +289,14 @@ interface IMoGoAutopilotControlProvider : IMoGoFunctionServerProvider {
*/
fun sendV2nToPncCmd(switchCmd: Boolean)
/**
* 盲区数据开关
*
* @param switchCmd 数据开关
* @return boolean
*/
fun sendBlindAreaCmd(switchCmd: Boolean)
/**
* 发送工控机所有节点重启命令
*/

View File

@@ -300,6 +300,38 @@ object CallerAutoPilotControlManager {
return providerApi?.sendBreakdownSlowDown(isEnable)
}
/**
* 融合模式
*
* @param cmd 1:全融合模式 2:盲区模式 3:超视距模式 4:透传模式 5:纯路侧模式默认1
* @return boolean
*/
fun sendFusionMode(cmd: Int): Boolean? {
return providerApi?.sendFusionMode(cmd)
}
/**
* 批量设置参数命令
*
* @param param {@link AdasConstants.MapSystemParamType#DETOURING Value类型int或int类型String}
* {@link AdasConstants.MapSystemParamType#DETOURING_SPEED Value类型double或double类型String}
* {@link AdasConstants.MapSystemParamType#AEB Value类型int或int类型String}
* {@link AdasConstants.MapSystemParamType#LANE_CHANGE_RESTRAIN_VALID Value类型int或int类型String}
* {@link AdasConstants.MapSystemParamType#STOP_YIELD_VALID Value类型int或int类型String}
* {@link AdasConstants.MapSystemParamType#HADMAP_SPEED_LIMIT_VALID Value类型int或int类型String}
* {@link AdasConstants.MapSystemParamType#RAMP_THETA_VALID Value类型int或int类型String}
* {@link AdasConstants.MapSystemParamType#WEAK_NET_SLOW_DOWN Value类型int或int类型String}
* {@link AdasConstants.MapSystemParamType#BREAKDOWN_SLOW_DOWN Value类型int或int类型String}
* {@link AdasConstants.MapSystemParamType#BLIND_AREA Value类型boolean或boolean类型String}
* {@link AdasConstants.MapSystemParamType#V2N_TO_PNC Value类型boolean或boolean类型String}
* {@link AdasConstants.MapSystemParamType#V2I_TO_PNC Value类型boolean或boolean类型String}
* {@link AdasConstants.MapSystemParamType#FUSION_MODE Value类型int或int类型String}
* @return boolean
*/
fun sendSetParamReq(param: Map<AdasConstants.MapSystemParamType, Any>): Boolean? {
return providerApi?.sendSetParamReq(param)
}
/**
* 获取全部参数
* 结果回调{@link OnAdasListener#onGetParamResp(MessagePad.Header, MessagePad.SetParamReq, AdasParam)}
@@ -317,8 +349,8 @@ object CallerAutoPilotControlManager {
* @param paramType 参数类型:libraries/mogo-adas-data/src/main/proto/personal/adas_constants.proto
* @return boolean
*/
fun sendGetParamReq(paramType: AdasConstants.MapSystemParamType): Boolean? {
return providerApi?.sendGetParamReq(paramType)
fun sendGetParamReq(vararg paramType: AdasConstants.MapSystemParamType): Boolean? {
return providerApi?.sendGetParamReq(*paramType)
}
/**
* 获取数据采集录制模式配置列表
@@ -368,6 +400,15 @@ object CallerAutoPilotControlManager {
providerApi?.sendV2nToPncCmd(switchCmd)
}
/**
* 盲区数据开关
*
* @param switchCmd 数据开关
* @return boolean
*/
fun sendBlindAreaCmd(switchCmd: Boolean){
providerApi?.sendBlindAreaCmd(switchCmd)
}
/**
* 向左变道
*/

View File

@@ -70,6 +70,26 @@ public class AdasParam {
* -1未知 0关闭故障减速停车策略 1默认使用故障减速停车策略
*/
public final int breakdownSlowDown;
/**
* 盲区开关
* 0: off 1:on
*/
public final int blindArea;
/**
* 融合v2n开关
* 0:不发给PnC 1:发给Pnc
*/
public final int v2nToPnc;
/**
* 融合v2i开关
* 0:不发给PnC和鹰眼 1:发给Pnc和鹰眼默认0
*/
public final int v2iToPnc;
/**
* 融合模式
* 1:全融合模式 2:盲区模式 3:超视距模式 4:透传模式 5:纯路侧模式默认1
*/
public final int fusionMode;
public AdasParam(MessagePad.SetParamReq param) {
int detouringCmd = -1;
@@ -83,6 +103,11 @@ public class AdasParam {
String m1StitchedVideoSelfVehicleParam = null;
M1StitchedVideoSelfVehicleParam m1StitchedVideoSelfVehicleParamParse = null;
int breakdownSlowDown = -1;
int blindArea = -1;
int v2nToPnc = -1;
int v2iToPnc = -1;
int fusionMode = -1;
if (param != null) {
int size = param.getReqsCount();
if (size > 0) {
@@ -137,6 +162,22 @@ public class AdasParam {
if (!TextUtils.isEmpty(value)) {
breakdownSlowDown = Integer.parseInt(value);
}
} else if (type == AdasConstants.MapSystemParamType.BLIND_AREA_VALUE) {
if (!TextUtils.isEmpty(value)) {
blindArea = Integer.parseInt(value);
}
} else if (type == AdasConstants.MapSystemParamType.V2N_TO_PNC_VALUE) {
if (!TextUtils.isEmpty(value)) {
v2nToPnc = Integer.parseInt(value);
}
} else if (type == AdasConstants.MapSystemParamType.V2I_TO_PNC_VALUE) {
if (!TextUtils.isEmpty(value)) {
v2iToPnc = Integer.parseInt(value);
}
} else if (type == AdasConstants.MapSystemParamType.FUSION_MODE_VALUE) {
if (!TextUtils.isEmpty(value)) {
fusionMode = Integer.parseInt(value);
}
}
}
}
@@ -152,6 +193,10 @@ public class AdasParam {
this.m1StitchedVideoSelfVehicleParam = m1StitchedVideoSelfVehicleParam;
this.m1StitchedVideoSelfVehicleParamParse = m1StitchedVideoSelfVehicleParamParse;
this.breakdownSlowDown = breakdownSlowDown;
this.blindArea = blindArea;
this.v2nToPnc = v2nToPnc;
this.v2iToPnc = v2iToPnc;
this.fusionMode = fusionMode;
}
@Override
@@ -165,7 +210,12 @@ public class AdasParam {
"\n环岛模式开关=" + (rampThetaValid == -1 ? "未知" : rampThetaValid == 0 ? "普通模式" : "环岛模式") +
"\n弱网减速停车策略开关=" + (weakNetSlowDown == -1 ? "未知" : weakNetSlowDown == 0 ? "关闭弱网减速停车策略" : "使用弱网减速停车策略") +
"\nm1拼接视频自车位置参数=" + (m1StitchedVideoSelfVehicleParam == null ? "未知" : m1StitchedVideoSelfVehicleParam) +
"\n故障减速停车策路开关=" + (breakdownSlowDown == -1 ? "未知" : breakdownSlowDown == 0 ? "关闭故障减速停车策略" : "使用故障减速停车策略");
"\n故障减速停车策路开关=" + (breakdownSlowDown == -1 ? "未知" : breakdownSlowDown == 0 ? "关闭故障减速停车策略" : "使用故障减速停车策略") +
"\n盲区开关=" + (blindArea == -1 ? "未知" : blindArea == 0 ? "" : "") +
"\n融合V2N开关=" + (v2nToPnc == -1 ? "未知" : v2nToPnc == 0 ? "不发给PnC" : "发给PnC") +
"\n融合V2I开关=" + (v2iToPnc == -1 ? "未知" : v2iToPnc == 0 ? "不发给PnC和鹰眼" : "发给Pnc和鹰眼") +
"\n融合模式=" + (fusionMode == -1 ? "未知" : fusionMode == 5 ? "纯路侧模式" : fusionMode == 4 ? "透传模式" : fusionMode == 3 ? "超视距模式" : fusionMode == 2 ? "盲区模式" : "全融合模式")
;
}
public static class M1StitchedVideoSelfVehicleParam {

View File

@@ -30,7 +30,7 @@ enum MessageType
MsgTypeOBU = 0x1000a; //OBU
MsgTypeChassisStates = 0x1000b; //重构后的底盘状态, 透传
MsgTypeFunctionStates = 0x1000c; //重构后的功能状态, 透传
MsgTypeBackCameraVideo = 0x1000d; //清扫车后部摄像头视频 10hz
MsgTypeBackCameraVideo = 0x1000d; //后部摄像头视频 10hz
MsgTypeM1StitchedVideo = 0x1000e; //m1拼接视频 10hz
MsgTypeBasicInfoReq = 0x10100; //自动驾驶设备基础信息请求
@@ -609,7 +609,11 @@ message SetOneParam
// 7:环岛模式开关(bool) 0:普通模式 1:环岛模式 默认0
// 8:弱网减速停车策略开关(bool) 0:关闭弱网减速停车策略 1:使用弱网减速停车策略 默认1
// 9:m1拼接视频自车位置参数(string), 格式:x,y,width,height
// 10:故障减速停车策开关(bool) 0:关闭故障减速停车策略 1:使用故障减速停车策略 默认1
// 10:故障减速停车策开关(bool) 0:关闭故障减速停车策略 1:使用故障减速停车策略 默认1
// 11: 盲区开关(bool) 0: off 1:on /telematics/sensor/blindarea_flag
// 12: 融合v2n开关(bool) 0:不发给PnC 1:发给Pnc /telematics/fusion/v2n_flag
// 13: 融合v2i开关(bool) 0:不发给PnC和鹰眼 1:发给Pnc和鹰眼默认0 /telematics/fusion/v2i_flag
// 14: 融合模式(int) 1:全融合模式 2:盲区模式 3:超视距模式 4:透传模式 5:纯路侧模式默认1 /telematics/fusion/fusion_mode
string value = 2; // 转成字符串的值
}

View File

@@ -15,5 +15,9 @@ enum MapSystemParamType{
WEAK_NET_SLOW_DOWN = 8;//弱网减速停车策略开关
M1_STITCHED_VIDEO_SELF_VEHICLE_PARAM = 9;//m1拼接视频自车位置参数(string), 格式:x,y,width,height
BREAKDOWN_SLOW_DOWN = 10;//故障减速停车策路开关
BLIND_AREA = 11;//盲区开关(bool) 0: off 1:on /telematics/sensor/blindarea_flag
V2N_TO_PNC = 12;//融合v2n开关(bool) 0:不发给PnC 1:发给Pnc /telematics/fusion/v2n_flag
V2I_TO_PNC = 13;//融合v2i开关(bool) 0:不发给PnC和鹰眼 1:发给Pnc和鹰眼默认0 /telematics/fusion/v2i_flag
FUSION_MODE = 14;//融合模式(int) 1:全融合模式 2:盲区模式 3:超视距模式 4:透传模式 5:纯路侧模式默认1 /telematics/fusion/fusion_mode
}

View File

@@ -1535,14 +1535,11 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec
/**
* 设置参数命令
*
* @param type 0:default 1:绕障类功能开关(bool) 2:变道绕障的目标障碍物速度阈值(double, m/s)
* 3:AEB开关(bool) 4:限制绕障开关(bool)
* 5:停车让行线前避让等待开关(bool) 6:地图限速功能开关(bool)
* @param type 类型{@link AdasConstants.MapSystemParamType}
* @param value 转成字符串的值
* @return boolean
*/
@Override
public boolean sendSetParamReq(int type, String value) {
private boolean sendSetParamReq(int type, String value) {
MessagePad.SetOneParam oneParam = MessagePad.SetOneParam
.newBuilder().setType(type).setValue(value).build();
MessagePad.SetParamReq req = MessagePad.SetParamReq
@@ -1552,6 +1549,71 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec
return sendPBMessage(MessageType.TYPE_SEND_SET_PARAM_REQ.typeCode, req.toByteArray());
}
/**
* 设置参数命令V2
*/
private <T> boolean sendSetParamReqV2(ParamSetCmdOuterClass.ParamSetType paramSetType, T value) {
ParamSetCmdOuterClass.ParamSetCmd.Builder builder = ParamSetCmdOuterClass.ParamSetCmd.newBuilder()
.setSrc(1)
.setType(paramSetType);
if (paramSetType == ParamSetCmdOuterClass.ParamSetType.ParamSetTypeBlindArea
|| paramSetType == ParamSetCmdOuterClass.ParamSetType.ParamSetTypeV2N
|| paramSetType == ParamSetCmdOuterClass.ParamSetType.ParamSetTypeV2I) {
builder.setBoolValue((Boolean) value);
}
ParamSetCmdOuterClass.ParamSetCmd req = builder.build();
return sendPBMessage(MessageType.TYPE_SEND_SET_PARAM_REQ_V2.typeCode, req.toByteArray());
}
/**
* 批量设置参数命令
*
* @param param {@link AdasConstants.MapSystemParamType#DETOURING Value类型int或int类型String}
* {@link AdasConstants.MapSystemParamType#DETOURING_SPEED Value类型double或double类型String}
* {@link AdasConstants.MapSystemParamType#AEB Value类型int或int类型String}
* {@link AdasConstants.MapSystemParamType#LANE_CHANGE_RESTRAIN_VALID Value类型int或int类型String}
* {@link AdasConstants.MapSystemParamType#STOP_YIELD_VALID Value类型int或int类型String}
* {@link AdasConstants.MapSystemParamType#HADMAP_SPEED_LIMIT_VALID Value类型int或int类型String}
* {@link AdasConstants.MapSystemParamType#RAMP_THETA_VALID Value类型int或int类型String}
* {@link AdasConstants.MapSystemParamType#WEAK_NET_SLOW_DOWN Value类型int或int类型String}
* {@link AdasConstants.MapSystemParamType#BREAKDOWN_SLOW_DOWN Value类型int或int类型String}
* {@link AdasConstants.MapSystemParamType#BLIND_AREA Value类型boolean或boolean类型String}
* {@link AdasConstants.MapSystemParamType#V2N_TO_PNC Value类型boolean或boolean类型String}
* {@link AdasConstants.MapSystemParamType#V2I_TO_PNC Value类型boolean或boolean类型String}
* {@link AdasConstants.MapSystemParamType#FUSION_MODE Value类型int或int类型String}
* @return boolean
*/
@Override
public boolean sendSetParamReq(@NonNull Map<AdasConstants.MapSystemParamType, Object> param) {
boolean isV1 = true;
boolean isV2BlindArea = true;
boolean isV2V2N = true;
boolean isV2V2NI = true;
MessagePad.SetParamReq.Builder builder = MessagePad.SetParamReq.newBuilder();
for (Map.Entry<AdasConstants.MapSystemParamType, Object> entry : param.entrySet()) {
AdasConstants.MapSystemParamType key = entry.getKey();
if (key != AdasConstants.MapSystemParamType.DEFAULT_TYPE && key != AdasConstants.MapSystemParamType.M1_STITCHED_VIDEO_SELF_VEHICLE_PARAM) {
Object value = entry.getValue();
if (key == AdasConstants.MapSystemParamType.BLIND_AREA) {
isV2BlindArea = sendSetParamReqV2(ParamSetCmdOuterClass.ParamSetType.ParamSetTypeBlindArea, (Boolean) value);
} else if (key == AdasConstants.MapSystemParamType.V2N_TO_PNC) {
isV2V2N = sendSetParamReqV2(ParamSetCmdOuterClass.ParamSetType.ParamSetTypeV2N, (Boolean) value);
} else if (key == AdasConstants.MapSystemParamType.V2I_TO_PNC) {
isV2V2NI = sendSetParamReqV2(ParamSetCmdOuterClass.ParamSetType.ParamSetTypeV2I, (Boolean) value);
} else {
builder.addReqs(MessagePad.SetOneParam.newBuilder().setType(key.getNumber()).setValue(String.valueOf(value)));
}
}
}
if (builder.getReqsCount() > 0) {
MessagePad.SetParamReq req = builder.build();
isV1 = sendPBMessage(MessageType.TYPE_SEND_SET_PARAM_REQ.typeCode, req.toByteArray());
}
return isV1 && isV2BlindArea && isV2V2N && isV2V2NI;
}
/**
* 绕障类功能开关
*
@@ -1657,6 +1719,51 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec
return sendSetParamReq(AdasConstants.MapSystemParamType.BREAKDOWN_SLOW_DOWN_VALUE, String.valueOf(enable));
}
/**
* 融合模式
*
* @param cmd 1:全融合模式 2:盲区模式 3:超视距模式 4:透传模式 5:纯路侧模式默认1
* @return boolean
*/
@Override
public boolean sendFusionMode(int cmd) {
return sendSetParamReq(AdasConstants.MapSystemParamType.FUSION_MODE_VALUE, String.valueOf(cmd));
}
/**
* 盲区数据开关
*
* @param switchCmd 数据开关
* @return boolean
*/
@Override
public boolean sendBlindAreaCmd(boolean switchCmd) {
return sendSetParamReqV2(ParamSetCmdOuterClass.ParamSetType.ParamSetTypeBlindArea, switchCmd);
}
/**
* 控制V2N进PnC
*
* @param switchCmd true发给PnCfalse不发给PnC
* @return boolean
*/
@Override
public boolean sendV2nToPncCmd(boolean switchCmd) {
return sendSetParamReqV2(ParamSetCmdOuterClass.ParamSetType.ParamSetTypeV2N, switchCmd);
}
/**
* 控制V2I进PnC
*
* @param switchCmd true发给Pnc和鹰眼false不发给PnC和鹰眼
* @return boolean
*/
@Override
public boolean sendV2iToPncCmd(boolean switchCmd) {
return sendSetParamReqV2(ParamSetCmdOuterClass.ParamSetType.ParamSetTypeV2I, switchCmd);
}
/**
* 获取全部参数
* 结果回调{@link OnAdasListener#onGetParamResp(MessagePad.Header, MessagePad.SetParamReq, AdasParam)}
@@ -1665,7 +1772,7 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec
*/
@Override
public boolean sendGetAllParamReq() {
return sendGetParamReq(null);
return sendGetParamReq((AdasConstants.MapSystemParamType[]) null);
}
/**
@@ -1676,9 +1783,9 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec
* @return boolean
*/
@Override
public boolean sendGetParamReq(AdasConstants.MapSystemParamType paramType) {
public boolean sendGetParamReq(AdasConstants.MapSystemParamType... paramType) {
MessagePad.SetParamReq req;
if (paramType == null || paramType == AdasConstants.MapSystemParamType.DEFAULT_TYPE) {
if (paramType == null || paramType[0] == null || (paramType.length == 1 && paramType[0] == AdasConstants.MapSystemParamType.DEFAULT_TYPE)) {
req = MessagePad.SetParamReq
.newBuilder()
.addReqs(MessagePad.SetOneParam.newBuilder().setType(AdasConstants.MapSystemParamType.DETOURING_VALUE))
@@ -1691,12 +1798,19 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec
.addReqs(MessagePad.SetOneParam.newBuilder().setType(AdasConstants.MapSystemParamType.WEAK_NET_SLOW_DOWN_VALUE))
.addReqs(MessagePad.SetOneParam.newBuilder().setType(AdasConstants.MapSystemParamType.M1_STITCHED_VIDEO_SELF_VEHICLE_PARAM_VALUE))
.addReqs(MessagePad.SetOneParam.newBuilder().setType(AdasConstants.MapSystemParamType.BREAKDOWN_SLOW_DOWN_VALUE))
.addReqs(MessagePad.SetOneParam.newBuilder().setType(AdasConstants.MapSystemParamType.BLIND_AREA_VALUE))
.addReqs(MessagePad.SetOneParam.newBuilder().setType(AdasConstants.MapSystemParamType.V2N_TO_PNC_VALUE))
.addReqs(MessagePad.SetOneParam.newBuilder().setType(AdasConstants.MapSystemParamType.V2I_TO_PNC_VALUE))
.addReqs(MessagePad.SetOneParam.newBuilder().setType(AdasConstants.MapSystemParamType.FUSION_MODE_VALUE))
.build();
} else {
req = MessagePad.SetParamReq
.newBuilder()
.addReqs(MessagePad.SetOneParam.newBuilder().setType(paramType.getNumber()))
.build();
MessagePad.SetParamReq.Builder builder = MessagePad.SetParamReq.newBuilder();
for (AdasConstants.MapSystemParamType type : paramType) {
if (type != AdasConstants.MapSystemParamType.DEFAULT_TYPE) {
builder.addReqs(MessagePad.SetOneParam.newBuilder().setType(type.getNumber()));
}
}
req = builder.build();
}
return sendPBMessage(MessageType.TYPE_SEND_GET_PARAM_REQ.typeCode, req.toByteArray());
}
@@ -1761,56 +1875,6 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec
return sendPBMessage(MessageType.TYPE_SEND_FSM_STATUS_REASON_QUERY_REQ.typeCode, query.toByteArray());
}
/**
* 控制V2I进PnC
*
* @param switchCmd true发给Pnc和鹰眼false不发给PnC和鹰眼
* @return boolean
*/
@Override
public boolean sendV2iToPncCmd(boolean switchCmd) {
return sendSetParamReqV2(ParamSetCmdOuterClass.ParamSetType.ParamSetTypeV2I, switchCmd);
}
/**
* 控制V2N进PnC
*
* @param switchCmd true发给PnCfalse不发给PnC
* @return boolean
*/
@Override
public boolean sendV2nToPncCmd(boolean switchCmd) {
return sendSetParamReqV2(ParamSetCmdOuterClass.ParamSetType.ParamSetTypeV2N, switchCmd);
}
/**
* 盲区数据开关
*
* @param switchCmd 数据开关
* @return boolean
*/
@Override
public boolean sendBlindAreaCmd(boolean switchCmd) {
return sendSetParamReqV2(ParamSetCmdOuterClass.ParamSetType.ParamSetTypeBlindArea, switchCmd);
}
/**
* 设置参数命令V2
*/
private <T> boolean sendSetParamReqV2(ParamSetCmdOuterClass.ParamSetType paramSetType, T value) {
ParamSetCmdOuterClass.ParamSetCmd.Builder builder = ParamSetCmdOuterClass.ParamSetCmd.newBuilder()
.setSrc(1)
.setType(paramSetType);
if (paramSetType == ParamSetCmdOuterClass.ParamSetType.ParamSetTypeBlindArea
|| paramSetType == ParamSetCmdOuterClass.ParamSetType.ParamSetTypeV2N
|| paramSetType == ParamSetCmdOuterClass.ParamSetType.ParamSetTypeV2I) {
builder.setBoolValue((Boolean) value);
}
ParamSetCmdOuterClass.ParamSetCmd req = builder.build();
return sendPBMessage(MessageType.TYPE_SEND_SET_PARAM_REQ_V2.typeCode, req.toByteArray());
}
/**
* 发送清扫车指令到云控
*

View File

@@ -23,6 +23,7 @@ import com.zhjt.mogo.adas.data.sweeper.task.stop.SweeperTaskStop;
import java.util.HashSet;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.Set;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -862,18 +863,6 @@ public class AdasManager implements IAdasNetCommApi {
return mChannel != null && mChannel.sendOperatorCmdStopHonking();
}
/**
* 设置参数命令
*
* @param type 0:default 1:绕障类功能开关(bool) 2:变道绕障的目标障碍物速度阈值(double, m/s)
* @param value 转成字符串的值
* @return boolean
*/
@Override
public boolean sendSetParamReq(int type, String value) {
return mChannel != null && mChannel.sendSetParamReq(type, value);
}
/**
* 绕障类功能开关
*
@@ -978,6 +967,73 @@ public class AdasManager implements IAdasNetCommApi {
return mChannel != null && mChannel.sendBreakdownSlowDown(enable);
}
/**
* 融合模式
*
* @param cmd 1:全融合模式 2:盲区模式 3:超视距模式 4:透传模式 5:纯路侧模式默认1
* @return boolean
*/
@Override
public boolean sendFusionMode(int cmd) {
return mChannel != null && mChannel.sendFusionMode(cmd);
}
/**
* 盲区数据开关
*
* @param switchCmd 数据开关
* @return boolean
*/
@Override
public boolean sendBlindAreaCmd(boolean switchCmd) {
return mChannel != null && mChannel.sendBlindAreaCmd(switchCmd);
}
/**
* 控制V2N进PnC
*
* @param switchCmd true发给PnCfalse不发给PnC
* @return boolean
*/
@Override
public boolean sendV2nToPncCmd(boolean switchCmd) {
return mChannel != null && mChannel.sendV2nToPncCmd(switchCmd);
}
/**
* 控制V2I进PnC
*
* @param switchCmd true发给Pnc和鹰眼false不发给PnC和鹰眼
* @return boolean
*/
@Override
public boolean sendV2iToPncCmd(boolean switchCmd) {
return mChannel != null && mChannel.sendV2iToPncCmd(switchCmd);
}
/**
* 批量设置参数命令
*
* @param param {@link AdasConstants.MapSystemParamType#DETOURING Value类型int或int类型String}
* {@link AdasConstants.MapSystemParamType#DETOURING_SPEED Value类型double或double类型String}
* {@link AdasConstants.MapSystemParamType#AEB Value类型int或int类型String}
* {@link AdasConstants.MapSystemParamType#LANE_CHANGE_RESTRAIN_VALID Value类型int或int类型String}
* {@link AdasConstants.MapSystemParamType#STOP_YIELD_VALID Value类型int或int类型String}
* {@link AdasConstants.MapSystemParamType#HADMAP_SPEED_LIMIT_VALID Value类型int或int类型String}
* {@link AdasConstants.MapSystemParamType#RAMP_THETA_VALID Value类型int或int类型String}
* {@link AdasConstants.MapSystemParamType#WEAK_NET_SLOW_DOWN Value类型int或int类型String}
* {@link AdasConstants.MapSystemParamType#BREAKDOWN_SLOW_DOWN Value类型int或int类型String}
* {@link AdasConstants.MapSystemParamType#BLIND_AREA Value类型boolean或boolean类型String}
* {@link AdasConstants.MapSystemParamType#V2N_TO_PNC Value类型boolean或boolean类型String}
* {@link AdasConstants.MapSystemParamType#V2I_TO_PNC Value类型boolean或boolean类型String}
* {@link AdasConstants.MapSystemParamType#FUSION_MODE Value类型int或int类型String}
* @return boolean
*/
@Override
public boolean sendSetParamReq(@NonNull Map<AdasConstants.MapSystemParamType, Object> param) {
return mChannel != null && mChannel.sendSetParamReq(param);
}
/**
* 获取全部参数
* 结果回调{@link OnAdasListener#onGetParamResp(MessagePad.Header, MessagePad.SetParamReq, AdasParam)}
@@ -997,7 +1053,7 @@ public class AdasManager implements IAdasNetCommApi {
* @return boolean
*/
@Override
public boolean sendGetParamReq(AdasConstants.MapSystemParamType paramType) {
public boolean sendGetParamReq(AdasConstants.MapSystemParamType... paramType) {
return mChannel != null && mChannel.sendGetParamReq(paramType);
}
@@ -1043,39 +1099,6 @@ public class AdasManager implements IAdasNetCommApi {
return mChannel != null && mChannel.sendFSMStatusReasonQuery(type);
}
/**
* 控制V2I进PnC
*
* @param switchCmd true发给Pnc和鹰眼false不发给PnC和鹰眼
* @return boolean
*/
@Override
public boolean sendV2iToPncCmd(boolean switchCmd) {
return mChannel != null && mChannel.sendV2iToPncCmd(switchCmd);
}
/**
* 控制V2N进PnC
*
* @param switchCmd true发给PnCfalse不发给PnC
* @return boolean
*/
@Override
public boolean sendV2nToPncCmd(boolean switchCmd) {
return mChannel != null && mChannel.sendV2nToPncCmd(switchCmd);
}
/**
* 盲区数据开关
*
* @param switchCmd 数据开关
* @return boolean
*/
@Override
public boolean sendBlindAreaCmd(boolean switchCmd) {
return mChannel != null && mChannel.sendBlindAreaCmd(switchCmd);
}
/**
* 开始大任务响应
* 1、云端下发大任务信息type: 100001-> sweeper_task.proto/StartTaskResp 响应信息

View File

@@ -14,6 +14,7 @@ import com.zhjt.mogo.adas.data.sweeper.task.confirm.SweeperTaskConfirm;
import com.zhjt.mogo.adas.data.sweeper.task.stop.SweeperTaskStop;
import java.util.List;
import java.util.Map;
import java.util.Set;
import bag_manager.BagManagerOuterClass;
@@ -486,14 +487,7 @@ public interface IAdasNetCommApi {
*/
boolean sendOperatorCmdStopHonking();
/**
* 设置参数命令
*
* @param type 0:default 1:绕障类功能开关(bool) 2:变道绕障的目标障碍物速度阈值(double, m/s)
* @param value 转成字符串的值
* @return boolean
*/
boolean sendSetParamReq(int type, String value);
/*******************************设置参数命令 包括V1************************************/
/**
* 绕障类功能开关
@@ -574,6 +568,64 @@ public interface IAdasNetCommApi {
*/
boolean sendBreakdownSlowDown(int enable);
/**
* 融合模式
*
* @param cmd 1:全融合模式 2:盲区模式 3:超视距模式 4:透传模式 5:纯路侧模式默认1
* @return boolean
*/
boolean sendFusionMode(int cmd);
/*******************************设置参数命令 V2************************************/
/**
* 盲区数据开关
*
* @param switchCmd 数据开关
* @return boolean
*/
boolean sendBlindAreaCmd(boolean switchCmd);
/**
* 控制V2N进PnC
*
* @param switchCmd true发给PnCfalse不发给PnC
* @return boolean
*/
boolean sendV2nToPncCmd(boolean switchCmd);
/**
* 控制V2I进PnC
*
* @param switchCmd true发给Pnc和鹰眼false不发给PnC和鹰眼 默认false
* @return boolean
*/
boolean sendV2iToPncCmd(boolean switchCmd);
/*******************************设置参数命令 批量设置************************************/
/**
* 批量设置参数命令
*
* @param param {@link AdasConstants.MapSystemParamType#DETOURING Value类型int或int类型String}
* {@link AdasConstants.MapSystemParamType#DETOURING_SPEED Value类型double或double类型String}
* {@link AdasConstants.MapSystemParamType#AEB Value类型int或int类型String}
* {@link AdasConstants.MapSystemParamType#LANE_CHANGE_RESTRAIN_VALID Value类型int或int类型String}
* {@link AdasConstants.MapSystemParamType#STOP_YIELD_VALID Value类型int或int类型String}
* {@link AdasConstants.MapSystemParamType#HADMAP_SPEED_LIMIT_VALID Value类型int或int类型String}
* {@link AdasConstants.MapSystemParamType#RAMP_THETA_VALID Value类型int或int类型String}
* {@link AdasConstants.MapSystemParamType#WEAK_NET_SLOW_DOWN Value类型int或int类型String}
* {@link AdasConstants.MapSystemParamType#BREAKDOWN_SLOW_DOWN Value类型int或int类型String}
* {@link AdasConstants.MapSystemParamType#BLIND_AREA Value类型boolean或boolean类型String}
* {@link AdasConstants.MapSystemParamType#V2N_TO_PNC Value类型boolean或boolean类型String}
* {@link AdasConstants.MapSystemParamType#V2I_TO_PNC Value类型boolean或boolean类型String}
* {@link AdasConstants.MapSystemParamType#FUSION_MODE Value类型int或int类型String}
* @return boolean
*/
boolean sendSetParamReq(@NonNull Map<AdasConstants.MapSystemParamType, Object> param);
/*******************************设置参数命令 获取参数************************************/
/**
* 获取全部参数
*
@@ -587,9 +639,9 @@ public interface IAdasNetCommApi {
* @param paramType 参数类型:libraries/mogo-adas-data/src/main/proto/personal/adas_constants.proto
* @return boolean
*/
boolean sendGetParamReq(AdasConstants.MapSystemParamType paramType);
boolean sendGetParamReq(AdasConstants.MapSystemParamType... paramType);
/*******************************设置参数命令************************************/
/**
* 发生行程相关
* type=1或2的时 需要参数 lineName
@@ -623,30 +675,6 @@ public interface IAdasNetCommApi {
*/
boolean sendFSMStatusReasonQuery(int type);
/**
* 控制V2I进PnC
*
* @param switchCmd true发给Pnc和鹰眼false不发给PnC和鹰眼 默认false
* @return boolean
*/
boolean sendV2iToPncCmd(boolean switchCmd);
/**
* 控制V2N进PnC
*
* @param switchCmd true发给PnCfalse不发给PnC
* @return boolean
*/
boolean sendV2nToPncCmd(boolean switchCmd);
/**
* 盲区数据开关
*
* @param switchCmd 数据开关
* @return boolean
*/
boolean sendBlindAreaCmd(boolean switchCmd);
/**
* 开始大任务响应
* 1、云端下发大任务信息type: 100001-> sweeper_task.proto/StartTaskResp 响应信息

View File

@@ -398,7 +398,7 @@ public interface OnAdasListener {
/**
* 参数获取应答
* <p>
* 调用{@link AdasManager#sendGetAllParamReq()}或{@link AdasManager#sendGetParamReq(AdasConstants.MapSystemParamType)}
* 调用{@link AdasManager#sendGetAllParamReq()}或{@link AdasManager#sendGetParamReq(AdasConstants.MapSystemParamType...)}
* 如果对应的value是空串说明没有这个param或者get失败了。重启后值还是在redis里
*
* @param header 头