[630][adas] 修改所有下发命令返回,返回值为非0的正整数时表示下发消息的消息ID,=0:表示添加到WS发送消息队列,=0:表示乘客屏模式添加到WS发送消息队列,-1L:添加到WS发送消息队列失败

This commit is contained in:
xinfengkun
2024-03-04 11:49:20 +08:00
parent ecc48768b8
commit dadd787908
10 changed files with 1673 additions and 797 deletions

View File

@@ -365,12 +365,12 @@ class MoGoAutopilotControlProvider :
if (AppIdentityModeUtils.isPassenger(FunctionBuildConfig.appIdentityMode)) {
val invokeResult = AdasManager.getInstance()
.sendAutoPilotModeReq(1, source, null)
invokeAutoPilotResult(if (invokeResult) "无参自动驾驶调用成功" else "自动驾驶调用失败, socket 或者 rawPack 可能为空")
invokeAutoPilotResult(if (invokeResult > -1) "无参自动驾驶调用成功${invokeResult}" else "自动驾驶调用失败, socket 或者 rawPack 可能为空")
} else {
if (AdasManager.getInstance().ipcConnectionStatus == AdasConstants.IpcConnectionStatus.CONNECTED) {
val invokeResult = AdasManager.getInstance()
.sendAutoPilotModeReq(1, source, null)
invokeAutoPilotResult(if (invokeResult) "无参自动驾驶调用成功" else "自动驾驶调用失败, socket 或者 rawPack 可能为空")
invokeAutoPilotResult(if (invokeResult > -1) "无参自动驾驶调用成功${invokeResult}" else "自动驾驶调用失败, socket 或者 rawPack 可能为空")
} else {
invokeAutoPilotResult("车机与工控机链接失败,无法开启自动驾驶 无参")
CallerLogger.e("$M_D_C$TAG", "车机与工控机链接失败,无法开启自动驾驶")
@@ -381,12 +381,12 @@ class MoGoAutopilotControlProvider :
if (AppIdentityModeUtils.isPassenger(FunctionBuildConfig.appIdentityMode)) {
val invokeResult = AdasManager.getInstance()
.sendAutoPilotModeReq(1, source, controlParameters.toRouteInfo())
invokeAutoPilotResult(if (invokeResult) "自动驾驶调用成功" else "自动驾驶调用失败, socket 或者 rawPack 可能为空")
invokeAutoPilotResult(if (invokeResult > -1) "自动驾驶调用成功${invokeResult}" else "自动驾驶调用失败, socket 或者 rawPack 可能为空")
} else {
if (AdasManager.getInstance().ipcConnectionStatus == AdasConstants.IpcConnectionStatus.CONNECTED) {
val invokeResult = AdasManager.getInstance()
.sendAutoPilotModeReq(1, source, controlParameters.toRouteInfo())
invokeAutoPilotResult(if (invokeResult) "自动驾驶调用成功" else "自动驾驶调用失败, socket 或者 rawPack 可能为空")
invokeAutoPilotResult(if (invokeResult > -1) "自动驾驶调用成功${invokeResult}" else "自动驾驶调用失败, socket 或者 rawPack 可能为空")
} else {
invokeAutoPilotResult("车机与工控机链接失败,无法开启自动驾驶")
CallerLogger.e("$M_D_C$TAG", "车机与工控机链接失败,无法开启自动驾驶")
@@ -439,19 +439,19 @@ class MoGoAutopilotControlProvider :
override fun recordPackage(): Boolean {
return AdasManager.getInstance()
.startRecordPackage((System.currentTimeMillis() / 1000).toInt(), 1)
.startRecordPackage((System.currentTimeMillis() / 1000).toInt(), 1) > -1
}
override fun recordPackage(type: Int, id: Int): Boolean {
return AdasManager.getInstance().startRecordPackage(id, type)
return AdasManager.getInstance().startRecordPackage(id, type) > -1
}
override fun recordPackage(type: Int, id: Int, duration: Int): Boolean {
return AdasManager.getInstance().startRecordPackage(id, duration, type)
return AdasManager.getInstance().startRecordPackage(id, duration, type) > -1
}
override fun recordPackage(type: Int, id: Int, duration: Int, bduration: Int): Boolean {
return AdasManager.getInstance().startRecordPackage(id, duration, type, bduration)
return AdasManager.getInstance().startRecordPackage(id, duration, type, bduration) > -1
}
override fun recordPackage(
@@ -461,11 +461,11 @@ class MoGoAutopilotControlProvider :
bduration: Int,
topics: List<String>
): Boolean {
return AdasManager.getInstance().startRecordPackage(id, duration, type, bduration, topics)
return AdasManager.getInstance().startRecordPackage(id, duration, type, bduration, topics) > -1
}
override fun stopRecord(type: Int, id: Int): Boolean {
return AdasManager.getInstance().stopRecordPackage(id, type)
return AdasManager.getInstance().stopRecordPackage(id, type) > -1
}
override fun setEnableLog(isEnableLog: Boolean) {
@@ -484,7 +484,7 @@ class MoGoAutopilotControlProvider :
}
override fun setAutoPilotSpeed(speed: Int): Boolean {
return AdasManager.getInstance().sendAutopilotSpeedReq(speed / 3.6)
return AdasManager.getInstance().sendAutopilotSpeedReq(speed / 3.6) > -1
}
override fun recordCause(key: String?, name: String?, id: String?, reason: String?) {
@@ -594,9 +594,9 @@ class MoGoAutopilotControlProvider :
)
override fun sendDetouring(isEnable: Boolean): Boolean {
return if (isEnable) {
AdasManager.getInstance().sendDetouring(1)
AdasManager.getInstance().sendDetouring(1) > -1
} else {
AdasManager.getInstance().sendDetouring(0)
AdasManager.getInstance().sendDetouring(0) > -1
}
}
@@ -606,7 +606,7 @@ class MoGoAutopilotControlProvider :
* @return boolean
*/
override fun sendDetouringSpeed(speed: Double): Boolean {
return AdasManager.getInstance().sendDetouringSpeed(speed)
return AdasManager.getInstance().sendDetouringSpeed(speed) > -1
}
/**
@@ -617,9 +617,9 @@ class MoGoAutopilotControlProvider :
*/
override fun sendWeakNetSlowDown(isEnable: Boolean): Boolean {
return if (isEnable) {
AdasManager.getInstance().sendWeakNetSlowDown(1)
AdasManager.getInstance().sendWeakNetSlowDown(1) > -1
} else {
AdasManager.getInstance().sendWeakNetSlowDown(0)
AdasManager.getInstance().sendWeakNetSlowDown(0) > -1
}
}
@@ -631,9 +631,9 @@ class MoGoAutopilotControlProvider :
*/
override fun sendBreakdownSlowDown(isEnable: Boolean): Boolean {
return if (isEnable) {
AdasManager.getInstance().sendBreakdownSlowDown(1)
AdasManager.getInstance().sendBreakdownSlowDown(1) > -1
} else {
AdasManager.getInstance().sendBreakdownSlowDown(0)
AdasManager.getInstance().sendBreakdownSlowDown(0) > -1
}
}
@@ -644,7 +644,7 @@ class MoGoAutopilotControlProvider :
* @return boolean
*/
override fun sendFusionMode(cmd: Int): Boolean {
return AdasManager.getInstance().sendFusionMode(cmd)
return AdasManager.getInstance().sendFusionMode(cmd) > -1
}
/**
@@ -654,10 +654,10 @@ class MoGoAutopilotControlProvider :
* @return boolean
*/
override fun sendOvertakeMaxSpeed(maxSpeed: Double): Boolean {
return AdasManager.getInstance().sendOvertakeMaxSpeed(maxSpeed)
return AdasManager.getInstance().sendOvertakeMaxSpeed(maxSpeed) > -1
}
override fun sendSetParamReq(param: Map<AdasConstants.MapSystemParamType, Any>): Boolean {
override fun sendSetParamReq(param: Map<AdasConstants.MapSystemParamType, Any>): Set<Long> {
return AdasManager.getInstance().sendSetParamReq(param)
}
@@ -668,7 +668,7 @@ class MoGoAutopilotControlProvider :
* @return boolean
*/
override fun sendGetAllParamReq(): Boolean {
return AdasManager.getInstance().sendGetAllParamReq()
return AdasManager.getInstance().sendGetAllParamReq() > -1
}
/**
@@ -679,7 +679,7 @@ class MoGoAutopilotControlProvider :
* @return boolean
*/
override fun sendGetParamReq(vararg paramType: AdasConstants.MapSystemParamType): Boolean {
return AdasManager.getInstance().sendGetParamReq(*paramType)
return AdasManager.getInstance().sendGetParamReq(*paramType) > -1
}
/**
@@ -690,7 +690,7 @@ class MoGoAutopilotControlProvider :
* @return boolean
*/
override fun getBadCaseConfig(reqType: Int,recordType: Int,topicsNeedToCache: List<String>): Boolean{
return AdasManager.getInstance().sendRecordDataConfigReq(reqType, recordType, topicsNeedToCache)
return AdasManager.getInstance().sendRecordDataConfigReq(reqType, recordType, topicsNeedToCache) > -1
}
/**
@@ -788,7 +788,7 @@ class MoGoAutopilotControlProvider :
}
return AdasManager.getInstance().sendBagManagerCmd(bagManager.build())
return AdasManager.getInstance().sendBagManagerCmd(bagManager.build()) > -1
}
/**
@@ -878,8 +878,8 @@ class MoGoAutopilotControlProvider :
* 系统命令请求 关机
* 命令下发存在回执
*/
override fun sendIpcPowerOff() {
AdasManager.getInstance().sendIpcPowerOff()
override fun sendIpcPowerOff() : Long{
return AdasManager.getInstance().sendIpcPowerOff()
}
/**
@@ -1030,7 +1030,7 @@ class MoGoAutopilotControlProvider :
* @return boolean
*/
override fun sendSweeperStartTaskResp(reqNo: String, startTaskResp: SweeperTask.StartTaskResp): Boolean {
return AdasManager.getInstance().sendSweeperStartTaskResp(reqNo, startTaskResp)
return AdasManager.getInstance().sendSweeperStartTaskResp(reqNo, startTaskResp) > -1
}
/**
@@ -1042,7 +1042,7 @@ class MoGoAutopilotControlProvider :
* @return boolean
*/
override fun sendSweeperTaskConfirmResp(reqNo: String, taskConfirmResp: SweeperTaskConfirm.TaskConfirmResp): Boolean {
return AdasManager.getInstance().sendSweeperTaskConfirmResp(reqNo, taskConfirmResp)
return AdasManager.getInstance().sendSweeperTaskConfirmResp(reqNo, taskConfirmResp) > -1
}
/**
@@ -1054,7 +1054,7 @@ class MoGoAutopilotControlProvider :
* @return boolean
*/
override fun sendSweeperStopTaskResp(reqNo: String, stopTaskResp: SweeperTaskStop.StopTaskResp): Boolean {
return AdasManager.getInstance().sendSweeperStopTaskResp(reqNo, stopTaskResp)
return AdasManager.getInstance().sendSweeperStopTaskResp(reqNo, stopTaskResp) > -1
}
/**
@@ -1068,7 +1068,7 @@ class MoGoAutopilotControlProvider :
* @return boolean
*/
override fun sendSweeperSuspendResumeTaskReq(isSuspend: Boolean, reqNo: String, suspendResumeTaskReq: SweeperTaskSuspendResume.SuspendResumeTaskReq): Boolean {
return AdasManager.getInstance().sendSweeperSuspendResumeTaskReq(isSuspend,reqNo, suspendResumeTaskReq)
return AdasManager.getInstance().sendSweeperSuspendResumeTaskReq(isSuspend,reqNo, suspendResumeTaskReq) > -1
}
/**
@@ -1080,7 +1080,7 @@ class MoGoAutopilotControlProvider :
* @return boolean
*/
override fun sendSweeperGetTaskReq(reqNo: String, getTaskReq: SweeperTask.GetTaskReq): Boolean {
return AdasManager.getInstance().sendSweeperGetTaskReq(reqNo, getTaskReq)
return AdasManager.getInstance().sendSweeperGetTaskReq(reqNo, getTaskReq) > -1
}
/**
@@ -1092,7 +1092,7 @@ class MoGoAutopilotControlProvider :
* @return boolean
*/
override fun sendSweeperAutopilotBootable(reqNo: String, isBootable: SweeperBootable.IsBootable): Boolean {
return AdasManager.getInstance().sendSweeperAutopilotBootable(reqNo, isBootable)
return AdasManager.getInstance().sendSweeperAutopilotBootable(reqNo, isBootable) > -1
}
/**
@@ -1104,14 +1104,14 @@ class MoGoAutopilotControlProvider :
* @return boolean
*/
override fun sendSweeperCloudSuspendResumeTaskResp(reqNo: String, bigTaskActionResp: SweeperTaskCloudSuspendResume.BigTaskActionResp): Boolean {
return AdasManager.getInstance().sendSweeperCloudSuspendResumeTaskResp(reqNo, bigTaskActionResp)
return AdasManager.getInstance().sendSweeperCloudSuspendResumeTaskResp(reqNo, bigTaskActionResp) > -1
}
override fun sendParallelDrivingReq(
reqNo: String,
parallelRequest: ParallelDrivingRequest.ParallelRequest
): Boolean {
return AdasManager.getInstance().sendParallelDrivingReq(reqNo, parallelRequest)
return AdasManager.getInstance().sendParallelDrivingReq(reqNo, parallelRequest) > -1
}
override fun setIsDrawPointCloud(isDrawPointCloud: Boolean) {
@@ -1153,7 +1153,7 @@ class MoGoAutopilotControlProvider :
}
override fun sendRoboBusJinlvM1FrontDoorCmd(switchCmd: Int): Boolean {
return AdasManager.getInstance().sendRoboBusJinlvM1FrontDoorCmd(switchCmd)
return AdasManager.getInstance().sendRoboBusJinlvM1FrontDoorCmd(switchCmd) > -1
}
override fun sendRoboBusJinlvM1AirConditionerCmd(
@@ -1162,30 +1162,30 @@ class MoGoAutopilotControlProvider :
windSpeedCmd: Int,
temperatureCmd: Int
): Boolean {
return AdasManager.getInstance().sendRoboBusJinlvM1AirConditionerCmd(switchCmd, modeCmd, windSpeedCmd, temperatureCmd)
return AdasManager.getInstance().sendRoboBusJinlvM1AirConditionerCmd(switchCmd, modeCmd, windSpeedCmd, temperatureCmd) > -1
}
override fun sendRoboBusJinlvM1HeaderCmd(switchCmd: Int, windSpeedCmd: Int): Boolean {
return AdasManager.getInstance().sendRoboBusJinlvM1HeaderCmd(switchCmd, windSpeedCmd)
return AdasManager.getInstance().sendRoboBusJinlvM1HeaderCmd(switchCmd, windSpeedCmd) > -1
}
override fun sendRoboBusJinlvM1MainLamp1Cmd(switchCmd: Int): Boolean {
return AdasManager.getInstance().sendRoboBusJinlvM1MainLamp1Cmd(switchCmd)
return AdasManager.getInstance().sendRoboBusJinlvM1MainLamp1Cmd(switchCmd) > -1
}
override fun sendRoboBusJinlvM1MainLamp2Cmd(switchCmd: Int): Boolean {
return AdasManager.getInstance().sendRoboBusJinlvM1MainLamp2Cmd(switchCmd)
return AdasManager.getInstance().sendRoboBusJinlvM1MainLamp2Cmd(switchCmd) > -1
}
override fun sendRoboBusJinlvM1SmallLampCmd(switchCmd: Int): Boolean {
return AdasManager.getInstance().sendRoboBusJinlvM1SmallLampCmd(switchCmd)
return AdasManager.getInstance().sendRoboBusJinlvM1SmallLampCmd(switchCmd) > -1
}
override fun sendRoboBusJinlvM1TaskCmd(roboBusJinlvM1Cmd: SpecialVehicleTaskCmdOuterClass.RoboBusJinlvM1Cmd): Boolean {
return AdasManager.getInstance().sendRoboBusJinlvM1TaskCmd(roboBusJinlvM1Cmd)
return AdasManager.getInstance().sendRoboBusJinlvM1TaskCmd(roboBusJinlvM1Cmd) > -1
}
override fun sendPlanningCmd(cmd: Int): Boolean {
return AdasManager.getInstance().sendPlanningCmd(cmd)
return AdasManager.getInstance().sendPlanningCmd(cmd) > -1
}
}

View File

@@ -241,7 +241,7 @@ interface IMoGoAutopilotControlProvider : IMoGoFunctionServerProvider {
* {@link AdasConstants.MapSystemParamType#OVERTAKE_MAX_SPEED Value类型double或double类型String}
* @return boolean
*/
fun sendSetParamReq(param: Map<AdasConstants.MapSystemParamType, Any>): Boolean
fun sendSetParamReq(param: Map<AdasConstants.MapSystemParamType, Any>): Set<Long>
/**
* 获取全部参数
* 结果回调{@link OnAdasListener#onGetParamResp(MessagePad.Header, MessagePad.SetParamReq)}
@@ -308,7 +308,7 @@ interface IMoGoAutopilotControlProvider : IMoGoFunctionServerProvider {
* 系统命令请求 关机
* 命令下发存在回执
*/
fun sendIpcPowerOff()
fun sendIpcPowerOff(): Long
/**
* 办公室调试使用,强制开启自动驾驶,将 statuspilotmodecontrol_pilotmode强追设置为 1

View File

@@ -344,10 +344,16 @@ object CallerAutoPilotControlManager {
* {@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}
* {@link AdasConstants.MapSystemParamType#SEAT_STATE Value类型int或int类型String}
* {@link AdasConstants.MapSystemParamType#OVERTAKE_MAX_SPEED Value类型double或double类型String}
* @return boolean
* {@link AdasConstants.MapSystemParamType#FAULT_SIMULATION_CMD Value类型int或int类型String}
* @return 消息是否添加到WS消息发送队列。由于批量设置参数调用的域控接口存在不同实际调用域控最多2个接口调用次数最多4次所以最多返回4条ID数据
* * 返回值为非0的正整数时表示下发消息的消息ID
* * >=0表示添加到WS发送消息队列
* * =0表示乘客屏模式添加到WS发送消息队列
* * -1L添加到WS发送消息队列失败
*/
fun sendSetParamReq(param: Map<AdasConstants.MapSystemParamType, Any>): Boolean? {
fun sendSetParamReq(param: Map<AdasConstants.MapSystemParamType, Any>): Set<Long>? {
return providerApi?.sendSetParamReq(param)
}
@@ -494,10 +500,11 @@ object CallerAutoPilotControlManager {
* 系统命令请求 关机
* 命令下发存在回执
*/
fun sendIpcPowerOff(){
if (AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)) {//TODO 是否需要判断是不是司机屏?
providerApi?.sendIpcPowerOff()
fun sendIpcPowerOff(): Long {
if (AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)) {
return providerApi?.sendIpcPowerOff() ?: -1
}
return -1
}
/**

View File

@@ -11,7 +11,8 @@ import mogo.telematics.pad.MessagePad;
/**
* 发送数据时ID生成器
* 每天生成的ID1开始自增也可以表示为发送的数量
* 每天生成的ID1开始自增只保存最后一条消息的相关信息,故也可以表示为每天发送的数量
* 默认保存30天的数据
*/
public class MessageIdGenerator {
private static final String TAG = "MessageIdGenerator";

View File

@@ -0,0 +1,15 @@
package com.zhidao.support.adas.high.protocol;
import androidx.annotation.NonNull;
public class PackData {
public final long msgId;//消息ID
@NonNull
public final byte[] bytes;
public PackData(long msgId, @NonNull byte[] bytes) {
this.msgId = msgId;
this.bytes = bytes;
}
}

View File

@@ -26,7 +26,7 @@ public class RawPack {
}
public synchronized byte[] pack(MessageType msgType, byte[] data) {
public synchronized PackData pack(MessageType msgType, byte[] data) {
if (msgType == null) {
return null;
}
@@ -66,7 +66,7 @@ public class RawPack {
if (isNeedAck) {
receivedAckManager.addNeedAckData(timeMillis, msgId, msgType, msg);
}
return msg;
return new PackData(msgId, msg);
}
/**

View File

@@ -32,7 +32,7 @@ public class SubscribeInterface {
private final OnSubscribeInterfaceListener listener;
public interface OnSubscribeInterfaceListener {
boolean onSendSubscribe(byte[] bytes);
long onSendSubscribe(byte[] bytes);
}
public SubscribeInterface(@NonNull OnSubscribeInterfaceListener listener) {
@@ -65,8 +65,8 @@ public class SubscribeInterface {
* @param messageTypes 要操作的接口
* @return
*/
public boolean subscribeInterface(@Define.TerminalRole int role, @Define.SubscribeType int type, @NonNull Set<MessageType> messageTypes) {
if (messageTypes == null) return false;
public long subscribeInterface(@Define.TerminalRole int role, @Define.SubscribeType int type, @NonNull Set<MessageType> messageTypes) {
if (messageTypes == null) return -1L;
MessagePad.SubscribeDataReq.Builder builder = MessagePad.SubscribeDataReq.newBuilder();
builder.setRole(role).setReqType(type);
Map<MessageType, Integer> temp = new HashMap<>();
@@ -74,8 +74,8 @@ public class SubscribeInterface {
temp.put(messageType, messageType.typeCode.getNumber());
}
builder.addAllDataTypes(temp.values());
boolean isSendSucceed = listener.onSendSubscribe(builder.build().toByteArray());
if (isSendSucceed) {
long isSendSucceed = listener.onSendSubscribe(builder.build().toByteArray());
if (isSendSucceed > -1L) {
for (MessageType messageType : messageTypes) {
if (type == Constants.SUBSCRIBE_TYPE.SUBSCRIBE) {
if (!subscribedInterface.containsKey(messageType)) {
@@ -103,12 +103,12 @@ public class SubscribeInterface {
* @param messageType 要操作的接口
* @return 是否加入ws发送队列
*/
public boolean subscribeInterface(@Define.TerminalRole int role, @Define.SubscribeType int type, @NonNull MessageType messageType) {
if (messageType == null) return false;
public long subscribeInterface(@Define.TerminalRole int role, @Define.SubscribeType int type, @NonNull MessageType messageType) {
if (messageType == null) return -1L;
MessagePad.SubscribeDataReq.Builder builder = MessagePad.SubscribeDataReq.newBuilder();
builder.setRole(role).setReqType(type).addDataTypes(messageType.typeCode.getNumber());
boolean isSendSucceed = listener.onSendSubscribe(builder.build().toByteArray());
if (isSendSucceed) {
long isSendSucceed = listener.onSendSubscribe(builder.build().toByteArray());
if (isSendSucceed > -1L) {
if (type == Constants.SUBSCRIBE_TYPE.SUBSCRIBE) {
if (!subscribedInterface.containsKey(messageType)) {
subscribedInterface.put(messageType, messageType.typeCode.getNumber());