diff --git a/app/src/main/java/com/casic/br/operationsite/model/AlarmDetailModel.java b/app/src/main/java/com/casic/br/operationsite/model/AlarmDetailModel.java deleted file mode 100644 index c632c8a..0000000 --- a/app/src/main/java/com/casic/br/operationsite/model/AlarmDetailModel.java +++ /dev/null @@ -1,134 +0,0 @@ -package com.casic.br.operationsite.model; - -public class AlarmDetailModel { - - private int code; - private DataBean data; - private String message; - private boolean success; - - public int getCode() { - return code; - } - - public void setCode(int code) { - this.code = code; - } - - public DataBean getData() { - return data; - } - - public void setData(DataBean data) { - this.data = data; - } - - public String getMessage() { - return message; - } - - public void setMessage(String message) { - this.message = message; - } - - public boolean isSuccess() { - return success; - } - - public void setSuccess(boolean success) { - this.success = success; - } - - public static class DataBean { - private String alarmDescription; - private String alarmLat; - private String alarmLng; - private String area; - private String createTime; - private String id; - private String illegalAvatar; - private String location; - private String projectName; - private String projectType; - - public String getAlarmDescription() { - return alarmDescription; - } - - public void setAlarmDescription(String alarmDescription) { - this.alarmDescription = alarmDescription; - } - - public String getAlarmLat() { - return alarmLat; - } - - public void setAlarmLat(String alarmLat) { - this.alarmLat = alarmLat; - } - - public String getAlarmLng() { - return alarmLng; - } - - public void setAlarmLng(String alarmLng) { - this.alarmLng = alarmLng; - } - - public String getArea() { - return area; - } - - public void setArea(String area) { - this.area = area; - } - - public String getCreateTime() { - return createTime; - } - - public void setCreateTime(String createTime) { - this.createTime = createTime; - } - - public String getId() { - return id; - } - - public void setId(String id) { - this.id = id; - } - - public String getIllegalAvatar() { - return illegalAvatar; - } - - public void setIllegalAvatar(String illegalAvatar) { - this.illegalAvatar = illegalAvatar; - } - - public String getLocation() { - return location; - } - - public void setLocation(String location) { - this.location = location; - } - - public String getProjectName() { - return projectName; - } - - public void setProjectName(String projectName) { - this.projectName = projectName; - } - - public String getProjectType() { - return projectType; - } - - public void setProjectType(String projectType) { - this.projectType = projectType; - } - } -} diff --git a/app/src/main/java/com/casic/br/operationsite/model/AlarmDetailModel.java b/app/src/main/java/com/casic/br/operationsite/model/AlarmDetailModel.java deleted file mode 100644 index c632c8a..0000000 --- a/app/src/main/java/com/casic/br/operationsite/model/AlarmDetailModel.java +++ /dev/null @@ -1,134 +0,0 @@ -package com.casic.br.operationsite.model; - -public class AlarmDetailModel { - - private int code; - private DataBean data; - private String message; - private boolean success; - - public int getCode() { - return code; - } - - public void setCode(int code) { - this.code = code; - } - - public DataBean getData() { - return data; - } - - public void setData(DataBean data) { - this.data = data; - } - - public String getMessage() { - return message; - } - - public void setMessage(String message) { - this.message = message; - } - - public boolean isSuccess() { - return success; - } - - public void setSuccess(boolean success) { - this.success = success; - } - - public static class DataBean { - private String alarmDescription; - private String alarmLat; - private String alarmLng; - private String area; - private String createTime; - private String id; - private String illegalAvatar; - private String location; - private String projectName; - private String projectType; - - public String getAlarmDescription() { - return alarmDescription; - } - - public void setAlarmDescription(String alarmDescription) { - this.alarmDescription = alarmDescription; - } - - public String getAlarmLat() { - return alarmLat; - } - - public void setAlarmLat(String alarmLat) { - this.alarmLat = alarmLat; - } - - public String getAlarmLng() { - return alarmLng; - } - - public void setAlarmLng(String alarmLng) { - this.alarmLng = alarmLng; - } - - public String getArea() { - return area; - } - - public void setArea(String area) { - this.area = area; - } - - public String getCreateTime() { - return createTime; - } - - public void setCreateTime(String createTime) { - this.createTime = createTime; - } - - public String getId() { - return id; - } - - public void setId(String id) { - this.id = id; - } - - public String getIllegalAvatar() { - return illegalAvatar; - } - - public void setIllegalAvatar(String illegalAvatar) { - this.illegalAvatar = illegalAvatar; - } - - public String getLocation() { - return location; - } - - public void setLocation(String location) { - this.location = location; - } - - public String getProjectName() { - return projectName; - } - - public void setProjectName(String projectName) { - this.projectName = projectName; - } - - public String getProjectType() { - return projectType; - } - - public void setProjectType(String projectType) { - this.projectType = projectType; - } - } -} diff --git a/app/src/main/java/com/casic/br/operationsite/model/OtherAlarmStateModel.java b/app/src/main/java/com/casic/br/operationsite/model/OtherAlarmStateModel.java new file mode 100644 index 0000000..a61a70b --- /dev/null +++ b/app/src/main/java/com/casic/br/operationsite/model/OtherAlarmStateModel.java @@ -0,0 +1,71 @@ +package com.casic.br.operationsite.model; + +public class OtherAlarmStateModel { + + private int code; + private DataModel data; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataModel getData() { + return data; + } + + public void setData(DataModel data) { + this.data = data; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataModel { + private String break_alarm; + private String no_supervisor_alarm; + private String smoke_alarm; + private double smoke_conf; + + public String getBreak_alarm() { + return break_alarm; + } + + public void setBreak_alarm(String break_alarm) { + this.break_alarm = break_alarm; + } + + public String getNo_supervisor_alarm() { + return no_supervisor_alarm; + } + + public void setNo_supervisor_alarm(String no_supervisor_alarm) { + this.no_supervisor_alarm = no_supervisor_alarm; + } + + public String getSmoke_alarm() { + return smoke_alarm; + } + + public void setSmoke_alarm(String smoke_alarm) { + this.smoke_alarm = smoke_alarm; + } + + public double getSmoke_conf() { + return smoke_conf; + } + + public void setSmoke_conf(double smoke_conf) { + this.smoke_conf = smoke_conf; + } + } +} diff --git a/app/src/main/java/com/casic/br/operationsite/model/AlarmDetailModel.java b/app/src/main/java/com/casic/br/operationsite/model/AlarmDetailModel.java deleted file mode 100644 index c632c8a..0000000 --- a/app/src/main/java/com/casic/br/operationsite/model/AlarmDetailModel.java +++ /dev/null @@ -1,134 +0,0 @@ -package com.casic.br.operationsite.model; - -public class AlarmDetailModel { - - private int code; - private DataBean data; - private String message; - private boolean success; - - public int getCode() { - return code; - } - - public void setCode(int code) { - this.code = code; - } - - public DataBean getData() { - return data; - } - - public void setData(DataBean data) { - this.data = data; - } - - public String getMessage() { - return message; - } - - public void setMessage(String message) { - this.message = message; - } - - public boolean isSuccess() { - return success; - } - - public void setSuccess(boolean success) { - this.success = success; - } - - public static class DataBean { - private String alarmDescription; - private String alarmLat; - private String alarmLng; - private String area; - private String createTime; - private String id; - private String illegalAvatar; - private String location; - private String projectName; - private String projectType; - - public String getAlarmDescription() { - return alarmDescription; - } - - public void setAlarmDescription(String alarmDescription) { - this.alarmDescription = alarmDescription; - } - - public String getAlarmLat() { - return alarmLat; - } - - public void setAlarmLat(String alarmLat) { - this.alarmLat = alarmLat; - } - - public String getAlarmLng() { - return alarmLng; - } - - public void setAlarmLng(String alarmLng) { - this.alarmLng = alarmLng; - } - - public String getArea() { - return area; - } - - public void setArea(String area) { - this.area = area; - } - - public String getCreateTime() { - return createTime; - } - - public void setCreateTime(String createTime) { - this.createTime = createTime; - } - - public String getId() { - return id; - } - - public void setId(String id) { - this.id = id; - } - - public String getIllegalAvatar() { - return illegalAvatar; - } - - public void setIllegalAvatar(String illegalAvatar) { - this.illegalAvatar = illegalAvatar; - } - - public String getLocation() { - return location; - } - - public void setLocation(String location) { - this.location = location; - } - - public String getProjectName() { - return projectName; - } - - public void setProjectName(String projectName) { - this.projectName = projectName; - } - - public String getProjectType() { - return projectType; - } - - public void setProjectType(String projectType) { - this.projectType = projectType; - } - } -} diff --git a/app/src/main/java/com/casic/br/operationsite/model/OtherAlarmStateModel.java b/app/src/main/java/com/casic/br/operationsite/model/OtherAlarmStateModel.java new file mode 100644 index 0000000..a61a70b --- /dev/null +++ b/app/src/main/java/com/casic/br/operationsite/model/OtherAlarmStateModel.java @@ -0,0 +1,71 @@ +package com.casic.br.operationsite.model; + +public class OtherAlarmStateModel { + + private int code; + private DataModel data; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataModel getData() { + return data; + } + + public void setData(DataModel data) { + this.data = data; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataModel { + private String break_alarm; + private String no_supervisor_alarm; + private String smoke_alarm; + private double smoke_conf; + + public String getBreak_alarm() { + return break_alarm; + } + + public void setBreak_alarm(String break_alarm) { + this.break_alarm = break_alarm; + } + + public String getNo_supervisor_alarm() { + return no_supervisor_alarm; + } + + public void setNo_supervisor_alarm(String no_supervisor_alarm) { + this.no_supervisor_alarm = no_supervisor_alarm; + } + + public String getSmoke_alarm() { + return smoke_alarm; + } + + public void setSmoke_alarm(String smoke_alarm) { + this.smoke_alarm = smoke_alarm; + } + + public double getSmoke_conf() { + return smoke_conf; + } + + public void setSmoke_conf(double smoke_conf) { + this.smoke_conf = smoke_conf; + } + } +} 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 d04d9ad..909d47d 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 @@ -91,12 +91,6 @@ ): String /** - * 报警详情 - */ - @GET("/alarm/detail") - suspend fun getAlarmDetail(@Header("token") token: String, @Query("id") id: String): String - - /** * 切换场景阶段 */ @POST("/setPhase") @@ -124,6 +118,18 @@ suspend fun getAlarmState(@Query("deviceIp") deviceIp: String): String /** + * 其他报警开关 + * */ + @POST("/setModelConfig") + suspend fun changeOtherAlarmState(@Body requestBody: RequestBody): String + + /** + * 查询其他报警状态 + */ + @GET("/getModelConfig") + suspend fun getOtherAlarmState(@Query("deviceIp") deviceIp: String): String + + /** * 提交算法区域 */ @POST("/setPosition") diff --git a/app/src/main/java/com/casic/br/operationsite/model/AlarmDetailModel.java b/app/src/main/java/com/casic/br/operationsite/model/AlarmDetailModel.java deleted file mode 100644 index c632c8a..0000000 --- a/app/src/main/java/com/casic/br/operationsite/model/AlarmDetailModel.java +++ /dev/null @@ -1,134 +0,0 @@ -package com.casic.br.operationsite.model; - -public class AlarmDetailModel { - - private int code; - private DataBean data; - private String message; - private boolean success; - - public int getCode() { - return code; - } - - public void setCode(int code) { - this.code = code; - } - - public DataBean getData() { - return data; - } - - public void setData(DataBean data) { - this.data = data; - } - - public String getMessage() { - return message; - } - - public void setMessage(String message) { - this.message = message; - } - - public boolean isSuccess() { - return success; - } - - public void setSuccess(boolean success) { - this.success = success; - } - - public static class DataBean { - private String alarmDescription; - private String alarmLat; - private String alarmLng; - private String area; - private String createTime; - private String id; - private String illegalAvatar; - private String location; - private String projectName; - private String projectType; - - public String getAlarmDescription() { - return alarmDescription; - } - - public void setAlarmDescription(String alarmDescription) { - this.alarmDescription = alarmDescription; - } - - public String getAlarmLat() { - return alarmLat; - } - - public void setAlarmLat(String alarmLat) { - this.alarmLat = alarmLat; - } - - public String getAlarmLng() { - return alarmLng; - } - - public void setAlarmLng(String alarmLng) { - this.alarmLng = alarmLng; - } - - public String getArea() { - return area; - } - - public void setArea(String area) { - this.area = area; - } - - public String getCreateTime() { - return createTime; - } - - public void setCreateTime(String createTime) { - this.createTime = createTime; - } - - public String getId() { - return id; - } - - public void setId(String id) { - this.id = id; - } - - public String getIllegalAvatar() { - return illegalAvatar; - } - - public void setIllegalAvatar(String illegalAvatar) { - this.illegalAvatar = illegalAvatar; - } - - public String getLocation() { - return location; - } - - public void setLocation(String location) { - this.location = location; - } - - public String getProjectName() { - return projectName; - } - - public void setProjectName(String projectName) { - this.projectName = projectName; - } - - public String getProjectType() { - return projectType; - } - - public void setProjectType(String projectType) { - this.projectType = projectType; - } - } -} diff --git a/app/src/main/java/com/casic/br/operationsite/model/OtherAlarmStateModel.java b/app/src/main/java/com/casic/br/operationsite/model/OtherAlarmStateModel.java new file mode 100644 index 0000000..a61a70b --- /dev/null +++ b/app/src/main/java/com/casic/br/operationsite/model/OtherAlarmStateModel.java @@ -0,0 +1,71 @@ +package com.casic.br.operationsite.model; + +public class OtherAlarmStateModel { + + private int code; + private DataModel data; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataModel getData() { + return data; + } + + public void setData(DataModel data) { + this.data = data; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataModel { + private String break_alarm; + private String no_supervisor_alarm; + private String smoke_alarm; + private double smoke_conf; + + public String getBreak_alarm() { + return break_alarm; + } + + public void setBreak_alarm(String break_alarm) { + this.break_alarm = break_alarm; + } + + public String getNo_supervisor_alarm() { + return no_supervisor_alarm; + } + + public void setNo_supervisor_alarm(String no_supervisor_alarm) { + this.no_supervisor_alarm = no_supervisor_alarm; + } + + public String getSmoke_alarm() { + return smoke_alarm; + } + + public void setSmoke_alarm(String smoke_alarm) { + this.smoke_alarm = smoke_alarm; + } + + public double getSmoke_conf() { + return smoke_conf; + } + + public void setSmoke_conf(double smoke_conf) { + this.smoke_conf = smoke_conf; + } + } +} 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 d04d9ad..909d47d 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 @@ -91,12 +91,6 @@ ): String /** - * 报警详情 - */ - @GET("/alarm/detail") - suspend fun getAlarmDetail(@Header("token") token: String, @Query("id") id: String): String - - /** * 切换场景阶段 */ @POST("/setPhase") @@ -124,6 +118,18 @@ suspend fun getAlarmState(@Query("deviceIp") deviceIp: String): String /** + * 其他报警开关 + * */ + @POST("/setModelConfig") + suspend fun changeOtherAlarmState(@Body requestBody: RequestBody): String + + /** + * 查询其他报警状态 + */ + @GET("/getModelConfig") + suspend fun getOtherAlarmState(@Query("deviceIp") deviceIp: String): String + + /** * 提交算法区域 */ @POST("/setPosition") 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 872c1cc..eb9095f 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 @@ -100,13 +100,6 @@ } /** - * 报警详情 - */ - suspend fun getAlarmDetail(id: String): String { - return api.getAlarmDetail(AuthenticationHelper.token!!, id) - } - - /** * 上传图片 */ suspend fun uploadImage(image: File): String { @@ -259,6 +252,35 @@ } /** + * 其他报警开关 + * */ + suspend fun changeOtherAlarmState( + httpConfig: String, deviceIp: String, model: String, conf: String, state: String + ): String { + val param = JsonObject() + param.addProperty("deviceIp", deviceIp) + param.addProperty("model", model) + if (conf != "") { + param.addProperty("conf", conf) + } + param.addProperty("alarm", state) + + val requestBody = param.toString().toRequestBody( + "application/json;charset=UTF-8".toMediaType() + ) + val service = RetrofitFactory.createRetrofit("http://$httpConfig:5000") + return service.changeOtherAlarmState(requestBody) + } + + /** + * 查询其他报警状态 + */ + suspend fun getOtherAlarmState(httpConfig: String, deviceIp: String): String { + val service = RetrofitFactory.createRetrofit("http://$httpConfig:5000") + return service.getOtherAlarmState(deviceIp) + } + + /** * 设置区域 * */ suspend fun setVideoRegion(httpConfig: String, position: ArrayList): String { diff --git a/app/src/main/java/com/casic/br/operationsite/model/AlarmDetailModel.java b/app/src/main/java/com/casic/br/operationsite/model/AlarmDetailModel.java deleted file mode 100644 index c632c8a..0000000 --- a/app/src/main/java/com/casic/br/operationsite/model/AlarmDetailModel.java +++ /dev/null @@ -1,134 +0,0 @@ -package com.casic.br.operationsite.model; - -public class AlarmDetailModel { - - private int code; - private DataBean data; - private String message; - private boolean success; - - public int getCode() { - return code; - } - - public void setCode(int code) { - this.code = code; - } - - public DataBean getData() { - return data; - } - - public void setData(DataBean data) { - this.data = data; - } - - public String getMessage() { - return message; - } - - public void setMessage(String message) { - this.message = message; - } - - public boolean isSuccess() { - return success; - } - - public void setSuccess(boolean success) { - this.success = success; - } - - public static class DataBean { - private String alarmDescription; - private String alarmLat; - private String alarmLng; - private String area; - private String createTime; - private String id; - private String illegalAvatar; - private String location; - private String projectName; - private String projectType; - - public String getAlarmDescription() { - return alarmDescription; - } - - public void setAlarmDescription(String alarmDescription) { - this.alarmDescription = alarmDescription; - } - - public String getAlarmLat() { - return alarmLat; - } - - public void setAlarmLat(String alarmLat) { - this.alarmLat = alarmLat; - } - - public String getAlarmLng() { - return alarmLng; - } - - public void setAlarmLng(String alarmLng) { - this.alarmLng = alarmLng; - } - - public String getArea() { - return area; - } - - public void setArea(String area) { - this.area = area; - } - - public String getCreateTime() { - return createTime; - } - - public void setCreateTime(String createTime) { - this.createTime = createTime; - } - - public String getId() { - return id; - } - - public void setId(String id) { - this.id = id; - } - - public String getIllegalAvatar() { - return illegalAvatar; - } - - public void setIllegalAvatar(String illegalAvatar) { - this.illegalAvatar = illegalAvatar; - } - - public String getLocation() { - return location; - } - - public void setLocation(String location) { - this.location = location; - } - - public String getProjectName() { - return projectName; - } - - public void setProjectName(String projectName) { - this.projectName = projectName; - } - - public String getProjectType() { - return projectType; - } - - public void setProjectType(String projectType) { - this.projectType = projectType; - } - } -} diff --git a/app/src/main/java/com/casic/br/operationsite/model/OtherAlarmStateModel.java b/app/src/main/java/com/casic/br/operationsite/model/OtherAlarmStateModel.java new file mode 100644 index 0000000..a61a70b --- /dev/null +++ b/app/src/main/java/com/casic/br/operationsite/model/OtherAlarmStateModel.java @@ -0,0 +1,71 @@ +package com.casic.br.operationsite.model; + +public class OtherAlarmStateModel { + + private int code; + private DataModel data; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataModel getData() { + return data; + } + + public void setData(DataModel data) { + this.data = data; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataModel { + private String break_alarm; + private String no_supervisor_alarm; + private String smoke_alarm; + private double smoke_conf; + + public String getBreak_alarm() { + return break_alarm; + } + + public void setBreak_alarm(String break_alarm) { + this.break_alarm = break_alarm; + } + + public String getNo_supervisor_alarm() { + return no_supervisor_alarm; + } + + public void setNo_supervisor_alarm(String no_supervisor_alarm) { + this.no_supervisor_alarm = no_supervisor_alarm; + } + + public String getSmoke_alarm() { + return smoke_alarm; + } + + public void setSmoke_alarm(String smoke_alarm) { + this.smoke_alarm = smoke_alarm; + } + + public double getSmoke_conf() { + return smoke_conf; + } + + public void setSmoke_conf(double smoke_conf) { + this.smoke_conf = smoke_conf; + } + } +} 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 d04d9ad..909d47d 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 @@ -91,12 +91,6 @@ ): String /** - * 报警详情 - */ - @GET("/alarm/detail") - suspend fun getAlarmDetail(@Header("token") token: String, @Query("id") id: String): String - - /** * 切换场景阶段 */ @POST("/setPhase") @@ -124,6 +118,18 @@ suspend fun getAlarmState(@Query("deviceIp") deviceIp: String): String /** + * 其他报警开关 + * */ + @POST("/setModelConfig") + suspend fun changeOtherAlarmState(@Body requestBody: RequestBody): String + + /** + * 查询其他报警状态 + */ + @GET("/getModelConfig") + suspend fun getOtherAlarmState(@Query("deviceIp") deviceIp: String): String + + /** * 提交算法区域 */ @POST("/setPosition") 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 872c1cc..eb9095f 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 @@ -100,13 +100,6 @@ } /** - * 报警详情 - */ - suspend fun getAlarmDetail(id: String): String { - return api.getAlarmDetail(AuthenticationHelper.token!!, id) - } - - /** * 上传图片 */ suspend fun uploadImage(image: File): String { @@ -259,6 +252,35 @@ } /** + * 其他报警开关 + * */ + suspend fun changeOtherAlarmState( + httpConfig: String, deviceIp: String, model: String, conf: String, state: String + ): String { + val param = JsonObject() + param.addProperty("deviceIp", deviceIp) + param.addProperty("model", model) + if (conf != "") { + param.addProperty("conf", conf) + } + param.addProperty("alarm", state) + + val requestBody = param.toString().toRequestBody( + "application/json;charset=UTF-8".toMediaType() + ) + val service = RetrofitFactory.createRetrofit("http://$httpConfig:5000") + return service.changeOtherAlarmState(requestBody) + } + + /** + * 查询其他报警状态 + */ + suspend fun getOtherAlarmState(httpConfig: String, deviceIp: String): String { + val service = RetrofitFactory.createRetrofit("http://$httpConfig:5000") + return service.getOtherAlarmState(deviceIp) + } + + /** * 设置区域 * */ suspend fun setVideoRegion(httpConfig: String, position: ArrayList): 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 78bfef2..cb6f94b 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 @@ -10,6 +10,7 @@ import android.net.wifi.WifiNetworkSpecifier import android.os.Build import android.os.Bundle +import android.text.TextUtils import android.util.Log import android.view.MotionEvent import android.view.View @@ -34,6 +35,7 @@ import com.pengxh.kt.lite.utils.ActivityStackManager import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.widget.TitleBarView +import com.pengxh.kt.lite.widget.dialog.AlertInputDialog import com.pengxh.kt.lite.widget.dialog.BottomActionSheet class DeviceControlByNativeActivity : KotlinBaseActivity() { @@ -114,7 +116,7 @@ }).build().show() } - binding.alarmSwitch.setOnCheckedChangeListener { _, isChecked -> + binding.alarmCheckBox.setOnCheckedChangeListener { _, isChecked -> if (cameraIp == "") { "请先选择设备".show(this) return@setOnCheckedChangeListener @@ -129,6 +131,56 @@ alarmViewModel.changeAlarmState(httpConfig, cameraIp, state) } + binding.helmetCheckBox.setOnCheckedChangeListener { _, isChecked -> + val state = if (isChecked) { + "1" + } else { + "0" + } + alarmViewModel.changeOtherAlarmState(httpConfig, cameraIp, "helmet", "", state) + } + + binding.smokeCheckbox.setOnCheckedChangeListener { _, isChecked -> + val state = if (isChecked) { + "1" + } else { + "0" + } + val value = SaveKeyValues.getValue("SmokeValue", "0.65") as String + + alarmViewModel.changeOtherAlarmState(httpConfig, cameraIp, "smoke", value, state) + } + + binding.changeSmokeConfigView.setOnClickListener { + AlertInputDialog.Builder() + .setContext(this) + .setTitle("设置阈值") + .setHintMessage("请输入吸烟报警阈值[0~1]") + .setNegativeButton("取消") + .setPositiveButton("确定") + .setOnDialogButtonClickListener(object : + AlertInputDialog.OnDialogButtonClickListener { + override fun onConfirmClick(value: String) { + if (!TextUtils.isEmpty(value)) { + val state = if (binding.smokeCheckbox.isChecked) { + "1" + } else { + "0" + } + SaveKeyValues.putValue("SmokeValue", value) + + alarmViewModel.changeOtherAlarmState( + httpConfig, cameraIp, "smoke", value, state + ) + } else { + "什么都还没输入呢!".show(this@DeviceControlByNativeActivity) + } + } + + override fun onCancelClick() {} + }).build().show() + } + binding.leftButton.setOnTouchListener { _, event -> when (event.action) { MotionEvent.ACTION_DOWN -> executeCommand("Left") @@ -209,12 +261,18 @@ deviceViewModel = ViewModelProvider(this)[DeviceViewModel::class.java] alarmViewModel = ViewModelProvider(this)[AlarmViewModel::class.java] - alarmViewModel.changeStateResult.observe(this) { - alarmViewModel.getAlarmState(context, httpConfig, cameraIp) - } alarmViewModel.stateResult.observe(this) { if (it.code == 200) { - binding.alarmSwitch.isChecked = it.data.state == "1" + binding.alarmCheckBox.isChecked = it.data.state == "1" + } + } + + alarmViewModel.otherStateResult.observe(this) { result -> + if (result.code == 200) { + result.data.let { + binding.helmetCheckBox.isChecked = it.break_alarm == "1" + binding.smokeCheckbox.isChecked = it.smoke_alarm == "1" + } } } @@ -259,6 +317,7 @@ if (connectivityManager?.bindProcessToNetwork(network) == true) { "设备连接成功".show(context) alarmViewModel.getAlarmState(context, httpConfig, cameraIp) + alarmViewModel.getOtherAlarmState(context, httpConfig, cameraIp) } } diff --git a/app/src/main/java/com/casic/br/operationsite/model/AlarmDetailModel.java b/app/src/main/java/com/casic/br/operationsite/model/AlarmDetailModel.java deleted file mode 100644 index c632c8a..0000000 --- a/app/src/main/java/com/casic/br/operationsite/model/AlarmDetailModel.java +++ /dev/null @@ -1,134 +0,0 @@ -package com.casic.br.operationsite.model; - -public class AlarmDetailModel { - - private int code; - private DataBean data; - private String message; - private boolean success; - - public int getCode() { - return code; - } - - public void setCode(int code) { - this.code = code; - } - - public DataBean getData() { - return data; - } - - public void setData(DataBean data) { - this.data = data; - } - - public String getMessage() { - return message; - } - - public void setMessage(String message) { - this.message = message; - } - - public boolean isSuccess() { - return success; - } - - public void setSuccess(boolean success) { - this.success = success; - } - - public static class DataBean { - private String alarmDescription; - private String alarmLat; - private String alarmLng; - private String area; - private String createTime; - private String id; - private String illegalAvatar; - private String location; - private String projectName; - private String projectType; - - public String getAlarmDescription() { - return alarmDescription; - } - - public void setAlarmDescription(String alarmDescription) { - this.alarmDescription = alarmDescription; - } - - public String getAlarmLat() { - return alarmLat; - } - - public void setAlarmLat(String alarmLat) { - this.alarmLat = alarmLat; - } - - public String getAlarmLng() { - return alarmLng; - } - - public void setAlarmLng(String alarmLng) { - this.alarmLng = alarmLng; - } - - public String getArea() { - return area; - } - - public void setArea(String area) { - this.area = area; - } - - public String getCreateTime() { - return createTime; - } - - public void setCreateTime(String createTime) { - this.createTime = createTime; - } - - public String getId() { - return id; - } - - public void setId(String id) { - this.id = id; - } - - public String getIllegalAvatar() { - return illegalAvatar; - } - - public void setIllegalAvatar(String illegalAvatar) { - this.illegalAvatar = illegalAvatar; - } - - public String getLocation() { - return location; - } - - public void setLocation(String location) { - this.location = location; - } - - public String getProjectName() { - return projectName; - } - - public void setProjectName(String projectName) { - this.projectName = projectName; - } - - public String getProjectType() { - return projectType; - } - - public void setProjectType(String projectType) { - this.projectType = projectType; - } - } -} diff --git a/app/src/main/java/com/casic/br/operationsite/model/OtherAlarmStateModel.java b/app/src/main/java/com/casic/br/operationsite/model/OtherAlarmStateModel.java new file mode 100644 index 0000000..a61a70b --- /dev/null +++ b/app/src/main/java/com/casic/br/operationsite/model/OtherAlarmStateModel.java @@ -0,0 +1,71 @@ +package com.casic.br.operationsite.model; + +public class OtherAlarmStateModel { + + private int code; + private DataModel data; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataModel getData() { + return data; + } + + public void setData(DataModel data) { + this.data = data; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataModel { + private String break_alarm; + private String no_supervisor_alarm; + private String smoke_alarm; + private double smoke_conf; + + public String getBreak_alarm() { + return break_alarm; + } + + public void setBreak_alarm(String break_alarm) { + this.break_alarm = break_alarm; + } + + public String getNo_supervisor_alarm() { + return no_supervisor_alarm; + } + + public void setNo_supervisor_alarm(String no_supervisor_alarm) { + this.no_supervisor_alarm = no_supervisor_alarm; + } + + public String getSmoke_alarm() { + return smoke_alarm; + } + + public void setSmoke_alarm(String smoke_alarm) { + this.smoke_alarm = smoke_alarm; + } + + public double getSmoke_conf() { + return smoke_conf; + } + + public void setSmoke_conf(double smoke_conf) { + this.smoke_conf = smoke_conf; + } + } +} 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 d04d9ad..909d47d 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 @@ -91,12 +91,6 @@ ): String /** - * 报警详情 - */ - @GET("/alarm/detail") - suspend fun getAlarmDetail(@Header("token") token: String, @Query("id") id: String): String - - /** * 切换场景阶段 */ @POST("/setPhase") @@ -124,6 +118,18 @@ suspend fun getAlarmState(@Query("deviceIp") deviceIp: String): String /** + * 其他报警开关 + * */ + @POST("/setModelConfig") + suspend fun changeOtherAlarmState(@Body requestBody: RequestBody): String + + /** + * 查询其他报警状态 + */ + @GET("/getModelConfig") + suspend fun getOtherAlarmState(@Query("deviceIp") deviceIp: String): String + + /** * 提交算法区域 */ @POST("/setPosition") 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 872c1cc..eb9095f 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 @@ -100,13 +100,6 @@ } /** - * 报警详情 - */ - suspend fun getAlarmDetail(id: String): String { - return api.getAlarmDetail(AuthenticationHelper.token!!, id) - } - - /** * 上传图片 */ suspend fun uploadImage(image: File): String { @@ -259,6 +252,35 @@ } /** + * 其他报警开关 + * */ + suspend fun changeOtherAlarmState( + httpConfig: String, deviceIp: String, model: String, conf: String, state: String + ): String { + val param = JsonObject() + param.addProperty("deviceIp", deviceIp) + param.addProperty("model", model) + if (conf != "") { + param.addProperty("conf", conf) + } + param.addProperty("alarm", state) + + val requestBody = param.toString().toRequestBody( + "application/json;charset=UTF-8".toMediaType() + ) + val service = RetrofitFactory.createRetrofit("http://$httpConfig:5000") + return service.changeOtherAlarmState(requestBody) + } + + /** + * 查询其他报警状态 + */ + suspend fun getOtherAlarmState(httpConfig: String, deviceIp: String): String { + val service = RetrofitFactory.createRetrofit("http://$httpConfig:5000") + return service.getOtherAlarmState(deviceIp) + } + + /** * 设置区域 * */ suspend fun setVideoRegion(httpConfig: String, position: ArrayList): 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 78bfef2..cb6f94b 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 @@ -10,6 +10,7 @@ import android.net.wifi.WifiNetworkSpecifier import android.os.Build import android.os.Bundle +import android.text.TextUtils import android.util.Log import android.view.MotionEvent import android.view.View @@ -34,6 +35,7 @@ import com.pengxh.kt.lite.utils.ActivityStackManager import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.widget.TitleBarView +import com.pengxh.kt.lite.widget.dialog.AlertInputDialog import com.pengxh.kt.lite.widget.dialog.BottomActionSheet class DeviceControlByNativeActivity : KotlinBaseActivity() { @@ -114,7 +116,7 @@ }).build().show() } - binding.alarmSwitch.setOnCheckedChangeListener { _, isChecked -> + binding.alarmCheckBox.setOnCheckedChangeListener { _, isChecked -> if (cameraIp == "") { "请先选择设备".show(this) return@setOnCheckedChangeListener @@ -129,6 +131,56 @@ alarmViewModel.changeAlarmState(httpConfig, cameraIp, state) } + binding.helmetCheckBox.setOnCheckedChangeListener { _, isChecked -> + val state = if (isChecked) { + "1" + } else { + "0" + } + alarmViewModel.changeOtherAlarmState(httpConfig, cameraIp, "helmet", "", state) + } + + binding.smokeCheckbox.setOnCheckedChangeListener { _, isChecked -> + val state = if (isChecked) { + "1" + } else { + "0" + } + val value = SaveKeyValues.getValue("SmokeValue", "0.65") as String + + alarmViewModel.changeOtherAlarmState(httpConfig, cameraIp, "smoke", value, state) + } + + binding.changeSmokeConfigView.setOnClickListener { + AlertInputDialog.Builder() + .setContext(this) + .setTitle("设置阈值") + .setHintMessage("请输入吸烟报警阈值[0~1]") + .setNegativeButton("取消") + .setPositiveButton("确定") + .setOnDialogButtonClickListener(object : + AlertInputDialog.OnDialogButtonClickListener { + override fun onConfirmClick(value: String) { + if (!TextUtils.isEmpty(value)) { + val state = if (binding.smokeCheckbox.isChecked) { + "1" + } else { + "0" + } + SaveKeyValues.putValue("SmokeValue", value) + + alarmViewModel.changeOtherAlarmState( + httpConfig, cameraIp, "smoke", value, state + ) + } else { + "什么都还没输入呢!".show(this@DeviceControlByNativeActivity) + } + } + + override fun onCancelClick() {} + }).build().show() + } + binding.leftButton.setOnTouchListener { _, event -> when (event.action) { MotionEvent.ACTION_DOWN -> executeCommand("Left") @@ -209,12 +261,18 @@ deviceViewModel = ViewModelProvider(this)[DeviceViewModel::class.java] alarmViewModel = ViewModelProvider(this)[AlarmViewModel::class.java] - alarmViewModel.changeStateResult.observe(this) { - alarmViewModel.getAlarmState(context, httpConfig, cameraIp) - } alarmViewModel.stateResult.observe(this) { if (it.code == 200) { - binding.alarmSwitch.isChecked = it.data.state == "1" + binding.alarmCheckBox.isChecked = it.data.state == "1" + } + } + + alarmViewModel.otherStateResult.observe(this) { result -> + if (result.code == 200) { + result.data.let { + binding.helmetCheckBox.isChecked = it.break_alarm == "1" + binding.smokeCheckbox.isChecked = it.smoke_alarm == "1" + } } } @@ -259,6 +317,7 @@ if (connectivityManager?.bindProcessToNetwork(network) == true) { "设备连接成功".show(context) alarmViewModel.getAlarmState(context, httpConfig, cameraIp) + alarmViewModel.getOtherAlarmState(context, httpConfig, cameraIp) } } diff --git a/app/src/main/java/com/casic/br/operationsite/vm/AlarmViewModel.kt b/app/src/main/java/com/casic/br/operationsite/vm/AlarmViewModel.kt index 265b27b..888f92e 100644 --- a/app/src/main/java/com/casic/br/operationsite/vm/AlarmViewModel.kt +++ b/app/src/main/java/com/casic/br/operationsite/vm/AlarmViewModel.kt @@ -4,9 +4,9 @@ import androidx.lifecycle.MutableLiveData import com.casic.br.operationsite.extensions.getResponseCode import com.casic.br.operationsite.extensions.getResponseMessage -import com.casic.br.operationsite.model.AlarmDetailModel import com.casic.br.operationsite.model.AlarmListModel import com.casic.br.operationsite.model.AlarmStateModel +import com.casic.br.operationsite.model.OtherAlarmStateModel import com.casic.br.operationsite.retrofit.RetrofitServiceManager import com.google.gson.Gson import com.google.gson.reflect.TypeToken @@ -19,9 +19,8 @@ private val gson = Gson() val alarmModel = MutableLiveData() - val detailModel = MutableLiveData() - val changeStateResult = MutableLiveData() val stateResult = MutableLiveData() + val otherStateResult = MutableLiveData() fun getAlarmListByPage(context: Context, keywords: String, page: Int) = launch({ loadState.value = LoadState.Loading @@ -44,30 +43,8 @@ it.printStackTrace() }) - fun getAlarmDetail(context: Context, id: String) = launch({ - loadState.value = LoadState.Loading - val response = RetrofitServiceManager.getAlarmDetail(id) - when (response.getResponseCode()) { - 200 -> { - detailModel.value = gson.fromJson( - response, object : TypeToken() {}.type - ) - loadState.value = LoadState.Success - } - - else -> { - loadState.value = LoadState.Fail - response.getResponseMessage().show(context) - } - } - }, { - loadState.value = LoadState.Fail - it.printStackTrace() - }) - fun changeAlarmState(httpConfig: String, deviceIp: String, state: String) = launch({ - val response = RetrofitServiceManager.changeAlarmState(httpConfig, deviceIp, state) - changeStateResult.value = response.getResponseCode() == 200 + RetrofitServiceManager.changeAlarmState(httpConfig, deviceIp, state) }) fun getAlarmState(context: Context, httpConfig: String, deviceIp: String) = launch({ @@ -86,4 +63,33 @@ }, { it.printStackTrace() }) + + /** + * 其他报警开关 + * */ + fun changeOtherAlarmState( + httpConfig: String, deviceIp: String, model: String, conf: String, state: String + ) = launch({ + RetrofitServiceManager.changeOtherAlarmState(httpConfig, deviceIp, model, conf, state) + }) + + /** + * 查询其他报警状态 + */ + fun getOtherAlarmState(context: Context, httpConfig: String, deviceIp: String) = launch({ + val response = RetrofitServiceManager.getOtherAlarmState(httpConfig, deviceIp) + when (response.getResponseCode()) { + 200 -> { + otherStateResult.value = gson.fromJson( + response, object : TypeToken() {}.type + ) + } + + else -> { + response.getResponseMessage().show(context) + } + } + }, { + it.printStackTrace() + }) } \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/operationsite/model/AlarmDetailModel.java b/app/src/main/java/com/casic/br/operationsite/model/AlarmDetailModel.java deleted file mode 100644 index c632c8a..0000000 --- a/app/src/main/java/com/casic/br/operationsite/model/AlarmDetailModel.java +++ /dev/null @@ -1,134 +0,0 @@ -package com.casic.br.operationsite.model; - -public class AlarmDetailModel { - - private int code; - private DataBean data; - private String message; - private boolean success; - - public int getCode() { - return code; - } - - public void setCode(int code) { - this.code = code; - } - - public DataBean getData() { - return data; - } - - public void setData(DataBean data) { - this.data = data; - } - - public String getMessage() { - return message; - } - - public void setMessage(String message) { - this.message = message; - } - - public boolean isSuccess() { - return success; - } - - public void setSuccess(boolean success) { - this.success = success; - } - - public static class DataBean { - private String alarmDescription; - private String alarmLat; - private String alarmLng; - private String area; - private String createTime; - private String id; - private String illegalAvatar; - private String location; - private String projectName; - private String projectType; - - public String getAlarmDescription() { - return alarmDescription; - } - - public void setAlarmDescription(String alarmDescription) { - this.alarmDescription = alarmDescription; - } - - public String getAlarmLat() { - return alarmLat; - } - - public void setAlarmLat(String alarmLat) { - this.alarmLat = alarmLat; - } - - public String getAlarmLng() { - return alarmLng; - } - - public void setAlarmLng(String alarmLng) { - this.alarmLng = alarmLng; - } - - public String getArea() { - return area; - } - - public void setArea(String area) { - this.area = area; - } - - public String getCreateTime() { - return createTime; - } - - public void setCreateTime(String createTime) { - this.createTime = createTime; - } - - public String getId() { - return id; - } - - public void setId(String id) { - this.id = id; - } - - public String getIllegalAvatar() { - return illegalAvatar; - } - - public void setIllegalAvatar(String illegalAvatar) { - this.illegalAvatar = illegalAvatar; - } - - public String getLocation() { - return location; - } - - public void setLocation(String location) { - this.location = location; - } - - public String getProjectName() { - return projectName; - } - - public void setProjectName(String projectName) { - this.projectName = projectName; - } - - public String getProjectType() { - return projectType; - } - - public void setProjectType(String projectType) { - this.projectType = projectType; - } - } -} diff --git a/app/src/main/java/com/casic/br/operationsite/model/OtherAlarmStateModel.java b/app/src/main/java/com/casic/br/operationsite/model/OtherAlarmStateModel.java new file mode 100644 index 0000000..a61a70b --- /dev/null +++ b/app/src/main/java/com/casic/br/operationsite/model/OtherAlarmStateModel.java @@ -0,0 +1,71 @@ +package com.casic.br.operationsite.model; + +public class OtherAlarmStateModel { + + private int code; + private DataModel data; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataModel getData() { + return data; + } + + public void setData(DataModel data) { + this.data = data; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataModel { + private String break_alarm; + private String no_supervisor_alarm; + private String smoke_alarm; + private double smoke_conf; + + public String getBreak_alarm() { + return break_alarm; + } + + public void setBreak_alarm(String break_alarm) { + this.break_alarm = break_alarm; + } + + public String getNo_supervisor_alarm() { + return no_supervisor_alarm; + } + + public void setNo_supervisor_alarm(String no_supervisor_alarm) { + this.no_supervisor_alarm = no_supervisor_alarm; + } + + public String getSmoke_alarm() { + return smoke_alarm; + } + + public void setSmoke_alarm(String smoke_alarm) { + this.smoke_alarm = smoke_alarm; + } + + public double getSmoke_conf() { + return smoke_conf; + } + + public void setSmoke_conf(double smoke_conf) { + this.smoke_conf = smoke_conf; + } + } +} 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 d04d9ad..909d47d 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 @@ -91,12 +91,6 @@ ): String /** - * 报警详情 - */ - @GET("/alarm/detail") - suspend fun getAlarmDetail(@Header("token") token: String, @Query("id") id: String): String - - /** * 切换场景阶段 */ @POST("/setPhase") @@ -124,6 +118,18 @@ suspend fun getAlarmState(@Query("deviceIp") deviceIp: String): String /** + * 其他报警开关 + * */ + @POST("/setModelConfig") + suspend fun changeOtherAlarmState(@Body requestBody: RequestBody): String + + /** + * 查询其他报警状态 + */ + @GET("/getModelConfig") + suspend fun getOtherAlarmState(@Query("deviceIp") deviceIp: String): String + + /** * 提交算法区域 */ @POST("/setPosition") 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 872c1cc..eb9095f 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 @@ -100,13 +100,6 @@ } /** - * 报警详情 - */ - suspend fun getAlarmDetail(id: String): String { - return api.getAlarmDetail(AuthenticationHelper.token!!, id) - } - - /** * 上传图片 */ suspend fun uploadImage(image: File): String { @@ -259,6 +252,35 @@ } /** + * 其他报警开关 + * */ + suspend fun changeOtherAlarmState( + httpConfig: String, deviceIp: String, model: String, conf: String, state: String + ): String { + val param = JsonObject() + param.addProperty("deviceIp", deviceIp) + param.addProperty("model", model) + if (conf != "") { + param.addProperty("conf", conf) + } + param.addProperty("alarm", state) + + val requestBody = param.toString().toRequestBody( + "application/json;charset=UTF-8".toMediaType() + ) + val service = RetrofitFactory.createRetrofit("http://$httpConfig:5000") + return service.changeOtherAlarmState(requestBody) + } + + /** + * 查询其他报警状态 + */ + suspend fun getOtherAlarmState(httpConfig: String, deviceIp: String): String { + val service = RetrofitFactory.createRetrofit("http://$httpConfig:5000") + return service.getOtherAlarmState(deviceIp) + } + + /** * 设置区域 * */ suspend fun setVideoRegion(httpConfig: String, position: ArrayList): 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 78bfef2..cb6f94b 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 @@ -10,6 +10,7 @@ import android.net.wifi.WifiNetworkSpecifier import android.os.Build import android.os.Bundle +import android.text.TextUtils import android.util.Log import android.view.MotionEvent import android.view.View @@ -34,6 +35,7 @@ import com.pengxh.kt.lite.utils.ActivityStackManager import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.widget.TitleBarView +import com.pengxh.kt.lite.widget.dialog.AlertInputDialog import com.pengxh.kt.lite.widget.dialog.BottomActionSheet class DeviceControlByNativeActivity : KotlinBaseActivity() { @@ -114,7 +116,7 @@ }).build().show() } - binding.alarmSwitch.setOnCheckedChangeListener { _, isChecked -> + binding.alarmCheckBox.setOnCheckedChangeListener { _, isChecked -> if (cameraIp == "") { "请先选择设备".show(this) return@setOnCheckedChangeListener @@ -129,6 +131,56 @@ alarmViewModel.changeAlarmState(httpConfig, cameraIp, state) } + binding.helmetCheckBox.setOnCheckedChangeListener { _, isChecked -> + val state = if (isChecked) { + "1" + } else { + "0" + } + alarmViewModel.changeOtherAlarmState(httpConfig, cameraIp, "helmet", "", state) + } + + binding.smokeCheckbox.setOnCheckedChangeListener { _, isChecked -> + val state = if (isChecked) { + "1" + } else { + "0" + } + val value = SaveKeyValues.getValue("SmokeValue", "0.65") as String + + alarmViewModel.changeOtherAlarmState(httpConfig, cameraIp, "smoke", value, state) + } + + binding.changeSmokeConfigView.setOnClickListener { + AlertInputDialog.Builder() + .setContext(this) + .setTitle("设置阈值") + .setHintMessage("请输入吸烟报警阈值[0~1]") + .setNegativeButton("取消") + .setPositiveButton("确定") + .setOnDialogButtonClickListener(object : + AlertInputDialog.OnDialogButtonClickListener { + override fun onConfirmClick(value: String) { + if (!TextUtils.isEmpty(value)) { + val state = if (binding.smokeCheckbox.isChecked) { + "1" + } else { + "0" + } + SaveKeyValues.putValue("SmokeValue", value) + + alarmViewModel.changeOtherAlarmState( + httpConfig, cameraIp, "smoke", value, state + ) + } else { + "什么都还没输入呢!".show(this@DeviceControlByNativeActivity) + } + } + + override fun onCancelClick() {} + }).build().show() + } + binding.leftButton.setOnTouchListener { _, event -> when (event.action) { MotionEvent.ACTION_DOWN -> executeCommand("Left") @@ -209,12 +261,18 @@ deviceViewModel = ViewModelProvider(this)[DeviceViewModel::class.java] alarmViewModel = ViewModelProvider(this)[AlarmViewModel::class.java] - alarmViewModel.changeStateResult.observe(this) { - alarmViewModel.getAlarmState(context, httpConfig, cameraIp) - } alarmViewModel.stateResult.observe(this) { if (it.code == 200) { - binding.alarmSwitch.isChecked = it.data.state == "1" + binding.alarmCheckBox.isChecked = it.data.state == "1" + } + } + + alarmViewModel.otherStateResult.observe(this) { result -> + if (result.code == 200) { + result.data.let { + binding.helmetCheckBox.isChecked = it.break_alarm == "1" + binding.smokeCheckbox.isChecked = it.smoke_alarm == "1" + } } } @@ -259,6 +317,7 @@ if (connectivityManager?.bindProcessToNetwork(network) == true) { "设备连接成功".show(context) alarmViewModel.getAlarmState(context, httpConfig, cameraIp) + alarmViewModel.getOtherAlarmState(context, httpConfig, cameraIp) } } diff --git a/app/src/main/java/com/casic/br/operationsite/vm/AlarmViewModel.kt b/app/src/main/java/com/casic/br/operationsite/vm/AlarmViewModel.kt index 265b27b..888f92e 100644 --- a/app/src/main/java/com/casic/br/operationsite/vm/AlarmViewModel.kt +++ b/app/src/main/java/com/casic/br/operationsite/vm/AlarmViewModel.kt @@ -4,9 +4,9 @@ import androidx.lifecycle.MutableLiveData import com.casic.br.operationsite.extensions.getResponseCode import com.casic.br.operationsite.extensions.getResponseMessage -import com.casic.br.operationsite.model.AlarmDetailModel import com.casic.br.operationsite.model.AlarmListModel import com.casic.br.operationsite.model.AlarmStateModel +import com.casic.br.operationsite.model.OtherAlarmStateModel import com.casic.br.operationsite.retrofit.RetrofitServiceManager import com.google.gson.Gson import com.google.gson.reflect.TypeToken @@ -19,9 +19,8 @@ private val gson = Gson() val alarmModel = MutableLiveData() - val detailModel = MutableLiveData() - val changeStateResult = MutableLiveData() val stateResult = MutableLiveData() + val otherStateResult = MutableLiveData() fun getAlarmListByPage(context: Context, keywords: String, page: Int) = launch({ loadState.value = LoadState.Loading @@ -44,30 +43,8 @@ it.printStackTrace() }) - fun getAlarmDetail(context: Context, id: String) = launch({ - loadState.value = LoadState.Loading - val response = RetrofitServiceManager.getAlarmDetail(id) - when (response.getResponseCode()) { - 200 -> { - detailModel.value = gson.fromJson( - response, object : TypeToken() {}.type - ) - loadState.value = LoadState.Success - } - - else -> { - loadState.value = LoadState.Fail - response.getResponseMessage().show(context) - } - } - }, { - loadState.value = LoadState.Fail - it.printStackTrace() - }) - fun changeAlarmState(httpConfig: String, deviceIp: String, state: String) = launch({ - val response = RetrofitServiceManager.changeAlarmState(httpConfig, deviceIp, state) - changeStateResult.value = response.getResponseCode() == 200 + RetrofitServiceManager.changeAlarmState(httpConfig, deviceIp, state) }) fun getAlarmState(context: Context, httpConfig: String, deviceIp: String) = launch({ @@ -86,4 +63,33 @@ }, { it.printStackTrace() }) + + /** + * 其他报警开关 + * */ + fun changeOtherAlarmState( + httpConfig: String, deviceIp: String, model: String, conf: String, state: String + ) = launch({ + RetrofitServiceManager.changeOtherAlarmState(httpConfig, deviceIp, model, conf, state) + }) + + /** + * 查询其他报警状态 + */ + fun getOtherAlarmState(context: Context, httpConfig: String, deviceIp: String) = launch({ + val response = RetrofitServiceManager.getOtherAlarmState(httpConfig, deviceIp) + when (response.getResponseCode()) { + 200 -> { + otherStateResult.value = gson.fromJson( + response, object : TypeToken() {}.type + ) + } + + else -> { + response.getResponseMessage().show(context) + } + } + }, { + it.printStackTrace() + }) } \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_edit.xml b/app/src/main/res/drawable/ic_edit.xml new file mode 100644 index 0000000..c2485cc --- /dev/null +++ b/app/src/main/res/drawable/ic_edit.xml @@ -0,0 +1,18 @@ + + + + + + diff --git a/app/src/main/java/com/casic/br/operationsite/model/AlarmDetailModel.java b/app/src/main/java/com/casic/br/operationsite/model/AlarmDetailModel.java deleted file mode 100644 index c632c8a..0000000 --- a/app/src/main/java/com/casic/br/operationsite/model/AlarmDetailModel.java +++ /dev/null @@ -1,134 +0,0 @@ -package com.casic.br.operationsite.model; - -public class AlarmDetailModel { - - private int code; - private DataBean data; - private String message; - private boolean success; - - public int getCode() { - return code; - } - - public void setCode(int code) { - this.code = code; - } - - public DataBean getData() { - return data; - } - - public void setData(DataBean data) { - this.data = data; - } - - public String getMessage() { - return message; - } - - public void setMessage(String message) { - this.message = message; - } - - public boolean isSuccess() { - return success; - } - - public void setSuccess(boolean success) { - this.success = success; - } - - public static class DataBean { - private String alarmDescription; - private String alarmLat; - private String alarmLng; - private String area; - private String createTime; - private String id; - private String illegalAvatar; - private String location; - private String projectName; - private String projectType; - - public String getAlarmDescription() { - return alarmDescription; - } - - public void setAlarmDescription(String alarmDescription) { - this.alarmDescription = alarmDescription; - } - - public String getAlarmLat() { - return alarmLat; - } - - public void setAlarmLat(String alarmLat) { - this.alarmLat = alarmLat; - } - - public String getAlarmLng() { - return alarmLng; - } - - public void setAlarmLng(String alarmLng) { - this.alarmLng = alarmLng; - } - - public String getArea() { - return area; - } - - public void setArea(String area) { - this.area = area; - } - - public String getCreateTime() { - return createTime; - } - - public void setCreateTime(String createTime) { - this.createTime = createTime; - } - - public String getId() { - return id; - } - - public void setId(String id) { - this.id = id; - } - - public String getIllegalAvatar() { - return illegalAvatar; - } - - public void setIllegalAvatar(String illegalAvatar) { - this.illegalAvatar = illegalAvatar; - } - - public String getLocation() { - return location; - } - - public void setLocation(String location) { - this.location = location; - } - - public String getProjectName() { - return projectName; - } - - public void setProjectName(String projectName) { - this.projectName = projectName; - } - - public String getProjectType() { - return projectType; - } - - public void setProjectType(String projectType) { - this.projectType = projectType; - } - } -} diff --git a/app/src/main/java/com/casic/br/operationsite/model/OtherAlarmStateModel.java b/app/src/main/java/com/casic/br/operationsite/model/OtherAlarmStateModel.java new file mode 100644 index 0000000..a61a70b --- /dev/null +++ b/app/src/main/java/com/casic/br/operationsite/model/OtherAlarmStateModel.java @@ -0,0 +1,71 @@ +package com.casic.br.operationsite.model; + +public class OtherAlarmStateModel { + + private int code; + private DataModel data; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataModel getData() { + return data; + } + + public void setData(DataModel data) { + this.data = data; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataModel { + private String break_alarm; + private String no_supervisor_alarm; + private String smoke_alarm; + private double smoke_conf; + + public String getBreak_alarm() { + return break_alarm; + } + + public void setBreak_alarm(String break_alarm) { + this.break_alarm = break_alarm; + } + + public String getNo_supervisor_alarm() { + return no_supervisor_alarm; + } + + public void setNo_supervisor_alarm(String no_supervisor_alarm) { + this.no_supervisor_alarm = no_supervisor_alarm; + } + + public String getSmoke_alarm() { + return smoke_alarm; + } + + public void setSmoke_alarm(String smoke_alarm) { + this.smoke_alarm = smoke_alarm; + } + + public double getSmoke_conf() { + return smoke_conf; + } + + public void setSmoke_conf(double smoke_conf) { + this.smoke_conf = smoke_conf; + } + } +} 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 d04d9ad..909d47d 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 @@ -91,12 +91,6 @@ ): String /** - * 报警详情 - */ - @GET("/alarm/detail") - suspend fun getAlarmDetail(@Header("token") token: String, @Query("id") id: String): String - - /** * 切换场景阶段 */ @POST("/setPhase") @@ -124,6 +118,18 @@ suspend fun getAlarmState(@Query("deviceIp") deviceIp: String): String /** + * 其他报警开关 + * */ + @POST("/setModelConfig") + suspend fun changeOtherAlarmState(@Body requestBody: RequestBody): String + + /** + * 查询其他报警状态 + */ + @GET("/getModelConfig") + suspend fun getOtherAlarmState(@Query("deviceIp") deviceIp: String): String + + /** * 提交算法区域 */ @POST("/setPosition") 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 872c1cc..eb9095f 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 @@ -100,13 +100,6 @@ } /** - * 报警详情 - */ - suspend fun getAlarmDetail(id: String): String { - return api.getAlarmDetail(AuthenticationHelper.token!!, id) - } - - /** * 上传图片 */ suspend fun uploadImage(image: File): String { @@ -259,6 +252,35 @@ } /** + * 其他报警开关 + * */ + suspend fun changeOtherAlarmState( + httpConfig: String, deviceIp: String, model: String, conf: String, state: String + ): String { + val param = JsonObject() + param.addProperty("deviceIp", deviceIp) + param.addProperty("model", model) + if (conf != "") { + param.addProperty("conf", conf) + } + param.addProperty("alarm", state) + + val requestBody = param.toString().toRequestBody( + "application/json;charset=UTF-8".toMediaType() + ) + val service = RetrofitFactory.createRetrofit("http://$httpConfig:5000") + return service.changeOtherAlarmState(requestBody) + } + + /** + * 查询其他报警状态 + */ + suspend fun getOtherAlarmState(httpConfig: String, deviceIp: String): String { + val service = RetrofitFactory.createRetrofit("http://$httpConfig:5000") + return service.getOtherAlarmState(deviceIp) + } + + /** * 设置区域 * */ suspend fun setVideoRegion(httpConfig: String, position: ArrayList): 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 78bfef2..cb6f94b 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 @@ -10,6 +10,7 @@ import android.net.wifi.WifiNetworkSpecifier import android.os.Build import android.os.Bundle +import android.text.TextUtils import android.util.Log import android.view.MotionEvent import android.view.View @@ -34,6 +35,7 @@ import com.pengxh.kt.lite.utils.ActivityStackManager import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.widget.TitleBarView +import com.pengxh.kt.lite.widget.dialog.AlertInputDialog import com.pengxh.kt.lite.widget.dialog.BottomActionSheet class DeviceControlByNativeActivity : KotlinBaseActivity() { @@ -114,7 +116,7 @@ }).build().show() } - binding.alarmSwitch.setOnCheckedChangeListener { _, isChecked -> + binding.alarmCheckBox.setOnCheckedChangeListener { _, isChecked -> if (cameraIp == "") { "请先选择设备".show(this) return@setOnCheckedChangeListener @@ -129,6 +131,56 @@ alarmViewModel.changeAlarmState(httpConfig, cameraIp, state) } + binding.helmetCheckBox.setOnCheckedChangeListener { _, isChecked -> + val state = if (isChecked) { + "1" + } else { + "0" + } + alarmViewModel.changeOtherAlarmState(httpConfig, cameraIp, "helmet", "", state) + } + + binding.smokeCheckbox.setOnCheckedChangeListener { _, isChecked -> + val state = if (isChecked) { + "1" + } else { + "0" + } + val value = SaveKeyValues.getValue("SmokeValue", "0.65") as String + + alarmViewModel.changeOtherAlarmState(httpConfig, cameraIp, "smoke", value, state) + } + + binding.changeSmokeConfigView.setOnClickListener { + AlertInputDialog.Builder() + .setContext(this) + .setTitle("设置阈值") + .setHintMessage("请输入吸烟报警阈值[0~1]") + .setNegativeButton("取消") + .setPositiveButton("确定") + .setOnDialogButtonClickListener(object : + AlertInputDialog.OnDialogButtonClickListener { + override fun onConfirmClick(value: String) { + if (!TextUtils.isEmpty(value)) { + val state = if (binding.smokeCheckbox.isChecked) { + "1" + } else { + "0" + } + SaveKeyValues.putValue("SmokeValue", value) + + alarmViewModel.changeOtherAlarmState( + httpConfig, cameraIp, "smoke", value, state + ) + } else { + "什么都还没输入呢!".show(this@DeviceControlByNativeActivity) + } + } + + override fun onCancelClick() {} + }).build().show() + } + binding.leftButton.setOnTouchListener { _, event -> when (event.action) { MotionEvent.ACTION_DOWN -> executeCommand("Left") @@ -209,12 +261,18 @@ deviceViewModel = ViewModelProvider(this)[DeviceViewModel::class.java] alarmViewModel = ViewModelProvider(this)[AlarmViewModel::class.java] - alarmViewModel.changeStateResult.observe(this) { - alarmViewModel.getAlarmState(context, httpConfig, cameraIp) - } alarmViewModel.stateResult.observe(this) { if (it.code == 200) { - binding.alarmSwitch.isChecked = it.data.state == "1" + binding.alarmCheckBox.isChecked = it.data.state == "1" + } + } + + alarmViewModel.otherStateResult.observe(this) { result -> + if (result.code == 200) { + result.data.let { + binding.helmetCheckBox.isChecked = it.break_alarm == "1" + binding.smokeCheckbox.isChecked = it.smoke_alarm == "1" + } } } @@ -259,6 +317,7 @@ if (connectivityManager?.bindProcessToNetwork(network) == true) { "设备连接成功".show(context) alarmViewModel.getAlarmState(context, httpConfig, cameraIp) + alarmViewModel.getOtherAlarmState(context, httpConfig, cameraIp) } } diff --git a/app/src/main/java/com/casic/br/operationsite/vm/AlarmViewModel.kt b/app/src/main/java/com/casic/br/operationsite/vm/AlarmViewModel.kt index 265b27b..888f92e 100644 --- a/app/src/main/java/com/casic/br/operationsite/vm/AlarmViewModel.kt +++ b/app/src/main/java/com/casic/br/operationsite/vm/AlarmViewModel.kt @@ -4,9 +4,9 @@ import androidx.lifecycle.MutableLiveData import com.casic.br.operationsite.extensions.getResponseCode import com.casic.br.operationsite.extensions.getResponseMessage -import com.casic.br.operationsite.model.AlarmDetailModel import com.casic.br.operationsite.model.AlarmListModel import com.casic.br.operationsite.model.AlarmStateModel +import com.casic.br.operationsite.model.OtherAlarmStateModel import com.casic.br.operationsite.retrofit.RetrofitServiceManager import com.google.gson.Gson import com.google.gson.reflect.TypeToken @@ -19,9 +19,8 @@ private val gson = Gson() val alarmModel = MutableLiveData() - val detailModel = MutableLiveData() - val changeStateResult = MutableLiveData() val stateResult = MutableLiveData() + val otherStateResult = MutableLiveData() fun getAlarmListByPage(context: Context, keywords: String, page: Int) = launch({ loadState.value = LoadState.Loading @@ -44,30 +43,8 @@ it.printStackTrace() }) - fun getAlarmDetail(context: Context, id: String) = launch({ - loadState.value = LoadState.Loading - val response = RetrofitServiceManager.getAlarmDetail(id) - when (response.getResponseCode()) { - 200 -> { - detailModel.value = gson.fromJson( - response, object : TypeToken() {}.type - ) - loadState.value = LoadState.Success - } - - else -> { - loadState.value = LoadState.Fail - response.getResponseMessage().show(context) - } - } - }, { - loadState.value = LoadState.Fail - it.printStackTrace() - }) - fun changeAlarmState(httpConfig: String, deviceIp: String, state: String) = launch({ - val response = RetrofitServiceManager.changeAlarmState(httpConfig, deviceIp, state) - changeStateResult.value = response.getResponseCode() == 200 + RetrofitServiceManager.changeAlarmState(httpConfig, deviceIp, state) }) fun getAlarmState(context: Context, httpConfig: String, deviceIp: String) = launch({ @@ -86,4 +63,33 @@ }, { it.printStackTrace() }) + + /** + * 其他报警开关 + * */ + fun changeOtherAlarmState( + httpConfig: String, deviceIp: String, model: String, conf: String, state: String + ) = launch({ + RetrofitServiceManager.changeOtherAlarmState(httpConfig, deviceIp, model, conf, state) + }) + + /** + * 查询其他报警状态 + */ + fun getOtherAlarmState(context: Context, httpConfig: String, deviceIp: String) = launch({ + val response = RetrofitServiceManager.getOtherAlarmState(httpConfig, deviceIp) + when (response.getResponseCode()) { + 200 -> { + otherStateResult.value = gson.fromJson( + response, object : TypeToken() {}.type + ) + } + + else -> { + response.getResponseMessage().show(context) + } + } + }, { + it.printStackTrace() + }) } \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_edit.xml b/app/src/main/res/drawable/ic_edit.xml new file mode 100644 index 0000000..c2485cc --- /dev/null +++ b/app/src/main/res/drawable/ic_edit.xml @@ -0,0 +1,18 @@ + + + + + + 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 55ab9ce..d3c3363 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 @@ -56,29 +56,56 @@ android:textSize="@dimen/sp_16" /> + + + android:layout_height="wrap_content"> - - - + android:text="声光报警" + android:textSize="@dimen/sp_12" /> + + + + + + + + + @@ -172,13 +199,13 @@ @@ -192,12 +219,12 @@ @@ -212,13 +239,13 @@ diff --git a/app/src/main/java/com/casic/br/operationsite/model/AlarmDetailModel.java b/app/src/main/java/com/casic/br/operationsite/model/AlarmDetailModel.java deleted file mode 100644 index c632c8a..0000000 --- a/app/src/main/java/com/casic/br/operationsite/model/AlarmDetailModel.java +++ /dev/null @@ -1,134 +0,0 @@ -package com.casic.br.operationsite.model; - -public class AlarmDetailModel { - - private int code; - private DataBean data; - private String message; - private boolean success; - - public int getCode() { - return code; - } - - public void setCode(int code) { - this.code = code; - } - - public DataBean getData() { - return data; - } - - public void setData(DataBean data) { - this.data = data; - } - - public String getMessage() { - return message; - } - - public void setMessage(String message) { - this.message = message; - } - - public boolean isSuccess() { - return success; - } - - public void setSuccess(boolean success) { - this.success = success; - } - - public static class DataBean { - private String alarmDescription; - private String alarmLat; - private String alarmLng; - private String area; - private String createTime; - private String id; - private String illegalAvatar; - private String location; - private String projectName; - private String projectType; - - public String getAlarmDescription() { - return alarmDescription; - } - - public void setAlarmDescription(String alarmDescription) { - this.alarmDescription = alarmDescription; - } - - public String getAlarmLat() { - return alarmLat; - } - - public void setAlarmLat(String alarmLat) { - this.alarmLat = alarmLat; - } - - public String getAlarmLng() { - return alarmLng; - } - - public void setAlarmLng(String alarmLng) { - this.alarmLng = alarmLng; - } - - public String getArea() { - return area; - } - - public void setArea(String area) { - this.area = area; - } - - public String getCreateTime() { - return createTime; - } - - public void setCreateTime(String createTime) { - this.createTime = createTime; - } - - public String getId() { - return id; - } - - public void setId(String id) { - this.id = id; - } - - public String getIllegalAvatar() { - return illegalAvatar; - } - - public void setIllegalAvatar(String illegalAvatar) { - this.illegalAvatar = illegalAvatar; - } - - public String getLocation() { - return location; - } - - public void setLocation(String location) { - this.location = location; - } - - public String getProjectName() { - return projectName; - } - - public void setProjectName(String projectName) { - this.projectName = projectName; - } - - public String getProjectType() { - return projectType; - } - - public void setProjectType(String projectType) { - this.projectType = projectType; - } - } -} diff --git a/app/src/main/java/com/casic/br/operationsite/model/OtherAlarmStateModel.java b/app/src/main/java/com/casic/br/operationsite/model/OtherAlarmStateModel.java new file mode 100644 index 0000000..a61a70b --- /dev/null +++ b/app/src/main/java/com/casic/br/operationsite/model/OtherAlarmStateModel.java @@ -0,0 +1,71 @@ +package com.casic.br.operationsite.model; + +public class OtherAlarmStateModel { + + private int code; + private DataModel data; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataModel getData() { + return data; + } + + public void setData(DataModel data) { + this.data = data; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataModel { + private String break_alarm; + private String no_supervisor_alarm; + private String smoke_alarm; + private double smoke_conf; + + public String getBreak_alarm() { + return break_alarm; + } + + public void setBreak_alarm(String break_alarm) { + this.break_alarm = break_alarm; + } + + public String getNo_supervisor_alarm() { + return no_supervisor_alarm; + } + + public void setNo_supervisor_alarm(String no_supervisor_alarm) { + this.no_supervisor_alarm = no_supervisor_alarm; + } + + public String getSmoke_alarm() { + return smoke_alarm; + } + + public void setSmoke_alarm(String smoke_alarm) { + this.smoke_alarm = smoke_alarm; + } + + public double getSmoke_conf() { + return smoke_conf; + } + + public void setSmoke_conf(double smoke_conf) { + this.smoke_conf = smoke_conf; + } + } +} 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 d04d9ad..909d47d 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 @@ -91,12 +91,6 @@ ): String /** - * 报警详情 - */ - @GET("/alarm/detail") - suspend fun getAlarmDetail(@Header("token") token: String, @Query("id") id: String): String - - /** * 切换场景阶段 */ @POST("/setPhase") @@ -124,6 +118,18 @@ suspend fun getAlarmState(@Query("deviceIp") deviceIp: String): String /** + * 其他报警开关 + * */ + @POST("/setModelConfig") + suspend fun changeOtherAlarmState(@Body requestBody: RequestBody): String + + /** + * 查询其他报警状态 + */ + @GET("/getModelConfig") + suspend fun getOtherAlarmState(@Query("deviceIp") deviceIp: String): String + + /** * 提交算法区域 */ @POST("/setPosition") 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 872c1cc..eb9095f 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 @@ -100,13 +100,6 @@ } /** - * 报警详情 - */ - suspend fun getAlarmDetail(id: String): String { - return api.getAlarmDetail(AuthenticationHelper.token!!, id) - } - - /** * 上传图片 */ suspend fun uploadImage(image: File): String { @@ -259,6 +252,35 @@ } /** + * 其他报警开关 + * */ + suspend fun changeOtherAlarmState( + httpConfig: String, deviceIp: String, model: String, conf: String, state: String + ): String { + val param = JsonObject() + param.addProperty("deviceIp", deviceIp) + param.addProperty("model", model) + if (conf != "") { + param.addProperty("conf", conf) + } + param.addProperty("alarm", state) + + val requestBody = param.toString().toRequestBody( + "application/json;charset=UTF-8".toMediaType() + ) + val service = RetrofitFactory.createRetrofit("http://$httpConfig:5000") + return service.changeOtherAlarmState(requestBody) + } + + /** + * 查询其他报警状态 + */ + suspend fun getOtherAlarmState(httpConfig: String, deviceIp: String): String { + val service = RetrofitFactory.createRetrofit("http://$httpConfig:5000") + return service.getOtherAlarmState(deviceIp) + } + + /** * 设置区域 * */ suspend fun setVideoRegion(httpConfig: String, position: ArrayList): 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 78bfef2..cb6f94b 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 @@ -10,6 +10,7 @@ import android.net.wifi.WifiNetworkSpecifier import android.os.Build import android.os.Bundle +import android.text.TextUtils import android.util.Log import android.view.MotionEvent import android.view.View @@ -34,6 +35,7 @@ import com.pengxh.kt.lite.utils.ActivityStackManager import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.widget.TitleBarView +import com.pengxh.kt.lite.widget.dialog.AlertInputDialog import com.pengxh.kt.lite.widget.dialog.BottomActionSheet class DeviceControlByNativeActivity : KotlinBaseActivity() { @@ -114,7 +116,7 @@ }).build().show() } - binding.alarmSwitch.setOnCheckedChangeListener { _, isChecked -> + binding.alarmCheckBox.setOnCheckedChangeListener { _, isChecked -> if (cameraIp == "") { "请先选择设备".show(this) return@setOnCheckedChangeListener @@ -129,6 +131,56 @@ alarmViewModel.changeAlarmState(httpConfig, cameraIp, state) } + binding.helmetCheckBox.setOnCheckedChangeListener { _, isChecked -> + val state = if (isChecked) { + "1" + } else { + "0" + } + alarmViewModel.changeOtherAlarmState(httpConfig, cameraIp, "helmet", "", state) + } + + binding.smokeCheckbox.setOnCheckedChangeListener { _, isChecked -> + val state = if (isChecked) { + "1" + } else { + "0" + } + val value = SaveKeyValues.getValue("SmokeValue", "0.65") as String + + alarmViewModel.changeOtherAlarmState(httpConfig, cameraIp, "smoke", value, state) + } + + binding.changeSmokeConfigView.setOnClickListener { + AlertInputDialog.Builder() + .setContext(this) + .setTitle("设置阈值") + .setHintMessage("请输入吸烟报警阈值[0~1]") + .setNegativeButton("取消") + .setPositiveButton("确定") + .setOnDialogButtonClickListener(object : + AlertInputDialog.OnDialogButtonClickListener { + override fun onConfirmClick(value: String) { + if (!TextUtils.isEmpty(value)) { + val state = if (binding.smokeCheckbox.isChecked) { + "1" + } else { + "0" + } + SaveKeyValues.putValue("SmokeValue", value) + + alarmViewModel.changeOtherAlarmState( + httpConfig, cameraIp, "smoke", value, state + ) + } else { + "什么都还没输入呢!".show(this@DeviceControlByNativeActivity) + } + } + + override fun onCancelClick() {} + }).build().show() + } + binding.leftButton.setOnTouchListener { _, event -> when (event.action) { MotionEvent.ACTION_DOWN -> executeCommand("Left") @@ -209,12 +261,18 @@ deviceViewModel = ViewModelProvider(this)[DeviceViewModel::class.java] alarmViewModel = ViewModelProvider(this)[AlarmViewModel::class.java] - alarmViewModel.changeStateResult.observe(this) { - alarmViewModel.getAlarmState(context, httpConfig, cameraIp) - } alarmViewModel.stateResult.observe(this) { if (it.code == 200) { - binding.alarmSwitch.isChecked = it.data.state == "1" + binding.alarmCheckBox.isChecked = it.data.state == "1" + } + } + + alarmViewModel.otherStateResult.observe(this) { result -> + if (result.code == 200) { + result.data.let { + binding.helmetCheckBox.isChecked = it.break_alarm == "1" + binding.smokeCheckbox.isChecked = it.smoke_alarm == "1" + } } } @@ -259,6 +317,7 @@ if (connectivityManager?.bindProcessToNetwork(network) == true) { "设备连接成功".show(context) alarmViewModel.getAlarmState(context, httpConfig, cameraIp) + alarmViewModel.getOtherAlarmState(context, httpConfig, cameraIp) } } diff --git a/app/src/main/java/com/casic/br/operationsite/vm/AlarmViewModel.kt b/app/src/main/java/com/casic/br/operationsite/vm/AlarmViewModel.kt index 265b27b..888f92e 100644 --- a/app/src/main/java/com/casic/br/operationsite/vm/AlarmViewModel.kt +++ b/app/src/main/java/com/casic/br/operationsite/vm/AlarmViewModel.kt @@ -4,9 +4,9 @@ import androidx.lifecycle.MutableLiveData import com.casic.br.operationsite.extensions.getResponseCode import com.casic.br.operationsite.extensions.getResponseMessage -import com.casic.br.operationsite.model.AlarmDetailModel import com.casic.br.operationsite.model.AlarmListModel import com.casic.br.operationsite.model.AlarmStateModel +import com.casic.br.operationsite.model.OtherAlarmStateModel import com.casic.br.operationsite.retrofit.RetrofitServiceManager import com.google.gson.Gson import com.google.gson.reflect.TypeToken @@ -19,9 +19,8 @@ private val gson = Gson() val alarmModel = MutableLiveData() - val detailModel = MutableLiveData() - val changeStateResult = MutableLiveData() val stateResult = MutableLiveData() + val otherStateResult = MutableLiveData() fun getAlarmListByPage(context: Context, keywords: String, page: Int) = launch({ loadState.value = LoadState.Loading @@ -44,30 +43,8 @@ it.printStackTrace() }) - fun getAlarmDetail(context: Context, id: String) = launch({ - loadState.value = LoadState.Loading - val response = RetrofitServiceManager.getAlarmDetail(id) - when (response.getResponseCode()) { - 200 -> { - detailModel.value = gson.fromJson( - response, object : TypeToken() {}.type - ) - loadState.value = LoadState.Success - } - - else -> { - loadState.value = LoadState.Fail - response.getResponseMessage().show(context) - } - } - }, { - loadState.value = LoadState.Fail - it.printStackTrace() - }) - fun changeAlarmState(httpConfig: String, deviceIp: String, state: String) = launch({ - val response = RetrofitServiceManager.changeAlarmState(httpConfig, deviceIp, state) - changeStateResult.value = response.getResponseCode() == 200 + RetrofitServiceManager.changeAlarmState(httpConfig, deviceIp, state) }) fun getAlarmState(context: Context, httpConfig: String, deviceIp: String) = launch({ @@ -86,4 +63,33 @@ }, { it.printStackTrace() }) + + /** + * 其他报警开关 + * */ + fun changeOtherAlarmState( + httpConfig: String, deviceIp: String, model: String, conf: String, state: String + ) = launch({ + RetrofitServiceManager.changeOtherAlarmState(httpConfig, deviceIp, model, conf, state) + }) + + /** + * 查询其他报警状态 + */ + fun getOtherAlarmState(context: Context, httpConfig: String, deviceIp: String) = launch({ + val response = RetrofitServiceManager.getOtherAlarmState(httpConfig, deviceIp) + when (response.getResponseCode()) { + 200 -> { + otherStateResult.value = gson.fromJson( + response, object : TypeToken() {}.type + ) + } + + else -> { + response.getResponseMessage().show(context) + } + } + }, { + it.printStackTrace() + }) } \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_edit.xml b/app/src/main/res/drawable/ic_edit.xml new file mode 100644 index 0000000..c2485cc --- /dev/null +++ b/app/src/main/res/drawable/ic_edit.xml @@ -0,0 +1,18 @@ + + + + + + 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 55ab9ce..d3c3363 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 @@ -56,29 +56,56 @@ android:textSize="@dimen/sp_16" /> + + + android:layout_height="wrap_content"> - - - + android:text="声光报警" + android:textSize="@dimen/sp_12" /> + + + + + + + + + @@ -172,13 +199,13 @@ @@ -192,12 +219,12 @@ @@ -212,13 +239,13 @@ diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml index 92a5037..7463874 100644 --- a/app/src/main/res/values/dimens.xml +++ b/app/src/main/res/values/dimens.xml @@ -15,6 +15,7 @@ 25dp 30dp 40dp + 45dp 50dp 60dp 75dp