From 15925907ba4b16d6fe3a5210186e0ce3cd19efa5 Mon Sep 17 00:00:00 2001 From: feiyu02 <risaku@163.com> Date: 星期一, 22 十一月 2021 13:30:17 +0800 Subject: [PATCH] 1. 新增临时网格化秒级值表,用于数据校准处理 --- src/main/kotlin/com/flightfeather/uav/socket/DeviceSession.kt | 41 +++++++++++++++++++++++++++++------------ 1 files changed, 29 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..8ee5393 100644 --- a/src/main/kotlin/com/flightfeather/uav/socket/DeviceSession.kt +++ b/src/main/kotlin/com/flightfeather/uav/socket/DeviceSession.kt @@ -1,29 +1,46 @@ 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?) { + deviceMap[deviceCode] = channel + } + + 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 getDevice(deviceCode: String?): ChannelHandlerContext? { - return if (deviceMap.containsKey(deviceCode)) - deviceMap[deviceCode] - else - null + 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