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/ServerHandler.kt | 65 ++++++++++++++++---------------- 1 files changed, 33 insertions(+), 32 deletions(-) diff --git a/src/main/kotlin/com/flightfeather/uav/socket/ServerHandler.kt b/src/main/kotlin/com/flightfeather/uav/socket/ServerHandler.kt index fc5202e..d08948c 100644 --- a/src/main/kotlin/com/flightfeather/uav/socket/ServerHandler.kt +++ b/src/main/kotlin/com/flightfeather/uav/socket/ServerHandler.kt @@ -1,5 +1,6 @@ package com.flightfeather.uav.socket +import com.flightfeather.uav.socket.processor.BaseProcessor import io.netty.channel.ChannelHandlerContext import io.netty.channel.ChannelInboundHandlerAdapter import io.netty.util.AttributeKey @@ -8,57 +9,57 @@ import java.util.* -class ServerHandler : ChannelInboundHandlerAdapter() { - - companion object { - private const val TAG = "UAV" - } +class ServerHandler(private val processor: BaseProcessor) : ChannelInboundHandlerAdapter() { val attributeKey = AttributeKey.valueOf<String>("deviceCode") - val messageManager = MessageManager() override fun channelRegistered(ctx: ChannelHandlerContext?) { super.channelRegistered(ctx) - println() - println("------${TAG}绔彛鏈塈P杩炴帴锛歔ip:${ctx?.channel()?.remoteAddress()}] ${SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(Date())}") + println("------銆�${processor.tag}銆慖P杩炴帴锛歔ip:${ctx?.channel()?.remoteAddress()}] ${SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(Date())}") // ctx?.fireChannelActive() } override fun channelActive(ctx: ChannelHandlerContext?) { - println() - println("------${TAG}绔彛鏈塈P婵�娲伙細[ip:${ctx?.channel()?.remoteAddress()}] ${SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(Date())}") + println("------銆�${processor.tag}銆慖P婵�娲伙細[ip:${ctx?.channel()?.remoteAddress()}] ${SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(Date())}") super.channelActive(ctx) } override fun channelRead(ctx: ChannelHandlerContext?, msg: Any?) { super.channelRead(ctx, msg) + println("------銆�${processor.tag}銆戞敹鍒扮殑鍘熷鏁版嵁锛歔ip:${ctx?.channel()?.remoteAddress()}] ${SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(Date())}") - val sb = StringBuilder() + var str = "" - if (msg is ByteArray) { - println() - println("------${TAG}鏀跺埌鐨勫師濮嬫暟鎹細[ip:${ctx?.channel()?.remoteAddress()}] ${SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(Date())}") - msg.forEach { - val a: Int = if (it < 0) { - it + 256 - } else { - it.toInt() + when (msg) { + is ByteArray -> { + val sb = StringBuilder() + + msg.forEach { + var a = 0 + a = if (it < 0) { + it + 256 + } else { + it.toInt() + } + val s = if (a < 16) { + "0${a.toString(16)}" + } else { + a.toString(16) + } + sb.append(s).append(" ") } - val s = if (a < 16) { - "0${a.toString(16)}" - } else { - a.toString(16) - } - print("$s ") - sb.append(s).append(" ") + sb.deleteCharAt(sb.length - 1) + + str = sb.toString() } - sb.deleteCharAt(sb.length - 1) - } - val str = sb.toString() - if (str.isNotEmpty()) { - messageManager.dealStringMsg(str, ctx) + is String -> str = msg } + println(str) + + if (str.isNotEmpty()) { + processor.dealStringMsg(str, ctx) + } } override fun channelReadComplete(ctx: ChannelHandlerContext?) { @@ -66,7 +67,7 @@ } override fun channelInactive(ctx: ChannelHandlerContext?) { - println("------${TAG}绔彛鏈塈P涓嶆椿鍔細[ip:${ctx?.channel()?.remoteAddress()}] ${SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(Date())}") + println("------銆�${processor.tag}銆戠鍙f湁IP涓嶆椿鍔細[ip:${ctx?.channel()?.remoteAddress()}] ${SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(Date())}") super.channelInactive(ctx) } -- Gitblit v1.9.3