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
dc53ac12
Commit
dc53ac12
authored
Nov 19, 2025
by
p x
Browse files
调通车辆位姿
parent
1b8c1b49
Changes
27
Hide whitespace changes
Inline
Side-by-side
app/src/main/java/com/sd/cavphmi/viewmodels/MockVM.kt
View file @
dc53ac12
...
@@ -64,7 +64,7 @@ class MockVM @Inject constructor(
...
@@ -64,7 +64,7 @@ class MockVM @Inject constructor(
fun
onVehicleMock
(
fun
onVehicleMock
(
carVehicle
:
MutableLiveData
<
CarVehicle
>
carVehicle
:
MutableLiveData
<
CarVehicle
>
)
{
)
{
HighMapApi
.
setCameraAngle
(
30f
)
//
HighMapApi.setCameraAngle(30f)
viewModelScope
.
launch
{
viewModelScope
.
launch
{
var
cCar
:
CarVehicle
?
=
null
var
cCar
:
CarVehicle
?
=
null
...
@@ -108,12 +108,12 @@ class MockVM @Inject constructor(
...
@@ -108,12 +108,12 @@ class MockVM @Inject constructor(
)
)
}
}
cCar
=
CarVehicle
().
apply
{
cCar
=
CarVehicle
().
apply
{
var
temps
=
this
.
vehiclePos
?.
toMutableList
()
var
temps
=
this
.
vehiclePos
?.
toMutableList
()
if
((
head
-
oldHead
).
absoluteValue
<
45
)
{
if
((
head
-
oldHead
).
absoluteValue
<
45
)
{
temps
?.
set
(
2
,
head
)
temps
?.
set
(
2
,
head
)
}
}
temps
?.
set
(
0
,
it
[
0
])
temps
?.
set
(
0
,
it
[
0
])
temps
?.
set
(
1
,
it
[
1
])
temps
?.
set
(
1
,
it
[
1
])
// latitude = it[1]
// latitude = it[1]
// longitude = it[0]
// longitude = it[0]
}
}
...
@@ -123,7 +123,12 @@ class MockVM @Inject constructor(
...
@@ -123,7 +123,12 @@ class MockVM @Inject constructor(
carVehicle
.
value
=
cCar
carVehicle
.
value
=
cCar
//更新小地图小车
//更新小地图小车
showNavingCarPosition
(
showNavingCarPosition
(
Tools
.
latLngToNdsPoint
(
LatLng
(
cCar
.
vehiclePos
!!
.
get
(
1
),
cCar
.
vehiclePos
.
get
(
0
))),
Tools
.
latLngToNdsPoint
(
LatLng
(
cCar
.
vehiclePos
!!
.
get
(
1
),
cCar
.
vehiclePos
.
get
(
0
)
)
),
cCar
.
vehiclePos
.
get
(
2
).
toFloat
()
cCar
.
vehiclePos
.
get
(
2
).
toFloat
()
)
)
//更新小地图路径
//更新小地图路径
...
@@ -152,10 +157,10 @@ class MockVM @Inject constructor(
...
@@ -152,10 +157,10 @@ class MockVM @Inject constructor(
var
forword
=
parkPath
.
result
.
routes
.
find
{
it
.
gear
==
3
}
var
forword
=
parkPath
.
result
.
routes
.
find
{
it
.
gear
==
3
}
forword
?.
polyline
?.
forEach
{
poly
->
forword
?.
polyline
?.
forEach
{
poly
->
cCar
=
CarVehicle
().
apply
{
cCar
=
CarVehicle
().
apply
{
var
temps
=
this
.
vehiclePos
?.
toMutableList
()
var
temps
=
this
.
vehiclePos
?.
toMutableList
()
temps
?.
set
(
0
,
poly
.
get
(
0
))
temps
?.
set
(
0
,
poly
.
get
(
0
))
temps
?.
set
(
1
,
poly
.
get
(
1
))
temps
?.
set
(
1
,
poly
.
get
(
1
))
temps
?.
set
(
2
,
poly
.
get
(
3
))
temps
?.
set
(
2
,
poly
.
get
(
3
))
// latitude = poly.get(1)
// latitude = poly.get(1)
// longitude = poly.get(0)
// longitude = poly.get(0)
// heading = poly.get(3)
// heading = poly.get(3)
...
@@ -164,7 +169,12 @@ class MockVM @Inject constructor(
...
@@ -164,7 +169,12 @@ class MockVM @Inject constructor(
carVehicle
.
value
=
cCar
carVehicle
.
value
=
cCar
//更新小地图小车
//更新小地图小车
showNavingCarPosition
(
showNavingCarPosition
(
Tools
.
latLngToNdsPoint
(
LatLng
(
cCar
.
vehiclePos
!!
.
get
(
1
),
cCar
.
vehiclePos
.
get
(
0
))),
Tools
.
latLngToNdsPoint
(
LatLng
(
cCar
.
vehiclePos
!!
.
get
(
1
),
cCar
.
vehiclePos
.
get
(
0
)
)
),
cCar
.
vehiclePos
.
get
(
2
).
toFloat
()
cCar
.
vehiclePos
.
get
(
2
).
toFloat
()
)
)
delay
(
300
)
delay
(
300
)
...
@@ -183,16 +193,21 @@ class MockVM @Inject constructor(
...
@@ -183,16 +193,21 @@ class MockVM @Inject constructor(
var
fBack
=
parkPath
.
result
.
routes
.
find
{
it
.
gear
==
1
}
var
fBack
=
parkPath
.
result
.
routes
.
find
{
it
.
gear
==
1
}
fBack
?.
polyline
?.
forEach
{
poly
->
fBack
?.
polyline
?.
forEach
{
poly
->
cCar
=
CarVehicle
().
apply
{
cCar
=
CarVehicle
().
apply
{
var
temps
=
this
.
vehiclePos
?.
toMutableList
()
var
temps
=
this
.
vehiclePos
?.
toMutableList
()
temps
?.
set
(
0
,
poly
.
get
(
0
))
temps
?.
set
(
0
,
poly
.
get
(
0
))
temps
?.
set
(
1
,
poly
.
get
(
1
))
temps
?.
set
(
1
,
poly
.
get
(
1
))
temps
?.
set
(
2
,
poly
.
get
(
3
))
temps
?.
set
(
2
,
poly
.
get
(
3
))
}
}
//更新主车位置
//更新主车位置
carVehicle
.
value
=
cCar
carVehicle
.
value
=
cCar
//更新小地图小车
//更新小地图小车
showNavingCarPosition
(
showNavingCarPosition
(
Tools
.
latLngToNdsPoint
(
LatLng
(
cCar
.
vehiclePos
!!
.
get
(
1
),
cCar
.
vehiclePos
.
get
(
0
))),
Tools
.
latLngToNdsPoint
(
LatLng
(
cCar
.
vehiclePos
!!
.
get
(
1
),
cCar
.
vehiclePos
.
get
(
0
)
)
),
cCar
.
vehiclePos
!!
.
get
(
1
).
toFloat
()
cCar
.
vehiclePos
!!
.
get
(
1
).
toFloat
()
)
)
delay
(
300
)
delay
(
300
)
...
@@ -212,6 +227,25 @@ class MockVM @Inject constructor(
...
@@ -212,6 +227,25 @@ class MockVM @Inject constructor(
}
}
/***跑服务器的模拟数据**/
fun
subVehicle
(
carLiveData
:
MutableLiveData
<
CarVehicle
>
)
{
viewModelScope
.
launch
{
var
gson
=
Gson
()
var
datas
=
mutableListOf
<
String
>()
FileIoUtils
.
getAssetMock
(
context
,
"mock/CarVehicle_Test.txt"
,
datas
)
datas
.
forEach
{
str
->
val
cCar
=
gson
.
fromJson
<
CarVehicle
>(
str
,
CarVehicle
::
class
.
java
)
if
(
cCar
.
vehiclePos
!=
null
)
{
carLiveData
.
postValue
(
cCar
)
delay
(
200
)
}
}
}
}
var
sPolyline
:
Polyline
?
=
null
var
sPolyline
:
Polyline
?
=
null
//点坐标集合
//点坐标集合
...
...
app/src/main/java/com/sd/cavphmi/websockets/V2xWSClient.kt
View file @
dc53ac12
package
com.sd.cavphmi.websockets
package
com.sd.cavphmi.websockets
import
com.sd.cavphmi.intfaces.OnWebSocketCb
import
com.sd.cavphmi.intfaces.OnWebSocketCb
import
org.java_websocket.client.WebSocketClient
import
org.java_websocket.drafts.Draft
import
org.java_websocket.handshake.ServerHandshake
import
org.java_websocket.handshake.ServerHandshake
import
java.net.URI
import
java.net.URI
import
java.nio.ByteBuffer
import
java.nio.ByteBuffer
...
@@ -25,7 +23,7 @@ class V2xWSClient : BaseWsClient {
...
@@ -25,7 +23,7 @@ class V2xWSClient : BaseWsClient {
override
fun
onOpen
(
handshakedata
:
ServerHandshake
?)
{
override
fun
onOpen
(
handshakedata
:
ServerHandshake
?)
{
// send("Hello, it is me. Mario :)")
// send("Hello, it is me. Mario :)")
println
(
TAG
+
"------
------
v2x预警 "
+
uri
.
toString
())
println
(
TAG
+
"------v2x预警 "
+
uri
.
toString
())
}
}
override
fun
onMessage
(
message
:
String
?)
{
override
fun
onMessage
(
message
:
String
?)
{
...
@@ -33,28 +31,19 @@ class V2xWSClient : BaseWsClient {
...
@@ -33,28 +31,19 @@ class V2xWSClient : BaseWsClient {
if
(
message
.
isNullOrEmpty
())
if
(
message
.
isNullOrEmpty
())
return
return
onWebSocketCb
?.
onMsg
(
message
)
onWebSocketCb
?.
onMsg
(
message
)
// onSocketCb?.onMessage(message)
}
}
override
fun
onMessage
(
bytes
:
ByteBuffer
?)
{
override
fun
onMessage
(
bytes
:
ByteBuffer
?)
{
// System.out.println(TAG + " received ByteBuffer")
// System.out.println(TAG + " received ByteBuffer")
}
}
override
fun
onClose
(
code
:
Int
,
reason
:
String
?,
remote
:
Boolean
)
{
override
fun
onClose
(
code
:
Int
,
reason
:
String
?,
remote
:
Boolean
)
{
// System.out.println(TAG + " closed with exit code " + code + " additional info: " + reason);
// System.out.println(TAG + " closed with exit code " + code + " additional info: " + reason);
}
}
override
fun
onError
(
ex
:
Exception
?)
{
override
fun
onError
(
ex
:
Exception
?)
{
// System.err.println(TAG + "an error occurred:" + ex)
// System.err.println(TAG + "an error occurred:" + ex)
}
}
// var onDataCb: OnDataCb? = null
// interface OnDataCb {
// fun onMsg(str: String)
// }
}
}
\ No newline at end of file
app/src/main/res/layout/activity_login.xml
View file @
dc53ac12
...
@@ -145,7 +145,8 @@
...
@@ -145,7 +145,8 @@
android:layout_width=
"wrap_content"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_gravity=
"center_horizontal"
android:layout_gravity=
"center_horizontal"
android:text=
"直接到首页"
/>
android:text=
"直接到首页"
android:visibility=
"gone"
/>
</LinearLayout>
</LinearLayout>
...
...
app/src/main/res/layout/bind_car_list.xml
0 → 100644
View file @
dc53ac12
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
android:orientation=
"vertical"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:paddingVertical=
"5dp"
>
<TextView
android:id=
"@+id/tv_plate"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:textColor=
"@color/black"
android:gravity=
"center"
android:textSize=
"14sp"
/>
</LinearLayout>
\ No newline at end of file
app/src/main/res/layout/fragment_car_panel.xml
View file @
dc53ac12
...
@@ -191,7 +191,8 @@
...
@@ -191,7 +191,8 @@
android:layout_centerVertical=
"true"
android:layout_centerVertical=
"true"
android:layout_marginLeft=
"2dp"
android:layout_marginLeft=
"2dp"
android:layout_toRightOf=
"@id/img_auto"
android:layout_toRightOf=
"@id/img_auto"
android:text=
"自动驾驶"
tools:text=
"自动驾驶"
app:showAutoDri=
"@{cpBean.driveMode}"
android:textColor=
"@color/text_black"
android:textColor=
"@color/text_black"
android:textSize=
"@dimen/sp_12"
android:textSize=
"@dimen/sp_12"
/>
/>
...
...
app/src/main/res/layout/sele_bind_car.xml
0 → 100644
View file @
dc53ac12
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
xmlns:app=
"http://schemas.android.com/apk/res-auto"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:background=
"@drawable/shape_dialog_custom"
android:orientation=
"vertical"
>
<RelativeLayout
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:paddingVertical=
"10dp"
>
<TextView
android:id=
"@+id/title"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_centerInParent=
"true"
android:text=
"选择车辆"
android:textColor=
"@color/black"
android:textSize=
"16sp"
/>
<!-- <TextView-->
<!-- android:id="@+id/tv_cancle"-->
<!-- android:layout_width="wrap_content"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:layout_centerVertical="true"-->
<!-- android:text="取消"-->
<!-- android:textColor="#555"-->
<!-- android:textSize="14sp" />-->
</RelativeLayout>
<androidx.recyclerview.widget.RecyclerView
android:id=
"@+id/recyclerView"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:overScrollMode=
"never"
app:layoutManager=
"androidx.recyclerview.widget.LinearLayoutManager"
/>
</LinearLayout>
\ No newline at end of file
app/src/main/res/values/colors.xml
View file @
dc53ac12
...
@@ -2,6 +2,7 @@
...
@@ -2,6 +2,7 @@
<resources>
<resources>
<color
name=
"black"
>
#FF000000
</color>
<color
name=
"black"
>
#FF000000
</color>
<color
name=
"white"
>
#FFFFFFFF
</color>
<color
name=
"white"
>
#FFFFFFFF
</color>
<color
name=
"transparent"
>
#00000000
</color>
<color
name=
"text_blue"
>
#3385FE
</color>
<color
name=
"text_blue"
>
#3385FE
</color>
<color
name=
"text_black"
>
#000000
</color>
<color
name=
"text_black"
>
#000000
</color>
...
...
Prev
1
2
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