desc:气体数据上传接口,流量卡数据更新

main
xiaowusky 2 years ago
parent 4fd8621fc5
commit 65181913f6

@ -0,0 +1,11 @@
package com.yinuo.safetywatcher.watcher.bean
data class GasReqBean(
val gasName: String = "",
val gasValue: String = "",
val gasUnit: String = "",
val reportTime: String = "",
val sensorName: String = "",
val status: String = "",
val alarmName: String = ""
)

@ -0,0 +1,10 @@
package com.yinuo.safetywatcher.watcher.bean
import com.yinuo.safetywatcher.watcher.utils.LztekUtil
// 单位MB 注意转换
data class TrafficReqInfo(val deviceSn:String = LztekUtil.getSn(),
val allFlow:String = "0",
val useFlow:String = "0",
val residueFlow:String = "0",
)

@ -0,0 +1,9 @@
package com.yinuo.safetywatcher.watcher.net
import com.yinuo.safetywatcher.watcher.bean.GasReqBean
import com.yinuo.safetywatcher.watcher.utils.LztekUtil
data class GasRequest(
val deviceSn: String? = LztekUtil.getSn(),
val detections: List<GasReqBean> = emptyList()
)

@ -1,4 +1,4 @@
package com.yinuo.safetywatcher.watcher.bean package com.yinuo.safetywatcher.watcher.net
import com.common.commonlib.net.bean.BaseResponse import com.common.commonlib.net.bean.BaseResponse

@ -1,13 +1,18 @@
package com.yinuo.safetywatcher.watcher.net package com.yinuo.safetywatcher.watcher.net.api
import com.common.commonlib.net.BaseObserve import com.common.commonlib.net.BaseObserve
import com.common.commonlib.net.bean.BaseResponse import com.common.commonlib.net.bean.BaseResponse
import com.common.commonlib.net.callback.RequestNoResultCallBack import com.common.commonlib.net.callback.RequestNoResultCallBack
import com.common.commonlib.net.callback.RequestResultCallBack import com.common.commonlib.net.callback.RequestResultCallBack
import com.yinuo.safetywatcher.watcher.bean.GetRtspUrlResponse import com.yinuo.safetywatcher.watcher.bean.GasReqBean
import com.yinuo.safetywatcher.watcher.bean.TrafficReqInfo
import com.yinuo.safetywatcher.watcher.net.GasRequest
import com.yinuo.safetywatcher.watcher.net.GetRtspUrlResponse
import io.reactivex.rxjava3.core.Observable import io.reactivex.rxjava3.core.Observable
import retrofit2.http.Body
import retrofit2.http.GET import retrofit2.http.GET
import retrofit2.http.Headers import retrofit2.http.Headers
import retrofit2.http.POST
import retrofit2.http.Query import retrofit2.http.Query
/** /**
@ -29,6 +34,16 @@ class DevicesApi : BaseObserve<DevicesApi.Api>(Api::class.java) {
observe(api.getPushUrl(sn), callBack) observe(api.getPushUrl(sn), callBack)
} }
fun updateTrafficInfo() {
val trafficReqInfo = TrafficReqInfo()
observe(api.updateTrafficInfo(trafficReqInfo), null)
}
fun uploadGasData(gasList: List<GasReqBean> = emptyList()) {
val gasReq = GasRequest(detections = gasList)
observe(api.uploadGasData(gasReq), null)
}
interface Api { interface Api {
@Headers("baseurl:host") @Headers("baseurl:host")
@ -39,5 +54,13 @@ class DevicesApi : BaseObserve<DevicesApi.Api>(Api::class.java) {
@Headers("baseurl:host") @Headers("baseurl:host")
@GET("/api/device/getRtspUrl") @GET("/api/device/getRtspUrl")
fun getPushUrl(@Query("deviceSn") sn: String): Observable<GetRtspUrlResponse> fun getPushUrl(@Query("deviceSn") sn: String): Observable<GetRtspUrlResponse>
@Headers("baseurl:host")
@POST("/api/device/pushFlow")
fun updateTrafficInfo(@Body body: TrafficReqInfo): Observable<BaseResponse>
@Headers("baseurl:host")
@POST("/api/device/addDetection")
fun uploadGasData(@Body body: GasRequest): Observable<BaseResponse>
} }
} }

@ -1,4 +1,4 @@
package com.yinuo.safetywatcher.watcher.net package com.yinuo.safetywatcher.watcher.net.api
import com.common.commonlib.net.BaseObserve import com.common.commonlib.net.BaseObserve
import com.common.commonlib.net.bean.BaseResponse import com.common.commonlib.net.bean.BaseResponse

@ -5,8 +5,8 @@ import android.app.IntentService
import android.content.Context import android.content.Context
import android.content.Intent import android.content.Intent
import com.common.commonlib.net.callback.RequestResultCallBack import com.common.commonlib.net.callback.RequestResultCallBack
import com.yinuo.safetywatcher.watcher.bean.GetRtspUrlResponse import com.yinuo.safetywatcher.watcher.net.GetRtspUrlResponse
import com.yinuo.safetywatcher.watcher.net.DevicesApi import com.yinuo.safetywatcher.watcher.net.api.DevicesApi
import com.yinuo.safetywatcher.watcher.utils.LztekUtil import com.yinuo.safetywatcher.watcher.utils.LztekUtil
@ -31,12 +31,28 @@ class HeartbeatService : IntentService("HeartbeatService") {
@SuppressLint("HardwareIds") @SuppressLint("HardwareIds")
private fun handleActionStart(intent: Intent) { private fun handleActionStart(intent: Intent) {
heartConter++
// 心跳
devicesApi.heartBeat(LztekUtil.getSn()) devicesApi.heartBeat(LztekUtil.getSn())
// 获取推流地址
checkAndGetRtspUrl() checkAndGetRtspUrl()
// 更新流量信息
checkAndUpdateTrafficInfo()
// 睡眠30s
Thread.sleep(30000) Thread.sleep(30000)
// 重新轮回
handleActionStart(intent) handleActionStart(intent)
} }
var heartConter = -1
private fun checkAndUpdateTrafficInfo() {
if (heartConter >= 0) {
devicesApi.updateTrafficInfo()
// 设置heartConter为-20下次再10分钟后触发
heartConter = -20
}
}
private fun checkAndGetRtspUrl() { private fun checkAndGetRtspUrl() {
if (LztekUtil.getRtspUrl().isNullOrEmpty()) { if (LztekUtil.getRtspUrl().isNullOrEmpty()) {
devicesApi.getPushUrl( devicesApi.getPushUrl(

@ -7,7 +7,7 @@ import com.yinuo.safetywatcher.R
import com.yinuo.safetywatcher.databinding.ActivityCloudBinding import com.yinuo.safetywatcher.databinding.ActivityCloudBinding
import com.yinuo.safetywatcher.watcher.base.NoOptionsActivity import com.yinuo.safetywatcher.watcher.base.NoOptionsActivity
import com.yinuo.safetywatcher.watcher.db.DBUtils import com.yinuo.safetywatcher.watcher.db.DBUtils
import com.yinuo.safetywatcher.watcher.net.UploadFileApi import com.yinuo.safetywatcher.watcher.net.api.UploadFileApi
import com.yinuo.safetywatcher.xls.utils.PathUtils import com.yinuo.safetywatcher.xls.utils.PathUtils
import kotlinx.coroutines.DelicateCoroutinesApi import kotlinx.coroutines.DelicateCoroutinesApi
import kotlinx.coroutines.GlobalScope import kotlinx.coroutines.GlobalScope

Loading…
Cancel
Save