Commit dcb9ce75 authored by p x's avatar p x
Browse files

first

parent 009a6d77
Pipeline #3092 canceled with stages
package com.cusc.adas.v2x.vo;
import java.util.List;
import com.cusc.adas.v2x.utils.Order;
/**
* 感知物信息
* @author huangml
*
*/
public class DetectionInfo {
//唯一编号
@Order(1)
private short[] uuid;
//目标编号
@Order(2)
private int objId;
//目标类型
@Order(3)
private short type;
//目标状态
@Order(4)
private short status;
//目标长度
@Order(5)
private int len;
//目标宽度
@Order(6)
private int width;
//目标高度
@Order(7)
private int height;
//经度
@Order(8)
private long longitude;
//纬度
@Order(9)
private long latitude;
//东西向距离
@Order(10)
private long locEast;
//南北向距离
@Order(11)
private long locNorth;
//位置精度等级
@Order(12)
private short posConfidence;
//高程
@Order(13)
private long elevation;
//高程精度
@Order(14)
private short elevConfidence;
//速度
@Order(15)
private int speed;
//速度精度等级
@Order(16)
private short speedConfidence;
//东西向速度
@Order(17)
private int speedEast;
//东西向速度精 度等级
@Order(18)
private short speedEastConfidence;
//南北向速度
@Order(19)
private int speedNorth;
//南北向速度精 度等级
@Order(20)
private short speedNorthConfidence;
//航向角
@Order(21)
private long heading;
//航向精度等级
@Order(22)
private short headConfidence;
//目标纵向加速 度
@Order(23)
private int accelVert ;
//目标纵向加速 度置精度等级
@Order(24)
private short accelVertConfidence;
//目标跟踪时长
@Order(25)
private long trackedTimes;
//目标历史轨迹 数量
@Order(26)
private int histLocNum;
//目标历史轨迹 列表
@Order(27)
private List<TrajectoryInfo> histLocs;
//目标预测轨迹 数量
@Order(28)
private int predLocNum;
//目标预测轨迹 列表
@Order(29)
private List<TrajectoryInfo> predLocs;
//目标所在车道编号
@Order(30)
private short laneId;
//滤波信息的类型
@Order(31)
private short filterInfoType;
//卡尔曼滤波信息
@Order(32)
private List<FilterInfo> filterInfo;
//车牌号字节数
@Order(33)
private short plateNoLen;
//车牌号
@Order(34)
private byte[] plateNo;
}
package com.cusc.adas.v2x.vo;
import java.util.List;
/**
* 滤波信息
* @author huangml
*
*/
public class FilterInfo {
private int dimension; // 状态量协方差矩阵的维度
private List<Integer> varNIndex; // 状态量所在序号列表
private List<Cov> covs; // 卡尔曼滤波的更新步骤得到的状态量协方差矩阵
private List<Cov> covsPred; // 卡尔曼滤波预测步骤得到的状态量协方差矩阵
private List<Cov> varsPred; // 卡尔曼滤波预测步骤得到的状态量
public int getDimension() {
return dimension;
}
public void setDimension(int dimension) {
this.dimension = dimension;
}
public List<Integer> getVarNIndex() {
return varNIndex;
}
public void setVarNIndex(List<Integer> varNIndex) {
this.varNIndex = varNIndex;
}
public List<Cov> getCovs() {
return covs;
}
public void setCovs(List<Cov> covs) {
this.covs = covs;
}
public List<Cov> getCovsPred() {
return covsPred;
}
public void setCovsPred(List<Cov> covsPred) {
this.covsPred = covsPred;
}
public List<Cov> getVarsPred() {
return varsPred;
}
public void setVarsPred(List<Cov> varsPred) {
this.varsPred = varsPred;
}
}
package com.cusc.adas.v2x.vo;
public enum GearEnum {
Gear_1((byte)1), Gear_2((byte)2), Gear_3((byte)3), Gear_4((byte)4),
Gear_D((byte)31),Gear_R((byte)32),Gear_P((byte)33),Gear_N((byte)34),
Gear_S((byte)35),Gear_L((byte)36),Gear_H((byte)37),Gear_HL((byte)38);
private byte value;
GearEnum(byte value) {
this.value = value;
}
public byte getValue() {
return value;
}
}
package com.cusc.adas.v2x.vo;
import com.cusc.adas.v2x.utils.FieldDef;
import com.cusc.adas.v2x.utils.Order;
//公共报文头信息
public class MessageHeadInfo {
//标识位 0xF2
@Order(1)
private short flag;
//数据段长度
@Order(2)
private long bodyLenth;
//数据类别
@Order(3)
private short dataType;
//版本号
@Order(4)
private short version;
//时间戳
@Order(5)
@FieldDef(type="TIMESTAMP",isArray=false,length=8)
private long timestamp;
//控制内容
@Order(6)
private short controlContent;
}
package com.cusc.adas.v2x.vo;
import com.cusc.adas.v2x.utils.OffsetDef;
import com.cusc.adas.v2x.utils.Order;
public class Position {
//经度
@Order(1)
@OffsetDef(value=0.0000001,minValidLength=10)
private long longitude;
//纬度
@Order(2)
@OffsetDef(value=0.0000001,minValidLength=9)
private long latitude;
//高程
@Order(3)
@OffsetDef(value=0.1)
private long elevation;
}
package com.cusc.adas.v2x.vo;
import com.cusc.adas.v2x.utils.OffsetDef;
import com.cusc.adas.v2x.utils.Order;
public class Position2D {
//经度
@Order(1)
@OffsetDef(value=10000000)
private long longitude;
//纬度
@Order(2)
@OffsetDef(value=10000000)
private long latitude;
}
package com.cusc.adas.v2x.vo;
import com.cusc.adas.v2x.utils.OffsetDef;
import com.cusc.adas.v2x.utils.Order;
//轨迹点
public class TracePoint {
//期望经度
@Order(1)
@OffsetDef(value=10000000)
private long expLongitude;
//期望纬度
@Order(2)
@OffsetDef(value=10000000)
private long expLatitude;
//期望速度
@Order(3)
private int expSpeed;
//期望加速度
@Order(4)
private int expAcceleration;
//期望航向角
@Order(5)
private long expHeading;
}
package com.cusc.adas.v2x.vo;
import com.cusc.adas.v2x.utils.Order;
/**
*
* @author huangml
*
*/
public class TrajectoryInfo {
//位置
@Order(1)
private Position2D position ;
//位置精度等级
@Order(2)
private short posConfidence;
//速度
@Order(3)
private int speed;
//速度精度等级
@Order(4)
private short speedConfidence;
//航向角
@Order(5)
private long heading;
//航向精度等级
@Order(6)
private short headConfidence;
}
package com.cusc.adas.v2x.vo;
import java.util.List;
import com.cusc.adas.v2x.utils.FieldDef;
import com.cusc.adas.v2x.utils.NumFlag;
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 VehicleInfo {
//车辆编号
@Order(1)
@FieldDef(type="BYTE",isArray=true,length=8)
private String vehicleId;
//消息编号
@Order(2)
@FieldDef(type="BYTE",isArray=true,length=8)
private long messageId;
//GNSS 时间戳
@Order(3)
@FieldDef(type="TIMESTAMP",isArray=false,length=8)
private long timestampGNSS;
//GNSS 速度 单位:0.01 m/s
@Order(4)
@OffsetDef(value=36,type=2)
private int velocityGNSS;
//位置
@Order(5)
private Position position;
//航向角 单位为 1e-4 °
@Order(6)
@OffsetDef(value=10000)
private long heading;
//档位
@Order(7)
private short tapPos ;
//方向盘转角 单位为 1e-4 °
@Order(8)
@OffsetDef(value=10000)
private long steeringAngle;
//当前车速 单位:0.01m/s
@Order(9)
@OffsetDef(value=36,type=2)
private int velocity;
//纵向加速度 单位:0.01m/s
@Order(10)
@OffsetDef(value=36,type=2)
private int accelerationLon;
//横向加速度 单位:0.01m/s
@Order(11)
@OffsetDef(value=36,type=2)
private int accelerationLat;
//垂向加速度 单位:0.01m/s
@Order(12)
@OffsetDef(value=36,type=2)
private int accelerationVer;
//横摆角速度 单位:0.01m/s
@Order(13)
@OffsetDef(value=36,type=2)
private int yawRate;
//油门开度 单位:0.1%
@Order(14)
private int accelPos;
//发动机输出转速 单位:r/min
@Order(15)
private int engineSpeed;
//发动机扭矩 单位:0.01Nm
@Order(16)
private long engineTorque;
//制动踏板开关
@Order(17)
private short brakeFlag;
//制动踏板开度 单位:0.1%
@Order(18)
private int brakePos;
//制动主缸压力 单位 0.01MPa
@Order(19)
private int brakePressure;
//油耗 单位 0.01L/100km
@Order(20)
private int fuelConsumption;
//车辆驾驶模式
@Order(21)
private short driveMode;
//目的地位置
@Order(22)
private Position2D destLocation;
//途经点数量
@Order(23)
@NumFlag
private short passPointsNum;
//途经点
@Order(24)
@RefNumFlag(value="passPointsNum")
private List<Position2D> passPoints;
}
package com.cusc.adas.v2x.vo;
public class VehicleInfoMap {
//private static Map<Integer String>
}
package com.cusc.adas.v2x.vo;
import com.cusc.adas.v2x.utils.Order;
/**
*
* @author huangml
*
*/
public class VehicleMessage {
//报文头
@Order(1)
private MessageHeadInfo messageHeadInfo;
//报文体
@Order(2)
private VehicleMessageBody vehicleMessageBody;
public MessageHeadInfo getMessageHeadInfo() {
return messageHeadInfo;
}
public void setMessageHeadInfo(MessageHeadInfo messageHeadInfo) {
this.messageHeadInfo = messageHeadInfo;
}
public VehicleMessageBody getVehicleMessageBody() {
return vehicleMessageBody;
}
public void setVehicleMessageBody(VehicleMessageBody vehicleMessageBody) {
this.vehicleMessageBody = vehicleMessageBody;
}
}
package com.cusc.adas.v2x.vo;
import com.cusc.adas.v2x.utils.Order;
//车辆运行状态报文体
public class VehicleMessageBody {
//车辆基础信息
@Order(1)
private VehicleInfo vehicleInfo;
// //车辆辅助驾驶信息及状态信息
// @Order(2)
// private VehicleStatusInfo vehicleStatusInfo;
// //车辆自动驾驶信息
// @Order(3)
// private AutomaticDriveInfo automaticDriveInfo;
}
package com.cusc.adas.v2x.vo;
import java.util.List;
import com.cusc.adas.v2x.utils.FieldDef;
import com.cusc.adas.v2x.utils.NumFlag;
import com.cusc.adas.v2x.utils.Order;
import com.cusc.adas.v2x.utils.RefNumFlag;
/**
* 车辆辅助驾驶信息及状态信息
* @author huangml
*
*/
public class VehicleStatusInfo {
@Order(1)
//ABS 状态
private short absFlag;
//TCS 状态
@Order(2)
private short tcsFlag;
//ESP 状态
@Order(3)
private short espFlag;
//LKA 状态
@Order(4)
private short lkaFlag;
//ACC 工作模式
@Order(5)
private short accMode;
//FCW 状态
@Order(6)
private short fcwFlag;
//LDW 状态
@Order(7)
private short ldwFlag;
//AEB 状态
@Order(8)
private short aebFlag;
//LCA 状态
@Order(9)
private short lcaFlag;
//DMS 状态
@Order(10)
private short dmsFlag;
//里程
@Order(11)
private short mileage;
//sweeping状态
@Order(12)
private short sweepingFlag;
//watering状态
@Order(13)
private short wateringFlag;
//油量
@Order(14)
private int fuelGauge;
//电池剩余电量
@Order(15)
private int soc;
//电池温度
@Order(16)
private short temperature;
//预计续航里程
@Order(17)
private float endurance;
//车辆故障状态
@Order(18)
private int vehFault;
//电机转速
@Order(19)
private int motorspeed;
//电机转矩
@Order(20)
private long motortorque;
//运行模式
@Order(21)
private short vehMode;
//充电状态
@Order(22)
private short chargeState;
//动力电池实时电压
@Order(23)
private int battVol;
//动力电池实时电流
@Order(24)
private int battCur;
//喇叭状态
@Order(25)
private short hornState;
//车轮数
@Order(26)
@NumFlag
private short wheelNum;
//轮速
@Order(27)
@RefNumFlag(value="wheelNum")
private int[] wheelVelocity;
//胎压
@Order(28)
@RefNumFlag(value="wheelNum")
private int[] tirePressure;
//车灯状态
@Order(30)
private int lights;
//车门状态
@Order(31)
private int doors;
//自定义字段长度
@Order(32)
@NumFlag
private short userdefinedDataLength;
//自定义字段内容
@Order(33)
@RefNumFlag(value="userdefinedDataLength")
@FieldDef(type="BYTE",isAutoLength=true)
private String userdefinedData;
}
package com.cusc.adas.v2x
import org.junit.Test
import org.junit.Assert.*
/**
* Example local unit test, which will execute on the development machine (host).
*
* See [testing documentation](http://d.android.com/tools/testing).
*/
class ExampleUnitTest {
@Test
fun addition_isCorrect() {
assertEquals(4, 2 + 2)
}
}
\ No newline at end of file
Manifest-Version: 1.0
Built-By: huangml
Build-Jdk: 17.0.2
Created-By: Maven Integration for Eclipse
#Generated by Maven Integration for Eclipse
#Tue Jun 03 12:12:04 CST 2025
m2e.projectLocation=D\:\\eclipse-workspace\\earlywarning
m2e.projectName=earlywarning
groupId=com.cusc
artifactId=earlywarning
version=0.0.1-SNAPSHOT
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.cusc</groupId>
<artifactId>earlywarning</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>earlywarning</name>
<dependencies>
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk15on</artifactId>
<version>1.70</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>2.0.56</version>
</dependency>
<dependency>
<groupId>org.fusesource.mqtt-client</groupId>
<artifactId>mqtt-client</artifactId>
<version>1.12</version>
</dependency>
<dependency>
<groupId>org.eclipse.paho</groupId>
<artifactId>org.eclipse.paho.client.mqttv3</artifactId>
<version>1.2.5</version>
</dependency>
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty-all</artifactId>
<version>4.0.42.Final</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.12</version>
</dependency>
<!-- slf4j -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.7</version>
</dependency>
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty-all</artifactId>
<version>4.1.68.Final</version>
</dependency>
<!-- slf4j 到 log4j 的实现 -->
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
<version>2.9.1</version>
</dependency>
</dependencies>
</project>
\ No newline at end of file
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