|
@@ -16,6 +16,7 @@ import com.enation.javashop.net.engine.model.NetState
|
|
|
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.SosItem
|
|
|
import com.wdkl.app.ncs.conversion_box.databinding.MainActivityLayoutBinding
|
|
|
import com.wdkl.app.ncs.conversion_box.fragment.*
|
|
|
import com.wdkl.app.ncs.conversion_box.helper.*
|
|
@@ -93,6 +94,8 @@ class MainActivity :BaseActivity<MainActivityPresenter, MainActivityLayoutBindin
|
|
|
//对方设备id
|
|
|
var fromId: Int = -1
|
|
|
|
|
|
+ private var sosList = ArrayList<SosItem>()
|
|
|
+
|
|
|
|
|
|
override fun getLayId(): Int {
|
|
|
return R.layout.main_activity_layout;
|
|
@@ -407,15 +410,34 @@ class MainActivity :BaseActivity<MainActivityPresenter, MainActivityLayoutBindin
|
|
|
}
|
|
|
|
|
|
"C" -> {
|
|
|
- //紧急按钮: 一定时间内重复多次按无效
|
|
|
- if (System.currentTimeMillis() - clickSosTime > 10000) {
|
|
|
- startSosCall(addr)
|
|
|
- //开启门灯
|
|
|
- val doorAddr = getDoorLightAddrBySos(addr)
|
|
|
- if (!TextUtils.isEmpty(doorAddr)) {
|
|
|
- SerialPortHelper.openDoorLight(doorAddr)
|
|
|
+ synchronized(Unit) {
|
|
|
+ //紧急呼叫: 同一个按钮一定时间内重复多次按无效
|
|
|
+ val curTime = System.currentTimeMillis()
|
|
|
+ if (sosList.size > 0) {
|
|
|
+ val sosItem = sosList.stream().filter { addr.equals(it.addr) }.findFirst().orElse(null)
|
|
|
+
|
|
|
+ if (sosItem == null) {
|
|
|
+ //该按钮还没有呼叫过
|
|
|
+ //Log.e("serialport", "sosclick 111111111: " + addr)
|
|
|
+ val item = SosItem(addr, curTime)
|
|
|
+ sosList.add(item)
|
|
|
+ startSosCall(addr)
|
|
|
+ } else if (curTime - sosItem.time > 10000) {
|
|
|
+ //Log.e("serialport", "sosclick 222222222: " + addr)
|
|
|
+ //该紧急按钮按下距上次已超10s,重新呼叫
|
|
|
+ sosList.remove(sosItem)
|
|
|
+ val newItem = SosItem(addr, curTime)
|
|
|
+ sosList.add(newItem)
|
|
|
+ startSosCall(addr)
|
|
|
+ } /*else {
|
|
|
+ Log.e("serialport", "sosclick 重复呼叫,不处理: " + addr)
|
|
|
+ }*/
|
|
|
+ } else {
|
|
|
+ //Log.e("serialport", "sosclick 33333333: " + addr)
|
|
|
+ val item = SosItem(addr, curTime)
|
|
|
+ sosList.add(item)
|
|
|
+ startSosCall(addr)
|
|
|
}
|
|
|
- clickSosTime = System.currentTimeMillis()
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -489,6 +511,12 @@ class MainActivity :BaseActivity<MainActivityPresenter, MainActivityLayoutBindin
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ //开启门灯
|
|
|
+ val doorAddr = getDoorLightAddrBySos(uart)
|
|
|
+ if (!TextUtils.isEmpty(doorAddr)) {
|
|
|
+ SerialPortHelper.openDoorLight(doorAddr)
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
private fun cancelSosCall(uart: String) {
|