Commit 5616a99e authored by p x's avatar p x
Browse files

first

parent 67ef9b69
Pipeline #3086 failed with stages
in 0 seconds
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<script src="threebox.js"></script>
<title>2.5D导航</title>
<script type="module" crossorigin src="/shudao-navigation3d-app/static/js/index-573c7dfe.js"></script>
<link rel="modulepreload" crossorigin href="/shudao-navigation3d-app/static/js/vue-4ebd1e77.js">
<link rel="stylesheet" href="/shudao-navigation3d-app/static/css/index-acf1dca2.css">
</head>
<body onselectstart="return false">
<div id="app"></div>
</body>
</html>
\ No newline at end of file
{
"type": "FeatureCollection",
"name": "areaBorder",
"crs": { "type": "name", "properties": { "name": "urn:ogc:def:crs:OGC:1.3:CRS84" } },
"features": [
{
"type": "Feature",
"geometry": {
"type": "MultiLineString",
"coordinates": [
[
[116.499494802919969, 39.810082006051701],
[116.499504816500291, 39.810131656720799],
[116.500277843646415, 39.810487036737598],
[116.500558223895439, 39.810608034166492],
[116.500757661036857, 39.810696487459339],
[116.500801887683281, 39.810708169969715],
[116.501138177089103, 39.810843353304065],
[116.501498353449449, 39.810991572930973],
[116.501673591105089, 39.810944008424443],
[116.501970660654649, 39.810553478791874],
[116.502104175058946, 39.810446667268437],
[116.50231279131566, 39.810189652040165],
[116.503582847086534, 39.80863587816016],
[116.503671300379381, 39.80845563371436],
[116.503990066019639, 39.808076786592167],
[116.503923308817491, 39.807978319718998],
[116.501773726908311, 39.8070120092179],
[116.501704466311082, 39.807085859372776],
[116.501554679838762, 39.807290303304356],
[116.501508784262285, 39.807373332574528],
[116.50070602890645, 39.80845813710944],
[116.500156325070009, 39.8091653462197],
[116.500154238907442, 39.809166180684727],
[116.499518793789491, 39.810016500547093],
[116.499495115844354, 39.810079919889134],
[116.499494802913603, 39.810082006024643],
[116.499494802919969, 39.810082006053293]
]
]
}
}
]
}
This source diff could not be displayed because it is too large. You can view the blob instead.
syntax = "proto3";
option optimize_for = LITE_RUNTIME;
// 添加包名
package VRC;
import "vrc.v2x.msgframe.proto";
import "vrc.r2c.msgframe.proto";
import "vrc.public.msgframe.proto";
// author wuhuanghu (wuhh@cv2x.com.cn)
// version 1.1.0
// date 2022-08-01
// Copyright (c) 2022 Vehicle Road Cooperation Technology (Chengdu) Co.,Ltd.
// 车路通消息集,包含DAY1、DAY2、V2X用户自定义和车路通公共消息
// 封装规则:
// 1、DAY1和DAY2消息完全映射V2X消息集;
// 2、BSM和PTC中增加了安全消息扩展(SafetyMsgExtLitePb),协助APP处理;
// 3、所有时间数据单位均转换成秒,距离数据单位均转换成米,速度数据单位均转换成米每秒;
// 4、所有相对位置经纬度均转换成绝对位置经纬度,经纬度范围-90至90,-180至180;
message VrcMsgPb {
oneof msg {
// V2X DAY1消息集,参照V2X标准ASN文件和CSAE 53-2020
V2xBsmPb bsm = 1;
V2xMapPb map = 2;
V2xRsmPb rsm = 3;
V2xSpatPb spat = 4;
V2xRsiPb rsi = 5;
// V2X DAY2消息集,参照V2X标准ASN文件和CSAE 157-2020
V2xTestPb test = 6;
V2xRtcmPb rtcm = 7;
V2xRscPb rsc = 8;
V2xSsmPb ssm = 9;
V2xVirPb vir = 10;
V2xPamPb pam = 11;
V2xPsmPb psm = 12;
V2xClpmmPb clpmm = 13;
V2xVpmPb vpm = 14;
// V2X用户自定义消息,客户需要自定义消息时,使用
V2xUdmPb udm = 15;
// VRC公共消息
CmdmPb cmdm = 16; // 命令消息
HmPb hm = 17; // 心跳消息
SgmPb sgm = 18; // 信号灯引导消息
TmPb tm = 19; // 预警信息
TpmPb tpm = 20; // 时间位置消息
VimPb vim = 21; // 车辆接口消息
RmPb rm = 22; // 中继消息
CfgMsgPb cm = 23; // 配置消息
CfgCtlMsgPb ccm = 24; // 配置控制消息
BsmPlusPb bsmPlus = 25; // 基本安全消息增强版
RsmPlusPb rsmPlus = 26; // 路侧安全消息增强版
SsmPlusPb ssmPlus = 27; // 交通参与者、道路障碍物和交通事件的感知共享消息增强版
}
}
\ No newline at end of file
syntax = "proto3";
option optimize_for = LITE_RUNTIME;
// 添加包名
package VRC;
import "vrc.v2x.msgframe.proto";
import "vrc.v2x.dataframe.proto";
// VRC内部数据帧
// 安全消息扩展,PTC和BSM扩展添加,非ASN定义
message SafetyMsgExtPb {
oneof choice {
HostExtPb hostExt = 1; // 本地扩展信息
RemoteExtPb remoteExt = 2; // 远端扩展信息
}
}
// 安全消息扩展精简版
message SafetyMsgExtLitePb {
oneof choice {
HostExtLitePb hostExt = 1; // 本地扩展信息精简版
RemoteExtLitePb remoteExt = 2; // 远端扩展信息精简版
}
}
// 本地扩展信息
message HostExtPb {
// 安全距离,开始刹车到速度为0的距离,再加上预留安全距离,取和
// 低速或异常时,没有该数据项
oneof safetyDisOpt {
double safetyDis = 1;
}
// 安全时间,以当前速度行驶完安全距离的耗时
// 低速或异常时,没有该数据项
oneof safetyTimeOpt {
double safetyTime = 2;
}
// 车辆危险信息预警距离,异常时,没有该数据项
oneof vehHazardInfoWarningDisOpt {
double vehHazardInfoWarningDis = 3;
}
HostSpeedLimitsPb speedLimits = 4; // 本地限速信息
// 本地交叉路口的无地图区域
// 选填,包含是否在本地交叉路口的无地图区域中和交叉路口的无地图区域
HostUnmappedRegionOfIntersectionPb unmappedRegionOfIntersection = 5;
// 本地转向信息
// 有地图信息或有本地交叉路口的无地图区域时,存在
HostManeuversPb maneuvers = 6;
// 本地地图扩展
// 填写本车所属地图相关的各种信息
HostMapExtPb hostMapExt = 7;
}
// 本地扩展信息精简版
message HostExtLitePb {
// 安全距离,开始刹车到速度为0的距离,再加上预留安全距离,取和
// 低速或异常时,没有该数据项
oneof safetyDisOpt {
double safetyDis = 1;
}
// 安全时间,以当前速度行驶完安全距离的耗时
// 低速或异常时,没有该数据项
oneof safetyTimeOpt {
double safetyTime = 2;
}
// 车辆危险信息预警距离,异常时,没有该数据项
oneof vehHazardInfoWarningDisOpt {
double vehHazardInfoWarningDis = 3;
}
HostSpeedLimitsPb speedLimits = 4; // 本地限速信息
}
// 本地限速信息
message HostSpeedLimitsPb {
oneof highSpeedLimitOpt {
double highSpeedLimit = 1; // 高速限制
}
oneof lowSpeedLimitOpt {
double lowSpeedLimit = 2; // 低速限制
}
}
// 本地交叉路口的无地图区域
message HostUnmappedRegionOfIntersectionPb {
bool inRegion = 1; // 是否在本地交叉路口的无地图区域中
UnmappedRegionOfIntersectionPb region = 2; // 交叉路口的无地图区域
}
// 交叉路口的无地图区域
message UnmappedRegionOfIntersectionPb {
V2xPosPb pos = 1; // 位置点,通常为停止线点
double heading = 2; // 行驶方向,通常为车道方向
}
// 本地转向信息
message HostManeuversPb {
RefManeuverPb straight = 1; // 直行转向信息
RefManeuverPb left = 2; // 左转转向信息
RefManeuverPb right = 3; // 右转转向信息
RefManeuverPb uTurn = 4; // U行转向信息
}
// 相关转向信息
message RefManeuverPb {
int32 source = 1; // 来源
int32 status = 2; // 状态
V2xNodeRefIdPb remoteIntersection = 3; // 远端路口ID
// 连接起始点信息
// 左转辅助运算弧线时使用
V2xPosPb connectingPos = 4;
oneof connectingLaneIdOpt {
int32 connectingLaneId = 5; // 连接车道ID
}
oneof phaseIdOpt {
int32 phaseId = 6; // 相位ID
}
}
// 本地地图扩展
message HostMapExtPb {
HostInMapPb inMap = 1; // 本地所处地图信息
HostNodeRefIdsPb nodeRefIds = 2; // 本地节点关联ID
EndLinePb endLine = 3; // 本地停止线信息
HostRefLaneLitesPb refLaneLites = 4; // 本地相关精简版车道信息
}
// 本地所处地图信息
message HostInMapPb {
V2xMapPb map = 1; // 所处地图信息
V2xNodePb node = 2; // 所处节点信息
V2xLinkPb link = 3; // 所处连接信息
V2xLanePb lane = 4; // 所处车道
// 所处车道序号
// 以车道行驶方向为参考,车道ID默认自左向右从1开始编号
int32 laneIndex = 5;
// 本地交叉路口信息
// 选填,填充内容标识存在本地交叉路口信息,否则不存在
HostIntersectionPb intersection = 6;
}
// 本地交叉路口信息
message HostIntersectionPb {
bool closeToIntersection = 1; // 是否即将到达交叉路口
}
// 本地节点关联ID
message HostNodeRefIdsPb {
V2xNodeRefIdPb upstreamNodeId = 1; // 上游节点ID
V2xNodeRefIdPb downstreamNodeId = 2; // 下游节点ID
repeated V2xNodeRefIdPb otherNodeRefIds = 3; // 其他关联ID集合
}
// 停止线信息
message EndLinePb {
V2xPosPb endPos = 1; // 所属车道或连接终点位置,部分场景的停止线位置
double endDis = 2; // 现有位置到所属车道或连接终点位置的距离
double endHeading = 3; // 所属车道或连接终点附近的行驶方向
}
// 本地相关精简版车道信息
message HostRefLaneLitesPb {
repeated LaneLitePb lanes = 1; // 同向车道
repeated LaneLitePb leftLanes = 2; // 同向左相邻车道
repeated LaneLitePb farLeftLanes = 3; // 同向左非相邻车道
repeated LaneLitePb rightLanes = 4; // 同向右相邻车道
repeated LaneLitePb farRightLanes = 5; // 同向右非相邻车道
repeated LaneLitePb oncomingLeftLanes = 6; // 反向左相邻车道
repeated LaneLitePb oncomingFarLeftLanes = 7; // 反向左非相邻车道
repeated LaneLitePb intersectionLeftLanes = 8; // 交叉左前方车道,向右行驶
repeated LaneLitePb intersectionRightLanes = 9; // 交叉右前方车道,向左行驶
}
// 车道信息精简版
message LaneLitePb {
V2xNodeRefIdPb upstreamNodeId = 1; // 上游路段节点标识ID
V2xNodeRefIdPb downstreamNodeId = 2; // 下游路段节点标识ID
int32 laneId = 3; // 车道标识ID
}
// 远端扩展信息
message RemoteExtPb {
DisToHostVehPb disToHostVeh = 1; // 到本车的距离
double azimuth = 2; // 本车到远车的方位角
int32 relPos = 3; // 相对位置,参考TmPb中相对位置描述
// 本信息所属消息是否是BSM消息的标识
// true:是BSM消息;false:是PTC数据;
bool isInBsm = 4;
// 本信息所属消息是否标识弱势交通参与者
// true:标识弱势交通参与者;false:标识非弱势交通参与者;
bool isVru = 5;
// 本信息所属消息是否标识紧急车辆
// true:紧急车辆;false:非紧急车辆;
bool isEmergencyVeh = 6;
// 远端所处车道信息
// 路侧生成,用于运算协作式信号灯优先通行场景和协作式匝道汇入场景;
// 车端生成,用于DAY2运算;
LaneLitePb inLane = 7;
}
// 远端扩展信息精简版
message RemoteExtLitePb {
DisToHostVehPb disToHostVeh = 1; // 到本车的距离
double azimuth = 2; // 本车到远车的方位角
int32 relPos = 3; // 相对位置,参考TmPb中相对位置描述
// 本信息所属消息是否标识弱势交通参与者
// true:标识弱势交通参与者;false:标识非弱势交通参与者;
bool isVru = 4;
// 本信息所属消息是否标识紧急车辆
// true:紧急车辆;false:非紧急车辆;
bool isEmergencyVeh = 5;
// 远端所处车道信息
// 路侧生成,用于运算协作式信号灯优先通行场景和协作式匝道汇入场景;
// 车端生成,用于DAY2运算;
LaneLitePb inLane = 6;
}
// 到本车的距离
message DisToHostVehPb {
double straightLineDisToHostVeh = 1; // 到本车的直线距离
double latDisToHostVeh = 2; // 到本车的横向距离
double lonDisToHostVeh = 3; // 到本车的纵向距离
}
// 感知数据共享请求功能设置
message SsmVirSetPb {
bool sendSsmVir = 1; // 感知数据共享请求功能开关,true:支持发送感知数据共享请求消息;false:不支持;
}
// 在LINK中的信号灯消息
// 处理后的信号灯信息,包含直行、左转、右转、U行转向灯信息和停止线、限速信息
message SignalMsgInLinkPb {
TurnSignalMsgPb straight = 1; // 直行转向灯信息
TurnSignalMsgPb left = 2; // 左转转向灯信息
TurnSignalMsgPb right = 3; // 右转转向灯信息
TurnSignalMsgPb uTurn = 4; // U行转向灯信息
V2xPosPb endPos = 5; // 停止线位置
double endDis = 6; // 停止线距离
oneof highSpeedLimitOpt {
double highSpeedLimit = 7; // 限高速信息
}
}
// 转向信号灯信息
// 灯状态,剩余时间和转向状态
message TurnSignalMsgPb {
// 灯状态
// 参考V2X标准消息集DE_LightState
int32 light = 1;
double time = 2; // 剩余时间
// 转向状态
// 0:无效的;1:正在使用的;2:可使用的;3:不可使用但相关的;
int32 status = 3;
SignalDurationPb duration = 4; // 信号灯持续时间,周期时间
}
// 信号灯持续时间
// 红黄绿三色灯在一个周期内的时间
message SignalDurationPb {
double red = 1; // 一个周期内的红灯占用时间
double green = 2; // 一个周期内的绿灯占用时间
oneof yellowOpt {
double yellow = 3; // 一个周期内的黄灯占用时间
}
}
// 车辆接口消息必填浮点类型数据项
message VimDoublePb {
double value = 1; // 值
}
// 车辆接口消息选填浮点类型数据项
message VimDoubleOptPb {
bool valueOpt = 1; // 是否包含值
double value = 2; // 值
}
// 车辆接口消息必填整形数据项
message VimIntPb {
int32 value = 1; // 值
}
// 车辆接口消息选填整形数据项
message VimIntOptPb {
bool valueOpt = 1; // 是否包含值
int32 value = 2; // 值
}
// 车辆接口消息刹车系统状态
// 用于封装从车端获取的刹车系统状态信息
message VimBrakesPb {
VimIntOptPb brakePadel = 1; // 刹车踏板踩下情况
VimIntOptPb wheelBrakes = 2; // 车辆车轮制动情况
VimIntOptPb traction = 3; // 牵引力控制系统作用情况
VimIntOptPb abs = 4; // 制动防抱死系统作用情况
VimIntOptPb scs = 5; // 车身稳定控制系统作用情况
VimIntOptPb brakeBoost = 6; // 刹车助力系统作用情况
VimIntOptPb auxBrakes = 7; // 辅助制动系统(一般指手刹)情况
}
// 车辆接口消息安全扩展
// 用于封装从车端获取的安全扩展信息
message VimSafetyExtPb {
VimIntOptPb events = 1; // 特殊事件状态
VimIntOptPb lights = 2; // 车身灯光状态
}
// 车辆接口消息车辆紧急扩展信息
// 用于封装从车端获取的车辆紧急扩展信息
message VimVehEmergencyExtPb {
VimIntOptPb responseType = 1; // 当前行驶状态或驾驶行为
VimIntOptPb sirenUse = 2; // 警笛或发声装置状态
VimIntOptPb lightsUse = 3; // 紧急车辆或特殊车辆的警示灯或外置专用显示设备的工作状态
}
// 配置子项,用于映射通用配置文件、车端配置文件和路端配置文件内容到V2X协议栈内部;
// value和items至少包含一项;
message ConfigItemPb {
// 子项名,可用于标识子项
// 最上层的子项名一般对应配置ID
string name = 1;
// 描述信息
oneof descriptionOpt {
string description = 2;
}
// type类型,标识本子项对应信息类型
// 0:无效;1:BOOL;2:整形;3:浮点型;4:字符串;5:对象(数组);
// type为1-4时,使用value;为5时,使用items;
int32 type = 3;
// 本子项对应信息值
// 本子项标识基本类型信息时,由该值标识;
// BOOL:字符串"true"或"false";
// 整形:字符串转换为int;
// 浮点型:字符串转换为double;
// 字符串:字符串赋值;
oneof valueOpt {
string value = 4;
}
// 最小值
oneof minValueOpt {
string minValue = 5;
}
// 最大值
oneof maxValueOpt {
string maxValue = 6;
}
// 单元
oneof unitOpt {
string unit = 7;
}
// 备注
oneof remarkOpt {
string remark = 8;
}
// 本子项对应信息下属子项集合
// 本子项标识对象或数组信息时,由该值标识;
// 对象:下属成员集合;
// 数据:数组成员集合;
repeated ConfigItemPb items = 9;
}
// 配置请求
// 4种操作可选择其中的0-4种,支持任意组合;
// 如果一个文件中要操作多个ID的数据,在一个ConfigReqItemPb创建多个ConfigItemPb,而不是创建多个ConfigReqItemPb;
// add和alter区别,如果没有匹配到,add会新增数据项,alter跳过;
message ConfigReqPb {
// 是否更新配置文件
// true:更新;false:不更新;
bool updateFile = 1;
// 添加配置
// 操作层次文件级:对应文件下属内容全删,使用该请求内容;
// 操作层次ID级:匹配ID,如果没匹配到,新增,处理下一个;如果匹配到,替换该ID内容;
// 操作层次子项级:匹配ID,如果没匹配到,新增,处理下一个;如果匹配到,匹配子项(使用name),如果没匹配到,新增,处理下一个,如果匹配到,替换该子项内容;
ConfigReqCtlPb add = 2;
// 修改配置
// 操作层次文件级:对应文件下属内容全删,使用该请求内容;
// 操作层次ID级:匹配ID,如果没匹配到,处理下一个;如果匹配到,替换该ID内容;
// 操作层次子项级:匹配ID,如果没匹配到,处理下一个;如果匹配到,匹配子项(使用name), 如果没匹配到,处理下一个,如果匹配到,替换该子项内容;
ConfigReqCtlPb alter = 3;
// 删除配置
// 操作层次文件级:对应文件下属内容全删;
// 操作层次ID级:匹配ID,如果没匹配到,处理下一个;如果匹配到,删除该ID内容;
// 操作层次子项级:匹配ID,如果没匹配到,处理下一个;如果匹配到,匹配子项(使用name),如果没匹配到,处理下一个,如果匹配到,删除该子项;
ConfigReqCtlPb del = 4;
// 查询配置
// 操作层次文件级:对应文件全部下属内容;
// 操作层次ID级:匹配ID,如果没匹配到,处理下一个;如果匹配到,添加该ID内容;
// 操作层次子项级:匹配ID,如果没匹配到,处理下一个;如果匹配到,匹配子项(使用name),如果没匹配到,处理下一个,如果匹配到,添加该子项内容;
ConfigReqCtlPb query = 5;
}
// 配置请求控制
// 包含请求子项集合,涉及各种请求内容;
// 轮询处理,如果多个指令涉及同一数据,由请求方对处理是否达到自身需求负责;
message ConfigReqCtlPb {
repeated ConfigReqItemPb items = 1;
}
// 配置请求子项
// 对应一条配置请求指令;
// 包含操作层次,对应文件描述和配置信息;
// 对非实时配置的修改,需要写入配置文件,且重启后才会生效;
message ConfigReqItemPb {
// 操作层次
// 0:无效;1:文件级;2:ID级;3:子项级;
// 操作层次涉及请求内容的处理,在ConfigReqPb中进行描述;
int32 layer = 1;
// 文件描述
// 0:无效;
// 1:可见的实时通用配置;
// 2:不可见的实时通用配置;
// 3:可见的实时路端应用配置;
// 4:不可见的实时路端应用配置;
// 5:可见的实时车端应用配置;
// 6:不可见的实时车端应用配置;
// 7:实时TCI一致性测试配置;
// 8:可见的非实时通用配置;
// 9:不可见的非实时通用配置;
// 10:可见的非实时路端应用配置;
// 11:不可见的非实时路端应用配置;
// 12:可见的非实时车端应用配置;
// 13:不可见的非实时车端应用配置;
// 14:非实时TCI一致性测试配置;
int32 file = 2;
// 请求涉及的配置子项信息
// 子项名字为配置ID,类型是object;
repeated ConfigItemPb items = 3;
}
// 配置回复
message ConfigRspPb {
// 回复操作状态
// 0:成功,非0:失败;
int32 status = 1;
// 查询到的配置消息
ConfigInfoPb data = 2;
}
// 配置信息
// 包含各个配置文件数据;
// 配置文件数据的名称默认为文件名,下属子项为配置ID数据;
// 配置ID数据下属子项为配置项数据;
message ConfigInfoPb {
// 可见的实时通用配置
ConfigItemPb visibleRealtimeCommon = 1;
// 不可见的实时通用配置
ConfigItemPb invisibleRealtimeCommon = 2;
// 可见的实时路端应用配置
ConfigItemPb visibleRealtimeAppsRs = 3;
// 不可见的实时路端应用配置
ConfigItemPb invisibleRealtimeAppsRs = 4;
// 可见的实时车端应用配置
ConfigItemPb visibleRealtimeAppsVeh = 5;
// 不可见的实时车端应用配置
ConfigItemPb invisibleRealtimeAppsVeh = 6;
// 实时TCI一致性测试配置
ConfigItemPb realtimeTcis = 7;
// 可见的非实时通用配置
ConfigItemPb visibleNonrealtimeCommon = 8;
// 不可见的非实时通用配置
ConfigItemPb invisibleNonrealtimeCommon = 9;
// 可见的非实时路端应用配置
ConfigItemPb visibleNonrealtimeAppsRs = 10;
// 不可见的非实时路端应用配置
ConfigItemPb invisibleNonrealtimeAppsRs = 11;
// 可见的非实时车端应用配置
ConfigItemPb visibleNonrealtimeAppsVeh = 12;
// 不可见的非实时车端应用配置
ConfigItemPb invisibleNonrealtimeAppsVeh = 13;
// 非实时TCI一致性测试配置
ConfigItemPb nonrealtimeTcis = 14;
}
\ No newline at end of file
syntax = "proto3";
option optimize_for = LITE_RUNTIME;
// 添加包名
package VRC;
import "vrc.v2x.msgframe.proto";
import "vrc.v2x.dataframe.proto";
import "vrc.public.dataframe.proto";
// VRC公共消息
// 命令消息,用于PAD APP传递命令给V2X协议栈,目前支持感知数据共享请求功能开关
message CmdmPb {
SsmVirSetPb ssmVirSet = 1; // 感知数据共享请求功能开关
}
// 心跳消息
// 下属模块状态,0:正常;1:关闭;2:无效;
message HmPb {
bytes id = 1; // 设备ID
int32 type = 2; // 设备类型,0:无效;1:车载;2:路侧;3:行人;
int32 msgCnt = 3; // 消息计数,每次+1
int32 v2xStatus = 4; // V2X通信模组状态
int32 gnssStatus = 5; // GNSS状态
// GNSS质量
// 0:No fix;1:Autonomous GNSS fix;2:Differential GNSS fix;
// 4:RTK fixed;5:RTK float;6:Estimated/Dead reckoning fix;
int32 gnssQuality = 6;
int32 fiveGStatus = 7; // 5G状态
int32 ethernetStatus = 8; // 以太网状态
int32 wifiStatus = 9; // WIFI状态
string softVer = 10; // 软件版本
string description = 11; // 设备描述
oneof reservedOpt {
bytes reserved = 12; // 预留数据项
}
}
// 信号灯引导消息
message SgmPb {
// 信号灯信息
// 每组标识一个对应的信号灯信息
repeated SignalMsgInLinkPb signals = 1;
oneof guidanceSpeedOpt {
double guidanceSpeed = 2; // 引导速度
}
int32 guidanceNum = 3; // 引导速度支持的信号灯数量
oneof greenLightStartGuidanceOpt {
string greenLightStartGuidance = 4; // 绿灯起步引导信息
}
oneof reservedOpt {
bytes reserved = 5; // 预留数据项
}
}
// 预警信息
message TmPb {
// 预警类型
// 0:无预警/解除预警;1:前向碰撞预警;2:交叉碰撞预警;3:左转辅助;
// 4:变道预警;5:逆向超车预警;6:紧急制动预警;7:异常车辆提醒;
// 8:车辆失控预警;9:紧急车辆提醒;10:盲区提醒;11:闯红灯预警;
// 12:道路交通事件信息;13:道路交通标识信息;14:限速预警;
// 15:弱势交通参与者碰撞预警;16:协作式优先车辆通行预警;
// 17:协作式车辆汇入预警:18:基于V2I的协作式变道预警;
// 19:基于V2V的协作式变道预警;
int32 type = 1;
int32 priority = 2; // 预警级别,范围0-100,其他取值映射到该取值范围
// 预警子类型
// DAY1的道路交通事件信息和道路交通标识信息中,填写事件类型和标牌类型;
// DAY1的紧急车辆提醒和DAY2的协作式优先车辆通行中,填写紧急车辆类型;
// DAY2的协作式变道中,V2V时,填写远车请求行为(左转或右转);V2I时,填写路侧
// 提出的驾驶建议;
// DAY2的协作式匝道汇入中,填写路侧提出的驾驶建议;
oneof subtypeOpt {
int32 subtype = 3;
}
// 描述信息
// DAY1的道路交通事件信息和道路交通标识信息中,填写描述信息;
oneof descriptionOpt {
string description = 4;
}
oneof confidenceOpt {
int32 confidence = 5; // 预警置信度
}
oneof hostIdOpt {
bytes hostId = 6; // 本地编号,即设备ID
}
V2xPosPb hostPos = 7; // 本地位置
oneof hostSpeedOpt {
double hostSpeed = 8; // 本地速度
}
oneof hostHeadingOpt {
double hostHeading = 9; // 本地行驶方向
}
// 远端ID,即预警ID
// DAY1的V2V场景和弱势交通参与者碰撞预警中,如果数据源是远端BSM时,填写远端车辆ID;如果数据源
// 是RSM时,填写RSU ID(此时配合ptcId标识预警车辆);
// DAY1的道路交通事件信息和道路交通标识信息中,填写RSU ID;
// DAY2的协作式优先车辆通行中,同DAY1的V2V场景;
// DAY2的协作式变道中,V2V时,填写远端车辆ID;V2I时,填写RSU ID;
// DAY2的协作式匝道汇入中,填写RSU ID;
oneof remoteIdOpt {
bytes remoteId = 10;
}
// 弱势交通参与者ID
// DAY1的V2V场景和弱势交通参与者碰撞预警,DAY2的协作式变道中,
// 如果数据源是RSM时,填写该数据项;
oneof ptcIdOpt {
int32 ptcId = 11;
}
// 道路交通事件ID
// DAY1的道路交通事件信息中,填写该数据项;
oneof rteIdOpt {
int32 rteId = 12;
}
// 道路交通标识ID
// DAY1的道路交通标识信息中,填写该数据项;
oneof rtsIdOpt {
int32 rtsId = 13;
}
// 远端位置,即预警位置
// DAY1的V2V场景和弱势交通参与者碰撞预警中,填写远端车辆或行人位置;
// DAY1的道路交通事件信息和道路交通标识信息中,填写事件或标识位置(可能没有);
// DAY1的限速预警和闯红灯预警中,填写停止线位置;
// DAY2的协作式优先车辆通行中,填写远端车辆位置;
// DAY2的协作式变道中,V2V时,填写远端车辆位置;V2I时,填写RSU位置;
// DAY2的协作式匝道汇入中,如果存在路径规划,则填写其最后一个位置(也就是匝道所在
// link的最后一个点);否则,填写RSU位置;
V2xPosPb remotePos = 14;
// 远端距离
// 本地位置到远端位置的距离
oneof remoteDisOpt {
double remoteDis = 15;
}
// 远端速度
// DAY1的V2V场景和弱势交通参与者碰撞预警,DAY2的协作式优先车辆通行,DAY2的协
// 作式变道中,V2V时,填写远端车辆或行人速度;
oneof remoteSpeedOpt {
double remoteSpeed = 16;
}
// 远端行驶方向
// DAY1的V2V场景和弱势交通参与者碰撞预警,DAY2的协作式优先车辆通行,DAY2的协
// 作式变道中,V2V时,填写远端车辆或行人行驶方向;
oneof remoteHeadingOpt {
double remoteHeading = 17;
}
// 相对位置
// 1 << 0:同向非相邻左前方;1 << 1:同向相邻左前方;1 << 2:同向正前方;
// 1 << 3:同向相邻右前方;1 << 4:同向非相邻右前方;1 << 5:同向非相邻左后方;
// 1 << 6:同向相邻左后方;1 << 7:同向正后方;1 << 8:同向相邻右后方;
// 1 << 9:同向非相邻右后方;1 << 10:反向非相邻左前方;1 << 11:反向相邻左前方;
// 1 << 12:反向正前方;1 << 13:反向相邻右前方;1 << 14:反向非相邻右前方;
// 1 << 15:交叉左前方;1 << 16:交叉右前方;0xFFFFFFFF:所有位置;
// DAY1的V2V场景中,填写远端车辆相对位置;
// DAY1的道路交通事件信息,道路交通标识信息,限速预警,闯红灯预警和弱势交通参与者碰撞预
// 警中,填写同向正前方;
// DAY2的协作式优先车辆通行中,填写远端车辆相对位置;
// DAY2的协作式变道中,V2V时,填写远端车辆相对位置;
oneof relPosOpt {
int32 relPos = 18;
}
// 限速值
// DAY1的限速预警中,填写该数据项;
oneof speedLimitOpt {
double speedLimit = 19;
}
}
// 时间位置消息
// 用于封装从GNSS模组获取的GNSS数据
message TpmPb {
double utcTime = 1; // UTC时间
V2xPosPb pos = 2; // 位置信息
double speed = 3; // 速度
double heading = 4; // 行驶方向
V2xPosAccuracyPb posAccuracy = 5; // 定位系统自身的精度
V2xPosCfdSetPb posConfidence = 6; // 实时位置(经纬度和高程)的精度大小
V2xAccelSetPb accelSet = 7; // 加速度集合
}
// 车辆接口消息
// 用于封装从车端获取的车辆信息
message VimPb {
VimDoublePb speed = 1; // 速度
VimDoubleOptPb angle = 2; // 方向盘转角
VimIntPb transmission = 3; // 车辆档位
VimBrakesPb brakes = 4; // 刹车系统状态
VimSafetyExtPb safetyExt = 5; // 安全扩展
VimVehEmergencyExtPb emergencyExt = 6; // 车辆紧急扩展信息
}
// 中继消息
message RmPb {
int32 aid = 1; // AID值
// 消息内部ID
// 1 << 0:BSM;1 << 1:MAP;1 << 2:RSI;1 << 3:RSM;1 << 4:SPAT;
// 1 << 5:CLPMM;1 << 6:PAM;1 << 7:PSM;1 << 8:RSC;1 << 9:RTCM;
// 1 << 10:SSM;1 << 11:TEST;1 << 12:VIR;1 << 13:VPM;1 << 14:UDM;
int32 msgInsideId = 2;
// 变更假名证书标识
// 只有车载需要变更假名证书时,将该数据置true;否则为false;
bool changePc = 3;
oneof msgCntOpt {
int32 msgCnt = 4; // 消息计数
}
bytes data = 5; // 消息数据
oneof reservedOpt {
bytes reserved = 6; // 预留数据项
}
}
// 配置消息
// 包含配置信息;
message CfgMsgPb {
// 配置信息
ConfigInfoPb info = 1;
}
// 配置控制消息
// 包含配置控制接口信息;
message CfgCtlMsgPb {
oneof choice {
// 配置请求
ConfigReqPb req = 1;
// 配置回复
ConfigRspPb rsp = 2;
}
}
// 基本安全消息增强版
// 包含BSM和安全消息扩展;
message BsmPlusPb {
V2xBsmPb bsm = 1;
SafetyMsgExtLitePb safetyMsgExt = 2;
}
// 路侧安全消息增强版
// 包含RSM和安全消息扩展集合;
message RsmPlusPb {
V2xRsmPb rsm = 1;
repeated SafetyMsgExtLitePb safetyMsgExt = 2;
}
// 交通参与者、道路障碍物和交通事件的感知共享消息增强版
// 包含SSM和安全消息扩展集合;
message SsmPlusPb {
V2xSsmPb ssm = 1;
repeated SafetyMsgExtLitePb safetyMsgExt = 2;
}
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment