[650][adas] 新增定位状态新接口
This commit is contained in:
@@ -75,6 +75,7 @@ import com.zhjt.mogo.adas.data.sweeper.task.stop.SweeperTaskStop
|
||||
import com.zhjt.service.chain.ChainLog
|
||||
import fault_management.FmInfo
|
||||
import function_state_management.FunctionStates
|
||||
import localization.LocState
|
||||
import mogo.telematics.pad.MessagePad
|
||||
import mogo.telematics.pad.MessagePad.TrackedObject
|
||||
import mogo.v2x.MogoV2X
|
||||
@@ -491,6 +492,18 @@ class MoGoAdasListenerImpl : OnAdasListener {
|
||||
CallerFaultManagementStateListenerManager.invokeFaultManagementState(fmInfo)
|
||||
}
|
||||
|
||||
/**
|
||||
* 定位状态
|
||||
* 定位呈现状态透传 用于pad图标显示 1hz 所有车型MAP440开始支持
|
||||
* 详细解释:http://wiki.zhidaohulian.com/pages/viewpage.action?pageId=131757484
|
||||
*
|
||||
* @param header 头
|
||||
* @param locState 数据
|
||||
*/
|
||||
override fun onLocalizationState(header: MessagePad.Header?, locState: LocState.loc_state) {
|
||||
CallerLocalizationStateListenerManager.invokeLocalizationState(locState)
|
||||
}
|
||||
|
||||
/**
|
||||
* 数据采集配置应答
|
||||
*/
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
package com.mogo.eagle.core.function.api.autopilot
|
||||
|
||||
import localization.LocState
|
||||
|
||||
|
||||
/**
|
||||
*定位状态新接口
|
||||
* 定位呈现状态透传 用于pad图标显示 1hz 所有车型MAP440开始支持
|
||||
* 详细解释:http://wiki.zhidaohulian.com/pages/viewpage.action?pageId=131757484
|
||||
*/
|
||||
interface IMoGoLocalizationStateListener {
|
||||
|
||||
/**
|
||||
* 定位状态
|
||||
* @param locState 数据
|
||||
*/
|
||||
fun onLocalizationState(locState: LocState.loc_state)
|
||||
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
package com.mogo.eagle.core.function.call.autopilot
|
||||
|
||||
import com.mogo.eagle.core.function.api.autopilot.IMoGoLocalizationStateListener
|
||||
import com.mogo.eagle.core.function.call.base.CallerBase
|
||||
import localization.LocState
|
||||
|
||||
/**
|
||||
*定位状态新接口
|
||||
* 定位呈现状态透传 用于pad图标显示 1hz 所有车型MAP440开始支持
|
||||
* 详细解释:http://wiki.zhidaohulian.com/pages/viewpage.action?pageId=131757484
|
||||
*/
|
||||
object CallerLocalizationStateListenerManager : CallerBase<IMoGoLocalizationStateListener>() {
|
||||
|
||||
|
||||
fun invokeLocalizationState(locState: LocState.loc_state) {
|
||||
M_LISTENERS.forEach {
|
||||
val listener = it.value
|
||||
listener.onLocalizationState(locState)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -30,6 +30,7 @@ public enum MessageType {
|
||||
TYPE_RECEIVE_M1_STITCHED_VIDEO(MessagePad.MessageType.MsgTypeM1StitchedVideo, "M1拼接视频"),
|
||||
TYPE_RECEIVE_SSM(MessagePad.MessageType.MsgTypeSSMState, "SSM系统状态"),
|
||||
TYPE_RECEIVE_FM_STATE(MessagePad.MessageType.MsgTypeFMState, "FM状态"),
|
||||
TYPE_RECEIVE_LOC_STATE(MessagePad.MessageType.MsgTypeLocState, "定位状态"),
|
||||
|
||||
TYPE_RECEIVE_BASIC_INFO_REQ(MessagePad.MessageType.MsgTypeBasicInfoReq, "自动驾驶设备基础信息请求"),
|
||||
TYPE_SEND_BASIC_INFO_RESP(MessagePad.MessageType.MsgTypeBasicInfoResp, "自动驾驶设备基础信息应答"),
|
||||
|
||||
15
libraries/mogo-adas-data/src/main/proto/loc_state.proto
Normal file
15
libraries/mogo-adas-data/src/main/proto/loc_state.proto
Normal file
@@ -0,0 +1,15 @@
|
||||
syntax = "proto2";
|
||||
package localization;
|
||||
|
||||
import "header.proto";
|
||||
|
||||
|
||||
message loc_state {
|
||||
optional common.Header header = 1;
|
||||
optional double rtk_time = 2;//rtk 时间戳
|
||||
optional int32 autopilot_state = 3;//0非自驾,1自驾状态
|
||||
optional int32 loc_status = 4;//loc 定位状态 0 正常 1 DR模式 2异常(对应430统计异常值)(对应鹰眼端显示0 蓝色、1 黄色、2异常红色)
|
||||
optional string loc_sensors_state= 5;//子模块异常状态
|
||||
optional string loc_current_sensor=6;//当前定位使用的主要定位消息源
|
||||
optional string reserved = 7;
|
||||
}
|
||||
@@ -35,6 +35,7 @@ enum MessageType
|
||||
MsgTypeM1StitchedVideo = 0x1000e; //m1拼接视频 定频10hz
|
||||
MsgTypeSSMState = 0x1000f; //ssm 系统状态 定频1hz hq m1 MAP350开始支持,其他车型MAP360开始支持
|
||||
MsgTypeFMState = 0x10010; //FM状态 定频1hz bus和清扫车是MAP370开始支持,其他车型MAP360开始支持
|
||||
MsgTypeLocState = 0x10012; //定位呈现状态透传 用于pad图标显示 1hz 所有车型MAP440开始支持
|
||||
|
||||
//### 以下消息全部不定频 ###
|
||||
MsgTypeBasicInfoReq = 0x10100; //自动驾驶设备基础信息请求
|
||||
@@ -257,7 +258,7 @@ enum AdditionalAttribute
|
||||
message SubSource
|
||||
{
|
||||
uint32 source = 1; // TrackedSource=1:1-lidar 2-camera 3-radar 4-vidar 5-falcon
|
||||
// TrackedSource=2:1-v2v_bsm 2-v2i_rsm 3-v2v_ssm 4-v2n_rsm 5-v2n_rsi 6-v2i_ssm 7-v2i_rsi
|
||||
// TrackedSource=2:1-v2v_bsm 2-v2i_rsm 3-v2v_ssm 4-v2n_rsm 5-v2n_rsi 6-v2i_ssm 7-v2i_rsi 8-v2n_rsm_2
|
||||
string id = 2; //HEX_string -bsm_id
|
||||
}
|
||||
|
||||
@@ -877,3 +878,6 @@ message SessionInfo
|
||||
|
||||
//message definition for MsgTypeFMState
|
||||
//refer to fm_info.proto for details
|
||||
|
||||
//message definition for MsgTypeLocState
|
||||
//refer to loc_state.proto
|
||||
|
||||
@@ -31,6 +31,7 @@ import chassis.ChassisStatesOuterClass;
|
||||
import chassis.VehicleStateOuterClass;
|
||||
import fault_management.FmInfo;
|
||||
import function_state_management.FunctionStates;
|
||||
import localization.LocState;
|
||||
import mogo.telematics.pad.MessagePad;
|
||||
import mogo.v2x.MogoV2X;
|
||||
import mogo.v2x.RoadOverviewEvents;
|
||||
@@ -237,6 +238,16 @@ public interface OnAdasListener {
|
||||
*/
|
||||
void onFaultManagementState(MessagePad.Header header, @NonNull FmInfo.FaultResultMsg fmInfo);
|
||||
|
||||
/**
|
||||
* 定位状态
|
||||
* 定位呈现状态透传 用于pad图标显示 1hz 所有车型MAP440开始支持
|
||||
* 详细解释:http://wiki.zhidaohulian.com/pages/viewpage.action?pageId=131757484
|
||||
*
|
||||
* @param header 头
|
||||
* @param locState 数据
|
||||
*/
|
||||
void onLocalizationState(MessagePad.Header header, @NonNull LocState.loc_state locState);
|
||||
|
||||
/**
|
||||
* 数据采集配置应答
|
||||
*
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
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 localization.LocState;
|
||||
|
||||
/**
|
||||
* 定位状态
|
||||
* 定位呈现状态透传 用于pad图标显示 1hz 所有车型MAP440开始支持
|
||||
* 详细解释:http://wiki.zhidaohulian.com/pages/viewpage.action?pageId=131757484
|
||||
*/
|
||||
public class LocalizationStateMessage extends MyAbstractMessageHandler {
|
||||
|
||||
@Override
|
||||
public void handlerMsg(RawData raw, OnAdasListener adasListener) throws InvalidProtocolBufferException {
|
||||
LocState.loc_state locState = LocState.loc_state.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.onLocalizationState(raw.getHeader(), locState);
|
||||
}
|
||||
AdasChannel.calculateTimeConsumingBusiness("定位状态", nowTime);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -32,6 +32,7 @@ public class MyMessageFactory implements IMyMessageFactory {
|
||||
private IMsg statusQueryRespMessage;//状态查询应答
|
||||
private IMsg systemStatusMessage;//定频SSM
|
||||
private IMsg faultManagementMessage;//FM状态
|
||||
private IMsg localizationStateMessage;//定位状态
|
||||
private IMsg recordDataConfigRespMessage;//数据采集配置应答
|
||||
private IMsg planningDecisionStateMessage;//planning决策状态
|
||||
private IMsg obuWarningDataMessage;//工控机透传OBU V2I数据
|
||||
@@ -180,6 +181,12 @@ public class MyMessageFactory implements IMyMessageFactory {
|
||||
faultManagementMessage = new FaultManagementMessage();
|
||||
}
|
||||
return faultManagementMessage;
|
||||
} else if (messageType == MessageType.TYPE_RECEIVE_LOC_STATE.typeCode) {
|
||||
//定位状态
|
||||
if (localizationStateMessage == null) {
|
||||
localizationStateMessage = new LocalizationStateMessage();
|
||||
}
|
||||
return localizationStateMessage;
|
||||
} else if (messageType == MessageType.TYPE_RECEIVE_RECORD_DATA_CONFIG_RESP.typeCode) {
|
||||
//数据采集配置应答
|
||||
if (recordDataConfigRespMessage == null) {
|
||||
|
||||
Reference in New Issue
Block a user