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(
val
light
:
Int
,
val
longitude
:
Double
,
val
msgId
:
String
,
val
modelId
:
String
,
val
parkInLot
:
Int
,
val
receiveTime
:
Long
,
val
reportTime
:
Long
,
...
...
@@ -30,6 +31,7 @@ data class CarVehicleItem(
val
vehicleId
:
String
,
val
vehiclePlate
:
String
,
val
vehiclePurpose
:
String
,
val
vehicle_purpose_special_vehicle_qs
:
String
,
val
waterState
:
Int
,
val
wheelAngle
:
String
,
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
import
com.sd.cavphmi.intfaces.OnConCan
import
com.sd.cavphmi.ui.fragment.CarPanelFragment
import
com.sd.cavphmi.ui.fragment.ExoPlayFragment
import
com.sd.cavphmi.ui.view.CustomDialog
import
com.sd.cavphmi.utils.DisplayUtil
import
com.sd.cavphmi.viewmodels.MainVm
import
com.sd.cavphmi.viewmodels.MockVM
...
...
@@ -105,7 +106,13 @@ class MainActivity : BaseActivity<ActivityMainBinding, MyBaseViewModel>() {
binding
.
btV2x
.
setOnClickListener
{
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
import
android.util.Log
import
androidx.fragment.app.activityViewModels
import
androidx.lifecycle.ViewModelProvider
import
com.sd.cavphmi.BR
import
com.sd.cavphmi.R
import
com.sd.cavphmi.base.BaseFragment
import
com.sd.cavphmi.databinding.FragmentCarPanelBinding
import
com.sd.cavphmi.highmap.HighMapApi
import
com.sd.cavphmi.viewmodels.CarPanelVM
import
com.sd.cavphmi.viewmodels.MainVm
import
dagger.hilt.android.AndroidEntryPoint
...
...
@@ -117,6 +119,11 @@ class CarPanelFragment : BaseFragment<FragmentCarPanelBinding, CarPanelVM>() {
mainVm
.
carVehicle
.
observe
(
this
)
{
//更新车辆仪表,这里模拟只取第一个
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 {
// private val reType = "51world"
//跟踪车辆的ID 267(模拟) skywell.1ggvlp16.car10 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"
/***感知目标物 &intersectionCode=17 停车场 不传就是整个园区***/
var
WS_FEEL_TARGET
=
"${WSHOST}msgType=1&intersectionCode=17"
/***网联车辆位姿 &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=***/
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
import
org.java_websocket.client.WebSocketClient
import
org.java_websocket.drafts.Draft
import
org.java_websocket.handshake.ServerHandshake
import
java.net.Socket
import
java.net.URI
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
{
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
)
...
...
@@ -56,5 +68,63 @@ class VecLocWSClient : WebSocketClient {
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 @@
android:layout_height=
"wrap_content"
android:text=
"网联车辆状态"
android:visibility=
"gone"
/>
<Button
android:id=
"@+id/bt_setcar"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"选择车辆"
/>
<!-- <Button-->
<!-- android:id="@+id/bt_tarpre"-->
<!-- 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