Commit ed01123d authored by 罗小雨's avatar 罗小雨
Browse files

车辆位姿数据完善字段

parent 9d19c112
...@@ -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
......
...@@ -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()
}
} }
......
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)
}
} }
} }
......
...@@ -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"
......
...@@ -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
...@@ -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"-->
......
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