|
@@ -1,21 +1,17 @@
|
|
|
package com.wdkl.app.ncs.callingdoor.activity
|
|
|
|
|
|
-import android.app.AlarmManager
|
|
|
import android.content.*
|
|
|
-import android.graphics.Color
|
|
|
import android.net.ConnectivityManager
|
|
|
import android.os.*
|
|
|
-import android.support.v4.app.Fragment
|
|
|
+
|
|
|
import android.text.TextUtils
|
|
|
import android.util.Log
|
|
|
-import android.view.Gravity
|
|
|
import android.view.View
|
|
|
-import android.widget.TextView
|
|
|
+import androidx.fragment.app.Fragment
|
|
|
import com.alibaba.fastjson.JSON
|
|
|
import com.alibaba.fastjson.JSONObject
|
|
|
import com.enation.javashop.android.jrouter.external.annotation.Router
|
|
|
import com.enation.javashop.net.engine.model.NetState
|
|
|
-import com.example.yf_rk3288_api.YF_RK3288_API_Manager
|
|
|
import com.google.gson.Gson
|
|
|
import com.wdkl.app.ncs.callingdoor.BuildConfig
|
|
|
import com.wdkl.app.ncs.callingdoor.R
|
|
@@ -24,6 +20,7 @@ import com.wdkl.app.ncs.callingdoor.bean.CallingItem
|
|
|
import com.wdkl.app.ncs.callingdoor.bean.Trans433Data
|
|
|
import com.wdkl.app.ncs.callingdoor.databinding.CallingdoorMainNewBinding
|
|
|
import com.wdkl.app.ncs.callingdoor.fragment.*
|
|
|
+import com.wdkl.app.ncs.callingdoor.hardware.HardWareFactroy
|
|
|
import com.wdkl.app.ncs.callingdoor.helper.*
|
|
|
import com.wdkl.app.ncs.callingdoor.launch.CallingdoorLaunch
|
|
|
import com.wdkl.app.ncs.callingdoor.settings.SettingConfig
|
|
@@ -38,7 +35,6 @@ import com.wdkl.ncs.android.middleware.common.SipStatus
|
|
|
import com.wdkl.ncs.android.middleware.logic.contract.callingdoor.CallingdoorActivityContract
|
|
|
import com.wdkl.ncs.android.middleware.logic.presenter.callingdoor.CallingdoorActivityPresenter
|
|
|
import com.wdkl.ncs.android.middleware.model.ServerInfo
|
|
|
-import com.wdkl.ncs.android.middleware.model.ThirdServerInfo
|
|
|
import com.wdkl.ncs.android.middleware.model.dos.AppVersionDO
|
|
|
import com.wdkl.ncs.android.middleware.model.dos.PartSettingDO
|
|
|
import com.wdkl.ncs.android.middleware.model.dto.TcpSeverDTO
|
|
@@ -46,34 +42,23 @@ import com.wdkl.ncs.android.middleware.model.vo.DeviceRoomInfoVO
|
|
|
import com.wdkl.ncs.android.middleware.model.vo.FrameBedVO
|
|
|
import com.wdkl.ncs.android.middleware.model.vo.InteractionVO
|
|
|
import com.wdkl.ncs.android.middleware.tcp.TcpClient
|
|
|
-import com.wdkl.ncs.android.middleware.tcp.channel.DeviceChannel
|
|
|
import com.wdkl.ncs.android.middleware.tcp.channel.OtherUtil
|
|
|
import com.wdkl.ncs.android.middleware.tcp.channel.VoiceUtil
|
|
|
import com.wdkl.ncs.android.middleware.tcp.dto.TcpModel
|
|
|
import com.wdkl.ncs.android.middleware.tcp.enums.TcpAction
|
|
|
import com.wdkl.ncs.android.middleware.tcp.enums.TcpType
|
|
|
-import com.wdkl.ncs.android.middleware.udp.ServerInfoUtil
|
|
|
import com.wdkl.ncs.android.middleware.utils.AppUtil
|
|
|
import com.wdkl.ncs.android.middleware.utils.CommonUtils
|
|
|
import com.wdkl.ncs.android.middleware.utils.StringUtil
|
|
|
import com.wdkl.ncs.android.middleware.utils.Util
|
|
|
import com.wdkl.ncs.janus.util.JanusConstant
|
|
|
import kotlinx.android.synthetic.main.callingdoor_main_lay.*
|
|
|
-import kotlinx.android.synthetic.main.callingdoor_main_lay.app_version
|
|
|
-import kotlinx.android.synthetic.main.callingdoor_main_lay.room_action_call
|
|
|
-import kotlinx.android.synthetic.main.callingdoor_main_lay.room_action_call_bed
|
|
|
import kotlinx.android.synthetic.main.callingdoor_main_lay.room_action_nurse
|
|
|
-import kotlinx.android.synthetic.main.callingdoor_main_lay.room_action_support
|
|
|
-import kotlinx.android.synthetic.main.callingdoor_main_lay.room_cancel_call
|
|
|
-import kotlinx.android.synthetic.main.callingdoor_main_lay.room_action_language_set
|
|
|
import kotlinx.android.synthetic.main.callingdoor_main_lay.tv_room_name
|
|
|
-import kotlinx.android.synthetic.main.callingdoor_main_lay.view_flipper
|
|
|
import kotlinx.android.synthetic.main.callingdoor_main_lay_rk3288.*
|
|
|
import kotlinx.android.synthetic.main.callingdoor_main_new.*
|
|
|
import kotlinx.android.synthetic.main.view_bed_name.*
|
|
|
import kotlinx.android.synthetic.main.view_title_layout.*
|
|
|
-import okhttp3.OkHttpClient
|
|
|
-import okhttp3.Request
|
|
|
import org.greenrobot.eventbus.EventBus
|
|
|
import org.greenrobot.eventbus.Subscribe
|
|
|
import org.greenrobot.eventbus.ThreadMode
|
|
@@ -81,7 +66,6 @@ import serialporttest.utils.SerialPortUtil
|
|
|
import serialporttest.utils.SerialPortUtil433
|
|
|
import serialporttest.utils.StringUtils
|
|
|
import java.io.*
|
|
|
-import java.lang.Process
|
|
|
import java.util.*
|
|
|
import java.util.concurrent.Executors
|
|
|
import java.util.concurrent.TimeUnit
|
|
@@ -170,31 +154,8 @@ class CallingdoorActivity :BaseActivity<CallingdoorActivityPresenter, Callingdoo
|
|
|
|
|
|
//更新状态图标
|
|
|
updateNetState()
|
|
|
-
|
|
|
- if ("rk3128".equals(Build.MODEL) || "rk3368".equals(Build.MODEL)) {
|
|
|
- AppTool.Time.delay(1500) {
|
|
|
- //串口监听
|
|
|
- setSerialListener()
|
|
|
- //打开MIC
|
|
|
- SerialPortHelper.setMIC(false)
|
|
|
- SerialPortHelper.setHandsFree(true)
|
|
|
- SerialPortHelper.setSosLight("0")
|
|
|
- //默认门灯白色
|
|
|
- //SerialPortHelper.setDoorLight(1, "111")
|
|
|
- //护理状态
|
|
|
-// Constant.inNursing = SettingConfig.getInNursing(activity)
|
|
|
-// if (Constant.inNursing) {
|
|
|
-// nursingInteId = SettingConfig.getNursingId(activity)
|
|
|
-// enterNursing()
|
|
|
-// } else {
|
|
|
-// SerialPortHelper.setDoorLight(0, "000")
|
|
|
-// }
|
|
|
- }
|
|
|
-
|
|
|
- //设置默认时区为中国标准时间
|
|
|
- //val alarmManager = getSystemService(ALARM_SERVICE) as AlarmManager
|
|
|
- //alarmManager.setTimeZone("Asia/Shanghai")
|
|
|
- }
|
|
|
+ //串口设置
|
|
|
+ HardWareFactroy.getHardTools().setSerial(this)
|
|
|
|
|
|
//tts初始化
|
|
|
SpeechUtil.getInstance().init(activity) {
|
|
@@ -205,10 +166,6 @@ class CallingdoorActivity :BaseActivity<CallingdoorActivityPresenter, Callingdoo
|
|
|
}
|
|
|
SpeechUtil.getInstance().setSpeechLoopCount(3)
|
|
|
|
|
|
-// app_version.text = "V" + BuildConfig.VERSION_NAME
|
|
|
-// //显示二维码界面
|
|
|
-// switchFragment(R.id.callingdoor_main_frame, QrCodeFragment(), qrFragment)
|
|
|
-
|
|
|
//记录app启动时间
|
|
|
val lastTime = SettingConfig.getAppStartTime(activity)
|
|
|
val currentTime = TimeHandle.getDateTime(System.currentTimeMillis(), "MM-dd HH:mm:ss")
|
|
@@ -344,9 +301,10 @@ class CallingdoorActivity :BaseActivity<CallingdoorActivityPresenter, Callingdoo
|
|
|
|
|
|
fun addCallFragment(fragment: Fragment) {
|
|
|
skyCallFragment = fragment
|
|
|
+ call_frame_new.bringToFront()
|
|
|
supportFragmentManager.beginTransaction()
|
|
|
.setCustomAnimations(R.anim.slide_down_in, R.anim.slide_up_out)
|
|
|
- .add(R.id.call_frame, fragment)
|
|
|
+ .add(R.id.call_frame_new, fragment)
|
|
|
.commit()
|
|
|
}
|
|
|
|
|
@@ -367,9 +325,8 @@ class CallingdoorActivity :BaseActivity<CallingdoorActivityPresenter, Callingdoo
|
|
|
}
|
|
|
|
|
|
private fun enterNursing() {
|
|
|
- if ("rk3128".equals(Build.MODEL) || "rk3368".equals(Build.MODEL)) {
|
|
|
- SerialPortHelper.setDoorLight(1, Constant.nursingColor) //绿色
|
|
|
- }
|
|
|
+ //绿色门灯
|
|
|
+ HardWareFactroy.getHardTools().setDoorLight(1)
|
|
|
//room_action_nurse.text = "退出护理"
|
|
|
room_action_nurse.setBackgroundResource(R.mipmap.ic_bottom_btn_bg)
|
|
|
if (TextUtils.isEmpty(Constant.NursingTitle)) {
|
|
@@ -381,10 +338,7 @@ class CallingdoorActivity :BaseActivity<CallingdoorActivityPresenter, Callingdoo
|
|
|
}
|
|
|
|
|
|
private fun exitNursing() {
|
|
|
- if ("rk3128".equals(Build.MODEL) || "rk3368".equals(Build.MODEL)) {
|
|
|
- //SerialPortHelper.setDoorLight(1, "111") //白色
|
|
|
- DoorLightHelper.resetDoorLight()
|
|
|
- }
|
|
|
+ HardWareFactroy.getHardTools().setDoorLight(2)
|
|
|
//room_action_nurse.text = "进入护理"
|
|
|
room_action_nurse.setBackgroundResource(R.mipmap.bg_bottom_btn)
|
|
|
tv_room_name.text = Constant.ROOM_NAME
|
|
@@ -588,10 +542,10 @@ class CallingdoorActivity :BaseActivity<CallingdoorActivityPresenter, Callingdoo
|
|
|
//开启网络调试
|
|
|
private fun openNetwrokDebug() {
|
|
|
val commands = arrayListOf(
|
|
|
- "/system/bin/sh",
|
|
|
- "setprop service.adb.tcp.port 5555",
|
|
|
- "stop adbd",
|
|
|
- "start adbd"
|
|
|
+ "/system/bin/sh",
|
|
|
+ "setprop service.adb.tcp.port 5555",
|
|
|
+ "stop adbd",
|
|
|
+ "start adbd"
|
|
|
)
|
|
|
try {
|
|
|
RunAsRoot(commands)
|
|
@@ -606,7 +560,7 @@ class CallingdoorActivity :BaseActivity<CallingdoorActivityPresenter, Callingdoo
|
|
|
val os = DataOutputStream(p.outputStream)
|
|
|
for (tmpCmd in cmds) {
|
|
|
os.writeBytes(
|
|
|
- """
|
|
|
+ """
|
|
|
$tmpCmd
|
|
|
|
|
|
""".trimIndent()
|
|
@@ -617,12 +571,12 @@ class CallingdoorActivity :BaseActivity<CallingdoorActivityPresenter, Callingdoo
|
|
|
}
|
|
|
|
|
|
//设置串口监听
|
|
|
- private fun setSerialListener() {
|
|
|
+ fun setSerialListener() {
|
|
|
+ // 串口监听
|
|
|
SerialPortUtil.getInstance().setOnDataReceiveListener(this)
|
|
|
SerialPortUtil.getInstance().setOnDataReceiveStringListener(this)
|
|
|
//开启串口心跳
|
|
|
SerialPortUtil.getInstance().startHeartBeat()
|
|
|
-
|
|
|
SerialPortUtil433.getInstance().setOn433DataReceiveListener(this)
|
|
|
}
|
|
|
|
|
@@ -651,11 +605,7 @@ class CallingdoorActivity :BaseActivity<CallingdoorActivityPresenter, Callingdoo
|
|
|
}
|
|
|
MediaPlayHelper.getInstance().stopMusic()
|
|
|
|
|
|
- if ("rk3128".equals(Build.MODEL) || "rk3368".equals(Build.MODEL)) {
|
|
|
- SerialPortUtil.getInstance().closeHeart()
|
|
|
- SerialPortUtil.getInstance().closeSerialPort()
|
|
|
- SerialPortUtil433.getInstance().closeSerialPort()
|
|
|
- }
|
|
|
+ HardWareFactroy.getHardTools().unInit()
|
|
|
}
|
|
|
|
|
|
//数据加载错误
|
|
@@ -680,9 +630,9 @@ class CallingdoorActivity :BaseActivity<CallingdoorActivityPresenter, Callingdoo
|
|
|
override fun networkMonitor(state: NetState) {
|
|
|
state.filter(onMobile = {
|
|
|
|
|
|
- },onWifi = {
|
|
|
+ }, onWifi = {
|
|
|
|
|
|
- },offline = {
|
|
|
+ }, offline = {
|
|
|
|
|
|
})
|
|
|
}
|
|
@@ -958,7 +908,7 @@ class CallingdoorActivity :BaseActivity<CallingdoorActivityPresenter, Callingdoo
|
|
|
}
|
|
|
|
|
|
override fun serialPortBedOnclick(buffer: ByteArray) {
|
|
|
- Log.d("serialPortBedOnclick", "面板按键: " + buffer[0])
|
|
|
+// Log.d("serialPortBedOnclick", "面板按键: " + buffer[0])
|
|
|
//测试模式
|
|
|
if (testFragment == curFragment) {
|
|
|
if (buffer[0].toInt() == 1 || buffer[0].toInt() == 2) {
|
|
@@ -990,7 +940,7 @@ class CallingdoorActivity :BaseActivity<CallingdoorActivityPresenter, Callingdoo
|
|
|
runOnUiThread {
|
|
|
clickSosTime = System.currentTimeMillis()
|
|
|
if (Constant.TCP_CONNECTED) {
|
|
|
- SOSHelper.sosStart()
|
|
|
+ HardWareFactroy.getHardTools().setSOSStart()
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -1005,7 +955,8 @@ class CallingdoorActivity :BaseActivity<CallingdoorActivityPresenter, Callingdoo
|
|
|
runOnUiThread {
|
|
|
clickSosTime = System.currentTimeMillis()
|
|
|
if (Constant.TCP_CONNECTED) {
|
|
|
- SOSHelper.sosStart()
|
|
|
+
|
|
|
+ HardWareFactroy.getHardTools().setSOSStart()
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -1015,7 +966,7 @@ class CallingdoorActivity :BaseActivity<CallingdoorActivityPresenter, Callingdoo
|
|
|
override fun serialPortBedOnclickString(str: String) {
|
|
|
try {
|
|
|
val newStr = str.substring(str.indexOf("$") + 1, str.indexOf("#"))
|
|
|
- Log.d("serialPortBedString", "newStr==$newStr")
|
|
|
+// Log.d("serialPortBedString", "newStr==$newStr")
|
|
|
if (newStr.startsWith("V")) {
|
|
|
Constant.MCU_VERSION_NUMBER = newStr.substring(newStr.indexOf(",") + 1, 16)
|
|
|
}
|
|
@@ -1035,7 +986,7 @@ class CallingdoorActivity :BaseActivity<CallingdoorActivityPresenter, Callingdoo
|
|
|
//当前系统时间
|
|
|
val curTime = System.currentTimeMillis()
|
|
|
//收到的按键数据掐头去尾: fdb50831df --> b50831
|
|
|
- val cmd = receiveData.substring(2, receiveData.indexOf("df"))
|
|
|
+ val cmd = receiveData.substring(2, receiveData.indexOf("df"))
|
|
|
if (trans433Data != null) {
|
|
|
//如果与上次数据相同,1500毫秒内不再重复发
|
|
|
if (trans433Data!!.cmd == cmd && curTime - trans433Data!!.time < 1500) {
|
|
@@ -1159,7 +1110,8 @@ class CallingdoorActivity :BaseActivity<CallingdoorActivityPresenter, Callingdoo
|
|
|
} else if (tcpModel.type == TcpType.SOS) {
|
|
|
if (tcpModel.action == TcpAction.SOSAction.CANCEL) {
|
|
|
//紧急呼叫已处理
|
|
|
- SOSHelper.sosStop()
|
|
|
+
|
|
|
+ HardWareFactroy.getHardTools().setSOSStop()
|
|
|
}
|
|
|
} else if (tcpModel.type == TcpType.DEVICE) {
|
|
|
//检查APP版本
|
|
@@ -1206,12 +1158,12 @@ class CallingdoorActivity :BaseActivity<CallingdoorActivityPresenter, Callingdoo
|
|
|
}*/
|
|
|
callControl(tcpModel)
|
|
|
}
|
|
|
- } else if(tcpModel.action == TcpAction.TimeAction.SYNC && tcpModel.type==TcpType.TIME){
|
|
|
+ } else if (tcpModel.action == TcpAction.TimeAction.SYNC && tcpModel.type == TcpType.TIME) {
|
|
|
var time = 0L
|
|
|
- var timeZone="Asia/Shanghai"
|
|
|
+ var timeZone = "Asia/Shanghai"
|
|
|
if (canParseJson(tcpModel.data.toString())) {
|
|
|
val json = JSON.parseObject(tcpModel.data.toString())
|
|
|
- time = json.getLong("time")*1000
|
|
|
+ time = json.getLong("time") * 1000
|
|
|
timeZone = json.getString("time_zone")
|
|
|
} else {
|
|
|
time = tcpModel.data.toString().toLong() * 1000
|
|
@@ -1252,12 +1204,12 @@ class CallingdoorActivity :BaseActivity<CallingdoorActivityPresenter, Callingdoo
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- private fun canParseJson(str:String) : Boolean {
|
|
|
+ private fun canParseJson(str: String) : Boolean {
|
|
|
var result = false
|
|
|
try {
|
|
|
JSON.parseObject(str)
|
|
|
result=true
|
|
|
- }catch (e:java.lang.Exception){
|
|
|
+ }catch (e: java.lang.Exception){
|
|
|
result=false
|
|
|
}
|
|
|
return result
|
|
@@ -1507,9 +1459,9 @@ class CallingdoorActivity :BaseActivity<CallingdoorActivityPresenter, Callingdoo
|
|
|
|
|
|
//白天起始时间戳
|
|
|
var date = TimeHandle.getDateTime("yyyy-MM-dd")
|
|
|
- var dayStartTimeStamp = TimeHandle.dateToStamp(date+" "+SettingConfig.getInitialDayTime(this)+":00", "yyyy-MM-dd HH:mm:ss")
|
|
|
+ var dayStartTimeStamp = TimeHandle.dateToStamp(date + " " + SettingConfig.getInitialDayTime(this) + ":00", "yyyy-MM-dd HH:mm:ss")
|
|
|
//白天结束时间戳
|
|
|
- var endOfDayTimeStamp = TimeHandle.dateToStamp(date+" "+SettingConfig.getEndOfDay(this)+":00", "yyyy-MM-dd HH:mm:ss")
|
|
|
+ var endOfDayTimeStamp = TimeHandle.dateToStamp(date + " " + SettingConfig.getEndOfDay(this) + ":00", "yyyy-MM-dd HH:mm:ss")
|
|
|
|
|
|
val curInday = dayStartTimeStamp < currentTimestamp && currentTimestamp < endOfDayTimeStamp
|
|
|
if (curInday) {
|
|
@@ -1560,7 +1512,7 @@ class CallingdoorActivity :BaseActivity<CallingdoorActivityPresenter, Callingdoo
|
|
|
}
|
|
|
} else if (TextUtils.isEmpty(Constant.TCP_SERVER_URL)) {
|
|
|
//还未连接tcp服务器
|
|
|
- //presenter.loadTcpServerHost()
|
|
|
+// presenter.loadTcpServerHost()
|
|
|
}
|
|
|
} else if (intent.action == ConnectivityManager.CONNECTIVITY_ACTION) {
|
|
|
updateNetState()
|