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
SuZhouAvp
Commits
ed01123d
Commit
ed01123d
authored
Sep 11, 2025
by
罗小雨
Browse files
车辆位姿数据完善字段
parent
9d19c112
Changes
6
Hide whitespace changes
Inline
Side-by-side
app/src/main/java/com/sd/cavphmi/bean/CarVehicle.kt
View file @
ed01123d
...
@@ -20,6 +20,7 @@ data class CarVehicleItem(
...
@@ -20,6 +20,7 @@ data class CarVehicleItem(
val
light
:
Int
,
val
light
:
Int
,
val
longitude
:
Double
,
val
longitude
:
Double
,
val
msgId
:
String
,
val
msgId
:
String
,
val
modelId
:
String
,
val
parkInLot
:
Int
,
val
parkInLot
:
Int
,
val
receiveTime
:
Long
,
val
receiveTime
:
Long
,
val
reportTime
:
Long
,
val
reportTime
:
Long
,
...
@@ -30,6 +31,7 @@ data class CarVehicleItem(
...
@@ -30,6 +31,7 @@ data class CarVehicleItem(
val
vehicleId
:
String
,
val
vehicleId
:
String
,
val
vehiclePlate
:
String
,
val
vehiclePlate
:
String
,
val
vehiclePurpose
:
String
,
val
vehiclePurpose
:
String
,
val
vehicle_purpose_special_vehicle_qs
:
String
,
val
waterState
:
Int
,
val
waterState
:
Int
,
val
wheelAngle
:
String
,
val
wheelAngle
:
String
,
val
wiper
:
Int
val
wiper
:
Int
...
...
app/src/main/java/com/sd/cavphmi/ui/MainActivity.kt
View file @
ed01123d
...
@@ -12,6 +12,7 @@ import com.sd.cavphmi.databinding.ActivityMainBinding
...
@@ -12,6 +12,7 @@ import com.sd.cavphmi.databinding.ActivityMainBinding
import
com.sd.cavphmi.intfaces.OnConCan
import
com.sd.cavphmi.intfaces.OnConCan
import
com.sd.cavphmi.ui.fragment.CarPanelFragment
import
com.sd.cavphmi.ui.fragment.CarPanelFragment
import
com.sd.cavphmi.ui.fragment.ExoPlayFragment
import
com.sd.cavphmi.ui.fragment.ExoPlayFragment
import
com.sd.cavphmi.ui.view.CustomDialog
import
com.sd.cavphmi.utils.DisplayUtil
import
com.sd.cavphmi.utils.DisplayUtil
import
com.sd.cavphmi.viewmodels.MainVm
import
com.sd.cavphmi.viewmodels.MainVm
import
com.sd.cavphmi.viewmodels.MockVM
import
com.sd.cavphmi.viewmodels.MockVM
...
@@ -105,7 +106,13 @@ class MainActivity : BaseActivity<ActivityMainBinding, MyBaseViewModel>() {
...
@@ -105,7 +106,13 @@ class MainActivity : BaseActivity<ActivityMainBinding, MyBaseViewModel>() {
binding
.
btV2x
.
setOnClickListener
{
binding
.
btV2x
.
setOnClickListener
{
mainVm
.
subStartV2x
()
mainVm
.
subStartV2x
()
}
}
//模拟选择车辆
binding
.
btSetcar
.
setOnClickListener
{
val
dialog
=
CustomDialog
(
this
)
var
list
=
listOf
(
"skywell.1ggvlp16.car10"
,
"skywell.1ggvlp16.car8"
)
dialog
.
setData
(
list
)
dialog
.
show
()
}
}
}
...
...
app/src/main/java/com/sd/cavphmi/ui/fragment/CarPanelFragment.kt
View file @
ed01123d
package
com.sd.cavphmi.ui.fragment
package
com.sd.cavphmi.ui.fragment
import
android.util.Log
import
androidx.fragment.app.activityViewModels
import
androidx.fragment.app.activityViewModels
import
androidx.lifecycle.ViewModelProvider
import
androidx.lifecycle.ViewModelProvider
import
com.sd.cavphmi.BR
import
com.sd.cavphmi.BR
import
com.sd.cavphmi.R
import
com.sd.cavphmi.R
import
com.sd.cavphmi.base.BaseFragment
import
com.sd.cavphmi.base.BaseFragment
import
com.sd.cavphmi.databinding.FragmentCarPanelBinding
import
com.sd.cavphmi.databinding.FragmentCarPanelBinding
import
com.sd.cavphmi.highmap.HighMapApi
import
com.sd.cavphmi.viewmodels.CarPanelVM
import
com.sd.cavphmi.viewmodels.CarPanelVM
import
com.sd.cavphmi.viewmodels.MainVm
import
com.sd.cavphmi.viewmodels.MainVm
import
dagger.hilt.android.AndroidEntryPoint
import
dagger.hilt.android.AndroidEntryPoint
...
@@ -117,6 +119,11 @@ class CarPanelFragment : BaseFragment<FragmentCarPanelBinding, CarPanelVM>() {
...
@@ -117,6 +119,11 @@ class CarPanelFragment : BaseFragment<FragmentCarPanelBinding, CarPanelVM>() {
mainVm
.
carVehicle
.
observe
(
this
)
{
mainVm
.
carVehicle
.
observe
(
this
)
{
//更新车辆仪表,这里模拟只取第一个
//更新车辆仪表,这里模拟只取第一个
viewModel
.
setCarPanelBean
(
it
)
viewModel
.
setCarPanelBean
(
it
)
for
(
item
in
it
){
Log
.
e
(
"Car"
,
"------车辆位姿数据----$item"
)
HighMapApi
.
setCarPosition
(
20.80189f
,
item
.
heading
,
item
.
latitude
,
item
.
longitude
)
}
}
}
}
}
...
...
app/src/main/java/com/sd/cavphmi/utils/MyContants.kt
View file @
ed01123d
...
@@ -19,14 +19,16 @@ object MyContants {
...
@@ -19,14 +19,16 @@ object MyContants {
// private val reType = "51world"
// private val reType = "51world"
//跟踪车辆的ID 267(模拟) skywell.1ggvlp16.car10 skywell.1ggvlp16.car8
//跟踪车辆的ID 267(模拟) skywell.1ggvlp16.car10 skywell.1ggvlp16.car8
private
val
VEHICLEID
=
"skywell.1ggvlp16.car8"
private
val
VEHICLEID
=
"skywell.1ggvlp16.car8"
var
WSHOST
=
"wss://itg-dev.cu-sc.com:19443/WSPLUSV5/socket?token=${WSTOKEN}&vehicleId=${VEHICLEID}&"
// var WSHOST = "wss://itg-dev.cu-sc.com:19443/WSPLUSV5/socket?token=${WSTOKEN}&vehicleId=${VEHICLEID}&"
var
WSHOST
=
"wss://172.24.124.130:19443/wsplus/socket?token=121&reType=freedo&vehicleId=7&"
// var PORT = if (IS_DEBUG) "123" else "34534"
// var PORT = if (IS_DEBUG) "123" else "34534"
/***感知目标物 &intersectionCode=17 停车场 不传就是整个园区***/
/***感知目标物 &intersectionCode=17 停车场 不传就是整个园区***/
var
WS_FEEL_TARGET
=
"${WSHOST}msgType=1&intersectionCode=17"
var
WS_FEEL_TARGET
=
"${WSHOST}msgType=1&intersectionCode=17"
/***网联车辆位姿 &vehicleId=***/
/***网联车辆位姿 &vehicleId=***/
var
WS_VEH_LOC
=
"${WSHOST}msgType=2"
// var WS_VEH_LOC = "${WSHOST}msgType=2"
var
WS_VEH_LOC
=
"wss://172.24.124.130:19443/wsplus/socket?token=121&reType=freedo&msgType=2&vehicleId=7"
/***V2X预警 vehicleId 传了就是获取某一辆车的预警 &vehicleId=***/
/***V2X预警 vehicleId 传了就是获取某一辆车的预警 &vehicleId=***/
var
WS_V2X
=
"${WSHOST}msgType=4"
var
WS_V2X
=
"${WSHOST}msgType=4"
...
...
app/src/main/java/com/sd/cavphmi/websockets/VecLocWSClient.kt
View file @
ed01123d
...
@@ -4,15 +4,27 @@ package com.sd.cavphmi.websockets
...
@@ -4,15 +4,27 @@ package com.sd.cavphmi.websockets
import
org.java_websocket.client.WebSocketClient
import
org.java_websocket.client.WebSocketClient
import
org.java_websocket.drafts.Draft
import
org.java_websocket.drafts.Draft
import
org.java_websocket.handshake.ServerHandshake
import
org.java_websocket.handshake.ServerHandshake
import
java.net.Socket
import
java.net.URI
import
java.net.URI
import
java.nio.ByteBuffer
import
java.nio.ByteBuffer
import
java.security.SecureRandom
import
java.security.cert.X509Certificate
import
javax.net.ssl.SSLContext
import
javax.net.ssl.SSLEngine
import
javax.net.ssl.SSLSocketFactory
import
javax.net.ssl.TrustManager
import
javax.net.ssl.X509ExtendedTrustManager
/*****网联车辆位姿**/
/*****网联车辆位姿**/
class
VecLocWSClient
:
WebSocketClient
{
class
VecLocWSClient
:
WebSocketClient
{
private
val
TAG
=
"-----VecLocWSClient"
private
val
TAG
=
"-----VecLocWSClient"
constructor
(
serverUri
:
URI
)
:
super
(
serverUri
)
constructor
(
serverUri
:
URI
)
:
super
(
serverUri
){
if
(
serverUri
.
toString
().
contains
(
"wss://"
)){
trustAllHosts
()
}
}
constructor
(
serverUri
:
URI
?,
protocolDraft
:
Draft
?)
:
super
(
serverUri
,
protocolDraft
)
constructor
(
serverUri
:
URI
?,
protocolDraft
:
Draft
?)
:
super
(
serverUri
,
protocolDraft
)
...
@@ -56,5 +68,63 @@ class VecLocWSClient : WebSocketClient {
...
@@ -56,5 +68,63 @@ class VecLocWSClient : WebSocketClient {
fun
onMsg
(
str
:
String
)
fun
onMsg
(
str
:
String
)
}
}
private
fun
trustAllHosts
()
{
val
trustAllCerts
=
arrayOf
<
TrustManager
>(
object
:
X509ExtendedTrustManager
()
{
override
fun
checkClientTrusted
(
chain
:
Array
<
out
X509Certificate
?
>?,
authType
:
String
?,
socket
:
Socket
?
)
{
}
override
fun
checkServerTrusted
(
chain
:
Array
<
out
X509Certificate
?
>?,
authType
:
String
?,
socket
:
Socket
?
)
{
}
override
fun
checkClientTrusted
(
chain
:
Array
<
out
X509Certificate
?
>?,
authType
:
String
?,
engine
:
SSLEngine
?
)
{
}
override
fun
checkServerTrusted
(
chain
:
Array
<
out
X509Certificate
?
>?,
authType
:
String
?,
engine
:
SSLEngine
?
)
{
}
override
fun
checkClientTrusted
(
chain
:
Array
<
out
X509Certificate
?
>?,
authType
:
String
?
)
{
}
override
fun
checkServerTrusted
(
chain
:
Array
<
out
X509Certificate
?
>?,
authType
:
String
?
)
{
}
override
fun
getAcceptedIssuers
():
Array
<
out
X509Certificate
?
>?
{
return
null
}
})
try
{
val
ssl
=
SSLContext
.
getInstance
(
"SSL"
)
ssl
.
init
(
null
,
trustAllCerts
,
SecureRandom
())
val
socketFactory
:
SSLSocketFactory
?
=
ssl
.
getSocketFactory
()
this
.
setSocketFactory
(
socketFactory
)
}
catch
(
e
:
java
.
lang
.
Exception
)
{
e
.
printStackTrace
()
}
}
}
}
\ No newline at end of file
app/src/main/res/layout/activity_main.xml
View file @
ed01123d
...
@@ -79,6 +79,13 @@
...
@@ -79,6 +79,13 @@
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"网联车辆状态"
android:text=
"网联车辆状态"
android:visibility=
"gone"
/>
android:visibility=
"gone"
/>
<Button
android:id=
"@+id/bt_setcar"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"选择车辆"
/>
<!-- <Button-->
<!-- <Button-->
<!-- android:id="@+id/bt_tarpre"-->
<!-- android:id="@+id/bt_tarpre"-->
<!-- android:layout_width="wrap_content"-->
<!-- android:layout_width="wrap_content"-->
...
...
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