Commit 928a7ec7 authored by 马乐's avatar 马乐

1.增加8103设备配置命令

parent e8456fbb
......@@ -2,32 +2,39 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
<uses-permission android:name="android.permission.READ_PRIVILEGED_PHONE_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<application
android:name=".MyApp"
android:allowBackup="true"
android:dataExtractionRules="@xml/data_extraction_rules"
android:fullBackupContent="@xml/backup_rules"
android:icon="@mipmap/ic_launcher"
android:icon="@mipmap/waytous_logo"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:usesCleartextTraffic="true"
android:theme="@style/Theme.HTAnticollision"
android:usesCleartextTraffic="true"
tools:targetApi="31">
<activity
android:name=".MainActivity"
android:name=".SplashActivity"
android:exported="true"
android:screenOrientation="landscape"
android:label="@string/app_name">
android:theme="@style/SplashTheme">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".activity.MainActivity"
android:exported="true"
android:screenOrientation="landscape">
<intent-filter>
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<meta-data
android:name="android.app.lib_name"
......
......@@ -35,8 +35,60 @@ object Settings {
var token: String by PreferenceDelegate("token", "")
/**
* 心跳周期
* DWORD 终端心跳发送间隔,单位为秒(s),默认2分钟
* */
var heartbeatInterval:Long by PreferenceDelegate("heartbeatInterval", 2)
var x0001:Long by PreferenceDelegate("x0001", 120)
/**
* DWORD 消息应答超时时间,单位为秒(s)
* */
var x0002:Long by PreferenceDelegate("x0002", 60)
/**
* DWORD TCP 消息重传次数
* */
var x0003:Long by PreferenceDelegate("x0003", 3)
/**
* STRING 主服务器 APN,无线通信拨号访问点,若网络制式为 CDMA,则该处为 PPP 拨号号码
* */
var x0010:String by PreferenceDelegate("x0010", "")
/**
* STRING 主服务器无线通信拨号用户名
* */
var x0011:String by PreferenceDelegate("x0011", "")
/**
* STRING 主服务器无线通信拨号密码
* */
var x0012:String by PreferenceDelegate("x0012", "")
/**
* STRING 主服务器地址,IP 或域名(2019 版以冒号分割主机和端口,多个服务器使用分号分隔)
* */
var x0013:String by PreferenceDelegate("x0013", "")
/**
* STRING 备份服务器 APN,无线通信拨号访问点
* */
var x0014:String by PreferenceDelegate("x0014", "")
/**
* STRING 备份服务器无线通信拨号用户名
* */
var x0015:String by PreferenceDelegate("x0015", "")
/**
* STRING 备份服务器无线通信拨号密码
* */
var x0016:String by PreferenceDelegate("x0016", "")
/**
* STRING 备份服务器地址、IP 或域名(2019 版以冒号分割主机和端口,多个服务器使用分号分隔)
* */
var x0017:String by PreferenceDelegate("x0017", "")
/**
* DWORD 服务器 TCP 端口 // 2019 del
* */
var x0018:Long by PreferenceDelegate("x0018", -1)
/**
* STRING 道路运输证 IC 卡认证主服务器 IP 地址或域名
* */
var x001A:String by PreferenceDelegate("x001A", "")
/**
* DWORD 道路运输证 IC 卡认证主服务器 TCP 端口
* */
var x001B:Long by PreferenceDelegate("x001B", -1)
}
\ No newline at end of file
......@@ -287,6 +287,7 @@ internal class Session : ConnectListener, SyncMessageListener<AbstractToStringJo
* 开始心跳
* */
private fun startHeartbeat() {
scheduleFutureTask = scheduler.scheduleAtFixedRate(
::sendPing,
0,
......@@ -361,10 +362,10 @@ internal class Session : ConnectListener, SyncMessageListener<AbstractToStringJo
}
override fun onCommonResponse(payload: AbstractToStringJoiner) {
val codec = (payload as B8001)
when (codec.replyId) {
val messageBody = (payload as B8001)
when (messageBody.replyId) {
0x0100 -> {
when (codec.result) {
when (messageBody.result) {
B8001.RESULT_SUCCESSFUL -> {
deviceStatus.set(DeviceStatus.Registered)
if (BuildConfig.DEBUG) {
......@@ -392,7 +393,7 @@ internal class Session : ConnectListener, SyncMessageListener<AbstractToStringJo
}
}
0x0102 -> {
when (codec.result) {
when (messageBody.result) {
B8001.RESULT_SUCCESSFUL -> {
if (deviceStatus.get() == DeviceStatus.Authenticating) {
deviceStatus.set(DeviceStatus.Authenticated)
......@@ -430,7 +431,7 @@ internal class Session : ConnectListener, SyncMessageListener<AbstractToStringJo
}
}
0x0002 -> {
when (codec.result) {
when (messageBody.result) {
B8001.RESULT_SUCCESSFUL -> {
if (BuildConfig.DEBUG) {
LogUtils.d("心跳响应成功!")
......@@ -457,4 +458,22 @@ internal class Session : ConnectListener, SyncMessageListener<AbstractToStringJo
}
}
override fun onDeviceSetting(payload: AbstractToStringJoiner) {
val messageBody = payload as B8103
Settings.x0001 = messageBody.x0001
Settings.x0002 = messageBody.x0002
Settings.x0003 = messageBody.x0003
Settings.x0010 = messageBody.x0010
Settings.x0011 = messageBody.x0011
Settings.x0012 = messageBody.x0012
Settings.x0013 = messageBody.x0013
Settings.x0014 = messageBody.x0014
Settings.x0015 = messageBody.x0015
Settings.x0016 = messageBody.x0016
Settings.x0017 = messageBody.x0017
Settings.x0018 = messageBody.x0018
Settings.x001A = messageBody.x001A
Settings.x001B = messageBody.x001B
}
}
\ No newline at end of file
......@@ -7,13 +7,19 @@ interface SyncMessageListener<in T> {
/**
* 设备注册
* @param data
* @param payload
* */
fun onSignUp(payload:T)
/**
* 平台通用应答
* @param data
* @param payload
* */
fun onCommonResponse(payload:T)
/**
* 平台下发通知
* @param payload
* */
fun onDeviceSetting(payload:T)
}
\ No newline at end of file
......@@ -7,6 +7,7 @@ import io.github.toggery.jt808.codec.MessageMetadata
import io.github.toggery.jt808.messagebody.AbstractToStringJoiner
import io.github.toggery.jt808.messagebody.B8001
import io.github.toggery.jt808.messagebody.B8100
import io.github.toggery.jt808.messagebody.B8103
import io.netty.buffer.ByteBuf
import io.netty.util.DefaultAttributeMap
import io.netty.util.ReferenceCountUtil
......@@ -31,8 +32,9 @@ class SyncParser(private val syncMessageListener: SyncMessageListener<AbstractTo
LogUtils.file("【解析】:$message")
}
when(val payload:Any = message.body){
is B8100 -> syncMessageListener.onSignUp(payload)
is B8001 -> syncMessageListener.onCommonResponse(payload)
is B8100 -> syncMessageListener.onSignUp(payload)
is B8103 -> syncMessageListener.onDeviceSetting(payload)
}
} catch (e: Exception) {
if (BuildConfig.DEBUG) {
......
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