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