[3.4.0][mogo-adas]添加V2I进pnc开关

This commit is contained in:
xinfengkun
2023-07-12 17:59:26 +08:00
parent 6cb3674038
commit 00e85c6948
7 changed files with 127 additions and 61 deletions

View File

@@ -729,8 +729,20 @@ class MoGoAutopilotControlProvider :
}
/**
* 控制V2N数据给车端PnC
* @param switchCmd true为发给PnCfalse为不发给PnC
* 控制V2I进PnC
*
* @param switchCmd true发给Pnc和鹰眼false不发给PnC和鹰眼
* @return boolean
*/
override fun sendV2iToPncCmd(switchCmd: Boolean) {
AdasManager.getInstance().sendV2iToPncCmd(switchCmd)
}
/**
* 控制V2N进PnC
*
* @param switchCmd true发给PnCfalse不发给PnC
* @return boolean
*/
override fun sendV2nToPncCmd(switchCmd: Boolean) {
AdasManager.getInstance().sendV2nToPncCmd(switchCmd)

View File

@@ -234,8 +234,18 @@ interface IMoGoAutopilotControlProvider : IMoGoFunctionServerProvider {
fun sendBagManagerCmd(bagManagerEntity: BagManagerEntity): Boolean
/**
* 控制V2N数据给车端PnC
* @param switchCmd true为发给PnCfalse为不发给PnC
* 控制V2I进PnC
*
* @param switchCmd true发给Pnc和鹰眼false不发给PnC和鹰眼
* @return boolean
*/
fun sendV2iToPncCmd(switchCmd: Boolean)
/**
* 控制V2N进PnC
*
* @param switchCmd true发给PnCfalse不发给PnC
* @return boolean
*/
fun sendV2nToPncCmd(switchCmd: Boolean)

View File

@@ -329,8 +329,20 @@ object CallerAutoPilotControlManager {
}
/**
* 控制V2N数据给车端PnC
* @param switchCmd true为发给PnCfalse为不发给PnC
* 控制V2I进PnC
*
* @param switchCmd true发给Pnc和鹰眼false不发给PnC和鹰眼
* @return boolean
*/
fun sendV2iToPncCmd(switchCmd: Boolean){
providerApi?.sendV2iToPncCmd(switchCmd)
}
/**
* 控制V2N进PnC
*
* @param switchCmd true发给PnCfalse不发给PnC
* @return boolean
*/
fun sendV2nToPncCmd(switchCmd: Boolean){
providerApi?.sendV2nToPncCmd(switchCmd)

View File

@@ -1,11 +1,12 @@
syntax = "proto3";
package mogo.telematics;
enum ParamSetType
enum ParamSetType
{
ParamSetTypeNone = 0;
ParamSetTypeBlindArea = 1; //bool, 0:off 1:on
ParamSetTypeV2N = 2; //bool, 0:不发给PnC 1:发给Pnc
ParamSetTypeV2I = 3; //bool, 0:不发给PnC和鹰眼 1:发给Pnc和鹰眼默认0
}
message ParamSetCmd

View File

@@ -5,7 +5,6 @@ import static com.zhidao.support.adas.high.chain.AdasChain.CHAIN_CODE_ADAS_INIT;
import static com.zhidao.support.adas.high.chain.AdasChain.CHAIN_CODE_ADAS_SEND_GLOBAL_PATH;
import static com.zhidao.support.adas.high.chain.AdasChain.CHAIN_CODE_ADAS_SEND_SYSTEM_CMD;
import static com.zhidao.support.adas.high.chain.AdasChain.CHAIN_CODE_ADAS_SEND_TRAJECTORY_DOWNLOAD;
import static com.zhidao.support.adas.high.chain.AdasChain.CHAIN_CODE_ADAS_START_AUTOPILOT;
import static com.zhidao.support.adas.high.chain.AdasChain.CHAIN_CODE_CONNECT_ADDRESS;
import static com.zhidao.support.adas.high.chain.AdasChain.CHAIN_CODE_STATUS_CHANGE_REASON;
import static com.zhidao.support.adas.high.chain.AdasChain.CHAIN_SOURCE_ADAS;
@@ -16,13 +15,11 @@ import android.os.Handler;
import android.os.Message;
import android.os.SystemClock;
import android.text.TextUtils;
import android.util.Log;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import com.google.protobuf.InvalidProtocolBufferException;
import com.zhjt.mogo.adas.data.bean.AdasParam;
import com.zhidao.support.adas.high.bean.VersionCompatibility;
import com.zhidao.support.adas.high.common.AutopilotReview;
import com.zhidao.support.adas.high.common.ByteUtil;
@@ -47,6 +44,7 @@ import com.zhidao.support.adas.high.subscribe.SubscribeInterface;
import com.zhidao.support.adas.high.subscribe.SubscribeInterfaceOptions;
import com.zhidao.support.adas.high.thread.DispatchHandler;
import com.zhjt.mogo.adas.data.AdasConstants;
import com.zhjt.mogo.adas.data.bean.AdasParam;
import com.zhjt.mogo.adas.data.bean.AutopilotStatistics;
import com.zhjt.mogo.adas.data.sweeper.SweeperCloudTask;
import com.zhjt.mogo.adas.data.sweeper.bootable.SweeperBootable;
@@ -68,8 +66,8 @@ import java.util.concurrent.atomic.AtomicInteger;
import bag_manager.BagManagerOuterClass;
import chassis.SpecialVehicleTaskCmdOuterClass;
import common.HeaderOuterClass;
import mogo.telematics.ParamSetCmdOuterClass;
import function_state_management.FSMStatusReasonQueryOuterClass;
import mogo.telematics.ParamSetCmdOuterClass;
import mogo.telematics.pad.MessagePad;
import okio.ByteString;
@@ -1713,9 +1711,36 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec
}
/**
* 控制V2N数据给车端PnC
* FSM状态原因查询
* 当FSMFunctionStates的类型是XXX_DRIVING_OFF时查询OFF的原因
* 当FSMFunctionStates的类型是PILOT_DRIVING_OFF时会自动调用
*
* @param switchCmd true为发给PnCfalse为不发给PnC
* @param type 0:default, 1:请求反馈原因
* @return boolean
*/
@Override
public boolean sendFSMStatusReasonQuery(int type) {
FSMStatusReasonQueryOuterClass.FSMStatusReasonQuery query = FSMStatusReasonQueryOuterClass.FSMStatusReasonQuery.newBuilder()
.setType(type)
.build();
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
@@ -1742,27 +1767,14 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec
ParamSetCmdOuterClass.ParamSetCmd.Builder builder = ParamSetCmdOuterClass.ParamSetCmd.newBuilder()
.setSrc(1)
.setType(paramSetType);
if (paramSetType == ParamSetCmdOuterClass.ParamSetType.ParamSetTypeBlindArea || paramSetType == ParamSetCmdOuterClass.ParamSetType.ParamSetTypeV2N) {
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());
}
/**
* FSM状态原因查询
* 当FSMFunctionStates的类型是XXX_DRIVING_OFF时查询OFF的原因
* 当FSMFunctionStates的类型是PILOT_DRIVING_OFF时会自动调用
*
* @param type 0:default, 1:请求反馈原因
* @return boolean
*/
@Override
public boolean sendFSMStatusReasonQuery(int type) {
FSMStatusReasonQueryOuterClass.FSMStatusReasonQuery query = FSMStatusReasonQueryOuterClass.FSMStatusReasonQuery.newBuilder()
.setType(type)
.build();
return sendPBMessage(MessageType.TYPE_SEND_FSM_STATUS_REASON_QUERY_REQ.typeCode, query.toByteArray());
}
/**
* 发送清扫车指令到云控

View File

@@ -5,7 +5,6 @@ import android.text.TextUtils;
import androidx.annotation.NonNull;
import com.zhjt.mogo.adas.data.bean.AdasParam;
import com.zhidao.support.adas.high.bean.VersionCompatibility;
import com.zhidao.support.adas.high.common.AppPreferenceHelper;
import com.zhidao.support.adas.high.common.Constants;
@@ -13,12 +12,13 @@ import com.zhidao.support.adas.high.common.CupidLogUtils;
import com.zhidao.support.adas.high.common.Define;
import com.zhidao.support.adas.high.common.MessageType;
import com.zhidao.support.adas.high.common.ReceiveTimeoutManager;
import com.zhjt.mogo.adas.data.AdasConstants;
import com.zhjt.mogo.adas.data.bean.AdasParam;
import com.zhjt.mogo.adas.data.sweeper.bootable.SweeperBootable;
import com.zhjt.mogo.adas.data.sweeper.task.SweeperTask;
import com.zhjt.mogo.adas.data.sweeper.task.SweeperTaskSuspendResume;
import com.zhjt.mogo.adas.data.sweeper.task.confirm.SweeperTaskConfirm;
import com.zhjt.mogo.adas.data.sweeper.task.stop.SweeperTaskStop;
import com.zhjt.mogo.adas.data.AdasConstants;
import java.util.HashSet;
import java.util.List;
@@ -929,7 +929,7 @@ public class AdasManager implements IAdasNetCommApi {
* 参数获取请求
* 结果回调{@link OnAdasListener#onGetParamResp(MessagePad.Header, MessagePad.SetParamReq, AdasParam)}
*
* @param paramType 参数类型:libraries/mogo-adas-data/src/main/proto/personal/adas_constants.proto
* @param paramType 参数类型:libraries/mogo-adas-data/src/main/proto/personal/adas_constants.proto
* @return boolean
*/
@Override
@@ -967,9 +967,33 @@ public class AdasManager implements IAdasNetCommApi {
}
/**
* 控制V2N数据给车端PnC
* FSM状态原因查询
* 当FSMFunctionStates的类型是XXX_DRIVING_OFF时查询OFF的原因
* 当FSMFunctionStates的类型是PILOT_DRIVING_OFF时会自动调用
*
* @param switchCmd true为发给PnCfalse为不发给PnC
* @param type 0:default, 1:请求反馈原因
* @return boolean
*/
@Override
public boolean sendFSMStatusReasonQuery(int type) {
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
@@ -988,19 +1012,6 @@ public class AdasManager implements IAdasNetCommApi {
return mChannel != null && mChannel.sendBlindAreaCmd(switchCmd);
}
/**
* FSM状态原因查询
* 当FSMFunctionStates的类型是XXX_DRIVING_OFF时查询OFF的原因
* 当FSMFunctionStates的类型是PILOT_DRIVING_OFF时会自动调用
*
* @param type 0:default, 1:请求反馈原因
* @return boolean
*/
@Override
public boolean sendFSMStatusReasonQuery(int type) {
return mChannel != null && mChannel.sendFSMStatusReasonQuery(type);
}
/**
* 开始大任务响应
* 1、云端下发大任务信息type: 100001-> sweeper_task.proto/StartTaskResp 响应信息

View File

@@ -6,12 +6,12 @@ import com.zhidao.support.adas.high.bean.VersionCompatibility;
import com.zhidao.support.adas.high.common.Constants;
import com.zhidao.support.adas.high.common.Define;
import com.zhidao.support.adas.high.common.MessageType;
import com.zhjt.mogo.adas.data.AdasConstants;
import com.zhjt.mogo.adas.data.sweeper.bootable.SweeperBootable;
import com.zhjt.mogo.adas.data.sweeper.task.SweeperTask;
import com.zhjt.mogo.adas.data.sweeper.task.SweeperTaskSuspendResume;
import com.zhjt.mogo.adas.data.sweeper.task.confirm.SweeperTaskConfirm;
import com.zhjt.mogo.adas.data.sweeper.task.stop.SweeperTaskStop;
import com.zhjt.mogo.adas.data.AdasConstants;
import java.util.List;
import java.util.Set;
@@ -572,7 +572,7 @@ public interface IAdasNetCommApi {
/**
* 参数获取请求
*
* @param paramType 参数类型:libraries/mogo-adas-data/src/main/proto/personal/adas_constants.proto
* @param paramType 参数类型:libraries/mogo-adas-data/src/main/proto/personal/adas_constants.proto
* @return boolean
*/
boolean sendGetParamReq(AdasConstants.MapSystemParamType paramType);
@@ -602,9 +602,27 @@ public interface IAdasNetCommApi {
boolean sendBagManagerCmd(BagManagerOuterClass.BagManager bagManager);
/**
* 控制V2N数据给车端PnC
* FSM状态原因查询
* 当FSMFunctionStates的类型是XXX_DRIVING_OFF时查询OFF的原因
* 当FSMFunctionStates的类型是PILOT_DRIVING_OFF时会自动调用
*
* @param switchCmd true为发给PnCfalse为不发给PnC
* @param type 0:default, 1:请求反馈原因
* @return boolean
*/
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);
@@ -617,16 +635,6 @@ public interface IAdasNetCommApi {
*/
boolean sendBlindAreaCmd(boolean switchCmd);
/**
* FSM状态原因查询
* 当FSMFunctionStates的类型是XXX_DRIVING_OFF时查询OFF的原因
* 当FSMFunctionStates的类型是PILOT_DRIVING_OFF时会自动调用
*
* @param type 0:default, 1:请求反馈原因
* @return boolean
*/
boolean sendFSMStatusReasonQuery(int type);
/**
* 开始大任务响应
* 1、云端下发大任务信息type: 100001-> sweeper_task.proto/StartTaskResp 响应信息