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
e09a56b8
Commit
e09a56b8
authored
Sep 18, 2025
by
p x
Browse files
整理车辆移动和感知物
parent
1b561d38
Changes
15
Expand all
Hide whitespace changes
Inline
Side-by-side
app/src/main/AndroidManifest.xml
View file @
e09a56b8
...
...
@@ -20,6 +20,10 @@
<uses-permission
android:name=
"android.permission.READ_EXTERNAL_STORAGE"
/>
<!-- 允许程序写入外部存储设备 -->
<uses-permission
android:name=
"android.permission.WRITE_EXTERNAL_STORAGE"
/>
<!-- 允许程序读取所有者数据 -->
<uses-permission
android:name=
"android.permission.READ_OWNER_DATA"
/>
<!-- 访问WiFi状态,需要WiFi信息用于网络定位 -->
<uses-permission
android:name=
"android.permission.MANAGE_EXTERNAL_STORAGE"
tools:ignore=
"ScopedStorage"
/>
<uses-permission
android:name=
"android.permission.ACCESS_WIFI_STATE"
/>
<!-- 访问网络的变化, 需要某些信息用于网络定位 -->
<uses-permission
android:name=
"android.permission.CHANGE_NETWORK_STATE"
/>
<!-- 8.0 安装未知程序权限 -->
<uses-permission
android:name=
"android.permission.REQUEST_INSTALL_PACKAGES"
/>
...
...
@@ -43,11 +47,21 @@
android:name=
"com.minedata.minenavi.apikey"
android:value=
"57ac7a0d56494912a0c28e651fa4a40a"
/>
<!-- android:screenOrientation="userLandscape" -->
<provider
android:name=
"androidx.core.content.FileProvider"
android:authorities=
"${applicationId}.provider"
android:exported=
"false"
android:grantUriPermissions=
"true"
>
<meta-data
android:name=
"android.support.FILE_PROVIDER_PATHS"
android:resource=
"@xml/file_paths"
/>
</provider>
<activity
android:name=
".ui.LoginActivity"
android:exported=
"true"
android:
theme=
"@style/Theme.SuZhouAvp
"
android:
screenOrientation=
"landscape
"
>
android:
screenOrientation=
"landscape
"
android:
theme=
"@style/Theme.SuZhouAvp
"
>
<intent-filter>
<action
android:name=
"android.intent.action.MAIN"
/>
...
...
@@ -65,19 +79,19 @@
android:hardwareAccelerated=
"false"
android:launchMode=
"singleTask"
android:resizeableActivity=
"false"
android:screenOrientation=
"fullUser"
/>
android:screenOrientation=
"fullUser"
/>
<!-- <activity-->
<!-- android:name=".ui.BootActivity"-->
<!-- android:exported="true"-->
<!-- android:screenOrientation="landscape"-->
<!-- android:theme="@style/SplashTheme">-->
<!-- <intent-filter>-->
<!-- <action android:name="android.intent.action.MAIN" />-->
<!-- <activity-->
<!-- android:name=".ui.BootActivity"-->
<!-- android:exported="true"-->
<!-- android:screenOrientation="landscape"-->
<!-- android:theme="@style/SplashTheme">-->
<!-- <intent-filter>-->
<!-- <action android:name="android.intent.action.MAIN" />-->
<!-- <category android:name="android.intent.category.LAUNCHER" />-->
<!-- </intent-filter>-->
<!-- </activity>-->
<!-- <category android:name="android.intent.category.LAUNCHER" />-->
<!-- </intent-filter>-->
<!-- </activity>-->
</application>
...
...
app/src/main/assets/mock/CarVehicle.txt
deleted
100644 → 0
View file @
1b561d38
This diff is collapsed.
Click to expand it.
app/src/main/assets/mock/CarVehicle_15.txt
0 → 100644
View file @
e09a56b8
This diff is collapsed.
Click to expand it.
app/src/main/assets/mock/PerTarget_15.txt
0 → 100644
View file @
e09a56b8
This diff is collapsed.
Click to expand it.
app/src/main/java/com/sd/cavphmi/bean/PerTargetTest.kt
deleted
100644 → 0
View file @
1b561d38
package
com.sd.cavphmi.bean
/**
* 感知目标物实体
****/
class
PerTargetTest
:
ArrayList
<
PerTargetTestItem
>()
data class
PerTargetTestItem
(
val
id
:
String
,
val
accessTime
:
Long
,
val
deviceId
:
String
,
val
deviceCode
:
String
,
val
intersectionCode
:
String
,
val
participants
:
List
<
ParticipantTest
>,
val
receiveTime
:
Long
,
val
reportTime
:
Long
,
// val statistic: Statistic
)
data class
ParticipantTest
(
val
color
:
Int
,
val
gear
:
Int
,
val
heading
:
Double
,
val
latitude
:
Double
,
val
longitude
:
Double
,
val
ptcId
:
String
,
val
ptcType
:
String
,
val
speed
:
Double
,
var
aniTime
:
Long
,
var
isFlash
:
Boolean
,
var
isRed
:
Boolean
)
data class
StatisticTest
(
val
ambulance
:
Int
,
val
bike
:
Int
,
val
bus
:
Int
,
val
car
:
Int
,
val
coach
:
Int
,
val
concrete_mixer
:
Int
,
val
conical_barrel
:
Int
,
val
electric_bicycle
:
Int
,
val
engine_emergency
:
Int
,
val
fire_truck
:
Int
,
val
heavy_truck
:
Int
,
val
large_truck
:
Int
,
val
micro_truck
:
Int
,
val
midibus
:
Int
,
val
minibus
:
Int
,
val
motorcycle
:
Int
,
val
mpv
:
Int
,
val
pedestrian
:
Int
,
val
pickup
:
Int
,
val
police_car
:
Int
,
val
small_truck
:
Int
,
val
spillage
:
Int
,
val
suv
:
Int
,
val
tank_truck
:
Int
,
val
tricycle
:
Int
,
val
truck
:
Int
,
val
unknown
:
Int
)
\ No newline at end of file
app/src/main/java/com/sd/cavphmi/bean/Per
Target
.kt
→
app/src/main/java/com/sd/cavphmi/bean/Per
ceptionBean
.kt
View file @
e09a56b8
package
com.sd.cavphmi.bean
/**
* 感知目标物实体
****/
class
PerTarget
:
ArrayList
<
PerTargetItem
>()
* websocket解析目标感知物的接受数据
*
**/
class
PerceptionBean
:
ArrayList
<
PerceptionBeanItem
>()
data class
Per
Target
Item
(
data class
Per
ceptionBean
Item
(
val
accessTime
:
Long
,
val
deviceId
:
String
,
val
participants
:
List
<
Participant
>,
val
receiveTime
:
Int
,
val
receiveTime
:
Long
,
val
reportTime
:
Long
,
// val statistic: Statistic
)
...
...
@@ -21,7 +22,7 @@ data class Participant(
val
latitude
:
Double
,
val
longitude
:
Double
,
val
ptcId
:
String
,
val
ptcType
:
String
,
val
ptcType
:
String
,
//
val
speed
:
Double
)
...
...
app/src/main/java/com/sd/cavphmi/ui/BootActivity.kt
View file @
e09a56b8
...
...
@@ -2,6 +2,7 @@ package com.sd.cavphmi.ui
import
android.Manifest
import
android.content.Intent
import
android.os.Build
import
androidx.lifecycle.ViewModelProvider
import
com.permissionx.guolindev.PermissionX
import
com.sd.cavphmi.BR
...
...
@@ -61,14 +62,20 @@ class BootActivity : BaseActivity<ActivityBootBinding, MyBaseViewModel>() {
fun
requestPers
()
{
var
list
=
listOf
(
Manifest
.
permission
.
ACCESS_
COARSE
_LOCATION
,
var
pers
=
mutableListOf
<
String
>
(
Manifest
.
permission
.
ACCESS_
BACKGROUND
_LOCATION
,
Manifest
.
permission
.
ACCESS_FINE_LOCATION
,
Manifest
.
permission
.
WRITE_EXTERNAL_STORAGE
,
Manifest
.
permission
.
READ_PHONE_STATE
,
Manifest
.
permission
.
ACCESS_COARSE_LOCATION
,
Manifest
.
permission
.
READ_PHONE_STATE
)
if
(
Build
.
VERSION
.
SDK_INT
>=
Build
.
VERSION_CODES
.
R
){
pers
.
add
(
Manifest
.
permission
.
READ_EXTERNAL_STORAGE
)
pers
.
add
(
Manifest
.
permission
.
MANAGE_EXTERNAL_STORAGE
)
}
else
{
pers
.
add
(
Manifest
.
permission
.
READ_EXTERNAL_STORAGE
)
}
PermissionX
.
init
(
this
)
.
permissions
(
l
ist
)
.
permissions
(
pers
.
toL
ist
()
)
.
onExplainRequestReason
{
scope
,
deniedList
->
scope
.
showRequestReasonDialog
(
deniedList
,
...
...
app/src/main/java/com/sd/cavphmi/ui/MainActivity.kt
View file @
e09a56b8
...
...
@@ -98,41 +98,33 @@ class MainActivity : BaseActivity<ActivityMainBinding, MyBaseViewModel>(),
//联网车辆位姿数据
binding
.
btVehicle
.
setOnClickListener
{
mainVm
.
subVehicle
().
observe
(
this
)
{
var
a
=
1
}
}
//感知目标物
binding
.
btTarget
.
setOnClickListener
{
mainVm
.
subTarget
().
observe
(
this
)
{
if
(
it
.
size
==
0
)
{
if
(
it
.
isEmpty
()
)
{
HighMapApi
.
clearPtcData
()
return
@observe
}
it
.
forEachIndexed
{
index
,
perTargetTestItem
->
var
list
=
perTargetTestItem
.
participants
val
ptcList
:
MutableList
<
UnityPtc
>
=
ArrayList
(
list
.
size
)
list
.
forEachIndexed
{
index
,
item
->
var
unityPtc
=
UnityPtc
()
unityPtc
.
lat
=
item
.
latitude
unityPtc
.
lon
=
item
.
longitude
unityPtc
.
ptcid
=
item
.
ptcId
unityPtc
.
heading
=
item
.
heading
if
(
item
.
ptcType
==
"car"
)
{
unityPtc
.
pType
=
1
var
parts
=
it
.
flatMap
{
it
.
participants
}
var
ptcList
=
parts
.
map
{
var
unityPtc
=
UnityPtc
().
apply
{
lat
=
it
.
latitude
lon
=
it
.
longitude
ptcid
=
it
.
ptcId
heading
=
it
.
heading
if
(
it
.
ptcType
==
"car"
)
{
pType
=
1
}
else
{
unityPtc
.
pType
=
2
pType
=
2
}
// unityPtc.aniTime=ptc.aniTime
// unityPtc.aniTime = 1
// unityPtc.isFlash=ptc.isFlash
// unityPtc.isRed=ptc.isRed
// unityPtc.isFlash = true
// unityPtc.isRed = true
ptcList
.
add
(
unityPtc
)
}
HighMapApi
.
setPtcData
(
ptcList
)
return
@map
unityPtc
}
HighMapApi
.
setPtcData
(
ptcList
)
}
}
//v2x 预警
...
...
app/src/main/java/com/sd/cavphmi/ui/fragment/UnityFragment.kt
View file @
e09a56b8
...
...
@@ -101,18 +101,10 @@ class UnityFragment : Fragment(), IUnityPlayerLifecycleEvents {
unityMapVm
.
loadTileJson
()
}
// 可选:向 Unity 发送消息的方法
fun
sendMessageToUnity
(
gameObjectName
:
String
,
methodName
:
String
,
message
:
String
)
{
// mUnityPlayer?.sendMessage(gameObjectName, methodName, message)
// UnityPlayer.UnitySendMessage()
}
companion
object
{
@JvmStatic
fun
newInstance
()
=
UnityFragment
()
}
}
\ No newline at end of file
app/src/main/java/com/sd/cavphmi/utils/MyContants.kt
View file @
e09a56b8
package
com.sd.cavphmi.utils
object
MyContants
{
//
const val IS_DEBUG = true
const
val
IS_DEBUG
=
true
//测试环境
// var HOST = "https://itg-dev.cu-sc.com:19443/"
//开发环境切勿动
var
HOST
=
"https://itg-yz.cu-sc.com:13443"
//智网生产环境地址用于拼接3dtile.json
var
HOST_HTTP_3
=
"https://itg-yz.cu-sc.com:13443"
/***测试环境socket token***/
private
val
WSTOKEN
=
"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1aWQiOiI0MTc0NDY3NGNlOGM0MDZmOTVkZTVkYWYyMWVlOWQ0ZiIsImNyZWF0ZVRpbWUiOjE3NTUwNzYxMTgxMjQsInVzZXJUeXBlIjoxLCJzb3VyY2UiOjAsInB3ZEV4cGlyZWQiOmZhbHNlLCJ1c2VybmFtZSI6ImNoZW5ieTUxIn0.aPYHCxXgQHj4eYGGZnce5MPJCtmMoRcIIHcNXzMMOHE"
//
/***测试环境socket token***/
//
private val WSTOKEN =
//
"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1aWQiOiI0MTc0NDY3NGNlOGM0MDZmOTVkZTVkYWYyMWVlOWQ0ZiIsImNyZWF0ZVRpbWUiOjE3NTUwNzYxMTgxMjQsInVzZXJUeXBlIjoxLCJzb3VyY2UiOjAsInB3ZEV4cGlyZWQiOmZhbHNlLCJ1c2VybmFtZSI6ImNoZW5ieTUxIn0.aPYHCxXgQHj4eYGGZnce5MPJCtmMoRcIIHcNXzMMOHE"
//登录后拿到Token
var
HTTP_TOKEN
=
...
...
@@ -18,23 +18,26 @@ 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://172.24.124.130:19443/wsplus/socket?token=121&reType=freedo&vehicleId=7&"
//跟踪车辆的ID 15(模拟) skywell.1ggvlp16.car10 skywell.1ggvlp16.car8
//智网测试、开发地址
var
BASE_HOST
=
if
(
IS_DEBUG
)
"172.24.124.130:19443"
else
"itg-yz.cu-sc.com:19443"
//websocket地址
private
var
WSHOST
=
if
(
IS_DEBUG
)
"wss://${BASE_HOST}/wsplus/socket?token=121&reType=freedo&"
else
"wss://${BASE_HOST}/wsplus/socket?token=121&reType=freedo&"
var
vehicleId
=
"17"
/**网联车辆位姿 用于实车测试喽数据***/
var
WS_VEH_LOC
=
"${WSHOST}msgType=2&vehicleId=${vehicleId}"
// var PORT = if (IS_DEBUG) "123" else "34534"
/***感知目标物 &intersectionCode=17 停车场 不传就是整个园区***/
// var WS_FEEL_TARGET = "${WSHOST}msgType=1&intersectionCode=17"
var
WS_FEEL_TARGET
=
"wss://172.24.124.130:19443/wsplus/socket?token=121&reType=freedo&&msgType=1&intersectionCode=17"
/***网联车辆位姿 &vehicleId=***/
// 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"
var
WS_FEEL_TARGET
=
"${WSHOST}&msgType=1"
/***V2X预警 vehicleId 传了就是获取某一辆车的预警 &vehicleId=***/
var
WS_V2X
=
"${WSHOST}msgType=4"
/***网联车辆状态 &vehicleId=''***/
var
WS_VEH_STATU
=
"${WSHOST}msgType=6"
...
...
app/src/main/java/com/sd/cavphmi/viewmodels/MainVm.kt
View file @
e09a56b8
...
...
@@ -8,13 +8,13 @@ import com.google.gson.Gson
import
com.sd.cavphmi.base.MyBaseViewModel
import
com.sd.cavphmi.bean.AvpStatuBean
import
com.sd.cavphmi.bean.CarVehicle
import
com.sd.cavphmi.bean.PerTarget
import
com.sd.cavphmi.bean.PerTargetTest
import
com.sd.cavphmi.bean.PerceptionBean
import
com.sd.cavphmi.bean.SpaceInfoBean
import
com.sd.cavphmi.bean.V2xStartBean
import
com.sd.cavphmi.bean.VToXImgBean
import
com.sd.cavphmi.bean.VehDetailBean
import
com.sd.cavphmi.bean.VehicleStats
import
com.sd.cavphmi.highmap.HighMapApi
import
com.sd.cavphmi.net.MyResult
import
com.sd.cavphmi.repositorys.AvpDataRepo
import
com.sd.cavphmi.utils.FileIoUtils
...
...
@@ -23,7 +23,6 @@ import com.sd.cavphmi.utils.ToastHelper
import
com.sd.cavphmi.websockets.FeelTargetWSClient
import
com.sd.cavphmi.websockets.V2xWSClient
import
com.sd.cavphmi.websockets.VecLocWSClient
import
com.sd.cavphmi.websockets.VehStatuWSClient
import
dagger.hilt.android.lifecycle.HiltViewModel
import
dagger.hilt.android.qualifiers.ApplicationContext
import
kotlinx.coroutines.launch
...
...
@@ -72,7 +71,7 @@ class MainVm @Inject constructor(
lateinit
var
mockVM
:
MockVM
//是否需要模拟
var
isMock
=
tru
e
var
isMock
=
fals
e
//车辆位姿数据
var
carVehicle
=
MutableLiveData
<
CarVehicle
>()
...
...
@@ -81,7 +80,7 @@ class MainVm @Inject constructor(
var
vehDetail
=
MutableLiveData
<
VehDetailBean
>()
//感知目标物
var
targetPre
=
MutableLiveData
<
Per
TargetTest
>()
var
targetPre
=
MutableLiveData
<
Per
ceptionBean
>()
//v2x 预警
var
v2xStartBean
=
MutableLiveData
<
V2xStartBean
>()
...
...
@@ -196,12 +195,17 @@ class MainVm @Inject constructor(
viewModelScope
.
launch
{
//下载到sd卡下面的DownLoad文件夹下面
FileIoUtils
.
writeToFile
(
str
,
"CarVehicle.txt"
)
var
bean
=
gson
.
fromJson
(
str
,
CarVehicle
::
class
.
java
)
carVehicle
.
postValue
(
bean
)
var
carBean
=
gson
.
fromJson
(
str
,
CarVehicle
::
class
.
java
)
// carVehicle.postValue(carBean)
//更新主车位置
var
car
=
carBean
.
first
()
HighMapApi
.
setCarPosition
(
car
.
heading
,
car
.
latitude
,
car
.
longitude
,
20.80189
)
}
}
}
vecLocWSClient
.
connect
()
if
(!
vecLocWSClient
.
isOpen
){
vecLocWSClient
.
connect
()
}
}
catch
(
e
:
Exception
)
{
e
.
printStackTrace
()
}
...
...
@@ -213,7 +217,7 @@ class MainVm @Inject constructor(
/**感知目标物数据
*传入intersectionCode=17 拼接 代表获取某区域的感知物,目前没有数据
*/
fun
subTarget
():
LiveData
<
Per
TargetTest
>
{
fun
subTarget
():
LiveData
<
Per
ceptionBean
>
{
if
(
isMock
)
{
mockVM
.
onSubTargetMock
(
targetPre
)
}
else
{
...
...
@@ -222,12 +226,14 @@ class MainVm @Inject constructor(
override
fun
onMsg
(
str
:
String
)
{
viewModelScope
.
launch
{
FileIoUtils
.
writeToFile
(
str
,
"PerTarget.txt"
)
var
bean
=
gson
.
fromJson
(
str
,
Per
TargetTest
::
class
.
java
)
var
bean
=
gson
.
fromJson
(
str
,
Per
ceptionBean
::
class
.
java
)
targetPre
.
postValue
(
bean
)
}
}
}
feelTargetWSClient
.
connect
()
if
(!
feelTargetWSClient
.
isOpen
){
feelTargetWSClient
.
connect
()
}
}
catch
(
e
:
Exception
)
{
e
.
printStackTrace
()
}
...
...
@@ -254,7 +260,9 @@ class MainVm @Inject constructor(
}
}
}
v2xWSClient
.
connect
()
if
(
v2xWSClient
.
isOpen
==
false
){
v2xWSClient
.
connect
()
}
}
catch
(
e
:
Exception
)
{
e
.
printStackTrace
()
}
...
...
app/src/main/java/com/sd/cavphmi/viewmodels/MockVM.kt
View file @
e09a56b8
package
com.sd.cavphmi.viewmodels
import
android.content.Context
import
androidx.databinding.ObservableField
import
androidx.lifecycle.MutableLiveData
import
androidx.lifecycle.ViewModel
import
androidx.lifecycle.viewModelScope
import
com.google.gson.Gson
import
com.sd.cavphmi.bean.CarPanelBean
import
com.sd.cavphmi.bean.CarVehicle
import
com.sd.cavphmi.bean.CarVehicleItem
import
com.sd.cavphmi.bean.PerTarget
import
com.sd.cavphmi.bean.PerTargetTest
import
com.sd.cavphmi.bean.PerceptionBean
import
com.sd.cavphmi.bean.V2xStartBean
import
com.sd.cavphmi.highmap.HighMapApi
import
com.sd.cavphmi.utils.FileIoUtils
import
dagger.hilt.android.lifecycle.HiltViewModel
import
dagger.hilt.android.qualifiers.ApplicationContext
...
...
@@ -45,32 +42,34 @@ class MockVM @Inject constructor(
)
{
viewModelScope
.
launch
{
val
dst
=
mutableListOf
<
String
>()
FileIoUtils
.
getAssetMock
(
context
,
"mock/CarVehicle.txt"
,
dst
)
FileIoUtils
.
getAssetMock
(
context
,
"mock/CarVehicle
_15
.txt"
,
dst
)
dst
.
forEach
{
str
->
delay
(
1000
)
val
bean
=
parseDataBean
(
str
,
CarVehicle
::
class
.
java
)
println
(
"------模拟车辆位姿数据 = ${bean}"
)
println
(
"------车速 = ${bean.first().speed}"
)
println
(
"------电量 = ${bean.first().soc}"
)
//
println("------模拟车辆位姿数据 = ${bean}")
//
println("------车速 = ${bean.first().speed}")
//
println("------电量 = ${bean.first().soc}")
carVehicle
.
value
=
bean
var
car
=
bean
.
first
()
HighMapApi
.
setCarPosition
(
car
.
heading
,
car
.
latitude
,
car
.
longitude
,
20.80189
)
delay
(
100
)
}
}
}
//感知目标物
fun
onSubTargetMock
(
targetPre
:
MutableLiveData
<
Per
TargetTest
>)
{
fun
onSubTargetMock
(
targetPre
:
MutableLiveData
<
Per
ceptionBean
>)
{
viewModelScope
.
launch
{
val
parts
=
mutableListOf
<
String
>()
FileIoUtils
.
getAssetMock
(
context
,
"mock/PerTarget.txt"
,
parts
)
parts
.
forEach
{
str
->
delay
(
1000
)
var
bean
=
parseDataBean
(
str
,
PerTargetTest
::
class
.
java
)
var
bean
=
parseDataBean
(
str
,
PerceptionBean
::
class
.
java
)
// println("------模拟感知目标物数据 = ${bean}")
// println("------模拟感知目标物typeName = ${bean.typeName}")
// println("------模拟感知目标物type = ${bean.type}")
// println("------模拟感知目标物level = ${bean.type}")
targetPre
.
value
=
bean
delay
(
1000
)
}
}
}
...
...
app/src/main/java/com/sd/cavphmi/websockets/FeelTargetWSClient.kt
View file @
e09a56b8
...
...
@@ -43,11 +43,10 @@ class FeelTargetWSClient : WebSocketClient {
return
onDataCb
?.
onMsg
(
message
)
// onSocketCb?.onMessage(message)
}
override
fun
onMessage
(
bytes
:
ByteBuffer
?)
{
System
.
out
.
println
(
TAG
+
" received ByteBuffer"
)
//
System.out.println(TAG + " received ByteBuffer")
}
...
...
app/src/main/java/com/sd/cavphmi/websockets/VecLocWSClient.kt
View file @
e09a56b8
...
...
@@ -44,17 +44,14 @@ class VecLocWSClient : WebSocketClient {
return
onDataCb
?.
onMsg
(
message
)
// onSocketCb?.onMessage(message)
}
override
fun
onMessage
(
bytes
:
ByteBuffer
?)
{
// System.out.println(TAG + " received ByteBuffer")
}
override
fun
onClose
(
code
:
Int
,
reason
:
String
?,
remote
:
Boolean
)
{
// System.out.println(TAG + " closed with exit code " + code + " additional info: " + reason);
}
override
fun
onError
(
ex
:
Exception
?)
{
...
...
app/src/main/res/xml/file_paths.xml
0 → 100644
View file @
e09a56b8
<?xml version="1.0" encoding="utf-8"?>
<resources>
<paths>
<external-path
name=
"external-path"
path=
"."
/>
</paths>
</resources>
\ No newline at end of file
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