diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index d0b021a..ede224a 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -53,7 +53,6 @@ - diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index d0b021a..ede224a 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -53,7 +53,6 @@ - diff --git a/app/src/main/java/com/casic/br/operationsite/test/util/CurrentScene.kt b/app/src/main/java/com/casic/br/operationsite/test/util/CurrentScene.kt index d0b9221..683407c 100644 --- a/app/src/main/java/com/casic/br/operationsite/test/util/CurrentScene.kt +++ b/app/src/main/java/com/casic/br/operationsite/test/util/CurrentScene.kt @@ -12,11 +12,6 @@ object Disclosure : CurrentScene() /** - * 环境检测 - */ - object Environment : CurrentScene() - - /** * 人员监护 */ object Guardian : CurrentScene() diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index d0b021a..ede224a 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -53,7 +53,6 @@ - diff --git a/app/src/main/java/com/casic/br/operationsite/test/util/CurrentScene.kt b/app/src/main/java/com/casic/br/operationsite/test/util/CurrentScene.kt index d0b9221..683407c 100644 --- a/app/src/main/java/com/casic/br/operationsite/test/util/CurrentScene.kt +++ b/app/src/main/java/com/casic/br/operationsite/test/util/CurrentScene.kt @@ -12,11 +12,6 @@ object Disclosure : CurrentScene() /** - * 环境检测 - */ - object Environment : CurrentScene() - - /** * 人员监护 */ object Guardian : CurrentScene() diff --git a/app/src/main/java/com/casic/br/operationsite/test/util/LocaleConstant.kt b/app/src/main/java/com/casic/br/operationsite/test/util/LocaleConstant.kt index 4f7b554..63ae413 100644 --- a/app/src/main/java/com/casic/br/operationsite/test/util/LocaleConstant.kt +++ b/app/src/main/java/com/casic/br/operationsite/test/util/LocaleConstant.kt @@ -64,25 +64,11 @@ const val TCP_CONNECTED_CODE = 103 const val TCP_DISCONNECTED_CODE = 104 - //施工交底 - val START_CONSTRUCTION_COMMAND = - byteArrayOf(0xAA.toByte(), 0x01, 0x00, 0x93.toByte(), 0x04, 0x00, 0x98.toByte()) - val END_CONSTRUCTION_COMMAND = - byteArrayOf(0xAA.toByte(), 0x01, 0x00, 0x93.toByte(), 0x05, 0x00, 0x99.toByte()) - //作业前检测 - val START_ENV_COMMAND = - byteArrayOf(0xAA.toByte(), 0x01, 0x00, 0x93.toByte(), 0x06, 0x00, 0x9A.toByte()) - val CONFIRM_BLOWER_COMMAND = - byteArrayOf(0xAA.toByte(), 0x01, 0x00, 0x93.toByte(), 0x08, 0x00, 0x9C.toByte()) val CONFIRM_AIR_COMMAND = byteArrayOf(0xAA.toByte(), 0x01, 0x00, 0x93.toByte(), 0x19, 0x00, 0xAD.toByte()) - val END_ENV_COMMAND = - byteArrayOf(0xAA.toByte(), 0x01, 0x00, 0x93.toByte(), 0x09, 0x00, 0x9D.toByte()) //劳保检测 - val START_SUPPLIES_COMMAND = - byteArrayOf(0xAA.toByte(), 0x01, 0x00, 0x93.toByte(), 0x0A, 0x00, 0x9E.toByte()) val START_VIDEO_COMMAND = byteArrayOf(0xAA.toByte(), 0x01, 0x00, 0x93.toByte(), 0x11, 0x00, 0xA5.toByte()) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index d0b021a..ede224a 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -53,7 +53,6 @@ - diff --git a/app/src/main/java/com/casic/br/operationsite/test/util/CurrentScene.kt b/app/src/main/java/com/casic/br/operationsite/test/util/CurrentScene.kt index d0b9221..683407c 100644 --- a/app/src/main/java/com/casic/br/operationsite/test/util/CurrentScene.kt +++ b/app/src/main/java/com/casic/br/operationsite/test/util/CurrentScene.kt @@ -12,11 +12,6 @@ object Disclosure : CurrentScene() /** - * 环境检测 - */ - object Environment : CurrentScene() - - /** * 人员监护 */ object Guardian : CurrentScene() diff --git a/app/src/main/java/com/casic/br/operationsite/test/util/LocaleConstant.kt b/app/src/main/java/com/casic/br/operationsite/test/util/LocaleConstant.kt index 4f7b554..63ae413 100644 --- a/app/src/main/java/com/casic/br/operationsite/test/util/LocaleConstant.kt +++ b/app/src/main/java/com/casic/br/operationsite/test/util/LocaleConstant.kt @@ -64,25 +64,11 @@ const val TCP_CONNECTED_CODE = 103 const val TCP_DISCONNECTED_CODE = 104 - //施工交底 - val START_CONSTRUCTION_COMMAND = - byteArrayOf(0xAA.toByte(), 0x01, 0x00, 0x93.toByte(), 0x04, 0x00, 0x98.toByte()) - val END_CONSTRUCTION_COMMAND = - byteArrayOf(0xAA.toByte(), 0x01, 0x00, 0x93.toByte(), 0x05, 0x00, 0x99.toByte()) - //作业前检测 - val START_ENV_COMMAND = - byteArrayOf(0xAA.toByte(), 0x01, 0x00, 0x93.toByte(), 0x06, 0x00, 0x9A.toByte()) - val CONFIRM_BLOWER_COMMAND = - byteArrayOf(0xAA.toByte(), 0x01, 0x00, 0x93.toByte(), 0x08, 0x00, 0x9C.toByte()) val CONFIRM_AIR_COMMAND = byteArrayOf(0xAA.toByte(), 0x01, 0x00, 0x93.toByte(), 0x19, 0x00, 0xAD.toByte()) - val END_ENV_COMMAND = - byteArrayOf(0xAA.toByte(), 0x01, 0x00, 0x93.toByte(), 0x09, 0x00, 0x9D.toByte()) //劳保检测 - val START_SUPPLIES_COMMAND = - byteArrayOf(0xAA.toByte(), 0x01, 0x00, 0x93.toByte(), 0x0A, 0x00, 0x9E.toByte()) val START_VIDEO_COMMAND = byteArrayOf(0xAA.toByte(), 0x01, 0x00, 0x93.toByte(), 0x11, 0x00, 0xA5.toByte()) diff --git a/app/src/main/java/com/casic/br/operationsite/test/util/tcp/SocketManager.kt b/app/src/main/java/com/casic/br/operationsite/test/util/tcp/SocketManager.kt index e88ee37..fa76606 100644 --- a/app/src/main/java/com/casic/br/operationsite/test/util/tcp/SocketManager.kt +++ b/app/src/main/java/com/casic/br/operationsite/test/util/tcp/SocketManager.kt @@ -1,13 +1,16 @@ package com.casic.br.operationsite.test.util.tcp -import kotlinx.coroutines.CoroutineScope +import androidx.lifecycle.Lifecycle +import androidx.lifecycle.LifecycleOwner +import androidx.lifecycle.LifecycleRegistry +import androidx.lifecycle.lifecycleScope import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch -import kotlinx.coroutines.withContext -class SocketManager private constructor() : ISocketListener { +class SocketManager private constructor() : LifecycleOwner, ISocketListener { private val kTag = "SocketManager" + private val registry = LifecycleRegistry(this) var nettyClient: SocketClient = SocketClient() companion object { @@ -15,14 +18,14 @@ } fun connectTcpServer(hostname: String, port: Int) { - Thread { + lifecycleScope.launch(Dispatchers.IO) { if (!nettyClient.connectStatus) { - nettyClient.setSocketListener(this) + nettyClient.setSocketListener(this@SocketManager) nettyClient.connect(hostname, port) } else { nettyClient.disconnect() } - }.start() + } } override fun onMessageResponse(data: ByteArray?) { @@ -34,14 +37,16 @@ } fun send(data: ByteArray) { - CoroutineScope(Dispatchers.Main).launch { - withContext(Dispatchers.IO) { - nettyClient.sendData(data) - } + lifecycleScope.launch(Dispatchers.IO) { + nettyClient.sendData(data) } } fun close() { nettyClient.disconnect() } + + override fun getLifecycle(): Lifecycle { + return registry + } } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index d0b021a..ede224a 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -53,7 +53,6 @@ - diff --git a/app/src/main/java/com/casic/br/operationsite/test/util/CurrentScene.kt b/app/src/main/java/com/casic/br/operationsite/test/util/CurrentScene.kt index d0b9221..683407c 100644 --- a/app/src/main/java/com/casic/br/operationsite/test/util/CurrentScene.kt +++ b/app/src/main/java/com/casic/br/operationsite/test/util/CurrentScene.kt @@ -12,11 +12,6 @@ object Disclosure : CurrentScene() /** - * 环境检测 - */ - object Environment : CurrentScene() - - /** * 人员监护 */ object Guardian : CurrentScene() diff --git a/app/src/main/java/com/casic/br/operationsite/test/util/LocaleConstant.kt b/app/src/main/java/com/casic/br/operationsite/test/util/LocaleConstant.kt index 4f7b554..63ae413 100644 --- a/app/src/main/java/com/casic/br/operationsite/test/util/LocaleConstant.kt +++ b/app/src/main/java/com/casic/br/operationsite/test/util/LocaleConstant.kt @@ -64,25 +64,11 @@ const val TCP_CONNECTED_CODE = 103 const val TCP_DISCONNECTED_CODE = 104 - //施工交底 - val START_CONSTRUCTION_COMMAND = - byteArrayOf(0xAA.toByte(), 0x01, 0x00, 0x93.toByte(), 0x04, 0x00, 0x98.toByte()) - val END_CONSTRUCTION_COMMAND = - byteArrayOf(0xAA.toByte(), 0x01, 0x00, 0x93.toByte(), 0x05, 0x00, 0x99.toByte()) - //作业前检测 - val START_ENV_COMMAND = - byteArrayOf(0xAA.toByte(), 0x01, 0x00, 0x93.toByte(), 0x06, 0x00, 0x9A.toByte()) - val CONFIRM_BLOWER_COMMAND = - byteArrayOf(0xAA.toByte(), 0x01, 0x00, 0x93.toByte(), 0x08, 0x00, 0x9C.toByte()) val CONFIRM_AIR_COMMAND = byteArrayOf(0xAA.toByte(), 0x01, 0x00, 0x93.toByte(), 0x19, 0x00, 0xAD.toByte()) - val END_ENV_COMMAND = - byteArrayOf(0xAA.toByte(), 0x01, 0x00, 0x93.toByte(), 0x09, 0x00, 0x9D.toByte()) //劳保检测 - val START_SUPPLIES_COMMAND = - byteArrayOf(0xAA.toByte(), 0x01, 0x00, 0x93.toByte(), 0x0A, 0x00, 0x9E.toByte()) val START_VIDEO_COMMAND = byteArrayOf(0xAA.toByte(), 0x01, 0x00, 0x93.toByte(), 0x11, 0x00, 0xA5.toByte()) diff --git a/app/src/main/java/com/casic/br/operationsite/test/util/tcp/SocketManager.kt b/app/src/main/java/com/casic/br/operationsite/test/util/tcp/SocketManager.kt index e88ee37..fa76606 100644 --- a/app/src/main/java/com/casic/br/operationsite/test/util/tcp/SocketManager.kt +++ b/app/src/main/java/com/casic/br/operationsite/test/util/tcp/SocketManager.kt @@ -1,13 +1,16 @@ package com.casic.br.operationsite.test.util.tcp -import kotlinx.coroutines.CoroutineScope +import androidx.lifecycle.Lifecycle +import androidx.lifecycle.LifecycleOwner +import androidx.lifecycle.LifecycleRegistry +import androidx.lifecycle.lifecycleScope import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch -import kotlinx.coroutines.withContext -class SocketManager private constructor() : ISocketListener { +class SocketManager private constructor() : LifecycleOwner, ISocketListener { private val kTag = "SocketManager" + private val registry = LifecycleRegistry(this) var nettyClient: SocketClient = SocketClient() companion object { @@ -15,14 +18,14 @@ } fun connectTcpServer(hostname: String, port: Int) { - Thread { + lifecycleScope.launch(Dispatchers.IO) { if (!nettyClient.connectStatus) { - nettyClient.setSocketListener(this) + nettyClient.setSocketListener(this@SocketManager) nettyClient.connect(hostname, port) } else { nettyClient.disconnect() } - }.start() + } } override fun onMessageResponse(data: ByteArray?) { @@ -34,14 +37,16 @@ } fun send(data: ByteArray) { - CoroutineScope(Dispatchers.Main).launch { - withContext(Dispatchers.IO) { - nettyClient.sendData(data) - } + lifecycleScope.launch(Dispatchers.IO) { + nettyClient.sendData(data) } } fun close() { nettyClient.disconnect() } + + override fun getLifecycle(): Lifecycle { + return registry + } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/operationsite/test/util/websocket/WebSocketManager.kt b/app/src/main/java/com/casic/br/operationsite/test/util/websocket/WebSocketManager.kt index b5741e9..4eddb03 100644 --- a/app/src/main/java/com/casic/br/operationsite/test/util/websocket/WebSocketManager.kt +++ b/app/src/main/java/com/casic/br/operationsite/test/util/websocket/WebSocketManager.kt @@ -126,7 +126,6 @@ } CurrentScene.Disclosure -> {} - CurrentScene.Environment -> {} CurrentScene.Guardian -> { val msg = GuardiansActivity.weakReferenceHandler.obtainMessage() diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index d0b021a..ede224a 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -53,7 +53,6 @@ - diff --git a/app/src/main/java/com/casic/br/operationsite/test/util/CurrentScene.kt b/app/src/main/java/com/casic/br/operationsite/test/util/CurrentScene.kt index d0b9221..683407c 100644 --- a/app/src/main/java/com/casic/br/operationsite/test/util/CurrentScene.kt +++ b/app/src/main/java/com/casic/br/operationsite/test/util/CurrentScene.kt @@ -12,11 +12,6 @@ object Disclosure : CurrentScene() /** - * 环境检测 - */ - object Environment : CurrentScene() - - /** * 人员监护 */ object Guardian : CurrentScene() diff --git a/app/src/main/java/com/casic/br/operationsite/test/util/LocaleConstant.kt b/app/src/main/java/com/casic/br/operationsite/test/util/LocaleConstant.kt index 4f7b554..63ae413 100644 --- a/app/src/main/java/com/casic/br/operationsite/test/util/LocaleConstant.kt +++ b/app/src/main/java/com/casic/br/operationsite/test/util/LocaleConstant.kt @@ -64,25 +64,11 @@ const val TCP_CONNECTED_CODE = 103 const val TCP_DISCONNECTED_CODE = 104 - //施工交底 - val START_CONSTRUCTION_COMMAND = - byteArrayOf(0xAA.toByte(), 0x01, 0x00, 0x93.toByte(), 0x04, 0x00, 0x98.toByte()) - val END_CONSTRUCTION_COMMAND = - byteArrayOf(0xAA.toByte(), 0x01, 0x00, 0x93.toByte(), 0x05, 0x00, 0x99.toByte()) - //作业前检测 - val START_ENV_COMMAND = - byteArrayOf(0xAA.toByte(), 0x01, 0x00, 0x93.toByte(), 0x06, 0x00, 0x9A.toByte()) - val CONFIRM_BLOWER_COMMAND = - byteArrayOf(0xAA.toByte(), 0x01, 0x00, 0x93.toByte(), 0x08, 0x00, 0x9C.toByte()) val CONFIRM_AIR_COMMAND = byteArrayOf(0xAA.toByte(), 0x01, 0x00, 0x93.toByte(), 0x19, 0x00, 0xAD.toByte()) - val END_ENV_COMMAND = - byteArrayOf(0xAA.toByte(), 0x01, 0x00, 0x93.toByte(), 0x09, 0x00, 0x9D.toByte()) //劳保检测 - val START_SUPPLIES_COMMAND = - byteArrayOf(0xAA.toByte(), 0x01, 0x00, 0x93.toByte(), 0x0A, 0x00, 0x9E.toByte()) val START_VIDEO_COMMAND = byteArrayOf(0xAA.toByte(), 0x01, 0x00, 0x93.toByte(), 0x11, 0x00, 0xA5.toByte()) diff --git a/app/src/main/java/com/casic/br/operationsite/test/util/tcp/SocketManager.kt b/app/src/main/java/com/casic/br/operationsite/test/util/tcp/SocketManager.kt index e88ee37..fa76606 100644 --- a/app/src/main/java/com/casic/br/operationsite/test/util/tcp/SocketManager.kt +++ b/app/src/main/java/com/casic/br/operationsite/test/util/tcp/SocketManager.kt @@ -1,13 +1,16 @@ package com.casic.br.operationsite.test.util.tcp -import kotlinx.coroutines.CoroutineScope +import androidx.lifecycle.Lifecycle +import androidx.lifecycle.LifecycleOwner +import androidx.lifecycle.LifecycleRegistry +import androidx.lifecycle.lifecycleScope import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch -import kotlinx.coroutines.withContext -class SocketManager private constructor() : ISocketListener { +class SocketManager private constructor() : LifecycleOwner, ISocketListener { private val kTag = "SocketManager" + private val registry = LifecycleRegistry(this) var nettyClient: SocketClient = SocketClient() companion object { @@ -15,14 +18,14 @@ } fun connectTcpServer(hostname: String, port: Int) { - Thread { + lifecycleScope.launch(Dispatchers.IO) { if (!nettyClient.connectStatus) { - nettyClient.setSocketListener(this) + nettyClient.setSocketListener(this@SocketManager) nettyClient.connect(hostname, port) } else { nettyClient.disconnect() } - }.start() + } } override fun onMessageResponse(data: ByteArray?) { @@ -34,14 +37,16 @@ } fun send(data: ByteArray) { - CoroutineScope(Dispatchers.Main).launch { - withContext(Dispatchers.IO) { - nettyClient.sendData(data) - } + lifecycleScope.launch(Dispatchers.IO) { + nettyClient.sendData(data) } } fun close() { nettyClient.disconnect() } + + override fun getLifecycle(): Lifecycle { + return registry + } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/operationsite/test/util/websocket/WebSocketManager.kt b/app/src/main/java/com/casic/br/operationsite/test/util/websocket/WebSocketManager.kt index b5741e9..4eddb03 100644 --- a/app/src/main/java/com/casic/br/operationsite/test/util/websocket/WebSocketManager.kt +++ b/app/src/main/java/com/casic/br/operationsite/test/util/websocket/WebSocketManager.kt @@ -126,7 +126,6 @@ } CurrentScene.Disclosure -> {} - CurrentScene.Environment -> {} CurrentScene.Guardian -> { val msg = GuardiansActivity.weakReferenceHandler.obtainMessage() diff --git a/app/src/main/java/com/casic/br/operationsite/test/view/EnvironmentActivity.kt b/app/src/main/java/com/casic/br/operationsite/test/view/EnvironmentActivity.kt deleted file mode 100644 index d5afc88..0000000 --- a/app/src/main/java/com/casic/br/operationsite/test/view/EnvironmentActivity.kt +++ /dev/null @@ -1,246 +0,0 @@ -package com.casic.br.operationsite.test.view - -import android.os.Bundle -import android.os.Handler -import android.os.Message -import android.widget.LinearLayout -import androidx.lifecycle.ViewModelProvider -import com.casic.br.operationsite.test.R -import com.casic.br.operationsite.test.callback.OnImageCompressListener -import com.casic.br.operationsite.test.databinding.ActivityEnvironmentBinding -import com.casic.br.operationsite.test.extensions.compressImage -import com.casic.br.operationsite.test.extensions.initImmersionBar -import com.casic.br.operationsite.test.extensions.upload -import com.casic.br.operationsite.test.util.CurrentScene -import com.casic.br.operationsite.test.util.LocaleConstant -import com.casic.br.operationsite.test.util.RuntimeCache -import com.casic.br.operationsite.test.util.VideoPlayerManager -import com.casic.br.operationsite.test.util.tcp.SocketManager -import com.casic.br.operationsite.test.vm.ConstructionCheckViewModel -import com.casic.br.operationsite.test.vm.UploadFileViewModel -import com.casic.br.operationsite.test.vm.WorkSiteViewModel -import com.casic.br.operationsite.test.widget.BottomControlSheet -import com.pengxh.kt.lite.base.KotlinBaseActivity -import com.pengxh.kt.lite.extensions.dp2px -import com.pengxh.kt.lite.extensions.getScreenWidth -import com.pengxh.kt.lite.extensions.navigatePageTo -import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.ActivityStackManager -import com.pengxh.kt.lite.utils.WeakReferenceHandler -import com.pengxh.kt.lite.widget.TitleBarView -import com.shuyu.gsyvideoplayer.GSYVideoManager -import java.io.File -import java.util.Timer -import java.util.TimerTask -import java.util.UUID - - -class EnvironmentActivity : KotlinBaseActivity(), Handler.Callback { - - companion object { - lateinit var weakReferenceHandler: WeakReferenceHandler - } - - private val kTag = "EnvironmentActivity" - private val context = this - private lateinit var constructionCheckViewModel: ConstructionCheckViewModel - private lateinit var uploadFileViewModel: UploadFileViewModel - private lateinit var workSiteViewModel: WorkSiteViewModel - private lateinit var timer: Timer - private var isConfirmedFirst = false - private var isConfirmedSecond = false - private var isConfirmedThird = false - private var imagePath = "" - - override fun handleMessage(msg: Message): Boolean { - if (msg.what == LocaleConstant.WEBSOCKET_MESSAGE_CODE) { - imagePath = msg.obj as String - //自动上传到服务器 - imagePath.compressImage(this, object : OnImageCompressListener { - override fun onSuccess(file: File) { - //上传图片 - uploadFileViewModel.uploadImage(context, file) - } - - override fun onError(e: Throwable) { - e.printStackTrace() - } - }) - } - return true - } - - override fun initEvent() { - binding.startEnvCheckButton.setOnClickListener { - if (!SocketManager.get.nettyClient.connectStatus) { - "指令发送失败,请确认是否处于同一网段".show(this) - return@setOnClickListener - } -// SocketManager.get.send(LocaleConstant.START_ENV_COMMAND) - constructionCheckViewModel.setCurrentPhase( - LocaleConstant.AI_BASE_IP, "before_operation_environment" - ) - } - - binding.showControlViewButton.setOnClickListener { - BottomControlSheet(this).show() - } - - binding.blowerImageView.setOnClickListener { - navigatePageTo(0, arrayListOf(imagePath)) - } - - binding.confirmBlowerButton.setOnClickListener { - if (!SocketManager.get.nettyClient.connectStatus) { - "指令发送失败,请确认是否处于同一网段".show(this) - return@setOnClickListener - } -// SocketManager.get.send(LocaleConstant.CONFIRM_BLOWER_COMMAND) - } - - binding.firstConfirmButton.setOnClickListener { - isConfirmedFirst = false - isConfirmedSecond = true - isConfirmedThird = false - } - - binding.secondConfirmButton.setOnClickListener { - isConfirmedFirst = false - isConfirmedSecond = false - isConfirmedThird = true - } - - binding.thirdConfirmButton.setOnClickListener { - if (isConfirmedSecond) { - "请先确认井中气体浓度".show(this) - return@setOnClickListener - } - isConfirmedFirst = false - isConfirmedSecond = false - isConfirmedThird = false - } - - binding.endEnvCheckButton.setOnClickListener { - if (!SocketManager.get.nettyClient.connectStatus) { - "指令发送失败,请确认是否处于同一网段".show(this) - return@setOnClickListener - } -// SocketManager.get.send(LocaleConstant.END_ENV_COMMAND) - navigatePageTo() - } - } - - override fun initOnCreate(savedInstanceState: Bundle?) { - ActivityStackManager.addActivity(this) - - weakReferenceHandler = WeakReferenceHandler(this) - constructionCheckViewModel = ViewModelProvider(this)[ConstructionCheckViewModel::class.java] - - uploadFileViewModel = ViewModelProvider(this)[UploadFileViewModel::class.java] - uploadFileViewModel.resultModel.observe(this) { - if (it.code == 200) { - val path = it.data.toString() - if (path.isNotBlank()) { - val map = HashMap() - map["id"] = RuntimeCache.uploadFileTaskId - map["deviceCode"] = "YTJ_010002" - map["imageId"] = UUID.randomUUID().toString() - map["scenario"] = "before_operation_environment" - map["image"] = path - map["index"] = "1" - map["base64"] = "" - map.upload() - } - } - } - - //动态设置rtspPlayerView宽高 - val params = binding.rtspPlayerView.layoutParams as LinearLayout.LayoutParams - val videoWidth = getScreenWidth() - 20.dp2px(this) - val videoHeight = videoWidth * (9f / 16) - params.width = videoWidth - params.height = videoHeight.toInt() - binding.rtspPlayerView.layoutParams = params - VideoPlayerManager.setGSYVideoPlayerOptions( - binding.rtspPlayerView, LocaleConstant.SUB_RTSP_URL - ) - - workSiteViewModel = ViewModelProvider(this)[WorkSiteViewModel::class.java] - workSiteViewModel.workerResult.observe(this) { - if (it.code == 200) { - it.data.first().apply { - RuntimeCache.userHelmetCode = hatCode - - if (isConfirmedFirst) { - binding.firstCOValueView.text = "一氧化碳:${co}ppm" - binding.firstCH4ValueView.text = "可燃气:${gas}%LEL" - binding.firstH2SValueView.text = "硫化氢:${co}ppm" - binding.firstO2ValueView.text = "氧气:${o2}%VOL" - binding.firstValueUpdateView.text = "更新时间:${gasTime}" - } - - if (isConfirmedSecond) { - binding.secondCOValueView.text = "一氧化碳:${co}ppm" - binding.secondCH4ValueView.text = "可燃气:${gas}%LEL" - binding.secondH2SValueView.text = "硫化氢:${co}ppm" - binding.secondO2ValueView.text = "氧气:${o2}%VOL" - binding.secondValueUpdateView.text = "更新时间:${gasTime}" - } - - if (isConfirmedThird) { - binding.thirdCOValueView.text = "一氧化碳:${co}ppm" - binding.thirdCH4ValueView.text = "可燃气:${gas}%LEL" - binding.thirdH2SValueView.text = "硫化氢:${co}ppm" - binding.thirdO2ValueView.text = "氧气:${o2}%VOL" - binding.thirdValueUpdateView.text = "更新时间:${gasTime}" - } - } - } - } - timer = Timer() - timer.schedule(object : TimerTask() { - override fun run() { - workSiteViewModel.getWorkers(context, RuntimeCache.projectId) - } - }, 0, 2000) - } - - override fun initViewBinding(): ActivityEnvironmentBinding { - return ActivityEnvironmentBinding.inflate(layoutInflater) - } - - override fun observeRequestState() { - - } - - override fun setupTopBarLayout() { - binding.rootView.initImmersionBar(this, false, R.color.mainThemeColor) - binding.titleView.setOnClickListener(object : TitleBarView.OnClickListener { - override fun onLeftClick() { - finish() - } - - override fun onRightClick() { - - } - }) - } - - override fun onDestroy() { - super.onDestroy() - GSYVideoManager.releaseAllVideos() - timer.cancel() - } - - override fun onPause() { - super.onPause() - GSYVideoManager.onPause() - } - - override fun onResume() { - super.onResume() - GSYVideoManager.onResume() - isConfirmedFirst = true - RuntimeCache.currentScene = CurrentScene.Environment - } -} \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index d0b021a..ede224a 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -53,7 +53,6 @@ - diff --git a/app/src/main/java/com/casic/br/operationsite/test/util/CurrentScene.kt b/app/src/main/java/com/casic/br/operationsite/test/util/CurrentScene.kt index d0b9221..683407c 100644 --- a/app/src/main/java/com/casic/br/operationsite/test/util/CurrentScene.kt +++ b/app/src/main/java/com/casic/br/operationsite/test/util/CurrentScene.kt @@ -12,11 +12,6 @@ object Disclosure : CurrentScene() /** - * 环境检测 - */ - object Environment : CurrentScene() - - /** * 人员监护 */ object Guardian : CurrentScene() diff --git a/app/src/main/java/com/casic/br/operationsite/test/util/LocaleConstant.kt b/app/src/main/java/com/casic/br/operationsite/test/util/LocaleConstant.kt index 4f7b554..63ae413 100644 --- a/app/src/main/java/com/casic/br/operationsite/test/util/LocaleConstant.kt +++ b/app/src/main/java/com/casic/br/operationsite/test/util/LocaleConstant.kt @@ -64,25 +64,11 @@ const val TCP_CONNECTED_CODE = 103 const val TCP_DISCONNECTED_CODE = 104 - //施工交底 - val START_CONSTRUCTION_COMMAND = - byteArrayOf(0xAA.toByte(), 0x01, 0x00, 0x93.toByte(), 0x04, 0x00, 0x98.toByte()) - val END_CONSTRUCTION_COMMAND = - byteArrayOf(0xAA.toByte(), 0x01, 0x00, 0x93.toByte(), 0x05, 0x00, 0x99.toByte()) - //作业前检测 - val START_ENV_COMMAND = - byteArrayOf(0xAA.toByte(), 0x01, 0x00, 0x93.toByte(), 0x06, 0x00, 0x9A.toByte()) - val CONFIRM_BLOWER_COMMAND = - byteArrayOf(0xAA.toByte(), 0x01, 0x00, 0x93.toByte(), 0x08, 0x00, 0x9C.toByte()) val CONFIRM_AIR_COMMAND = byteArrayOf(0xAA.toByte(), 0x01, 0x00, 0x93.toByte(), 0x19, 0x00, 0xAD.toByte()) - val END_ENV_COMMAND = - byteArrayOf(0xAA.toByte(), 0x01, 0x00, 0x93.toByte(), 0x09, 0x00, 0x9D.toByte()) //劳保检测 - val START_SUPPLIES_COMMAND = - byteArrayOf(0xAA.toByte(), 0x01, 0x00, 0x93.toByte(), 0x0A, 0x00, 0x9E.toByte()) val START_VIDEO_COMMAND = byteArrayOf(0xAA.toByte(), 0x01, 0x00, 0x93.toByte(), 0x11, 0x00, 0xA5.toByte()) diff --git a/app/src/main/java/com/casic/br/operationsite/test/util/tcp/SocketManager.kt b/app/src/main/java/com/casic/br/operationsite/test/util/tcp/SocketManager.kt index e88ee37..fa76606 100644 --- a/app/src/main/java/com/casic/br/operationsite/test/util/tcp/SocketManager.kt +++ b/app/src/main/java/com/casic/br/operationsite/test/util/tcp/SocketManager.kt @@ -1,13 +1,16 @@ package com.casic.br.operationsite.test.util.tcp -import kotlinx.coroutines.CoroutineScope +import androidx.lifecycle.Lifecycle +import androidx.lifecycle.LifecycleOwner +import androidx.lifecycle.LifecycleRegistry +import androidx.lifecycle.lifecycleScope import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch -import kotlinx.coroutines.withContext -class SocketManager private constructor() : ISocketListener { +class SocketManager private constructor() : LifecycleOwner, ISocketListener { private val kTag = "SocketManager" + private val registry = LifecycleRegistry(this) var nettyClient: SocketClient = SocketClient() companion object { @@ -15,14 +18,14 @@ } fun connectTcpServer(hostname: String, port: Int) { - Thread { + lifecycleScope.launch(Dispatchers.IO) { if (!nettyClient.connectStatus) { - nettyClient.setSocketListener(this) + nettyClient.setSocketListener(this@SocketManager) nettyClient.connect(hostname, port) } else { nettyClient.disconnect() } - }.start() + } } override fun onMessageResponse(data: ByteArray?) { @@ -34,14 +37,16 @@ } fun send(data: ByteArray) { - CoroutineScope(Dispatchers.Main).launch { - withContext(Dispatchers.IO) { - nettyClient.sendData(data) - } + lifecycleScope.launch(Dispatchers.IO) { + nettyClient.sendData(data) } } fun close() { nettyClient.disconnect() } + + override fun getLifecycle(): Lifecycle { + return registry + } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/operationsite/test/util/websocket/WebSocketManager.kt b/app/src/main/java/com/casic/br/operationsite/test/util/websocket/WebSocketManager.kt index b5741e9..4eddb03 100644 --- a/app/src/main/java/com/casic/br/operationsite/test/util/websocket/WebSocketManager.kt +++ b/app/src/main/java/com/casic/br/operationsite/test/util/websocket/WebSocketManager.kt @@ -126,7 +126,6 @@ } CurrentScene.Disclosure -> {} - CurrentScene.Environment -> {} CurrentScene.Guardian -> { val msg = GuardiansActivity.weakReferenceHandler.obtainMessage() diff --git a/app/src/main/java/com/casic/br/operationsite/test/view/EnvironmentActivity.kt b/app/src/main/java/com/casic/br/operationsite/test/view/EnvironmentActivity.kt deleted file mode 100644 index d5afc88..0000000 --- a/app/src/main/java/com/casic/br/operationsite/test/view/EnvironmentActivity.kt +++ /dev/null @@ -1,246 +0,0 @@ -package com.casic.br.operationsite.test.view - -import android.os.Bundle -import android.os.Handler -import android.os.Message -import android.widget.LinearLayout -import androidx.lifecycle.ViewModelProvider -import com.casic.br.operationsite.test.R -import com.casic.br.operationsite.test.callback.OnImageCompressListener -import com.casic.br.operationsite.test.databinding.ActivityEnvironmentBinding -import com.casic.br.operationsite.test.extensions.compressImage -import com.casic.br.operationsite.test.extensions.initImmersionBar -import com.casic.br.operationsite.test.extensions.upload -import com.casic.br.operationsite.test.util.CurrentScene -import com.casic.br.operationsite.test.util.LocaleConstant -import com.casic.br.operationsite.test.util.RuntimeCache -import com.casic.br.operationsite.test.util.VideoPlayerManager -import com.casic.br.operationsite.test.util.tcp.SocketManager -import com.casic.br.operationsite.test.vm.ConstructionCheckViewModel -import com.casic.br.operationsite.test.vm.UploadFileViewModel -import com.casic.br.operationsite.test.vm.WorkSiteViewModel -import com.casic.br.operationsite.test.widget.BottomControlSheet -import com.pengxh.kt.lite.base.KotlinBaseActivity -import com.pengxh.kt.lite.extensions.dp2px -import com.pengxh.kt.lite.extensions.getScreenWidth -import com.pengxh.kt.lite.extensions.navigatePageTo -import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.ActivityStackManager -import com.pengxh.kt.lite.utils.WeakReferenceHandler -import com.pengxh.kt.lite.widget.TitleBarView -import com.shuyu.gsyvideoplayer.GSYVideoManager -import java.io.File -import java.util.Timer -import java.util.TimerTask -import java.util.UUID - - -class EnvironmentActivity : KotlinBaseActivity(), Handler.Callback { - - companion object { - lateinit var weakReferenceHandler: WeakReferenceHandler - } - - private val kTag = "EnvironmentActivity" - private val context = this - private lateinit var constructionCheckViewModel: ConstructionCheckViewModel - private lateinit var uploadFileViewModel: UploadFileViewModel - private lateinit var workSiteViewModel: WorkSiteViewModel - private lateinit var timer: Timer - private var isConfirmedFirst = false - private var isConfirmedSecond = false - private var isConfirmedThird = false - private var imagePath = "" - - override fun handleMessage(msg: Message): Boolean { - if (msg.what == LocaleConstant.WEBSOCKET_MESSAGE_CODE) { - imagePath = msg.obj as String - //自动上传到服务器 - imagePath.compressImage(this, object : OnImageCompressListener { - override fun onSuccess(file: File) { - //上传图片 - uploadFileViewModel.uploadImage(context, file) - } - - override fun onError(e: Throwable) { - e.printStackTrace() - } - }) - } - return true - } - - override fun initEvent() { - binding.startEnvCheckButton.setOnClickListener { - if (!SocketManager.get.nettyClient.connectStatus) { - "指令发送失败,请确认是否处于同一网段".show(this) - return@setOnClickListener - } -// SocketManager.get.send(LocaleConstant.START_ENV_COMMAND) - constructionCheckViewModel.setCurrentPhase( - LocaleConstant.AI_BASE_IP, "before_operation_environment" - ) - } - - binding.showControlViewButton.setOnClickListener { - BottomControlSheet(this).show() - } - - binding.blowerImageView.setOnClickListener { - navigatePageTo(0, arrayListOf(imagePath)) - } - - binding.confirmBlowerButton.setOnClickListener { - if (!SocketManager.get.nettyClient.connectStatus) { - "指令发送失败,请确认是否处于同一网段".show(this) - return@setOnClickListener - } -// SocketManager.get.send(LocaleConstant.CONFIRM_BLOWER_COMMAND) - } - - binding.firstConfirmButton.setOnClickListener { - isConfirmedFirst = false - isConfirmedSecond = true - isConfirmedThird = false - } - - binding.secondConfirmButton.setOnClickListener { - isConfirmedFirst = false - isConfirmedSecond = false - isConfirmedThird = true - } - - binding.thirdConfirmButton.setOnClickListener { - if (isConfirmedSecond) { - "请先确认井中气体浓度".show(this) - return@setOnClickListener - } - isConfirmedFirst = false - isConfirmedSecond = false - isConfirmedThird = false - } - - binding.endEnvCheckButton.setOnClickListener { - if (!SocketManager.get.nettyClient.connectStatus) { - "指令发送失败,请确认是否处于同一网段".show(this) - return@setOnClickListener - } -// SocketManager.get.send(LocaleConstant.END_ENV_COMMAND) - navigatePageTo() - } - } - - override fun initOnCreate(savedInstanceState: Bundle?) { - ActivityStackManager.addActivity(this) - - weakReferenceHandler = WeakReferenceHandler(this) - constructionCheckViewModel = ViewModelProvider(this)[ConstructionCheckViewModel::class.java] - - uploadFileViewModel = ViewModelProvider(this)[UploadFileViewModel::class.java] - uploadFileViewModel.resultModel.observe(this) { - if (it.code == 200) { - val path = it.data.toString() - if (path.isNotBlank()) { - val map = HashMap() - map["id"] = RuntimeCache.uploadFileTaskId - map["deviceCode"] = "YTJ_010002" - map["imageId"] = UUID.randomUUID().toString() - map["scenario"] = "before_operation_environment" - map["image"] = path - map["index"] = "1" - map["base64"] = "" - map.upload() - } - } - } - - //动态设置rtspPlayerView宽高 - val params = binding.rtspPlayerView.layoutParams as LinearLayout.LayoutParams - val videoWidth = getScreenWidth() - 20.dp2px(this) - val videoHeight = videoWidth * (9f / 16) - params.width = videoWidth - params.height = videoHeight.toInt() - binding.rtspPlayerView.layoutParams = params - VideoPlayerManager.setGSYVideoPlayerOptions( - binding.rtspPlayerView, LocaleConstant.SUB_RTSP_URL - ) - - workSiteViewModel = ViewModelProvider(this)[WorkSiteViewModel::class.java] - workSiteViewModel.workerResult.observe(this) { - if (it.code == 200) { - it.data.first().apply { - RuntimeCache.userHelmetCode = hatCode - - if (isConfirmedFirst) { - binding.firstCOValueView.text = "一氧化碳:${co}ppm" - binding.firstCH4ValueView.text = "可燃气:${gas}%LEL" - binding.firstH2SValueView.text = "硫化氢:${co}ppm" - binding.firstO2ValueView.text = "氧气:${o2}%VOL" - binding.firstValueUpdateView.text = "更新时间:${gasTime}" - } - - if (isConfirmedSecond) { - binding.secondCOValueView.text = "一氧化碳:${co}ppm" - binding.secondCH4ValueView.text = "可燃气:${gas}%LEL" - binding.secondH2SValueView.text = "硫化氢:${co}ppm" - binding.secondO2ValueView.text = "氧气:${o2}%VOL" - binding.secondValueUpdateView.text = "更新时间:${gasTime}" - } - - if (isConfirmedThird) { - binding.thirdCOValueView.text = "一氧化碳:${co}ppm" - binding.thirdCH4ValueView.text = "可燃气:${gas}%LEL" - binding.thirdH2SValueView.text = "硫化氢:${co}ppm" - binding.thirdO2ValueView.text = "氧气:${o2}%VOL" - binding.thirdValueUpdateView.text = "更新时间:${gasTime}" - } - } - } - } - timer = Timer() - timer.schedule(object : TimerTask() { - override fun run() { - workSiteViewModel.getWorkers(context, RuntimeCache.projectId) - } - }, 0, 2000) - } - - override fun initViewBinding(): ActivityEnvironmentBinding { - return ActivityEnvironmentBinding.inflate(layoutInflater) - } - - override fun observeRequestState() { - - } - - override fun setupTopBarLayout() { - binding.rootView.initImmersionBar(this, false, R.color.mainThemeColor) - binding.titleView.setOnClickListener(object : TitleBarView.OnClickListener { - override fun onLeftClick() { - finish() - } - - override fun onRightClick() { - - } - }) - } - - override fun onDestroy() { - super.onDestroy() - GSYVideoManager.releaseAllVideos() - timer.cancel() - } - - override fun onPause() { - super.onPause() - GSYVideoManager.onPause() - } - - override fun onResume() { - super.onResume() - GSYVideoManager.onResume() - isConfirmedFirst = true - RuntimeCache.currentScene = CurrentScene.Environment - } -} \ No newline at end of file diff --git a/app/src/main/res/layout/activity_environment.xml b/app/src/main/res/layout/activity_environment.xml deleted file mode 100644 index 8be9ca1..0000000 --- a/app/src/main/res/layout/activity_environment.xml +++ /dev/null @@ -1,356 +0,0 @@ - - - - - - - - - -