|
@@ -43,6 +43,8 @@ import com.wdkl.ncs.android.middleware.common.MessageEvent
|
|
import com.wdkl.ncs.android.middleware.common.SipStatus
|
|
import com.wdkl.ncs.android.middleware.common.SipStatus
|
|
import com.wdkl.ncs.android.middleware.logic.contract.callingbed.CallingbedActivityContract
|
|
import com.wdkl.ncs.android.middleware.logic.contract.callingbed.CallingbedActivityContract
|
|
import com.wdkl.ncs.android.middleware.logic.presenter.callingbed.CallingbedActivityPresenter
|
|
import com.wdkl.ncs.android.middleware.logic.presenter.callingbed.CallingbedActivityPresenter
|
|
|
|
+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.AppVersionDO
|
|
import com.wdkl.ncs.android.middleware.model.dos.DeviceDO
|
|
import com.wdkl.ncs.android.middleware.model.dos.DeviceDO
|
|
import com.wdkl.ncs.android.middleware.model.dos.PartSettingDO
|
|
import com.wdkl.ncs.android.middleware.model.dos.PartSettingDO
|
|
@@ -58,8 +60,13 @@ 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.dto.TcpModel
|
|
import com.wdkl.ncs.android.middleware.tcp.enums.TcpAction
|
|
import com.wdkl.ncs.android.middleware.tcp.enums.TcpAction
|
|
import com.wdkl.ncs.android.middleware.tcp.enums.TcpType
|
|
import com.wdkl.ncs.android.middleware.tcp.enums.TcpType
|
|
|
|
+import com.wdkl.ncs.android.middleware.udp.ServerInfoUtil
|
|
|
|
+import com.wdkl.ncs.android.middleware.utils.CommonUtils
|
|
|
|
+import com.wdkl.ncs.janus.util.JanusConstant
|
|
import kotlinx.android.synthetic.main.callingbed_main_lay.*
|
|
import kotlinx.android.synthetic.main.callingbed_main_lay.*
|
|
import kotlinx.android.synthetic.main.view_title_layout.*
|
|
import kotlinx.android.synthetic.main.view_title_layout.*
|
|
|
|
+import okhttp3.OkHttpClient
|
|
|
|
+import okhttp3.Request
|
|
import org.greenrobot.eventbus.EventBus
|
|
import org.greenrobot.eventbus.EventBus
|
|
import org.greenrobot.eventbus.Subscribe
|
|
import org.greenrobot.eventbus.Subscribe
|
|
import org.greenrobot.eventbus.ThreadMode
|
|
import org.greenrobot.eventbus.ThreadMode
|
|
@@ -69,6 +76,7 @@ import java.io.IOException
|
|
import java.io.PrintWriter
|
|
import java.io.PrintWriter
|
|
import java.lang.Process
|
|
import java.lang.Process
|
|
import java.lang.ref.WeakReference
|
|
import java.lang.ref.WeakReference
|
|
|
|
+import java.util.concurrent.TimeUnit
|
|
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -81,6 +89,7 @@ import java.lang.ref.WeakReference
|
|
@Router(path = "/callingbed/main")
|
|
@Router(path = "/callingbed/main")
|
|
class CallingbedActivity :BaseActivity<CallingbedActivityPresenter, CallingbedMainLayBinding>(), CallingbedAgreement, CallingbedActivityContract.View, /*IVvsipServiceListener,*/
|
|
class CallingbedActivity :BaseActivity<CallingbedActivityPresenter, CallingbedMainLayBinding>(), CallingbedAgreement, CallingbedActivityContract.View, /*IVvsipServiceListener,*/
|
|
SerialPortUtil.ISerialPortBedOnclickEvent, SerialPortUtil.ISerialPortBedOnclickString {
|
|
SerialPortUtil.ISerialPortBedOnclickEvent, SerialPortUtil.ISerialPortBedOnclickString {
|
|
|
|
+ val TAG = CallingbedActivity::class.java.getSimpleName()
|
|
|
|
|
|
private lateinit var receiver: TimeReceiver
|
|
private lateinit var receiver: TimeReceiver
|
|
private lateinit var curFragment: String
|
|
private lateinit var curFragment: String
|
|
@@ -108,6 +117,8 @@ class CallingbedActivity :BaseActivity<CallingbedActivityPresenter, CallingbedMa
|
|
private var clickSosTime : Long = 0
|
|
private var clickSosTime : Long = 0
|
|
private var pressTime : Long = 0
|
|
private var pressTime : Long = 0
|
|
|
|
|
|
|
|
+ private var serverSuccess = false
|
|
|
|
+
|
|
//主信息
|
|
//主信息
|
|
private val mainFragment = "main_fragment"
|
|
private val mainFragment = "main_fragment"
|
|
//医嘱
|
|
//医嘱
|
|
@@ -144,7 +155,7 @@ class CallingbedActivity :BaseActivity<CallingbedActivityPresenter, CallingbedMa
|
|
//获取mac地址
|
|
//获取mac地址
|
|
Constant.LOCAL_MAC = NetHelper.getInstance().macAddress
|
|
Constant.LOCAL_MAC = NetHelper.getInstance().macAddress
|
|
|
|
|
|
- presenter.loadTcpServerHost()
|
|
|
|
|
|
+ //presenter.loadTcpServerHost()
|
|
|
|
|
|
//sip初始化
|
|
//sip初始化
|
|
//initSip()
|
|
//initSip()
|
|
@@ -152,7 +163,7 @@ class CallingbedActivity :BaseActivity<CallingbedActivityPresenter, CallingbedMa
|
|
//注册广播
|
|
//注册广播
|
|
regReceiver()
|
|
regReceiver()
|
|
//串口监听
|
|
//串口监听
|
|
- setSerialListner()
|
|
|
|
|
|
+ setSerialListener()
|
|
//音频初始化
|
|
//音频初始化
|
|
SoundPoolHelper.getInstance().init(applicationContext)
|
|
SoundPoolHelper.getInstance().init(applicationContext)
|
|
|
|
|
|
@@ -194,6 +205,96 @@ class CallingbedActivity :BaseActivity<CallingbedActivityPresenter, CallingbedMa
|
|
}
|
|
}
|
|
}.start()
|
|
}.start()
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ checkServer()
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ private fun checkServer() {
|
|
|
|
+ Thread {
|
|
|
|
+ while (!serverSuccess) {
|
|
|
|
+ val okHttpClient = OkHttpClient().newBuilder()
|
|
|
|
+ .connectTimeout(15 * 1000L, TimeUnit.MILLISECONDS)
|
|
|
|
+ .readTimeout(15 * 1000L, TimeUnit.MILLISECONDS)
|
|
|
|
+ .writeTimeout(15 * 1000L, TimeUnit.MILLISECONDS)
|
|
|
|
+ .build()
|
|
|
|
+ val url: String = CommonUtils.getUrl(BaseApplication.appContext)
|
|
|
|
+ val port: String = CommonUtils.getUrlPort(BaseApplication.appContext)
|
|
|
|
+ val request = Request.Builder()
|
|
|
|
+ .url("http://$url:$port/ncs_url/server_info")
|
|
|
|
+ .get()
|
|
|
|
+ .build()
|
|
|
|
+
|
|
|
|
+ try {
|
|
|
|
+ val response = okHttpClient.newCall(request).execute()
|
|
|
|
+ if (response != null && response.isSuccessful) {
|
|
|
|
+ //接口数据获取成功
|
|
|
|
+ serverSuccess = true
|
|
|
|
+ presenter.loadServerInfo()
|
|
|
|
+ } else {
|
|
|
|
+ //接口数据获取失败,可能服务器ip不对,尝试重新获取服务器ip
|
|
|
|
+ val info = ServerInfoUtil.get(Constant.LOCAL_MAC)
|
|
|
|
+ checkServerInfo(info)
|
|
|
|
+ }
|
|
|
|
+ } catch (e: Exception) {
|
|
|
|
+ //接口数据获取失败,可能服务器ip不对,尝试重新获取服务器ip
|
|
|
|
+ val info = ServerInfoUtil.get(Constant.LOCAL_MAC)
|
|
|
|
+ checkServerInfo(info)
|
|
|
|
+ //e.printStackTrace()
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ try {
|
|
|
|
+ Thread.sleep(30000)
|
|
|
|
+ } catch (ex: Exception) {
|
|
|
|
+ ex.printStackTrace()
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }.start()
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ private fun checkServerInfo(info: ThirdServerInfo?) {
|
|
|
|
+ //检查获取到的服务器ip是否可用,可用则重启app重新初始化,不可用则什么都不做,等待下次重新获取服务器ip
|
|
|
|
+ if (info != null) {
|
|
|
|
+ if (info.thirdServer == null || info.thirdServerPort == null) {
|
|
|
|
+ Log.d(TAG, "server info data null")
|
|
|
|
+ showMsgMain("get server data null")
|
|
|
|
+ } else {
|
|
|
|
+ val okHttpClient = OkHttpClient().newBuilder()
|
|
|
|
+ .connectTimeout(15 * 1000L, TimeUnit.MILLISECONDS)
|
|
|
|
+ .readTimeout(15 * 1000L, TimeUnit.MILLISECONDS)
|
|
|
|
+ .writeTimeout(15 * 1000L, TimeUnit.MILLISECONDS)
|
|
|
|
+ .build()
|
|
|
|
+ val request = Request.Builder()
|
|
|
|
+ .url("http://${info.thirdServer}:${info.thirdServerPort}/ncs_url/server_info")
|
|
|
|
+ .get()
|
|
|
|
+ .build()
|
|
|
|
+
|
|
|
|
+ try {
|
|
|
|
+ val response = okHttpClient.newCall(request).execute()
|
|
|
|
+ if (response != null && response.isSuccessful) {
|
|
|
|
+ //接口数据获取成功,稍后重启app
|
|
|
|
+ serverSuccess = true
|
|
|
|
+ CommonUtils.setUrl(activity, info.thirdServer)
|
|
|
|
+ CommonUtils.setUrlPort(activity, info.thirdServerPort.toString())
|
|
|
|
+ showMsgMain("restart...")
|
|
|
|
+ handler.postDelayed({
|
|
|
|
+ AppUpdateHelper.restartApp(activity)
|
|
|
|
+ }, 10000)
|
|
|
|
+ }
|
|
|
|
+ } catch (e: Exception) {
|
|
|
|
+ e.printStackTrace()
|
|
|
|
+ showMsgMain("server error or net error")
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ } else {
|
|
|
|
+ Log.d(TAG, "server info null")
|
|
|
|
+ showMsgMain("get server null")
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ private fun showMsgMain(msg: String) {
|
|
|
|
+ runOnUiThread {
|
|
|
|
+ showMessage(msg)
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
//开启网络调试
|
|
//开启网络调试
|
|
@@ -330,7 +431,7 @@ class CallingbedActivity :BaseActivity<CallingbedActivityPresenter, CallingbedMa
|
|
}
|
|
}
|
|
|
|
|
|
override fun setTcpServerHost(tcpSeverDTO: TcpSeverDTO) {
|
|
override fun setTcpServerHost(tcpSeverDTO: TcpSeverDTO) {
|
|
- if (loaded) {
|
|
|
|
|
|
+ /*if (loaded) {
|
|
return
|
|
return
|
|
}
|
|
}
|
|
loaded = true
|
|
loaded = true
|
|
@@ -354,6 +455,38 @@ class CallingbedActivity :BaseActivity<CallingbedActivityPresenter, CallingbedMa
|
|
//
|
|
//
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+ }).start()*/
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ override fun setServerInfo(data: ServerInfo) {
|
|
|
|
+ if (loaded) {
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ loaded = true
|
|
|
|
+
|
|
|
|
+ Constant.TCP_SERVER_URL = data.tcpLocalIp
|
|
|
|
+ Constant.TCP_PORT = data.tcpPort
|
|
|
|
+ Constant.TCP_HEART_BEAT = data.tcpIdleSeconds
|
|
|
|
+
|
|
|
|
+ JanusConstant.JANUS_URL = "ws://" + data.rtcLocalIp + ":" + data.rtcPort
|
|
|
|
+ JanusConstant.STUN_SERVER = arrayOf<String>(data.stunServer)
|
|
|
|
+ //JanusConstant.TURN_SERVER = data.turnServer
|
|
|
|
+
|
|
|
|
+ //开启TCP连接
|
|
|
|
+ startTcp()
|
|
|
|
+ showMessage("tcp开始连接...host: " + Constant.TCP_SERVER_URL + ", port: " + Constant.TCP_PORT)
|
|
|
|
+
|
|
|
|
+ Thread(Runnable {
|
|
|
|
+ while (!initialized) {
|
|
|
|
+ runOnUiThread(Runnable {
|
|
|
|
+ initDevice()
|
|
|
|
+ })
|
|
|
|
+ try {
|
|
|
|
+ Thread.sleep(20000)
|
|
|
|
+ } catch (e: Exception) {
|
|
|
|
+ //
|
|
|
|
+ }
|
|
|
|
+ }
|
|
}).start()
|
|
}).start()
|
|
}
|
|
}
|
|
|
|
|
|
@@ -513,7 +646,7 @@ class CallingbedActivity :BaseActivity<CallingbedActivityPresenter, CallingbedMa
|
|
}
|
|
}
|
|
|
|
|
|
//设置串口监听
|
|
//设置串口监听
|
|
- private fun setSerialListner() {
|
|
|
|
|
|
+ private fun setSerialListener() {
|
|
SerialPortUtil.getInstance().setOnDataReceiveListener(this)
|
|
SerialPortUtil.getInstance().setOnDataReceiveListener(this)
|
|
SerialPortUtil.getInstance().setOnDataReceiveStringListener(this)
|
|
SerialPortUtil.getInstance().setOnDataReceiveStringListener(this)
|
|
//开启串口心跳
|
|
//开启串口心跳
|
|
@@ -1178,10 +1311,10 @@ class CallingbedActivity :BaseActivity<CallingbedActivityPresenter, CallingbedMa
|
|
if (Constant.LATER_RESTART && Constant.CALL_STATE == Constant.CALL_STANDBY) {
|
|
if (Constant.LATER_RESTART && Constant.CALL_STATE == Constant.CALL_STANDBY) {
|
|
AppUpdateHelper.restartApp(activity)
|
|
AppUpdateHelper.restartApp(activity)
|
|
}
|
|
}
|
|
- } else if (TextUtils.isEmpty(Constant.TCP_SERVER_URL)) {
|
|
|
|
|
|
+ } /*else if (TextUtils.isEmpty(Constant.TCP_SERVER_URL)) {
|
|
//还未连接tcp服务器
|
|
//还未连接tcp服务器
|
|
presenter.loadTcpServerHost()
|
|
presenter.loadTcpServerHost()
|
|
- }
|
|
|
|
|
|
+ }*/
|
|
} else if (intent.action == ConnectivityManager.CONNECTIVITY_ACTION) {
|
|
} else if (intent.action == ConnectivityManager.CONNECTIVITY_ACTION) {
|
|
updateNetState()
|
|
updateNetState()
|
|
}
|
|
}
|