Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
p x
earlywarning
Commits
dcb9ce75
Commit
dcb9ce75
authored
Jun 09, 2025
by
p x
Browse files
first
parent
009a6d77
Pipeline
#3092
canceled with stages
Changes
102
Pipelines
2
Hide whitespace changes
Inline
Side-by-side
src/main/java/com/cusc/adas/v2x/vo/DetectionInfo.java
0 → 100644
View file @
dcb9ce75
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
;
}
src/main/java/com/cusc/adas/v2x/vo/FilterInfo.java
0 → 100644
View file @
dcb9ce75
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
;
}
}
src/main/java/com/cusc/adas/v2x/vo/GearEnum.java
0 → 100644
View file @
dcb9ce75
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
;
}
}
src/main/java/com/cusc/adas/v2x/vo/MessageHeadInfo.java
0 → 100644
View file @
dcb9ce75
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
;
}
src/main/java/com/cusc/adas/v2x/vo/Position.java
0 → 100644
View file @
dcb9ce75
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
;
}
src/main/java/com/cusc/adas/v2x/vo/Position2D.java
0 → 100644
View file @
dcb9ce75
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
;
}
src/main/java/com/cusc/adas/v2x/vo/TracePoint.java
0 → 100644
View file @
dcb9ce75
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
;
}
src/main/java/com/cusc/adas/v2x/vo/TrajectoryInfo.java
0 → 100644
View file @
dcb9ce75
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
;
}
src/main/java/com/cusc/adas/v2x/vo/VehicleInfo.java
0 → 100644
View file @
dcb9ce75
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
;
}
src/main/java/com/cusc/adas/v2x/vo/VehicleInfoMap.java
0 → 100644
View file @
dcb9ce75
package
com.cusc.adas.v2x.vo
;
public
class
VehicleInfoMap
{
//private static Map<Integer String>
}
src/main/java/com/cusc/adas/v2x/vo/VehicleMessage.java
0 → 100644
View file @
dcb9ce75
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
;
}
}
src/main/java/com/cusc/adas/v2x/vo/VehicleMessageBody.java
0 → 100644
View file @
dcb9ce75
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;
}
src/main/java/com/cusc/adas/v2x/vo/VehicleStatusInfo.java
0 → 100644
View file @
dcb9ce75
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
;
}
src/test/java/com/cusc/adas/v2x/ExampleUnitTest.kt
0 → 100644
View file @
dcb9ce75
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
target/classes/META-INF/MANIFEST.MF
0 → 100644
View file @
dcb9ce75
Manifest-Version: 1.0
Built-By: huangml
Build-Jdk: 17.0.2
Created-By: Maven Integration for Eclipse
target/classes/META-INF/maven/com.cusc/earlywarning/pom.properties
0 → 100644
View file @
dcb9ce75
#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
target/classes/META-INF/maven/com.cusc/earlywarning/pom.xml
0 → 100644
View file @
dcb9ce75
<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
target/classes/com/cusc/adas/v2x/client/ClientDemo.class
0 → 100644
View file @
dcb9ce75
File added
target/classes/com/cusc/adas/v2x/client/NettyUdpClient$1.class
0 → 100644
View file @
dcb9ce75
File added
target/classes/com/cusc/adas/v2x/client/NettyUdpClient.class
0 → 100644
View file @
dcb9ce75
File added
Prev
1
2
3
4
5
6
Next
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment