Commit ca37a52c authored by 黄谋临's avatar 黄谋临
Browse files

添加 云端决策建议信息数据结构 、云端辅助功能信息数据结构 、下行自定义功能信息数据结构

parent dcb9ce75
Pipeline #3093 failed with stages
in 0 seconds
package com.cusc.adas.v2x.assist.dto;
import java.util.List;
import com.cusc.adas.v2x.utils.FieldDef;
import com.cusc.adas.v2x.utils.Order;
public class AssistMessageBodyDto<T> {
//车辆编号
@Order(1)
@FieldDef(type="BYTE",isArray=true,length=8)
private String vehicleId;
//消息标识
@Order(2)
@FieldDef(type="BYTE",isArray=true,length=8)
private long seq;
//辅助功能类别
@Order(3)
private short astFuncType;
//命令长度
@Order(4)
private int dataLen;
//命令数据
@Order(5)
private List<T> infoData;
}
package com.cusc.adas.v2x.assist.dto;
import java.util.List;
import com.cusc.adas.v2x.utils.Order;
import com.cusc.adas.v2x.utils.RefNumFlag;
/**
* 信号灯
* @author huangml
*
*/
public class TrafficLightDto {
//红绿灯控制方 式 1:固定周期;2:手动控制;3:黄闪控制,4-254: 预留
@Order(1)
private short controlMode;
//区域 ID 信号灯作用位置所在区域唯一编号,与路口 ID 一起确定 唯一路口
@Order(2)
private int regionId;
//路口 ID 信号灯作用位置在该区域内唯一编号,与区域 ID 一起确 定唯一路口
@Order(3)
private int nodeId;
//车辆所在车道 对应信号灯相 位数量
@Order(4)
private int numOfLanePhase;
//车辆所在车道 对应信号灯相 位 ID 列表
@Order(5)
@RefNumFlag(value="numOfLanePhase")
private List<Short> lanePhaseIds;
//车辆到前方停 止线距离
@Order(6)
private int d2StopLine;
//相位数量
@Order(7)
private short phaseNumber;
//信号灯相位状 态
@Order(8)
@RefNumFlag(value="phaseNumber")
private List<TrafficLightStatusDto> phaseState;
}
package com.cusc.adas.v2x.assist.dto;
import com.cusc.adas.v2x.utils.Order;
/**
* 信号灯相位状态
* @author huangml
*
*/
public class TrafficLightStatusDto {
//相位编号
@Order(1)
private short phaseID;
//当前灯色
@Order(2)
private short lightState;
//当前灯色剩余 时间
@Order(3)
private short timeLeft;
//下一阶段灯色
@Order(4)
private short nextLightState;
//下一阶段灯色 持续时间
@Order(5)
private short nextLightTime;
//灯组类型
@Order(6)
private short lightType;
}
package com.cusc.adas.v2x.assist.vo;
import com.cusc.adas.v2x.utils.Order;
import com.cusc.adas.v2x.vo.MessageHeadInfo;
/**
* 辅助功能信息
* @author huangml
*
*/
public class AssistMessage {
//报文头
@Order(1)
private MessageHeadInfo messageHeadInfo;
@Order(2)
private AssistMessageBody assistMessageBody;
}
package com.cusc.adas.v2x.assist.vo;
import java.util.List;
import com.cusc.adas.v2x.utils.FieldDef;
import com.cusc.adas.v2x.utils.Order;
public class AssistMessageBody<T> {
//车辆编号
@Order(1)
@FieldDef(type="BYTE",isArray=true,length=8)
private String vehicleId;
//消息标识
@Order(2)
@FieldDef(type="BYTE",isArray=true,length=8)
private long seq;
//辅助功能类别
@Order(3)
private short astFuncType;
//命令长度
@Order(4)
private int dataLen;
//命令数据
@Order(5)
private List<T> infoData;
}
package com.cusc.adas.v2x.assist.vo;
import java.util.List;
import com.cusc.adas.v2x.utils.Order;
import com.cusc.adas.v2x.utils.RefNumFlag;
/**
* 信号灯
* @author huangml
*
*/
public class TrafficLight {
//红绿灯控制方 式 1:固定周期;2:手动控制;3:黄闪控制,4-254: 预留
@Order(1)
private short controlMode;
//区域 ID 信号灯作用位置所在区域唯一编号,与路口 ID 一起确定 唯一路口
@Order(2)
private int regionId;
//路口 ID 信号灯作用位置在该区域内唯一编号,与区域 ID 一起确 定唯一路口
@Order(3)
private int nodeId;
//车辆所在车道 对应信号灯相 位数量
@Order(4)
private int numOfLanePhase;
//车辆所在车道 对应信号灯相 位 ID 列表
@Order(5)
@RefNumFlag(value="numOfLanePhase")
private List<Short> lanePhaseIds;
//车辆到前方停 止线距离
@Order(6)
private int d2StopLine;
//相位数量
@Order(7)
private short phaseNumber;
//信号灯相位状 态
@Order(8)
@RefNumFlag(value="phaseNumber")
private List<TrafficLightStatus> phaseState;
}
package com.cusc.adas.v2x.assist.vo;
import com.cusc.adas.v2x.utils.Order;
/**
* 信号灯相位状态
* @author huangml
*
*/
public class TrafficLightStatus {
//相位编号
@Order(1)
private short phaseID;
//当前灯色
@Order(2)
private short lightState;
//当前灯色剩余 时间
@Order(3)
private short timeLeft;
//下一阶段灯色
@Order(4)
private short nextLightState;
//下一阶段灯色 持续时间
@Order(5)
private short nextLightTime;
//灯组类型
@Order(6)
private short lightType;
}
package com.cusc.adas.v2x.clouddecision.dto;
import java.util.List;
import com.cusc.adas.v2x.dto.PositionDto;
import com.cusc.adas.v2x.utils.FieldDef;
import com.cusc.adas.v2x.utils.OffsetDef;
import com.cusc.adas.v2x.utils.Order;
import com.cusc.adas.v2x.utils.RefNumFlag;
/**
* 异常车辆预警
* @author huangml
*
*/
public class AbnormalVehicleDto {
//事件唯一标识
@FieldDef(type="BYTE",isArray=true,length=36)
@Order(1)
private String uuid;
//事件生成时间 戳
@Order(2)
@FieldDef(type="BYTE",isArray=true,length=8)
private long timestamp;
//告警类型 用于匹配 RSI,取值为 6503,6505,6506,6507,6508
@Order(3)
private int alertType;
//告警半径
@Order(4)
private float alertRadius;
//路径点数量
@Order(5)
private short pointNum;
//告警路径
@Order(6)
@RefNumFlag(value="pointNum")
private List<PositionDto> alertPath;
//车速
@Order(7)
private int velocity;
//航向角
@Order(8)
private long heading;
}
package com.cusc.adas.v2x.clouddecision.dto;
/**
* 动态车道级限速
* @author huangml
*
*/
import java.util.List;
import com.cusc.adas.v2x.utils.FieldDef;
import com.cusc.adas.v2x.utils.Order;
import com.cusc.adas.v2x.utils.RefNumFlag;
import com.cusc.adas.v2x.vo.Position;
import com.cusc.adas.v2x.vo.SpeedLimit;
public class AutoSpeedLimitDto {
//事件唯一标识
@Order(1)
@FieldDef(type="BYTE",isArray=true,length=36)
private String uuid;
//事件生成时间 戳
@Order(2)
@FieldDef(type="TIMESTAMP",isArray=false,length=8)
private long timestamp;
//告警类型 固定值为 6517
@Order(3)
private int alertType;
//告警半径 单位:dm
@Order(4)
private int alertRadius;
//路径点数量 告警路径中路径点数量,取值为 0 时,不发送告警路径
@Order(5)
private short pointNum;
//告警路径
@Order(6)
@RefNumFlag(value="pointNum")
private List<Position> alertPath;
//车道数量
@Order(7)
private short laneNum;
//限速数据
@Order(1)
@RefNumFlag(value="laneNum")
private List<SpeedLimit> speedLmt;
}
package com.cusc.adas.v2x.clouddecision.dto;
import java.util.List;
import com.cusc.adas.v2x.utils.FieldDef;
import com.cusc.adas.v2x.utils.Order;
/**
* 云端决策建议信息报文体
* @author huangml
*
*/
public class CloudDecisionMessageBodyDto<T> {
//车辆编号
@Order(1)
@FieldDef(type="BYTE",isArray=true,length=8)
private String vehicleId;
//消息标识
@Order(2)
@FieldDef(type="BYTE",isArray=true,length=8)
private long seq;
//建议类型 若为多功能决策时,取值为 254
@Order(3)
private short adviceType;
//事件分类
@Order(4)
private short eventType;
//车速建议 单位:0.01m/s
@Order(5)
private int spdExp;
//加速度建议 单位:0.01 m/s2,数据偏移量 100,表示-100.00m/s2~100.00m/s2
@Order(6)
private int accExp;
//控车变道建 议转向状态 0:沿车道行驶;1:第一出口;2:第二出口;
//3:第三出口;4:第四出口;5:第五出口;6:第六出口;7:第七 出口;8:第八出口;9:左变道;10:右变道
@Order(7)
private short instructDirection;
//命令长度 0 表示命令失效,此时该条消息全部无效
@Order(8)
private int dataLen;
//命令数据 长度为 N 个字节,其中 N 为命令长度
@Order(9)
private List<T> adviceData;
}
package com.cusc.adas.v2x.clouddecision.dto;
import java.util.List;
import com.cusc.adas.v2x.utils.FieldDef;
import com.cusc.adas.v2x.utils.Order;
import com.cusc.adas.v2x.utils.RefNumFlag;
import com.cusc.adas.v2x.vo.Position;
/**
* 紧急车辆预警
* @author huangml
*
*/
public class EmergencyVehicleDto {
//事件唯一标识
@Order(1)
@FieldDef(type="BYTE",isArray=true,length=36)
private String uuid;
//事件生成时间 戳
@Order(2)
@FieldDef(type="TIMESTAMP",isArray=false,length=8)
private long timestamp;
//告警类型
@Order(3)
private int alertType;
//告警半径
@Order(4)
private int alertRadius;
//路径点数量
@Order(5)
private short pointNum;
//告警路径
@Order(6)
@RefNumFlag(value="pointNum")
private List<Position> alertPath;
//车辆类型 0:失效;1:救护车;2:警车;3:消防车;4-10: 预留
@Order(7)
private short type;
//车速
@Order(8)
private int velocity;
//航向角
@Order(9)
private long heading;
}
package com.cusc.adas.v2x.clouddecision.dto;
import java.util.List;
import com.cusc.adas.v2x.dto.PositionDto;
import com.cusc.adas.v2x.utils.FieldDef;
import com.cusc.adas.v2x.utils.Order;
import com.cusc.adas.v2x.utils.RefNumFlag;
/**
* 前向碰撞预警
* @author huangml
*
*/
public class FawWarnningDto {
//事件唯一标识
@Order(1)
@FieldDef(type="BYTE",isArray=true,length=36)
private String uuid;
//事件生成时间 戳
@Order(2)
@FieldDef(type="TIMESTAMP",isArray=false,length=8)
private long timestamp;
//告警类型 固定值为 6518
@Order(3)
private int alertType;
//告警半径 单位:dm
@Order(4)
private int alertRadius;
//路径点数量
@Order(5)
private short pointNum;
//告警路径
@Order(6)
@RefNumFlag(value="pointNum")
private List<PositionDto> alertPath;
//碰撞预警目标 类型
@Order(7)
private short objType;
//碰撞告警类型
@Order(8)
private short fcwLevel;
//碰撞距离
@Order(9)
private int fcwDistance;
//碰撞预警目标 所在车道
@Order(10)
private short fcwLaneId;
}
package com.cusc.adas.v2x.clouddecision.dto;
import com.cusc.adas.v2x.utils.Order;
/**
* 车道方向建议车速
* @author huangml
*
*/
public class LaneAdviceSpeedDto {
//车速上限 单位:0.01 m/s
@Order(1)
private int spdMax;
//车速下限 单位:0.01 m/s
@Order(2)
private int spdMin;
//建议车速 单位:0.01 m/s
@Order(3)
private int spdExp;
//通行行为 单位:0.01 m/s
@Order(4)
private short maneuver;
//绿灯通过前方 路口数量 车辆绿灯通过前方路口数量,其中 0 表示无法绿灯通过前 方路口
@Order(5)
private short numIntersection;
}
package com.cusc.adas.v2x.clouddecision.dto;
import com.cusc.adas.v2x.dto.PositionDto;
import com.cusc.adas.v2x.utils.FieldDef;
import com.cusc.adas.v2x.utils.Order;
import com.cusc.adas.v2x.utils.RefNumFlag;
import com.cusc.adas.v2x.vo.Position;
/**
* 通用 RSI 预警中交通事件和交通标志信息
* @author huangml
*
*/
public class RSISDetailDto {
//事件唯一标识
@Order(1)
@FieldDef(type="BYTE",isArray=true,length=36)
private String uuid;
//事件生成时间 戳
@Order(2)
@FieldDef(type="TIMESTAMP",isArray=false,length=8)
private long timestamp;
//交通事件位置 点
@Order(3)
private PositionDto eventPosition;
//道路交通事件 信息类型
@Order(4)
private int eventType;
//事件来源
@Order(5)
private short eventSource;
//事件(影响) 半径
@Order(6)
private int eventRadius;
//关联路段数量
@Order(7)
private int referenceLinksNum;
//关联路段数量
@Order(8)
private RelSetpDto referenceLinks;
//优先级
@Order(9)
private short priority;
//交通事件/标 志作用中心线 坐标点
@Order(10)
private PositionDto alertPath;
//交通标志/事 件作用中心线 范围半径
@Order(11)
private int pathRadius;
//事件状态
@Order(12)
private short status;
//自定义内容长度
@Order(13)
private int userdefinedDataLength;
@Order(14)
//自定义内容
@RefNumFlag(value="userdefinedDataLength")
private String userdefinedData;
}
package com.cusc.adas.v2x.clouddecision.dto;
import com.cusc.adas.v2x.utils.Order;
/**
* 通用 RSI 预警
* @author huangml
*
*/
public class RSIWarnningDto {
//交通事件和交 通标志信息数 量
@Order(1)
private short rsisNum;
@Order(2)
private RSISDetailDto rsis;
}
package com.cusc.adas.v2x.clouddecision.dto;
import com.cusc.adas.v2x.utils.Order;
/**
* 关联路段
* @author huangml
*
*/
public class RelSetpDto {
//上游节点编号
@Order(1)
private long upstreamNodeId;
//下游节点编号
@Order(2)
private long downstreamNodeId;
//受影响车道数量
@Order(3)
private short referenceLanesNum;
//受影响车道
@Order(4)
private short referenceLanes;
}
package com.cusc.adas.v2x.clouddecision.dto;
import com.cusc.adas.v2x.utils.FieldDef;
import com.cusc.adas.v2x.utils.Order;
/**
* 信号灯路口车速引导
* @author huangml
*
*/
public class TrafficLightDto {
//事件唯一标识
@Order(1)
@FieldDef(type="BYTE",isArray=true,length=36)
private String uuid;
//事件生成时间 戳
@Order(2)
@FieldDef(type="TIMESTAMP",isArray=false,length=8)
private long timestamp;
//告警类型 固定值为 6523
@Order(3)
private int alertType;
//有效标识 0:失效;1:有效
@Order(4)
private short valid;
//命令标识 0:失效;1:引导;2:停车指令;3:启动指令
@Order(5)
private short type;
//车辆所在位置 到停止线距离 单位:0.01m
@Order(6)
private int d2StopLine;
//车道方向建议 速度组数 0 表示无效,不发送车道方向建议车速数据
@Order(7)
private short spdExpNum;
//车道方向建议 速度
@Order(8)
private byte[] spdExps;
//车速上限
@Order(9)
private int spdMax;
//车速下限
@Order(10)
private int spdMin;
//建议车速
@Order(11)
private int spdExp;
//通行行为
private short maneuver;
//绿灯通过前方路口数量
private short numIntersection;
}
package com.cusc.adas.v2x.clouddecision.vo;
import java.util.List;
import com.cusc.adas.v2x.utils.FieldDef;
import com.cusc.adas.v2x.utils.OffsetDef;
import com.cusc.adas.v2x.utils.Order;
import com.cusc.adas.v2x.utils.RefNumFlag;
import com.cusc.adas.v2x.vo.Position;
/**
* 异常车辆预警
* @author huangml
*
*/
public class AbnormalVehicle {
//事件唯一标识
@FieldDef(type="BYTE",isArray=true,length=36)
@Order(1)
private String uuid;
//事件生成时间 戳
@Order(2)
@FieldDef(type="BYTE",isArray=true,length=8)
private long timestamp;
//告警类型 用于匹配 RSI,取值为 6503,6505,6506,6507,6508
@Order(3)
private int alertType;
//告警半径
@Order(4)
@OffsetDef(value=10)
private int alertRadius;
//路径点数量
@Order(5)
private short pointNum;
//告警路径
@Order(6)
@RefNumFlag(value="pointNum")
private List<Position> alertPath;
//车速
@Order(7)
@OffsetDef(value=36,type=2)
private int velocity;
//航向角
@Order(8)
@OffsetDef(value=10000)
private long heading;
}
package com.cusc.adas.v2x.clouddecision.vo;
/**
* 动态车道级限速
* @author huangml
*
*/
import java.util.List;
import com.cusc.adas.v2x.utils.FieldDef;
import com.cusc.adas.v2x.utils.OffsetDef;
import com.cusc.adas.v2x.utils.Order;
import com.cusc.adas.v2x.utils.RefNumFlag;
import com.cusc.adas.v2x.vo.Position;
import com.cusc.adas.v2x.vo.SpeedLimit;
public class AutoSpeedLimit {
//事件唯一标识
@Order(1)
@FieldDef(type="BYTE",isArray=true,length=36)
private String uuid;
//事件生成时间 戳
@Order(2)
@FieldDef(type="TIMESTAMP",isArray=false,length=8)
private long timestamp;
//告警类型 固定值为 6517
@Order(3)
private int alertType;
//告警半径 单位:dm
@Order(4)
@OffsetDef(value=10)
private int alertRadius;
//路径点数量 告警路径中路径点数量,取值为 0 时,不发送告警路径
@Order(5)
private short pointNum;
//告警路径
@Order(6)
@RefNumFlag(value="pointNum")
private List<Position> alertPath;
//车道数量
@Order(7)
private short laneNum;
//限速数据
@Order(1)
@RefNumFlag(value="laneNum")
private List<SpeedLimit> speedLmt;
}
package com.cusc.adas.v2x.clouddecision.vo;
import com.cusc.adas.v2x.utils.Order;
import com.cusc.adas.v2x.vo.MessageHeadInfo;
public class CloudDecisionMessage {
//报文头
@Order(1)
private MessageHeadInfo messageHeadInfo;
@Order(2)
private CloudDecisionMessageBody cloudDecisionMessageBody;
}
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