diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 1a1b198..78112af 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -80,6 +80,7 @@ + + () + if (it.isOnline) { + val value = it.dps["15"].toString() + batteryView.setBackgroundResource(value.toBatteryImage()) + batteryValueView.text = "${value}%" - val value = it.dps["15"].toString() - batteryView.setBackgroundResource(value.toBatteryImage()) - batteryValueView.text = "${value}%" + val f = it.dps["11"] + faultAlarmView.text = if (f == 0) { + "正常" + } else { + "异常" + } + faultAlarmTimeView.text = if (faultAlarmView.text.toString() == "异常") { + System.currentTimeMillis().timestampToCompleteDate() + } else { + "--:--:--" + } - val f = it.dps["11"] - faultAlarmView.text = if (f == 0) { - "正常" + val c = it.dps["1"] as String + coAlarmView.text = if (c == "2") { + "正常" + } else { + "异常" + } + coAlarmTimeView.text = if (coAlarmView.text.toString() == "异常") { + System.currentTimeMillis().timestampToCompleteDate() + } else { + "--:--:--" + } } else { - "异常" - } - faultAlarmTimeView.text = if (faultAlarmView.text.toString() == "异常") { - System.currentTimeMillis().timestampToCompleteDate() - } else { - "--:--:--" - } + batteryView.setBackgroundResource("0".toBatteryImage()) + batteryValueView.text = "0%" - val c = it.dps["1"] as String - coAlarmView.text = if (c == "2") { - "正常" - } else { - "异常" - } - coAlarmTimeView.text = if (coAlarmView.text.toString() == "异常") { - System.currentTimeMillis().timestampToCompleteDate() - } else { - "--:--:--" + faultAlarmView.text = "已离线" + faultAlarmTimeView.text = "--:--:--" + + coAlarmView.text = "已离线" + coAlarmTimeView.text = "--:--:--" } dataLinkedList.add(dataMap) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 1a1b198..78112af 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -80,6 +80,7 @@ + () + if (it.isOnline) { + val value = it.dps["15"].toString() + batteryView.setBackgroundResource(value.toBatteryImage()) + batteryValueView.text = "${value}%" - val value = it.dps["15"].toString() - batteryView.setBackgroundResource(value.toBatteryImage()) - batteryValueView.text = "${value}%" + val f = it.dps["11"] + faultAlarmView.text = if (f == 0) { + "正常" + } else { + "异常" + } + faultAlarmTimeView.text = if (faultAlarmView.text.toString() == "异常") { + System.currentTimeMillis().timestampToCompleteDate() + } else { + "--:--:--" + } - val f = it.dps["11"] - faultAlarmView.text = if (f == 0) { - "正常" + val c = it.dps["1"] as String + coAlarmView.text = if (c == "2") { + "正常" + } else { + "异常" + } + coAlarmTimeView.text = if (coAlarmView.text.toString() == "异常") { + System.currentTimeMillis().timestampToCompleteDate() + } else { + "--:--:--" + } } else { - "异常" - } - faultAlarmTimeView.text = if (faultAlarmView.text.toString() == "异常") { - System.currentTimeMillis().timestampToCompleteDate() - } else { - "--:--:--" - } + batteryView.setBackgroundResource("0".toBatteryImage()) + batteryValueView.text = "0%" - val c = it.dps["1"] as String - coAlarmView.text = if (c == "2") { - "正常" - } else { - "异常" - } - coAlarmTimeView.text = if (coAlarmView.text.toString() == "异常") { - System.currentTimeMillis().timestampToCompleteDate() - } else { - "--:--:--" + faultAlarmView.text = "已离线" + faultAlarmTimeView.text = "--:--:--" + + coAlarmView.text = "已离线" + coAlarmTimeView.text = "--:--:--" } dataLinkedList.add(dataMap) diff --git a/app/src/main/java/com/casic/br/view/device/FireSensorActivity.kt b/app/src/main/java/com/casic/br/view/device/FireSensorActivity.kt index decde28..7d5cbd5 100644 --- a/app/src/main/java/com/casic/br/view/device/FireSensorActivity.kt +++ b/app/src/main/java/com/casic/br/view/device/FireSensorActivity.kt @@ -18,7 +18,15 @@ import com.tuya.smart.home.sdk.bean.HomeBean import com.tuya.smart.home.sdk.callback.ITuyaHomeResultCallback import com.tuya.smart.sdk.bean.DeviceBean +import kotlinx.android.synthetic.main.activity_co_senser.* import kotlinx.android.synthetic.main.activity_fire_senser.* +import kotlinx.android.synthetic.main.activity_fire_senser.batteryValueView +import kotlinx.android.synthetic.main.activity_fire_senser.batteryView +import kotlinx.android.synthetic.main.activity_fire_senser.deviceLogoView +import kotlinx.android.synthetic.main.activity_fire_senser.deviceStateView +import kotlinx.android.synthetic.main.activity_fire_senser.faultAlarmTimeView +import kotlinx.android.synthetic.main.activity_fire_senser.faultAlarmView +import kotlinx.android.synthetic.main.activity_fire_senser.rootView import kotlinx.android.synthetic.main.include_device_title.* import java.util.* @@ -93,55 +101,66 @@ .into(deviceLogoView) val dataMap = HashMap() + if (it.isOnline) { + /** + * {"11":0,"1":"normal","15":100,"4":false} + * + * {"11":{"name":"故障告警"},"1":{"name":"烟雾检测状态"},"4":{"name":"防拆报警"},"15":{"name":"电池电量"}} + * */ - /** - * {"11":0,"1":"normal","15":100,"4":false} - * - * {"11":{"name":"故障告警"},"1":{"name":"烟雾检测状态"},"4":{"name":"防拆报警"},"15":{"name":"电池电量"}} - * */ + val b = it.dps["15"].toString() + batteryView.setBackgroundResource(b.toBatteryImage()) + batteryValueView.text = "${b}%" - val b = it.dps["15"].toString() - batteryView.setBackgroundResource(b.toBatteryImage()) - batteryValueView.text = "${b}%" + val f = it.dps["11"] + faultAlarmView.text = if (f == 0) { + "正常" + } else { + "异常" + } + faultAlarmTimeView.text = if (faultAlarmView.text.toString() == "异常") { + System.currentTimeMillis().timestampToCompleteDate() + } else { + "--:--:--" + } - val f = it.dps["11"] - faultAlarmView.text = if (f == 0) { - "正常" - } else { - "异常" - } - faultAlarmTimeView.text = if (faultAlarmView.text.toString() == "异常") { - System.currentTimeMillis().timestampToCompleteDate() - } else { - "--:--:--" - } + val s = it.dps["1"] as String + fireAlarmView.text = if (s == "normal") { + "正常" + } else { + "异常" + } + fireAlarmTimeView.text = if (fireAlarmView.text.toString() == "异常") { + System.currentTimeMillis().timestampToCompleteDate() + } else { + "--:--:--" + } - val s = it.dps["1"] as String - fireAlarmView.text = if (s == "normal") { - "正常" + val t = it.dps["4"] as Boolean + tamperAlarmView.text = if (!t) { + "正常" + } else { + "异常" + } + tamperAlarmTimeView.text = if (tamperAlarmView.text.toString() == "异常") { + System.currentTimeMillis().timestampToCompleteDate() + } else { + "--:--:--" + } } else { - "异常" - } - fireAlarmTimeView.text = if (fireAlarmView.text.toString() == "异常") { - System.currentTimeMillis().timestampToCompleteDate() - } else { - "--:--:--" - } + batteryView.setBackgroundResource("0".toBatteryImage()) + batteryValueView.text = "0%" - val t = it.dps["4"] as Boolean - tamperAlarmView.text = if (!t) { - "正常" - } else { - "异常" - } - tamperAlarmTimeView.text = if (tamperAlarmView.text.toString() == "异常") { - System.currentTimeMillis().timestampToCompleteDate() - } else { - "--:--:--" - } + faultAlarmView.text = "已离线" + faultAlarmTimeView.text = "--:--:--" + fireAlarmView.text = "已离线" + fireAlarmTimeView.text = "--:--:--" + + tamperAlarmView.text = "已离线" + tamperAlarmTimeView.text = "--:--:--" + } // dataMap["temperature"] = temperatureView.text.toString().replace("°C", "") - dataLinkedList.add(dataMap) } } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 1a1b198..78112af 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -80,6 +80,7 @@ + () + if (it.isOnline) { + val value = it.dps["15"].toString() + batteryView.setBackgroundResource(value.toBatteryImage()) + batteryValueView.text = "${value}%" - val value = it.dps["15"].toString() - batteryView.setBackgroundResource(value.toBatteryImage()) - batteryValueView.text = "${value}%" + val f = it.dps["11"] + faultAlarmView.text = if (f == 0) { + "正常" + } else { + "异常" + } + faultAlarmTimeView.text = if (faultAlarmView.text.toString() == "异常") { + System.currentTimeMillis().timestampToCompleteDate() + } else { + "--:--:--" + } - val f = it.dps["11"] - faultAlarmView.text = if (f == 0) { - "正常" + val c = it.dps["1"] as String + coAlarmView.text = if (c == "2") { + "正常" + } else { + "异常" + } + coAlarmTimeView.text = if (coAlarmView.text.toString() == "异常") { + System.currentTimeMillis().timestampToCompleteDate() + } else { + "--:--:--" + } } else { - "异常" - } - faultAlarmTimeView.text = if (faultAlarmView.text.toString() == "异常") { - System.currentTimeMillis().timestampToCompleteDate() - } else { - "--:--:--" - } + batteryView.setBackgroundResource("0".toBatteryImage()) + batteryValueView.text = "0%" - val c = it.dps["1"] as String - coAlarmView.text = if (c == "2") { - "正常" - } else { - "异常" - } - coAlarmTimeView.text = if (coAlarmView.text.toString() == "异常") { - System.currentTimeMillis().timestampToCompleteDate() - } else { - "--:--:--" + faultAlarmView.text = "已离线" + faultAlarmTimeView.text = "--:--:--" + + coAlarmView.text = "已离线" + coAlarmTimeView.text = "--:--:--" } dataLinkedList.add(dataMap) diff --git a/app/src/main/java/com/casic/br/view/device/FireSensorActivity.kt b/app/src/main/java/com/casic/br/view/device/FireSensorActivity.kt index decde28..7d5cbd5 100644 --- a/app/src/main/java/com/casic/br/view/device/FireSensorActivity.kt +++ b/app/src/main/java/com/casic/br/view/device/FireSensorActivity.kt @@ -18,7 +18,15 @@ import com.tuya.smart.home.sdk.bean.HomeBean import com.tuya.smart.home.sdk.callback.ITuyaHomeResultCallback import com.tuya.smart.sdk.bean.DeviceBean +import kotlinx.android.synthetic.main.activity_co_senser.* import kotlinx.android.synthetic.main.activity_fire_senser.* +import kotlinx.android.synthetic.main.activity_fire_senser.batteryValueView +import kotlinx.android.synthetic.main.activity_fire_senser.batteryView +import kotlinx.android.synthetic.main.activity_fire_senser.deviceLogoView +import kotlinx.android.synthetic.main.activity_fire_senser.deviceStateView +import kotlinx.android.synthetic.main.activity_fire_senser.faultAlarmTimeView +import kotlinx.android.synthetic.main.activity_fire_senser.faultAlarmView +import kotlinx.android.synthetic.main.activity_fire_senser.rootView import kotlinx.android.synthetic.main.include_device_title.* import java.util.* @@ -93,55 +101,66 @@ .into(deviceLogoView) val dataMap = HashMap() + if (it.isOnline) { + /** + * {"11":0,"1":"normal","15":100,"4":false} + * + * {"11":{"name":"故障告警"},"1":{"name":"烟雾检测状态"},"4":{"name":"防拆报警"},"15":{"name":"电池电量"}} + * */ - /** - * {"11":0,"1":"normal","15":100,"4":false} - * - * {"11":{"name":"故障告警"},"1":{"name":"烟雾检测状态"},"4":{"name":"防拆报警"},"15":{"name":"电池电量"}} - * */ + val b = it.dps["15"].toString() + batteryView.setBackgroundResource(b.toBatteryImage()) + batteryValueView.text = "${b}%" - val b = it.dps["15"].toString() - batteryView.setBackgroundResource(b.toBatteryImage()) - batteryValueView.text = "${b}%" + val f = it.dps["11"] + faultAlarmView.text = if (f == 0) { + "正常" + } else { + "异常" + } + faultAlarmTimeView.text = if (faultAlarmView.text.toString() == "异常") { + System.currentTimeMillis().timestampToCompleteDate() + } else { + "--:--:--" + } - val f = it.dps["11"] - faultAlarmView.text = if (f == 0) { - "正常" - } else { - "异常" - } - faultAlarmTimeView.text = if (faultAlarmView.text.toString() == "异常") { - System.currentTimeMillis().timestampToCompleteDate() - } else { - "--:--:--" - } + val s = it.dps["1"] as String + fireAlarmView.text = if (s == "normal") { + "正常" + } else { + "异常" + } + fireAlarmTimeView.text = if (fireAlarmView.text.toString() == "异常") { + System.currentTimeMillis().timestampToCompleteDate() + } else { + "--:--:--" + } - val s = it.dps["1"] as String - fireAlarmView.text = if (s == "normal") { - "正常" + val t = it.dps["4"] as Boolean + tamperAlarmView.text = if (!t) { + "正常" + } else { + "异常" + } + tamperAlarmTimeView.text = if (tamperAlarmView.text.toString() == "异常") { + System.currentTimeMillis().timestampToCompleteDate() + } else { + "--:--:--" + } } else { - "异常" - } - fireAlarmTimeView.text = if (fireAlarmView.text.toString() == "异常") { - System.currentTimeMillis().timestampToCompleteDate() - } else { - "--:--:--" - } + batteryView.setBackgroundResource("0".toBatteryImage()) + batteryValueView.text = "0%" - val t = it.dps["4"] as Boolean - tamperAlarmView.text = if (!t) { - "正常" - } else { - "异常" - } - tamperAlarmTimeView.text = if (tamperAlarmView.text.toString() == "异常") { - System.currentTimeMillis().timestampToCompleteDate() - } else { - "--:--:--" - } + faultAlarmView.text = "已离线" + faultAlarmTimeView.text = "--:--:--" + fireAlarmView.text = "已离线" + fireAlarmTimeView.text = "--:--:--" + + tamperAlarmView.text = "已离线" + tamperAlarmTimeView.text = "--:--:--" + } // dataMap["temperature"] = temperatureView.text.toString().replace("°C", "") - dataLinkedList.add(dataMap) } } diff --git a/app/src/main/java/com/casic/br/view/device/GasSensorActivity.kt b/app/src/main/java/com/casic/br/view/device/GasSensorActivity.kt new file mode 100644 index 0000000..829eeaa --- /dev/null +++ b/app/src/main/java/com/casic/br/view/device/GasSensorActivity.kt @@ -0,0 +1,144 @@ +package com.casic.br.view.device + +import android.os.Handler +import android.util.Log +import android.view.View +import com.bumptech.glide.Glide +import com.bumptech.glide.request.RequestOptions +import com.casic.br.R +import com.casic.br.extensions.initLayoutImmersionBar +import com.casic.br.extensions.selectCategory +import com.casic.br.utils.DeserializeModel +import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.extensions.timestampToCompleteDate +import com.pengxh.kt.lite.utils.WeakReferenceHandler +import com.tuya.smart.home.sdk.TuyaHomeSdk +import com.tuya.smart.home.sdk.bean.HomeBean +import com.tuya.smart.home.sdk.callback.ITuyaHomeResultCallback +import com.tuya.smart.sdk.bean.DeviceBean +import kotlinx.android.synthetic.main.activity_ch4_senser.* +import kotlinx.android.synthetic.main.include_device_title.* +import java.util.* + +/** + * 可燃气体探测器 + * TODO 数据上报暂缓 + * */ +class GasSensorActivity : KotlinBaseActivity() { + + private val dataTimer by lazy { Timer() }//数据上传Timer + private val dataLinkedList = LinkedList>() + private lateinit var weakReference: WeakReferenceHandler + + override fun initLayoutView(): Int = R.layout.activity_ch4_senser + + override fun observeRequestState() { + + } + + override fun setupTopBarLayout() { + initLayoutImmersionBar(rootView) + ImmersionBar.with(this).statusBarDarkFont(true).init() + + leftBackView.setOnClickListener { finish() } + rightOperateView.visibility = View.GONE + } + + override fun initData() { + weakReference = WeakReferenceHandler(callback) + //每隔5s传一次数据到服务器 + dataTimer.schedule(object : TimerTask() { + override fun run() { + TuyaHomeSdk.newHomeInstance(DeserializeModel.getHomeId()) + .getHomeDetail(object : ITuyaHomeResultCallback { + override fun onSuccess(bean: HomeBean) { + bean.deviceList.forEach { + val selectedCategory = it.selectCategory() + if (selectedCategory == "rqbj") { + val msg = weakReference.obtainMessage() + msg.what = 2022102101 + msg.obj = it + weakReference.sendMessage(msg) + } + } + } + + override fun onError(errorCode: String, errorMsg: String) { + Log.d("Casic", "GasSensorActivity => onError: $errorMsg") + } + }) + } + }, 0, 5000) + } + + private val callback = Handler.Callback { message -> + if (message.what == 2022102101) { + if (!this.isDestroyed) { + val it = message.obj as DeviceBean + + deviceStateView.text = if (it.isOnline) { + "在线" + } else { + "离线" + } + + titleView.text = it.name + Glide.with(this) + .load(it.iconUrl) + .apply(RequestOptions.circleCropTransform()) + .placeholder(R.mipmap.load_image_error) + .into(deviceLogoView) + + val dataMap = HashMap() + if (it.isOnline) { + /** + * {"11":0,"1":"normal"} + * + * {"fault":{"id":"11","name":"故障告警"},"gas_sensor_state":{"id":"1","name":"燃气检测状态"}} + * */ + val f = it.dps["11"] + faultAlarmView.text = if (f == 0) { + "正常" + } else { + "异常" + } + faultAlarmTimeView.text = if (faultAlarmView.text.toString() == "异常") { + System.currentTimeMillis().timestampToCompleteDate() + } else { + "--:--:--" + } + + val s = it.dps["1"] as String + fireAlarmView.text = if (s == "normal") { + "正常" + } else { + "异常" + } + fireAlarmTimeView.text = if (fireAlarmView.text.toString() == "异常") { + System.currentTimeMillis().timestampToCompleteDate() + } else { + "--:--:--" + } + } else { + faultAlarmView.text = "已离线" + faultAlarmTimeView.text = "--:--:--" + + fireAlarmView.text = "已离线" + fireAlarmTimeView.text = "--:--:--" + } + dataLinkedList.add(dataMap) + } + } + true + } + + override fun initEvent() { + + } + + override fun onDestroy() { + super.onDestroy() + dataTimer.cancel() + } +} \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 1a1b198..78112af 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -80,6 +80,7 @@ + () + if (it.isOnline) { + val value = it.dps["15"].toString() + batteryView.setBackgroundResource(value.toBatteryImage()) + batteryValueView.text = "${value}%" - val value = it.dps["15"].toString() - batteryView.setBackgroundResource(value.toBatteryImage()) - batteryValueView.text = "${value}%" + val f = it.dps["11"] + faultAlarmView.text = if (f == 0) { + "正常" + } else { + "异常" + } + faultAlarmTimeView.text = if (faultAlarmView.text.toString() == "异常") { + System.currentTimeMillis().timestampToCompleteDate() + } else { + "--:--:--" + } - val f = it.dps["11"] - faultAlarmView.text = if (f == 0) { - "正常" + val c = it.dps["1"] as String + coAlarmView.text = if (c == "2") { + "正常" + } else { + "异常" + } + coAlarmTimeView.text = if (coAlarmView.text.toString() == "异常") { + System.currentTimeMillis().timestampToCompleteDate() + } else { + "--:--:--" + } } else { - "异常" - } - faultAlarmTimeView.text = if (faultAlarmView.text.toString() == "异常") { - System.currentTimeMillis().timestampToCompleteDate() - } else { - "--:--:--" - } + batteryView.setBackgroundResource("0".toBatteryImage()) + batteryValueView.text = "0%" - val c = it.dps["1"] as String - coAlarmView.text = if (c == "2") { - "正常" - } else { - "异常" - } - coAlarmTimeView.text = if (coAlarmView.text.toString() == "异常") { - System.currentTimeMillis().timestampToCompleteDate() - } else { - "--:--:--" + faultAlarmView.text = "已离线" + faultAlarmTimeView.text = "--:--:--" + + coAlarmView.text = "已离线" + coAlarmTimeView.text = "--:--:--" } dataLinkedList.add(dataMap) diff --git a/app/src/main/java/com/casic/br/view/device/FireSensorActivity.kt b/app/src/main/java/com/casic/br/view/device/FireSensorActivity.kt index decde28..7d5cbd5 100644 --- a/app/src/main/java/com/casic/br/view/device/FireSensorActivity.kt +++ b/app/src/main/java/com/casic/br/view/device/FireSensorActivity.kt @@ -18,7 +18,15 @@ import com.tuya.smart.home.sdk.bean.HomeBean import com.tuya.smart.home.sdk.callback.ITuyaHomeResultCallback import com.tuya.smart.sdk.bean.DeviceBean +import kotlinx.android.synthetic.main.activity_co_senser.* import kotlinx.android.synthetic.main.activity_fire_senser.* +import kotlinx.android.synthetic.main.activity_fire_senser.batteryValueView +import kotlinx.android.synthetic.main.activity_fire_senser.batteryView +import kotlinx.android.synthetic.main.activity_fire_senser.deviceLogoView +import kotlinx.android.synthetic.main.activity_fire_senser.deviceStateView +import kotlinx.android.synthetic.main.activity_fire_senser.faultAlarmTimeView +import kotlinx.android.synthetic.main.activity_fire_senser.faultAlarmView +import kotlinx.android.synthetic.main.activity_fire_senser.rootView import kotlinx.android.synthetic.main.include_device_title.* import java.util.* @@ -93,55 +101,66 @@ .into(deviceLogoView) val dataMap = HashMap() + if (it.isOnline) { + /** + * {"11":0,"1":"normal","15":100,"4":false} + * + * {"11":{"name":"故障告警"},"1":{"name":"烟雾检测状态"},"4":{"name":"防拆报警"},"15":{"name":"电池电量"}} + * */ - /** - * {"11":0,"1":"normal","15":100,"4":false} - * - * {"11":{"name":"故障告警"},"1":{"name":"烟雾检测状态"},"4":{"name":"防拆报警"},"15":{"name":"电池电量"}} - * */ + val b = it.dps["15"].toString() + batteryView.setBackgroundResource(b.toBatteryImage()) + batteryValueView.text = "${b}%" - val b = it.dps["15"].toString() - batteryView.setBackgroundResource(b.toBatteryImage()) - batteryValueView.text = "${b}%" + val f = it.dps["11"] + faultAlarmView.text = if (f == 0) { + "正常" + } else { + "异常" + } + faultAlarmTimeView.text = if (faultAlarmView.text.toString() == "异常") { + System.currentTimeMillis().timestampToCompleteDate() + } else { + "--:--:--" + } - val f = it.dps["11"] - faultAlarmView.text = if (f == 0) { - "正常" - } else { - "异常" - } - faultAlarmTimeView.text = if (faultAlarmView.text.toString() == "异常") { - System.currentTimeMillis().timestampToCompleteDate() - } else { - "--:--:--" - } + val s = it.dps["1"] as String + fireAlarmView.text = if (s == "normal") { + "正常" + } else { + "异常" + } + fireAlarmTimeView.text = if (fireAlarmView.text.toString() == "异常") { + System.currentTimeMillis().timestampToCompleteDate() + } else { + "--:--:--" + } - val s = it.dps["1"] as String - fireAlarmView.text = if (s == "normal") { - "正常" + val t = it.dps["4"] as Boolean + tamperAlarmView.text = if (!t) { + "正常" + } else { + "异常" + } + tamperAlarmTimeView.text = if (tamperAlarmView.text.toString() == "异常") { + System.currentTimeMillis().timestampToCompleteDate() + } else { + "--:--:--" + } } else { - "异常" - } - fireAlarmTimeView.text = if (fireAlarmView.text.toString() == "异常") { - System.currentTimeMillis().timestampToCompleteDate() - } else { - "--:--:--" - } + batteryView.setBackgroundResource("0".toBatteryImage()) + batteryValueView.text = "0%" - val t = it.dps["4"] as Boolean - tamperAlarmView.text = if (!t) { - "正常" - } else { - "异常" - } - tamperAlarmTimeView.text = if (tamperAlarmView.text.toString() == "异常") { - System.currentTimeMillis().timestampToCompleteDate() - } else { - "--:--:--" - } + faultAlarmView.text = "已离线" + faultAlarmTimeView.text = "--:--:--" + fireAlarmView.text = "已离线" + fireAlarmTimeView.text = "--:--:--" + + tamperAlarmView.text = "已离线" + tamperAlarmTimeView.text = "--:--:--" + } // dataMap["temperature"] = temperatureView.text.toString().replace("°C", "") - dataLinkedList.add(dataMap) } } diff --git a/app/src/main/java/com/casic/br/view/device/GasSensorActivity.kt b/app/src/main/java/com/casic/br/view/device/GasSensorActivity.kt new file mode 100644 index 0000000..829eeaa --- /dev/null +++ b/app/src/main/java/com/casic/br/view/device/GasSensorActivity.kt @@ -0,0 +1,144 @@ +package com.casic.br.view.device + +import android.os.Handler +import android.util.Log +import android.view.View +import com.bumptech.glide.Glide +import com.bumptech.glide.request.RequestOptions +import com.casic.br.R +import com.casic.br.extensions.initLayoutImmersionBar +import com.casic.br.extensions.selectCategory +import com.casic.br.utils.DeserializeModel +import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.extensions.timestampToCompleteDate +import com.pengxh.kt.lite.utils.WeakReferenceHandler +import com.tuya.smart.home.sdk.TuyaHomeSdk +import com.tuya.smart.home.sdk.bean.HomeBean +import com.tuya.smart.home.sdk.callback.ITuyaHomeResultCallback +import com.tuya.smart.sdk.bean.DeviceBean +import kotlinx.android.synthetic.main.activity_ch4_senser.* +import kotlinx.android.synthetic.main.include_device_title.* +import java.util.* + +/** + * 可燃气体探测器 + * TODO 数据上报暂缓 + * */ +class GasSensorActivity : KotlinBaseActivity() { + + private val dataTimer by lazy { Timer() }//数据上传Timer + private val dataLinkedList = LinkedList>() + private lateinit var weakReference: WeakReferenceHandler + + override fun initLayoutView(): Int = R.layout.activity_ch4_senser + + override fun observeRequestState() { + + } + + override fun setupTopBarLayout() { + initLayoutImmersionBar(rootView) + ImmersionBar.with(this).statusBarDarkFont(true).init() + + leftBackView.setOnClickListener { finish() } + rightOperateView.visibility = View.GONE + } + + override fun initData() { + weakReference = WeakReferenceHandler(callback) + //每隔5s传一次数据到服务器 + dataTimer.schedule(object : TimerTask() { + override fun run() { + TuyaHomeSdk.newHomeInstance(DeserializeModel.getHomeId()) + .getHomeDetail(object : ITuyaHomeResultCallback { + override fun onSuccess(bean: HomeBean) { + bean.deviceList.forEach { + val selectedCategory = it.selectCategory() + if (selectedCategory == "rqbj") { + val msg = weakReference.obtainMessage() + msg.what = 2022102101 + msg.obj = it + weakReference.sendMessage(msg) + } + } + } + + override fun onError(errorCode: String, errorMsg: String) { + Log.d("Casic", "GasSensorActivity => onError: $errorMsg") + } + }) + } + }, 0, 5000) + } + + private val callback = Handler.Callback { message -> + if (message.what == 2022102101) { + if (!this.isDestroyed) { + val it = message.obj as DeviceBean + + deviceStateView.text = if (it.isOnline) { + "在线" + } else { + "离线" + } + + titleView.text = it.name + Glide.with(this) + .load(it.iconUrl) + .apply(RequestOptions.circleCropTransform()) + .placeholder(R.mipmap.load_image_error) + .into(deviceLogoView) + + val dataMap = HashMap() + if (it.isOnline) { + /** + * {"11":0,"1":"normal"} + * + * {"fault":{"id":"11","name":"故障告警"},"gas_sensor_state":{"id":"1","name":"燃气检测状态"}} + * */ + val f = it.dps["11"] + faultAlarmView.text = if (f == 0) { + "正常" + } else { + "异常" + } + faultAlarmTimeView.text = if (faultAlarmView.text.toString() == "异常") { + System.currentTimeMillis().timestampToCompleteDate() + } else { + "--:--:--" + } + + val s = it.dps["1"] as String + fireAlarmView.text = if (s == "normal") { + "正常" + } else { + "异常" + } + fireAlarmTimeView.text = if (fireAlarmView.text.toString() == "异常") { + System.currentTimeMillis().timestampToCompleteDate() + } else { + "--:--:--" + } + } else { + faultAlarmView.text = "已离线" + faultAlarmTimeView.text = "--:--:--" + + fireAlarmView.text = "已离线" + fireAlarmTimeView.text = "--:--:--" + } + dataLinkedList.add(dataMap) + } + } + true + } + + override fun initEvent() { + + } + + override fun onDestroy() { + super.onDestroy() + dataTimer.cancel() + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/view/device/TAndHSensorActivity.kt b/app/src/main/java/com/casic/br/view/device/TAndHSensorActivity.kt index 0a0d3a6..dd9d98f 100644 --- a/app/src/main/java/com/casic/br/view/device/TAndHSensorActivity.kt +++ b/app/src/main/java/com/casic/br/view/device/TAndHSensorActivity.kt @@ -97,28 +97,36 @@ titleView.text = String.format(it.name + "传感器") val dataMap = HashMap() + if (it.isOnline) { + val h = it.dps["101"].toString() + //温湿度的值需要缩小100倍 + humidityView.text = if (h.isBlank()) { + "0%" + } else { + "${h.toDouble() / 100}%" + } + dataMap["humidity"] = humidityView.text.toString().replace("%", "") - val h = it.dps["101"].toString() - //温湿度的值需要缩小100倍 - humidityView.text = if (h.isBlank()) { - "0%" + val b = it.dps["102"].toString() + batteryView.setBackgroundResource(b.toBatteryImage()) + batteryValueView.text = "${b}%" + + val t = it.dps["103"].toString() + //{"unit":"℃","min":-2000,"max":10000,"scale":2,"step":1,"type":"value"} + temperatureView.text = if (h.isBlank()) { + "0${resources.getString(R.string.temperature_unit)}" + } else { + "${t.toDouble() / 100}${resources.getString(R.string.temperature_unit)}" + } + dataMap["temperature"] = temperatureView.text.toString().replace("°C", "") } else { - "${h.toDouble() / 100}%" - } - dataMap["humidity"] = humidityView.text.toString().replace("%", "") + batteryView.setBackgroundResource("0".toBatteryImage()) + batteryValueView.text = "0%" - val b = it.dps["102"].toString() - batteryView.setBackgroundResource(b.toBatteryImage()) - batteryValueView.text = "${b}%" + temperatureView.text = "已离线" - val t = it.dps["103"].toString() - //{"unit":"℃","min":-2000,"max":10000,"scale":2,"step":1,"type":"value"} - temperatureView.text = if (h.isBlank()) { - "0${resources.getString(R.string.temperature_unit)}" - } else { - "${t.toDouble() / 100}${resources.getString(R.string.temperature_unit)}" + humidityView.text = "已离线" } - dataMap["temperature"] = temperatureView.text.toString().replace("°C", "") dataLinkedList.add(dataMap) } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 1a1b198..78112af 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -80,6 +80,7 @@ + () + if (it.isOnline) { + val value = it.dps["15"].toString() + batteryView.setBackgroundResource(value.toBatteryImage()) + batteryValueView.text = "${value}%" - val value = it.dps["15"].toString() - batteryView.setBackgroundResource(value.toBatteryImage()) - batteryValueView.text = "${value}%" + val f = it.dps["11"] + faultAlarmView.text = if (f == 0) { + "正常" + } else { + "异常" + } + faultAlarmTimeView.text = if (faultAlarmView.text.toString() == "异常") { + System.currentTimeMillis().timestampToCompleteDate() + } else { + "--:--:--" + } - val f = it.dps["11"] - faultAlarmView.text = if (f == 0) { - "正常" + val c = it.dps["1"] as String + coAlarmView.text = if (c == "2") { + "正常" + } else { + "异常" + } + coAlarmTimeView.text = if (coAlarmView.text.toString() == "异常") { + System.currentTimeMillis().timestampToCompleteDate() + } else { + "--:--:--" + } } else { - "异常" - } - faultAlarmTimeView.text = if (faultAlarmView.text.toString() == "异常") { - System.currentTimeMillis().timestampToCompleteDate() - } else { - "--:--:--" - } + batteryView.setBackgroundResource("0".toBatteryImage()) + batteryValueView.text = "0%" - val c = it.dps["1"] as String - coAlarmView.text = if (c == "2") { - "正常" - } else { - "异常" - } - coAlarmTimeView.text = if (coAlarmView.text.toString() == "异常") { - System.currentTimeMillis().timestampToCompleteDate() - } else { - "--:--:--" + faultAlarmView.text = "已离线" + faultAlarmTimeView.text = "--:--:--" + + coAlarmView.text = "已离线" + coAlarmTimeView.text = "--:--:--" } dataLinkedList.add(dataMap) diff --git a/app/src/main/java/com/casic/br/view/device/FireSensorActivity.kt b/app/src/main/java/com/casic/br/view/device/FireSensorActivity.kt index decde28..7d5cbd5 100644 --- a/app/src/main/java/com/casic/br/view/device/FireSensorActivity.kt +++ b/app/src/main/java/com/casic/br/view/device/FireSensorActivity.kt @@ -18,7 +18,15 @@ import com.tuya.smart.home.sdk.bean.HomeBean import com.tuya.smart.home.sdk.callback.ITuyaHomeResultCallback import com.tuya.smart.sdk.bean.DeviceBean +import kotlinx.android.synthetic.main.activity_co_senser.* import kotlinx.android.synthetic.main.activity_fire_senser.* +import kotlinx.android.synthetic.main.activity_fire_senser.batteryValueView +import kotlinx.android.synthetic.main.activity_fire_senser.batteryView +import kotlinx.android.synthetic.main.activity_fire_senser.deviceLogoView +import kotlinx.android.synthetic.main.activity_fire_senser.deviceStateView +import kotlinx.android.synthetic.main.activity_fire_senser.faultAlarmTimeView +import kotlinx.android.synthetic.main.activity_fire_senser.faultAlarmView +import kotlinx.android.synthetic.main.activity_fire_senser.rootView import kotlinx.android.synthetic.main.include_device_title.* import java.util.* @@ -93,55 +101,66 @@ .into(deviceLogoView) val dataMap = HashMap() + if (it.isOnline) { + /** + * {"11":0,"1":"normal","15":100,"4":false} + * + * {"11":{"name":"故障告警"},"1":{"name":"烟雾检测状态"},"4":{"name":"防拆报警"},"15":{"name":"电池电量"}} + * */ - /** - * {"11":0,"1":"normal","15":100,"4":false} - * - * {"11":{"name":"故障告警"},"1":{"name":"烟雾检测状态"},"4":{"name":"防拆报警"},"15":{"name":"电池电量"}} - * */ + val b = it.dps["15"].toString() + batteryView.setBackgroundResource(b.toBatteryImage()) + batteryValueView.text = "${b}%" - val b = it.dps["15"].toString() - batteryView.setBackgroundResource(b.toBatteryImage()) - batteryValueView.text = "${b}%" + val f = it.dps["11"] + faultAlarmView.text = if (f == 0) { + "正常" + } else { + "异常" + } + faultAlarmTimeView.text = if (faultAlarmView.text.toString() == "异常") { + System.currentTimeMillis().timestampToCompleteDate() + } else { + "--:--:--" + } - val f = it.dps["11"] - faultAlarmView.text = if (f == 0) { - "正常" - } else { - "异常" - } - faultAlarmTimeView.text = if (faultAlarmView.text.toString() == "异常") { - System.currentTimeMillis().timestampToCompleteDate() - } else { - "--:--:--" - } + val s = it.dps["1"] as String + fireAlarmView.text = if (s == "normal") { + "正常" + } else { + "异常" + } + fireAlarmTimeView.text = if (fireAlarmView.text.toString() == "异常") { + System.currentTimeMillis().timestampToCompleteDate() + } else { + "--:--:--" + } - val s = it.dps["1"] as String - fireAlarmView.text = if (s == "normal") { - "正常" + val t = it.dps["4"] as Boolean + tamperAlarmView.text = if (!t) { + "正常" + } else { + "异常" + } + tamperAlarmTimeView.text = if (tamperAlarmView.text.toString() == "异常") { + System.currentTimeMillis().timestampToCompleteDate() + } else { + "--:--:--" + } } else { - "异常" - } - fireAlarmTimeView.text = if (fireAlarmView.text.toString() == "异常") { - System.currentTimeMillis().timestampToCompleteDate() - } else { - "--:--:--" - } + batteryView.setBackgroundResource("0".toBatteryImage()) + batteryValueView.text = "0%" - val t = it.dps["4"] as Boolean - tamperAlarmView.text = if (!t) { - "正常" - } else { - "异常" - } - tamperAlarmTimeView.text = if (tamperAlarmView.text.toString() == "异常") { - System.currentTimeMillis().timestampToCompleteDate() - } else { - "--:--:--" - } + faultAlarmView.text = "已离线" + faultAlarmTimeView.text = "--:--:--" + fireAlarmView.text = "已离线" + fireAlarmTimeView.text = "--:--:--" + + tamperAlarmView.text = "已离线" + tamperAlarmTimeView.text = "--:--:--" + } // dataMap["temperature"] = temperatureView.text.toString().replace("°C", "") - dataLinkedList.add(dataMap) } } diff --git a/app/src/main/java/com/casic/br/view/device/GasSensorActivity.kt b/app/src/main/java/com/casic/br/view/device/GasSensorActivity.kt new file mode 100644 index 0000000..829eeaa --- /dev/null +++ b/app/src/main/java/com/casic/br/view/device/GasSensorActivity.kt @@ -0,0 +1,144 @@ +package com.casic.br.view.device + +import android.os.Handler +import android.util.Log +import android.view.View +import com.bumptech.glide.Glide +import com.bumptech.glide.request.RequestOptions +import com.casic.br.R +import com.casic.br.extensions.initLayoutImmersionBar +import com.casic.br.extensions.selectCategory +import com.casic.br.utils.DeserializeModel +import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.extensions.timestampToCompleteDate +import com.pengxh.kt.lite.utils.WeakReferenceHandler +import com.tuya.smart.home.sdk.TuyaHomeSdk +import com.tuya.smart.home.sdk.bean.HomeBean +import com.tuya.smart.home.sdk.callback.ITuyaHomeResultCallback +import com.tuya.smart.sdk.bean.DeviceBean +import kotlinx.android.synthetic.main.activity_ch4_senser.* +import kotlinx.android.synthetic.main.include_device_title.* +import java.util.* + +/** + * 可燃气体探测器 + * TODO 数据上报暂缓 + * */ +class GasSensorActivity : KotlinBaseActivity() { + + private val dataTimer by lazy { Timer() }//数据上传Timer + private val dataLinkedList = LinkedList>() + private lateinit var weakReference: WeakReferenceHandler + + override fun initLayoutView(): Int = R.layout.activity_ch4_senser + + override fun observeRequestState() { + + } + + override fun setupTopBarLayout() { + initLayoutImmersionBar(rootView) + ImmersionBar.with(this).statusBarDarkFont(true).init() + + leftBackView.setOnClickListener { finish() } + rightOperateView.visibility = View.GONE + } + + override fun initData() { + weakReference = WeakReferenceHandler(callback) + //每隔5s传一次数据到服务器 + dataTimer.schedule(object : TimerTask() { + override fun run() { + TuyaHomeSdk.newHomeInstance(DeserializeModel.getHomeId()) + .getHomeDetail(object : ITuyaHomeResultCallback { + override fun onSuccess(bean: HomeBean) { + bean.deviceList.forEach { + val selectedCategory = it.selectCategory() + if (selectedCategory == "rqbj") { + val msg = weakReference.obtainMessage() + msg.what = 2022102101 + msg.obj = it + weakReference.sendMessage(msg) + } + } + } + + override fun onError(errorCode: String, errorMsg: String) { + Log.d("Casic", "GasSensorActivity => onError: $errorMsg") + } + }) + } + }, 0, 5000) + } + + private val callback = Handler.Callback { message -> + if (message.what == 2022102101) { + if (!this.isDestroyed) { + val it = message.obj as DeviceBean + + deviceStateView.text = if (it.isOnline) { + "在线" + } else { + "离线" + } + + titleView.text = it.name + Glide.with(this) + .load(it.iconUrl) + .apply(RequestOptions.circleCropTransform()) + .placeholder(R.mipmap.load_image_error) + .into(deviceLogoView) + + val dataMap = HashMap() + if (it.isOnline) { + /** + * {"11":0,"1":"normal"} + * + * {"fault":{"id":"11","name":"故障告警"},"gas_sensor_state":{"id":"1","name":"燃气检测状态"}} + * */ + val f = it.dps["11"] + faultAlarmView.text = if (f == 0) { + "正常" + } else { + "异常" + } + faultAlarmTimeView.text = if (faultAlarmView.text.toString() == "异常") { + System.currentTimeMillis().timestampToCompleteDate() + } else { + "--:--:--" + } + + val s = it.dps["1"] as String + fireAlarmView.text = if (s == "normal") { + "正常" + } else { + "异常" + } + fireAlarmTimeView.text = if (fireAlarmView.text.toString() == "异常") { + System.currentTimeMillis().timestampToCompleteDate() + } else { + "--:--:--" + } + } else { + faultAlarmView.text = "已离线" + faultAlarmTimeView.text = "--:--:--" + + fireAlarmView.text = "已离线" + fireAlarmTimeView.text = "--:--:--" + } + dataLinkedList.add(dataMap) + } + } + true + } + + override fun initEvent() { + + } + + override fun onDestroy() { + super.onDestroy() + dataTimer.cancel() + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/view/device/TAndHSensorActivity.kt b/app/src/main/java/com/casic/br/view/device/TAndHSensorActivity.kt index 0a0d3a6..dd9d98f 100644 --- a/app/src/main/java/com/casic/br/view/device/TAndHSensorActivity.kt +++ b/app/src/main/java/com/casic/br/view/device/TAndHSensorActivity.kt @@ -97,28 +97,36 @@ titleView.text = String.format(it.name + "传感器") val dataMap = HashMap() + if (it.isOnline) { + val h = it.dps["101"].toString() + //温湿度的值需要缩小100倍 + humidityView.text = if (h.isBlank()) { + "0%" + } else { + "${h.toDouble() / 100}%" + } + dataMap["humidity"] = humidityView.text.toString().replace("%", "") - val h = it.dps["101"].toString() - //温湿度的值需要缩小100倍 - humidityView.text = if (h.isBlank()) { - "0%" + val b = it.dps["102"].toString() + batteryView.setBackgroundResource(b.toBatteryImage()) + batteryValueView.text = "${b}%" + + val t = it.dps["103"].toString() + //{"unit":"℃","min":-2000,"max":10000,"scale":2,"step":1,"type":"value"} + temperatureView.text = if (h.isBlank()) { + "0${resources.getString(R.string.temperature_unit)}" + } else { + "${t.toDouble() / 100}${resources.getString(R.string.temperature_unit)}" + } + dataMap["temperature"] = temperatureView.text.toString().replace("°C", "") } else { - "${h.toDouble() / 100}%" - } - dataMap["humidity"] = humidityView.text.toString().replace("%", "") + batteryView.setBackgroundResource("0".toBatteryImage()) + batteryValueView.text = "0%" - val b = it.dps["102"].toString() - batteryView.setBackgroundResource(b.toBatteryImage()) - batteryValueView.text = "${b}%" + temperatureView.text = "已离线" - val t = it.dps["103"].toString() - //{"unit":"℃","min":-2000,"max":10000,"scale":2,"step":1,"type":"value"} - temperatureView.text = if (h.isBlank()) { - "0${resources.getString(R.string.temperature_unit)}" - } else { - "${t.toDouble() / 100}${resources.getString(R.string.temperature_unit)}" + humidityView.text = "已离线" } - dataMap["temperature"] = temperatureView.text.toString().replace("°C", "") dataLinkedList.add(dataMap) } diff --git a/app/src/main/res/layout/activity_ch4_senser.xml b/app/src/main/res/layout/activity_ch4_senser.xml new file mode 100644 index 0000000..a823c6f --- /dev/null +++ b/app/src/main/res/layout/activity_ch4_senser.xml @@ -0,0 +1,142 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file