package com.flightfeather.uav.socket.processor
|
|
import com.flightfeather.uav.domain.repository.ElectricRep
|
import com.flightfeather.uav.socket.bean.BaseMessage
|
import com.flightfeather.uav.socket.bean.ElectricMessage
|
import com.flightfeather.uav.socket.decoder.ElectricDataDecoder
|
import io.netty.channel.ChannelHandlerContext
|
import org.springframework.beans.factory.annotation.Autowired
|
import org.springframework.stereotype.Component
|
import javax.annotation.PostConstruct
|
|
/**
|
* 处理用电量socket接收的消息
|
* @author riku
|
*/
|
@Component
|
class ElectricProcessor() : BaseProcessor() {
|
companion object {
|
private lateinit var instance: ElectricProcessor
|
}
|
|
@Autowired
|
lateinit var electricRep: ElectricRep
|
|
@Autowired
|
lateinit var electricDataDecoder: ElectricDataDecoder
|
|
@PostConstruct
|
fun init() {
|
instance = this
|
}
|
|
override var tag: String = "用电量"
|
|
override fun dealStringMsg(msg: String, ctx: ChannelHandlerContext?) {
|
//解包
|
val packageData = electricDataDecoder.decode(msg)
|
deviceSession.saveDevice(packageData.mn, ctx)
|
saveToTxt(msg)
|
saveToDataBase(packageData, msg)
|
}
|
|
private fun saveToDataBase(message: BaseMessage, msg: String) {
|
if (message is ElectricMessage && message.mn.isNotBlank()) {
|
instance.electricRep.saveData(message)
|
}
|
}
|
}
|