|
@@ -19,6 +19,7 @@ import com.google.gson.Gson
|
|
|
import com.wdkl.app.ncs.conversion_box.BuildConfig
|
|
|
import com.wdkl.app.ncs.conversion_box.R
|
|
|
import com.wdkl.app.ncs.conversion_box.bean.CallingItem
|
|
|
+import com.wdkl.app.ncs.conversion_box.bean.EventBean
|
|
|
import com.wdkl.app.ncs.conversion_box.bean.KeyFunc
|
|
|
import com.wdkl.app.ncs.conversion_box.bean.SosItem
|
|
|
import com.wdkl.app.ncs.conversion_box.databinding.MainActivityLayoutBinding
|
|
@@ -46,10 +47,7 @@ import com.wdkl.ncs.android.middleware.model.dto.TcpSeverDTO
|
|
|
import com.wdkl.ncs.android.middleware.model.vo.DeviceNurseInfoVO
|
|
|
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.DeviceUtil
|
|
|
-import com.wdkl.ncs.android.middleware.tcp.channel.EventUtil
|
|
|
-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.channel.*
|
|
|
import com.wdkl.ncs.android.middleware.tcp.dto.TcpCallback
|
|
|
import com.wdkl.ncs.android.middleware.tcp.dto.TcpModel
|
|
|
import com.wdkl.ncs.android.middleware.tcp.enums.DeviceTypeEnum
|
|
@@ -155,6 +153,7 @@ class MainActivity :BaseActivity<MainActivityPresenter, MainActivityLayoutBindin
|
|
|
|
|
|
private val keyFuncList = ArrayList<KeyFunc>()
|
|
|
private val nursingMap = HashMap<String, Int>()
|
|
|
+ private val eventList = ArrayList<EventBean>()
|
|
|
|
|
|
override fun getLayId(): Int {
|
|
|
return R.layout.main_activity_layout
|
|
@@ -320,14 +319,14 @@ class MainActivity :BaseActivity<MainActivityPresenter, MainActivityLayoutBindin
|
|
|
"start adbd"
|
|
|
)
|
|
|
try {
|
|
|
- RunAsRoot(commands)
|
|
|
+ runAsRoot(commands)
|
|
|
} catch (e: IOException) {
|
|
|
e.printStackTrace()
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
- private fun RunAsRoot(cmds: ArrayList<String>) {
|
|
|
+ private fun runAsRoot(cmds: ArrayList<String>) {
|
|
|
val p = Runtime.getRuntime().exec("su")
|
|
|
val os = DataOutputStream(p.outputStream)
|
|
|
for (tmpCmd in cmds) {
|
|
@@ -947,10 +946,6 @@ class MainActivity :BaseActivity<MainActivityPresenter, MainActivityLayoutBindin
|
|
|
//分机挂断
|
|
|
if (Constant.CALL_STATE == Constant.CALL_CALLING) {
|
|
|
if (addr.equals(curDeviceUart, true)) {
|
|
|
- /*EventBus.getDefault().post(MessageEvent("handoff", Constant.EVENT_END_CALL))
|
|
|
- Constant.CALL_STATE = Constant.CALL_STANDBY
|
|
|
- VoiceUtil.handoffAudioCall(curDeviceId, fromId, curInteractionVO!!.id)*/
|
|
|
-
|
|
|
handoffCall()
|
|
|
} else {
|
|
|
cancelOutCall(addr, false)
|
|
@@ -1047,7 +1042,7 @@ class MainActivity :BaseActivity<MainActivityPresenter, MainActivityLayoutBindin
|
|
|
|
|
|
"H" -> {
|
|
|
//护理按键
|
|
|
- val func = findKeyFunc("H")
|
|
|
+ /*val func = findKeyFunc("H")
|
|
|
if (func != null) {
|
|
|
if (func.type == TcpAction.SideAction.NURSING.name) {
|
|
|
val nurseMac = addr.toUpperCase(Locale.ROOT)
|
|
@@ -1067,7 +1062,12 @@ class MainActivity :BaseActivity<MainActivityPresenter, MainActivityLayoutBindin
|
|
|
}
|
|
|
} else {
|
|
|
Log.e(TAG, "error func: H护理按键")
|
|
|
- }
|
|
|
+ }*/
|
|
|
+
|
|
|
+ //进入护理
|
|
|
+ val nurseMac = addr.toUpperCase(Locale.ROOT)
|
|
|
+ nursingMap.put(nurseMac, -1)
|
|
|
+ sendNursing(addr)
|
|
|
}
|
|
|
|
|
|
"Y" -> {
|
|
@@ -1083,6 +1083,28 @@ class MainActivity :BaseActivity<MainActivityPresenter, MainActivityLayoutBindin
|
|
|
|
|
|
"R" -> {
|
|
|
//清除所有事件
|
|
|
+ //退出护理
|
|
|
+ val mac = addr.toUpperCase(Locale.ROOT)
|
|
|
+ Log.e(TAG,"nursing map size: " + nursingMap.size + ", " + mac)
|
|
|
+ if (nursingMap.size > 0 && nursingMap.containsKey(mac)) {
|
|
|
+ sendNursingEnd(addr)
|
|
|
+ nursingMap.remove(mac)
|
|
|
+ }
|
|
|
+
|
|
|
+ Log.e(TAG,"event list size: " + eventList.size + ", " + mac)
|
|
|
+ if (eventList.size > 0) {
|
|
|
+ val iterator = eventList.iterator()
|
|
|
+ while (iterator.hasNext()) {
|
|
|
+ val it = iterator.next()
|
|
|
+ Log.e(TAG, "mac: " + it.mac + ", interactionDO: " + it.interactionVO)
|
|
|
+ if (addr.equals(it.mac, true) && it.interactionVO != null) {
|
|
|
+ val tcpModel = EventUtil.cancelEvent(it.interactionVO)
|
|
|
+ TcpClient.getInstance().sendMsg(tcpModel.toJson())
|
|
|
+
|
|
|
+ iterator.remove()
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
"?" -> {
|
|
@@ -1226,7 +1248,20 @@ class MainActivity :BaseActivity<MainActivityPresenter, MainActivityLayoutBindin
|
|
|
for (frameDevice in FrameHelper.frameDeviceList) {
|
|
|
if (frameDevice.device != null && uart.equals(frameDevice.device.ethMac, true)) {
|
|
|
val tcpModel = EventUtil.eventKeyClick(frameDevice.device.id, id)
|
|
|
- TcpClient.getInstance().sendTcp(tcpModel, false, null)
|
|
|
+ val transaction: TcpCallback = object : TcpCallback(tcpModel.tid, uart) {
|
|
|
+ override fun onSuccess(jsonObject: JSONObject, tcpModel: TcpModel) {
|
|
|
+ //事件发送成功,记录该事件数据
|
|
|
+ val interactionVO = Gson().fromJson(tcpModel.data.toString(), InteractionVO::class.java)
|
|
|
+ val eventBean = EventBean(mac, interactionVO)
|
|
|
+ eventList.add(eventBean)
|
|
|
+ }
|
|
|
+
|
|
|
+ override fun onFailed(jsonObject: JSONObject) {
|
|
|
+ //
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ TcpClient.getInstance().sendTcp(tcpModel, false, transaction)
|
|
|
|
|
|
break
|
|
|
}
|
|
@@ -1268,7 +1303,10 @@ class MainActivity :BaseActivity<MainActivityPresenter, MainActivityLayoutBindin
|
|
|
|
|
|
val tcpModel = VoiceUtil.voiceCall(curDeviceId, RoleTypeEnum.NURSE.name)
|
|
|
val transaction: TcpCallback = object : TcpCallback(tcpModel.tid, uart) {
|
|
|
- override fun onSuccess(jsonObject: JSONObject) {
|
|
|
+ override fun onSuccess(
|
|
|
+ jsonObject: JSONObject,
|
|
|
+ tcpModel: TcpModel
|
|
|
+ ) {
|
|
|
if (Constant.CALL_STATE == Constant.CALL_STANDBY) {
|
|
|
Constant.CALL_STATE = Constant.CALL_OUTGOING
|
|
|
}
|
|
@@ -1347,29 +1385,61 @@ class MainActivity :BaseActivity<MainActivityPresenter, MainActivityLayoutBindin
|
|
|
if (FrameHelper.frameDeviceList.size > 0 ) {
|
|
|
for (frameDevice in FrameHelper.frameDeviceList) {
|
|
|
if (frameDevice.device != null && uart.equals(frameDevice.device.ethMac, true)) {
|
|
|
- updateCallText("SOS-->$uart, ${frameDevice.device.id}")
|
|
|
- //OtherUtil.sendSosCall(frameDevice.device.id)
|
|
|
+ if (frameDevice.device.deviceType == DeviceTypeEnum.SIMULATE_BLUE_CODE.value()) {
|
|
|
+ //blue code请求
|
|
|
+ updateCallText("Blue code-->$uart, ${frameDevice.device.id}")
|
|
|
+
|
|
|
+ val tcpModel = BlueCodeUtil.BlueCodeCall(frameDevice.device.id, frameDevice.frame.fullName)
|
|
|
+ val transaction: TcpCallback = object : TcpCallback(tcpModel.tid, uart) {
|
|
|
+ override fun onSuccess(
|
|
|
+ jsonObject: JSONObject,
|
|
|
+ tcpModel: TcpModel
|
|
|
+ ) {
|
|
|
+ //开启门灯
|
|
|
+ Log.d(TAG, "blue code call success, mac: $mac")
|
|
|
+ /*val doorAddr = getDoorLightAddrBySos(mac)
|
|
|
+ if (!TextUtils.isEmpty(doorAddr)) {
|
|
|
+ SerialPortHelper.openDoorLightRed(doorAddr)
|
|
|
+ }*/
|
|
|
+ }
|
|
|
|
|
|
- val tcpModel = OtherUtil.SOSCall(frameDevice.device.id, 0)
|
|
|
- val transaction: TcpCallback = object : TcpCallback(tcpModel.tid, uart) {
|
|
|
- override fun onSuccess(jsonObject: JSONObject) {
|
|
|
- //开启门灯
|
|
|
- Log.d(TAG, "sos call success, mac: $mac")
|
|
|
- val doorAddr = getDoorLightAddrBySos(mac)
|
|
|
- if (!TextUtils.isEmpty(doorAddr)) {
|
|
|
- SerialPortHelper.openDoorLightRed(doorAddr)
|
|
|
+ override fun onFailed(jsonObject: JSONObject) {
|
|
|
+ // 这里写发送失败的方法
|
|
|
+ val callbackString = jsonObject.getString(CALLBACK)
|
|
|
+ Log.e(TAG, "blue code call fail: $callbackString, mac: $mac")
|
|
|
+ //关闭紧急按钮
|
|
|
+ SerialPortHelper.closeEmergency(mac)
|
|
|
}
|
|
|
}
|
|
|
+ TcpClient.getInstance().sendTcp(tcpModel, false, transaction)
|
|
|
+ } else {
|
|
|
+ updateCallText("SOS-->$uart, ${frameDevice.device.id}")
|
|
|
+
|
|
|
+ val tcpModel = OtherUtil.SOSCall(frameDevice.device.id, 0)
|
|
|
+ val transaction: TcpCallback = object : TcpCallback(tcpModel.tid, uart) {
|
|
|
+ override fun onSuccess(
|
|
|
+ jsonObject: JSONObject,
|
|
|
+ tcpModel: TcpModel
|
|
|
+ ) {
|
|
|
+ //开启门灯
|
|
|
+ Log.d(TAG, "sos call success, mac: $mac")
|
|
|
+ val doorAddr = getDoorLightAddrBySos(mac)
|
|
|
+ if (!TextUtils.isEmpty(doorAddr)) {
|
|
|
+ SerialPortHelper.openDoorLightRed(doorAddr)
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
- override fun onFailed(jsonObject: JSONObject) {
|
|
|
- // 这里写发送失败的方法
|
|
|
- val callbackString = jsonObject.getString(CALLBACK)
|
|
|
- Log.e(TAG, "sos call fail: $callbackString, mac: $mac")
|
|
|
- //关闭紧急按钮
|
|
|
- SerialPortHelper.closeEmergency(mac)
|
|
|
+ override fun onFailed(jsonObject: JSONObject) {
|
|
|
+ // 这里写发送失败的方法
|
|
|
+ val callbackString = jsonObject.getString(CALLBACK)
|
|
|
+ Log.e(TAG, "sos call fail: $callbackString, mac: $mac")
|
|
|
+ //关闭紧急按钮
|
|
|
+ SerialPortHelper.closeEmergency(mac)
|
|
|
+ }
|
|
|
}
|
|
|
+ TcpClient.getInstance().sendTcp(tcpModel, false, transaction)
|
|
|
}
|
|
|
- TcpClient.getInstance().sendTcp(tcpModel, false, transaction)
|
|
|
+
|
|
|
break
|
|
|
}
|
|
|
}
|
|
@@ -1988,7 +2058,7 @@ class MainActivity :BaseActivity<MainActivityPresenter, MainActivityLayoutBindin
|
|
|
} else if (tcpModel.type == TcpType.SIDE) {
|
|
|
if (tcpModel.action == TcpAction.SideAction.NURSING) {
|
|
|
val interactionVO = Gson().fromJson(tcpModel.data.toString(), InteractionVO::class.java)
|
|
|
- nursingMap.set(interactionVO.fromEthMac.toUpperCase(Locale.ROOT), interactionVO.id)
|
|
|
+ nursingMap.set(interactionVO.fromEthIp.toUpperCase(Locale.ROOT), interactionVO.id)
|
|
|
} else {
|
|
|
//门灯控制
|
|
|
controlDoorLight(tcpModel)
|