diff --git a/app/build.gradle b/app/build.gradle index 55c8383..157c592 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -18,8 +18,8 @@ applicationId "com.casic.br.operationsite" minSdkVersion 23 targetSdkVersion 33 - versionCode 1080 - versionName "1.0.8.0" + versionCode 1090 + versionName "1.0.9.0" } buildTypes { diff --git a/app/build.gradle b/app/build.gradle index 55c8383..157c592 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -18,8 +18,8 @@ applicationId "com.casic.br.operationsite" minSdkVersion 23 targetSdkVersion 33 - versionCode 1080 - versionName "1.0.8.0" + versionCode 1090 + versionName "1.0.9.0" } buildTypes { diff --git a/app/src/main/assets/DeviceParameter.json b/app/src/main/assets/DeviceParameter.json index 7226753..b9688ec 100644 --- a/app/src/main/assets/DeviceParameter.json +++ b/app/src/main/assets/DeviceParameter.json @@ -1,6 +1,7 @@ [ { "deviceName": "安全树一", + "deviceCode": "YTJ_010001", "aiServerIp": "192.168.10.141", "wifi": "YTJ_010001_5G", "pwd": "abcd1234", @@ -8,6 +9,7 @@ }, { "deviceName": "安全树二", + "deviceCode": "YTJ_010002", "aiServerIp": "192.168.10.139", "wifi": "YTJ-010002_5G", "pwd": "zhsz20311hw", @@ -15,6 +17,7 @@ }, { "deviceName": "安全树三", + "deviceCode": "YTJ_010003", "aiServerIp": "192.168.10.143", "wifi": "YTJ_010003_5G", "pwd": "abcd1234", @@ -22,6 +25,7 @@ }, { "deviceName": "安全树四", + "deviceCode": "YTJ_010004", "aiServerIp": "192.168.10.144", "wifi": "YTJ_010004_5G", "pwd": "abcd1234", diff --git a/app/build.gradle b/app/build.gradle index 55c8383..157c592 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -18,8 +18,8 @@ applicationId "com.casic.br.operationsite" minSdkVersion 23 targetSdkVersion 33 - versionCode 1080 - versionName "1.0.8.0" + versionCode 1090 + versionName "1.0.9.0" } buildTypes { diff --git a/app/src/main/assets/DeviceParameter.json b/app/src/main/assets/DeviceParameter.json index 7226753..b9688ec 100644 --- a/app/src/main/assets/DeviceParameter.json +++ b/app/src/main/assets/DeviceParameter.json @@ -1,6 +1,7 @@ [ { "deviceName": "安全树一", + "deviceCode": "YTJ_010001", "aiServerIp": "192.168.10.141", "wifi": "YTJ_010001_5G", "pwd": "abcd1234", @@ -8,6 +9,7 @@ }, { "deviceName": "安全树二", + "deviceCode": "YTJ_010002", "aiServerIp": "192.168.10.139", "wifi": "YTJ-010002_5G", "pwd": "zhsz20311hw", @@ -15,6 +17,7 @@ }, { "deviceName": "安全树三", + "deviceCode": "YTJ_010003", "aiServerIp": "192.168.10.143", "wifi": "YTJ_010003_5G", "pwd": "abcd1234", @@ -22,6 +25,7 @@ }, { "deviceName": "安全树四", + "deviceCode": "YTJ_010004", "aiServerIp": "192.168.10.144", "wifi": "YTJ_010004_5G", "pwd": "abcd1234", diff --git a/app/src/main/java/com/casic/br/operationsite/model/DeviceParameterModel.java b/app/src/main/java/com/casic/br/operationsite/model/DeviceParameterModel.java index 7e8f38e..2b4430b 100644 --- a/app/src/main/java/com/casic/br/operationsite/model/DeviceParameterModel.java +++ b/app/src/main/java/com/casic/br/operationsite/model/DeviceParameterModel.java @@ -3,6 +3,7 @@ public class DeviceParameterModel { private String deviceName; + private String deviceCode; private String aiServerIp; private String wifi; private String pwd; @@ -16,6 +17,14 @@ this.deviceName = deviceName; } + public String getDeviceCode() { + return deviceCode; + } + + public void setDeviceCode(String deviceCode) { + this.deviceCode = deviceCode; + } + public String getAiServerIp() { return aiServerIp; } diff --git a/app/build.gradle b/app/build.gradle index 55c8383..157c592 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -18,8 +18,8 @@ applicationId "com.casic.br.operationsite" minSdkVersion 23 targetSdkVersion 33 - versionCode 1080 - versionName "1.0.8.0" + versionCode 1090 + versionName "1.0.9.0" } buildTypes { diff --git a/app/src/main/assets/DeviceParameter.json b/app/src/main/assets/DeviceParameter.json index 7226753..b9688ec 100644 --- a/app/src/main/assets/DeviceParameter.json +++ b/app/src/main/assets/DeviceParameter.json @@ -1,6 +1,7 @@ [ { "deviceName": "安全树一", + "deviceCode": "YTJ_010001", "aiServerIp": "192.168.10.141", "wifi": "YTJ_010001_5G", "pwd": "abcd1234", @@ -8,6 +9,7 @@ }, { "deviceName": "安全树二", + "deviceCode": "YTJ_010002", "aiServerIp": "192.168.10.139", "wifi": "YTJ-010002_5G", "pwd": "zhsz20311hw", @@ -15,6 +17,7 @@ }, { "deviceName": "安全树三", + "deviceCode": "YTJ_010003", "aiServerIp": "192.168.10.143", "wifi": "YTJ_010003_5G", "pwd": "abcd1234", @@ -22,6 +25,7 @@ }, { "deviceName": "安全树四", + "deviceCode": "YTJ_010004", "aiServerIp": "192.168.10.144", "wifi": "YTJ_010004_5G", "pwd": "abcd1234", diff --git a/app/src/main/java/com/casic/br/operationsite/model/DeviceParameterModel.java b/app/src/main/java/com/casic/br/operationsite/model/DeviceParameterModel.java index 7e8f38e..2b4430b 100644 --- a/app/src/main/java/com/casic/br/operationsite/model/DeviceParameterModel.java +++ b/app/src/main/java/com/casic/br/operationsite/model/DeviceParameterModel.java @@ -3,6 +3,7 @@ public class DeviceParameterModel { private String deviceName; + private String deviceCode; private String aiServerIp; private String wifi; private String pwd; @@ -16,6 +17,14 @@ this.deviceName = deviceName; } + public String getDeviceCode() { + return deviceCode; + } + + public void setDeviceCode(String deviceCode) { + this.deviceCode = deviceCode; + } + public String getAiServerIp() { return aiServerIp; } diff --git a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt index 23f3c83..d14814c 100644 --- a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt @@ -115,6 +115,12 @@ suspend fun changeOtherAlarmState(@Body requestBody: RequestBody): String /** + * 切换场景阶段 + */ + @POST("/setPhase") + suspend fun setCurrentPhase(@Body requestBody: RequestBody): String + + /** * 查询其他报警状态 */ @GET("/getModelConfig") diff --git a/app/build.gradle b/app/build.gradle index 55c8383..157c592 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -18,8 +18,8 @@ applicationId "com.casic.br.operationsite" minSdkVersion 23 targetSdkVersion 33 - versionCode 1080 - versionName "1.0.8.0" + versionCode 1090 + versionName "1.0.9.0" } buildTypes { diff --git a/app/src/main/assets/DeviceParameter.json b/app/src/main/assets/DeviceParameter.json index 7226753..b9688ec 100644 --- a/app/src/main/assets/DeviceParameter.json +++ b/app/src/main/assets/DeviceParameter.json @@ -1,6 +1,7 @@ [ { "deviceName": "安全树一", + "deviceCode": "YTJ_010001", "aiServerIp": "192.168.10.141", "wifi": "YTJ_010001_5G", "pwd": "abcd1234", @@ -8,6 +9,7 @@ }, { "deviceName": "安全树二", + "deviceCode": "YTJ_010002", "aiServerIp": "192.168.10.139", "wifi": "YTJ-010002_5G", "pwd": "zhsz20311hw", @@ -15,6 +17,7 @@ }, { "deviceName": "安全树三", + "deviceCode": "YTJ_010003", "aiServerIp": "192.168.10.143", "wifi": "YTJ_010003_5G", "pwd": "abcd1234", @@ -22,6 +25,7 @@ }, { "deviceName": "安全树四", + "deviceCode": "YTJ_010004", "aiServerIp": "192.168.10.144", "wifi": "YTJ_010004_5G", "pwd": "abcd1234", diff --git a/app/src/main/java/com/casic/br/operationsite/model/DeviceParameterModel.java b/app/src/main/java/com/casic/br/operationsite/model/DeviceParameterModel.java index 7e8f38e..2b4430b 100644 --- a/app/src/main/java/com/casic/br/operationsite/model/DeviceParameterModel.java +++ b/app/src/main/java/com/casic/br/operationsite/model/DeviceParameterModel.java @@ -3,6 +3,7 @@ public class DeviceParameterModel { private String deviceName; + private String deviceCode; private String aiServerIp; private String wifi; private String pwd; @@ -16,6 +17,14 @@ this.deviceName = deviceName; } + public String getDeviceCode() { + return deviceCode; + } + + public void setDeviceCode(String deviceCode) { + this.deviceCode = deviceCode; + } + public String getAiServerIp() { return aiServerIp; } diff --git a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt index 23f3c83..d14814c 100644 --- a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt @@ -115,6 +115,12 @@ suspend fun changeOtherAlarmState(@Body requestBody: RequestBody): String /** + * 切换场景阶段 + */ + @POST("/setPhase") + suspend fun setCurrentPhase(@Body requestBody: RequestBody): String + + /** * 查询其他报警状态 */ @GET("/getModelConfig") diff --git a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt index c0724b1..e5bdea2 100644 --- a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt @@ -257,6 +257,21 @@ } /** + * 物品检测 + * */ + suspend fun setCurrentPhase(httpConfig: String, cameraIp: String, phase: String): String { + val param = JsonObject() + param.addProperty("deviceIp", cameraIp) + param.addProperty("phase", phase) + + val requestBody = param.toString().toRequestBody( + "application/json;charset=UTF-8".toMediaType() + ) + val service = RetrofitFactory.createRetrofit("http://$httpConfig:5000") + return service.setCurrentPhase(requestBody) + } + + /** * 执行设备控制指令 */ suspend fun executeDeviceCommand(action: String, speed: Int): String { diff --git a/app/build.gradle b/app/build.gradle index 55c8383..157c592 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -18,8 +18,8 @@ applicationId "com.casic.br.operationsite" minSdkVersion 23 targetSdkVersion 33 - versionCode 1080 - versionName "1.0.8.0" + versionCode 1090 + versionName "1.0.9.0" } buildTypes { diff --git a/app/src/main/assets/DeviceParameter.json b/app/src/main/assets/DeviceParameter.json index 7226753..b9688ec 100644 --- a/app/src/main/assets/DeviceParameter.json +++ b/app/src/main/assets/DeviceParameter.json @@ -1,6 +1,7 @@ [ { "deviceName": "安全树一", + "deviceCode": "YTJ_010001", "aiServerIp": "192.168.10.141", "wifi": "YTJ_010001_5G", "pwd": "abcd1234", @@ -8,6 +9,7 @@ }, { "deviceName": "安全树二", + "deviceCode": "YTJ_010002", "aiServerIp": "192.168.10.139", "wifi": "YTJ-010002_5G", "pwd": "zhsz20311hw", @@ -15,6 +17,7 @@ }, { "deviceName": "安全树三", + "deviceCode": "YTJ_010003", "aiServerIp": "192.168.10.143", "wifi": "YTJ_010003_5G", "pwd": "abcd1234", @@ -22,6 +25,7 @@ }, { "deviceName": "安全树四", + "deviceCode": "YTJ_010004", "aiServerIp": "192.168.10.144", "wifi": "YTJ_010004_5G", "pwd": "abcd1234", diff --git a/app/src/main/java/com/casic/br/operationsite/model/DeviceParameterModel.java b/app/src/main/java/com/casic/br/operationsite/model/DeviceParameterModel.java index 7e8f38e..2b4430b 100644 --- a/app/src/main/java/com/casic/br/operationsite/model/DeviceParameterModel.java +++ b/app/src/main/java/com/casic/br/operationsite/model/DeviceParameterModel.java @@ -3,6 +3,7 @@ public class DeviceParameterModel { private String deviceName; + private String deviceCode; private String aiServerIp; private String wifi; private String pwd; @@ -16,6 +17,14 @@ this.deviceName = deviceName; } + public String getDeviceCode() { + return deviceCode; + } + + public void setDeviceCode(String deviceCode) { + this.deviceCode = deviceCode; + } + public String getAiServerIp() { return aiServerIp; } diff --git a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt index 23f3c83..d14814c 100644 --- a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt @@ -115,6 +115,12 @@ suspend fun changeOtherAlarmState(@Body requestBody: RequestBody): String /** + * 切换场景阶段 + */ + @POST("/setPhase") + suspend fun setCurrentPhase(@Body requestBody: RequestBody): String + + /** * 查询其他报警状态 */ @GET("/getModelConfig") diff --git a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt index c0724b1..e5bdea2 100644 --- a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt @@ -257,6 +257,21 @@ } /** + * 物品检测 + * */ + suspend fun setCurrentPhase(httpConfig: String, cameraIp: String, phase: String): String { + val param = JsonObject() + param.addProperty("deviceIp", cameraIp) + param.addProperty("phase", phase) + + val requestBody = param.toString().toRequestBody( + "application/json;charset=UTF-8".toMediaType() + ) + val service = RetrofitFactory.createRetrofit("http://$httpConfig:5000") + return service.setCurrentPhase(requestBody) + } + + /** * 执行设备控制指令 */ suspend fun executeDeviceCommand(action: String, speed: Int): String { diff --git a/app/src/main/java/com/casic/br/operationsite/view/DeviceControlByNativeActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/DeviceControlByNativeActivity.kt index 546bcb7..f6acb68 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/DeviceControlByNativeActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/DeviceControlByNativeActivity.kt @@ -22,6 +22,7 @@ import com.casic.br.operationsite.model.DeviceParameterModel import com.casic.br.operationsite.utils.LocaleConstant import com.casic.br.operationsite.utils.VideoPlayerManager +import com.casic.br.operationsite.vm.AIViewModel import com.casic.br.operationsite.vm.AlarmViewModel import com.casic.br.operationsite.vm.DeviceViewModel import com.casic.br.operationsite.vm.RegionViewModel @@ -50,6 +51,7 @@ private lateinit var deviceViewModel: DeviceViewModel private lateinit var alarmViewModel: AlarmViewModel private lateinit var regionViewModel: RegionViewModel + private lateinit var aiViewModel: AIViewModel private var speed = 5 private var cameraIp = "" private var httpConfig = "" @@ -188,11 +190,16 @@ } binding.startCheckButton.setOnClickListener { + if (cameraIp == "") { + "请先选择设备".show(this) + return@setOnClickListener + } //打开AI + aiViewModel.openAI(httpConfig, cameraIp, "before_operation_protection") } binding.setVideoRegionButton.setOnClickListener { - val region = binding.regionView.getConfirmedPoints() + val region = binding.regionView.getConfirmedRegion() regionViewModel.setVideoRegion(region) } @@ -299,6 +306,13 @@ } } + aiViewModel = ViewModelProvider(this)[AIViewModel::class.java] + aiViewModel.openAIResult.observe(this) { + if (it) { + "AI检测开启成功".show(this) + } + } + //动态设置rtspPlayerView宽高 val rtspViewParams = binding.rtspPlayerView.layoutParams as FrameLayout.LayoutParams val videoWidth = getScreenWidth() diff --git a/app/build.gradle b/app/build.gradle index 55c8383..157c592 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -18,8 +18,8 @@ applicationId "com.casic.br.operationsite" minSdkVersion 23 targetSdkVersion 33 - versionCode 1080 - versionName "1.0.8.0" + versionCode 1090 + versionName "1.0.9.0" } buildTypes { diff --git a/app/src/main/assets/DeviceParameter.json b/app/src/main/assets/DeviceParameter.json index 7226753..b9688ec 100644 --- a/app/src/main/assets/DeviceParameter.json +++ b/app/src/main/assets/DeviceParameter.json @@ -1,6 +1,7 @@ [ { "deviceName": "安全树一", + "deviceCode": "YTJ_010001", "aiServerIp": "192.168.10.141", "wifi": "YTJ_010001_5G", "pwd": "abcd1234", @@ -8,6 +9,7 @@ }, { "deviceName": "安全树二", + "deviceCode": "YTJ_010002", "aiServerIp": "192.168.10.139", "wifi": "YTJ-010002_5G", "pwd": "zhsz20311hw", @@ -15,6 +17,7 @@ }, { "deviceName": "安全树三", + "deviceCode": "YTJ_010003", "aiServerIp": "192.168.10.143", "wifi": "YTJ_010003_5G", "pwd": "abcd1234", @@ -22,6 +25,7 @@ }, { "deviceName": "安全树四", + "deviceCode": "YTJ_010004", "aiServerIp": "192.168.10.144", "wifi": "YTJ_010004_5G", "pwd": "abcd1234", diff --git a/app/src/main/java/com/casic/br/operationsite/model/DeviceParameterModel.java b/app/src/main/java/com/casic/br/operationsite/model/DeviceParameterModel.java index 7e8f38e..2b4430b 100644 --- a/app/src/main/java/com/casic/br/operationsite/model/DeviceParameterModel.java +++ b/app/src/main/java/com/casic/br/operationsite/model/DeviceParameterModel.java @@ -3,6 +3,7 @@ public class DeviceParameterModel { private String deviceName; + private String deviceCode; private String aiServerIp; private String wifi; private String pwd; @@ -16,6 +17,14 @@ this.deviceName = deviceName; } + public String getDeviceCode() { + return deviceCode; + } + + public void setDeviceCode(String deviceCode) { + this.deviceCode = deviceCode; + } + public String getAiServerIp() { return aiServerIp; } diff --git a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt index 23f3c83..d14814c 100644 --- a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt @@ -115,6 +115,12 @@ suspend fun changeOtherAlarmState(@Body requestBody: RequestBody): String /** + * 切换场景阶段 + */ + @POST("/setPhase") + suspend fun setCurrentPhase(@Body requestBody: RequestBody): String + + /** * 查询其他报警状态 */ @GET("/getModelConfig") diff --git a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt index c0724b1..e5bdea2 100644 --- a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt @@ -257,6 +257,21 @@ } /** + * 物品检测 + * */ + suspend fun setCurrentPhase(httpConfig: String, cameraIp: String, phase: String): String { + val param = JsonObject() + param.addProperty("deviceIp", cameraIp) + param.addProperty("phase", phase) + + val requestBody = param.toString().toRequestBody( + "application/json;charset=UTF-8".toMediaType() + ) + val service = RetrofitFactory.createRetrofit("http://$httpConfig:5000") + return service.setCurrentPhase(requestBody) + } + + /** * 执行设备控制指令 */ suspend fun executeDeviceCommand(action: String, speed: Int): String { diff --git a/app/src/main/java/com/casic/br/operationsite/view/DeviceControlByNativeActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/DeviceControlByNativeActivity.kt index 546bcb7..f6acb68 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/DeviceControlByNativeActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/DeviceControlByNativeActivity.kt @@ -22,6 +22,7 @@ import com.casic.br.operationsite.model.DeviceParameterModel import com.casic.br.operationsite.utils.LocaleConstant import com.casic.br.operationsite.utils.VideoPlayerManager +import com.casic.br.operationsite.vm.AIViewModel import com.casic.br.operationsite.vm.AlarmViewModel import com.casic.br.operationsite.vm.DeviceViewModel import com.casic.br.operationsite.vm.RegionViewModel @@ -50,6 +51,7 @@ private lateinit var deviceViewModel: DeviceViewModel private lateinit var alarmViewModel: AlarmViewModel private lateinit var regionViewModel: RegionViewModel + private lateinit var aiViewModel: AIViewModel private var speed = 5 private var cameraIp = "" private var httpConfig = "" @@ -188,11 +190,16 @@ } binding.startCheckButton.setOnClickListener { + if (cameraIp == "") { + "请先选择设备".show(this) + return@setOnClickListener + } //打开AI + aiViewModel.openAI(httpConfig, cameraIp, "before_operation_protection") } binding.setVideoRegionButton.setOnClickListener { - val region = binding.regionView.getConfirmedPoints() + val region = binding.regionView.getConfirmedRegion() regionViewModel.setVideoRegion(region) } @@ -299,6 +306,13 @@ } } + aiViewModel = ViewModelProvider(this)[AIViewModel::class.java] + aiViewModel.openAIResult.observe(this) { + if (it) { + "AI检测开启成功".show(this) + } + } + //动态设置rtspPlayerView宽高 val rtspViewParams = binding.rtspPlayerView.layoutParams as FrameLayout.LayoutParams val videoWidth = getScreenWidth() diff --git a/app/src/main/java/com/casic/br/operationsite/vm/AIViewModel.kt b/app/src/main/java/com/casic/br/operationsite/vm/AIViewModel.kt new file mode 100644 index 0000000..59a2ad9 --- /dev/null +++ b/app/src/main/java/com/casic/br/operationsite/vm/AIViewModel.kt @@ -0,0 +1,19 @@ +package com.casic.br.operationsite.vm + +import androidx.lifecycle.MutableLiveData +import com.casic.br.operationsite.extensions.getResponseCode +import com.casic.br.operationsite.retrofit.RetrofitServiceManager +import com.pengxh.kt.lite.base.BaseViewModel +import com.pengxh.kt.lite.extensions.launch + +class AIViewModel : BaseViewModel() { + + val openAIResult = MutableLiveData() + + fun openAI(httpConfig: String, cameraIp: String, phase: String) = launch({ + val response = RetrofitServiceManager.setCurrentPhase(httpConfig, cameraIp, phase) + openAIResult.value = response.getResponseCode() == 200 + }, { + it.printStackTrace() + }) +} \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index 55c8383..157c592 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -18,8 +18,8 @@ applicationId "com.casic.br.operationsite" minSdkVersion 23 targetSdkVersion 33 - versionCode 1080 - versionName "1.0.8.0" + versionCode 1090 + versionName "1.0.9.0" } buildTypes { diff --git a/app/src/main/assets/DeviceParameter.json b/app/src/main/assets/DeviceParameter.json index 7226753..b9688ec 100644 --- a/app/src/main/assets/DeviceParameter.json +++ b/app/src/main/assets/DeviceParameter.json @@ -1,6 +1,7 @@ [ { "deviceName": "安全树一", + "deviceCode": "YTJ_010001", "aiServerIp": "192.168.10.141", "wifi": "YTJ_010001_5G", "pwd": "abcd1234", @@ -8,6 +9,7 @@ }, { "deviceName": "安全树二", + "deviceCode": "YTJ_010002", "aiServerIp": "192.168.10.139", "wifi": "YTJ-010002_5G", "pwd": "zhsz20311hw", @@ -15,6 +17,7 @@ }, { "deviceName": "安全树三", + "deviceCode": "YTJ_010003", "aiServerIp": "192.168.10.143", "wifi": "YTJ_010003_5G", "pwd": "abcd1234", @@ -22,6 +25,7 @@ }, { "deviceName": "安全树四", + "deviceCode": "YTJ_010004", "aiServerIp": "192.168.10.144", "wifi": "YTJ_010004_5G", "pwd": "abcd1234", diff --git a/app/src/main/java/com/casic/br/operationsite/model/DeviceParameterModel.java b/app/src/main/java/com/casic/br/operationsite/model/DeviceParameterModel.java index 7e8f38e..2b4430b 100644 --- a/app/src/main/java/com/casic/br/operationsite/model/DeviceParameterModel.java +++ b/app/src/main/java/com/casic/br/operationsite/model/DeviceParameterModel.java @@ -3,6 +3,7 @@ public class DeviceParameterModel { private String deviceName; + private String deviceCode; private String aiServerIp; private String wifi; private String pwd; @@ -16,6 +17,14 @@ this.deviceName = deviceName; } + public String getDeviceCode() { + return deviceCode; + } + + public void setDeviceCode(String deviceCode) { + this.deviceCode = deviceCode; + } + public String getAiServerIp() { return aiServerIp; } diff --git a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt index 23f3c83..d14814c 100644 --- a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt @@ -115,6 +115,12 @@ suspend fun changeOtherAlarmState(@Body requestBody: RequestBody): String /** + * 切换场景阶段 + */ + @POST("/setPhase") + suspend fun setCurrentPhase(@Body requestBody: RequestBody): String + + /** * 查询其他报警状态 */ @GET("/getModelConfig") diff --git a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt index c0724b1..e5bdea2 100644 --- a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt @@ -257,6 +257,21 @@ } /** + * 物品检测 + * */ + suspend fun setCurrentPhase(httpConfig: String, cameraIp: String, phase: String): String { + val param = JsonObject() + param.addProperty("deviceIp", cameraIp) + param.addProperty("phase", phase) + + val requestBody = param.toString().toRequestBody( + "application/json;charset=UTF-8".toMediaType() + ) + val service = RetrofitFactory.createRetrofit("http://$httpConfig:5000") + return service.setCurrentPhase(requestBody) + } + + /** * 执行设备控制指令 */ suspend fun executeDeviceCommand(action: String, speed: Int): String { diff --git a/app/src/main/java/com/casic/br/operationsite/view/DeviceControlByNativeActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/DeviceControlByNativeActivity.kt index 546bcb7..f6acb68 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/DeviceControlByNativeActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/DeviceControlByNativeActivity.kt @@ -22,6 +22,7 @@ import com.casic.br.operationsite.model.DeviceParameterModel import com.casic.br.operationsite.utils.LocaleConstant import com.casic.br.operationsite.utils.VideoPlayerManager +import com.casic.br.operationsite.vm.AIViewModel import com.casic.br.operationsite.vm.AlarmViewModel import com.casic.br.operationsite.vm.DeviceViewModel import com.casic.br.operationsite.vm.RegionViewModel @@ -50,6 +51,7 @@ private lateinit var deviceViewModel: DeviceViewModel private lateinit var alarmViewModel: AlarmViewModel private lateinit var regionViewModel: RegionViewModel + private lateinit var aiViewModel: AIViewModel private var speed = 5 private var cameraIp = "" private var httpConfig = "" @@ -188,11 +190,16 @@ } binding.startCheckButton.setOnClickListener { + if (cameraIp == "") { + "请先选择设备".show(this) + return@setOnClickListener + } //打开AI + aiViewModel.openAI(httpConfig, cameraIp, "before_operation_protection") } binding.setVideoRegionButton.setOnClickListener { - val region = binding.regionView.getConfirmedPoints() + val region = binding.regionView.getConfirmedRegion() regionViewModel.setVideoRegion(region) } @@ -299,6 +306,13 @@ } } + aiViewModel = ViewModelProvider(this)[AIViewModel::class.java] + aiViewModel.openAIResult.observe(this) { + if (it) { + "AI检测开启成功".show(this) + } + } + //动态设置rtspPlayerView宽高 val rtspViewParams = binding.rtspPlayerView.layoutParams as FrameLayout.LayoutParams val videoWidth = getScreenWidth() diff --git a/app/src/main/java/com/casic/br/operationsite/vm/AIViewModel.kt b/app/src/main/java/com/casic/br/operationsite/vm/AIViewModel.kt new file mode 100644 index 0000000..59a2ad9 --- /dev/null +++ b/app/src/main/java/com/casic/br/operationsite/vm/AIViewModel.kt @@ -0,0 +1,19 @@ +package com.casic.br.operationsite.vm + +import androidx.lifecycle.MutableLiveData +import com.casic.br.operationsite.extensions.getResponseCode +import com.casic.br.operationsite.retrofit.RetrofitServiceManager +import com.pengxh.kt.lite.base.BaseViewModel +import com.pengxh.kt.lite.extensions.launch + +class AIViewModel : BaseViewModel() { + + val openAIResult = MutableLiveData() + + fun openAI(httpConfig: String, cameraIp: String, phase: String) = launch({ + val response = RetrofitServiceManager.setCurrentPhase(httpConfig, cameraIp, phase) + openAIResult.value = response.getResponseCode() == 200 + }, { + it.printStackTrace() + }) +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/operationsite/widgets/VideoRegionView.kt b/app/src/main/java/com/casic/br/operationsite/widgets/VideoRegionView.kt index 25790db..38db54a 100644 --- a/app/src/main/java/com/casic/br/operationsite/widgets/VideoRegionView.kt +++ b/app/src/main/java/com/casic/br/operationsite/widgets/VideoRegionView.kt @@ -124,7 +124,7 @@ } else null } - fun getConfirmedPoints(): ArrayList { + fun getConfirmedRegion(): ArrayList { /** * 计算出点的相对位置返回给一体机计算 * */ diff --git a/app/build.gradle b/app/build.gradle index 55c8383..157c592 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -18,8 +18,8 @@ applicationId "com.casic.br.operationsite" minSdkVersion 23 targetSdkVersion 33 - versionCode 1080 - versionName "1.0.8.0" + versionCode 1090 + versionName "1.0.9.0" } buildTypes { diff --git a/app/src/main/assets/DeviceParameter.json b/app/src/main/assets/DeviceParameter.json index 7226753..b9688ec 100644 --- a/app/src/main/assets/DeviceParameter.json +++ b/app/src/main/assets/DeviceParameter.json @@ -1,6 +1,7 @@ [ { "deviceName": "安全树一", + "deviceCode": "YTJ_010001", "aiServerIp": "192.168.10.141", "wifi": "YTJ_010001_5G", "pwd": "abcd1234", @@ -8,6 +9,7 @@ }, { "deviceName": "安全树二", + "deviceCode": "YTJ_010002", "aiServerIp": "192.168.10.139", "wifi": "YTJ-010002_5G", "pwd": "zhsz20311hw", @@ -15,6 +17,7 @@ }, { "deviceName": "安全树三", + "deviceCode": "YTJ_010003", "aiServerIp": "192.168.10.143", "wifi": "YTJ_010003_5G", "pwd": "abcd1234", @@ -22,6 +25,7 @@ }, { "deviceName": "安全树四", + "deviceCode": "YTJ_010004", "aiServerIp": "192.168.10.144", "wifi": "YTJ_010004_5G", "pwd": "abcd1234", diff --git a/app/src/main/java/com/casic/br/operationsite/model/DeviceParameterModel.java b/app/src/main/java/com/casic/br/operationsite/model/DeviceParameterModel.java index 7e8f38e..2b4430b 100644 --- a/app/src/main/java/com/casic/br/operationsite/model/DeviceParameterModel.java +++ b/app/src/main/java/com/casic/br/operationsite/model/DeviceParameterModel.java @@ -3,6 +3,7 @@ public class DeviceParameterModel { private String deviceName; + private String deviceCode; private String aiServerIp; private String wifi; private String pwd; @@ -16,6 +17,14 @@ this.deviceName = deviceName; } + public String getDeviceCode() { + return deviceCode; + } + + public void setDeviceCode(String deviceCode) { + this.deviceCode = deviceCode; + } + public String getAiServerIp() { return aiServerIp; } diff --git a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt index 23f3c83..d14814c 100644 --- a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt @@ -115,6 +115,12 @@ suspend fun changeOtherAlarmState(@Body requestBody: RequestBody): String /** + * 切换场景阶段 + */ + @POST("/setPhase") + suspend fun setCurrentPhase(@Body requestBody: RequestBody): String + + /** * 查询其他报警状态 */ @GET("/getModelConfig") diff --git a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt index c0724b1..e5bdea2 100644 --- a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt @@ -257,6 +257,21 @@ } /** + * 物品检测 + * */ + suspend fun setCurrentPhase(httpConfig: String, cameraIp: String, phase: String): String { + val param = JsonObject() + param.addProperty("deviceIp", cameraIp) + param.addProperty("phase", phase) + + val requestBody = param.toString().toRequestBody( + "application/json;charset=UTF-8".toMediaType() + ) + val service = RetrofitFactory.createRetrofit("http://$httpConfig:5000") + return service.setCurrentPhase(requestBody) + } + + /** * 执行设备控制指令 */ suspend fun executeDeviceCommand(action: String, speed: Int): String { diff --git a/app/src/main/java/com/casic/br/operationsite/view/DeviceControlByNativeActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/DeviceControlByNativeActivity.kt index 546bcb7..f6acb68 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/DeviceControlByNativeActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/DeviceControlByNativeActivity.kt @@ -22,6 +22,7 @@ import com.casic.br.operationsite.model.DeviceParameterModel import com.casic.br.operationsite.utils.LocaleConstant import com.casic.br.operationsite.utils.VideoPlayerManager +import com.casic.br.operationsite.vm.AIViewModel import com.casic.br.operationsite.vm.AlarmViewModel import com.casic.br.operationsite.vm.DeviceViewModel import com.casic.br.operationsite.vm.RegionViewModel @@ -50,6 +51,7 @@ private lateinit var deviceViewModel: DeviceViewModel private lateinit var alarmViewModel: AlarmViewModel private lateinit var regionViewModel: RegionViewModel + private lateinit var aiViewModel: AIViewModel private var speed = 5 private var cameraIp = "" private var httpConfig = "" @@ -188,11 +190,16 @@ } binding.startCheckButton.setOnClickListener { + if (cameraIp == "") { + "请先选择设备".show(this) + return@setOnClickListener + } //打开AI + aiViewModel.openAI(httpConfig, cameraIp, "before_operation_protection") } binding.setVideoRegionButton.setOnClickListener { - val region = binding.regionView.getConfirmedPoints() + val region = binding.regionView.getConfirmedRegion() regionViewModel.setVideoRegion(region) } @@ -299,6 +306,13 @@ } } + aiViewModel = ViewModelProvider(this)[AIViewModel::class.java] + aiViewModel.openAIResult.observe(this) { + if (it) { + "AI检测开启成功".show(this) + } + } + //动态设置rtspPlayerView宽高 val rtspViewParams = binding.rtspPlayerView.layoutParams as FrameLayout.LayoutParams val videoWidth = getScreenWidth() diff --git a/app/src/main/java/com/casic/br/operationsite/vm/AIViewModel.kt b/app/src/main/java/com/casic/br/operationsite/vm/AIViewModel.kt new file mode 100644 index 0000000..59a2ad9 --- /dev/null +++ b/app/src/main/java/com/casic/br/operationsite/vm/AIViewModel.kt @@ -0,0 +1,19 @@ +package com.casic.br.operationsite.vm + +import androidx.lifecycle.MutableLiveData +import com.casic.br.operationsite.extensions.getResponseCode +import com.casic.br.operationsite.retrofit.RetrofitServiceManager +import com.pengxh.kt.lite.base.BaseViewModel +import com.pengxh.kt.lite.extensions.launch + +class AIViewModel : BaseViewModel() { + + val openAIResult = MutableLiveData() + + fun openAI(httpConfig: String, cameraIp: String, phase: String) = launch({ + val response = RetrofitServiceManager.setCurrentPhase(httpConfig, cameraIp, phase) + openAIResult.value = response.getResponseCode() == 200 + }, { + it.printStackTrace() + }) +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/operationsite/widgets/VideoRegionView.kt b/app/src/main/java/com/casic/br/operationsite/widgets/VideoRegionView.kt index 25790db..38db54a 100644 --- a/app/src/main/java/com/casic/br/operationsite/widgets/VideoRegionView.kt +++ b/app/src/main/java/com/casic/br/operationsite/widgets/VideoRegionView.kt @@ -124,7 +124,7 @@ } else null } - fun getConfirmedPoints(): ArrayList { + fun getConfirmedRegion(): ArrayList { /** * 计算出点的相对位置返回给一体机计算 * */ diff --git a/app/src/main/res/layout/activity_device_control_by_native.xml b/app/src/main/res/layout/activity_device_control_by_native.xml index d0997ef..b6c7d9e 100644 --- a/app/src/main/res/layout/activity_device_control_by_native.xml +++ b/app/src/main/res/layout/activity_device_control_by_native.xml @@ -127,41 +127,6 @@ - - -