From 81bd0388494d45463de42cd91bd8c33f10f0030a Mon Sep 17 00:00:00 2001 From: riku <risaku@163.com> Date: 星期四, 17 六月 2021 10:27:21 +0800 Subject: [PATCH] 1. 新增用电量数据的接收协议 2. 调整socket接收模块的代码结构 --- src/main/kotlin/com/flightfeather/uav/socket/DeviceSession.kt | 43 +++++++++++++++++++++++++++++++------------ 1 files changed, 31 insertions(+), 12 deletions(-) diff --git a/src/main/kotlin/com/flightfeather/uav/socket/DeviceSession.kt b/src/main/kotlin/com/flightfeather/uav/socket/DeviceSession.kt index 1bc9472..c04b467 100644 --- a/src/main/kotlin/com/flightfeather/uav/socket/DeviceSession.kt +++ b/src/main/kotlin/com/flightfeather/uav/socket/DeviceSession.kt @@ -1,29 +1,48 @@ package com.flightfeather.uav.socket +import com.flightfeather.uav.socket.bean.AirTypeData import io.netty.channel.ChannelHandlerContext import java.util.concurrent.ConcurrentHashMap /** - * 鐢ㄤ簬淇濆瓨杩炴帴鐨勮澶囧強瀵瑰簲鐨剆ession閫氶亾 + * 鐢ㄤ簬淇濆瓨杩炴帴鐨勮澶囧強瀵瑰簲鐨剆ession閫氶亾浠ュ強瀵瑰簲鐨勪笓灞炰俊鎭� * Date: 2019.8.27 * @author riku */ class DeviceSession { - companion object{ - private val deviceMap = ConcurrentHashMap<String, ChannelHandlerContext?>() + companion object { + private const val DEFAULT_DEVICE = "default_device" + } + private val deviceMap = ConcurrentHashMap<String, ChannelHandlerContext?>() + private val typeMap = ConcurrentHashMap<String, List<AirTypeData>>() - fun saveDevice(deviceCode: String?, channel: ChannelHandlerContext?) { - deviceCode?.let { - deviceMap.put(deviceCode, channel) - } + fun saveDevice(deviceCode: String?, channel: ChannelHandlerContext?) { + deviceCode?.let { + deviceMap.put(deviceCode, channel) } + } - fun getDevice(deviceCode: String?): ChannelHandlerContext? { - return if (deviceMap.containsKey(deviceCode)) - deviceMap[deviceCode] - else - null + fun getDevice(deviceCode: String?): ChannelHandlerContext? { + return if (deviceMap.containsKey(deviceCode)) + deviceMap[deviceCode] + else + null + } + + fun saveAirType(deviceCode: String?, types: List<AirTypeData>) { + if (deviceCode == null) { + typeMap[DEFAULT_DEVICE] = types + } else { + typeMap[deviceCode] = types + } + } + + fun getAirType(deviceCode: String?): List<AirTypeData>? { + return when { + deviceCode == null -> typeMap[DEFAULT_DEVICE] + typeMap.containsKey(deviceCode) -> typeMap[deviceCode] + else -> null } } } \ No newline at end of file -- Gitblit v1.9.3