#region << 版 本 注 释 >> /*-------------------------------------------------------------------- * 版权所有 (c) 2026 WenJY 保留所有权利。 * CLR版本:4.0.30319.42000 * 机器名称:Mr.Wen's MacBook Pro * 命名空间:Sln.IntelliBelt.Business * 唯一标识:35A6CB22-720D-4A7D-91D7-FF4D8A71B2A5 * * 创建者:WenJY * 电子邮箱: * 创建时间:2026-04-24 16:08:18 * 版本:V1.0.0 * 描述: * *-------------------------------------------------------------------- * 修改人: * 时间: * 修改说明: * * 版本:V1.0.0 *--------------------------------------------------------------------*/ #endregion << 版 本 注 释 >> using Sln.IntelliBelt.Business.@base; using Sln.IntelliBelt.Common; using Sln.IntelliBelt.Config; using Sln.IntelliBelt.Serilog; using Sln.IntelliBelt.Socket.Adapter; using Sln.IntelliBelt.WebSocket; using TouchSocket.Core; using TouchSocket.Sockets; namespace Sln.IntelliBelt.Business; public class ReaderStatusHandler:BaseBusiness { public ReaderStatusHandler(SerilogHelper logger, AppConfig appConfig, StringChange stringChange,WebSocketHelper webSocket) : base(logger, appConfig, stringChange,webSocket) { } public override void BufferAnalysis(TcpSessionClient client, BufferRequestInfo requestInfo, long bodyLength) { _logger.Info($"{client.Id}链接收到终端{requestInfo.terminalAddr}上报的状态信息:{requestInfo.content}"); try { for (int i = 0; i < requestInfo.contentLen; i++) { int res = (int)requestInfo.body[i]; _logger.Info($"{i + 1}#读写器状态:{(res == 1 ? "在线" : "离线")}"); } base.GetJsonStr(client.Id, requestInfo,out string jsonStr); _webSocket.PushMsg(jsonStr); if (client.Id != _appConfig.terminalCode) { _logger.Info($"更新连接 Id:{client.Id}==>{_appConfig.terminalCode}"); client.ResetIdAsync(_appConfig.terminalCode).Wait(); } //this.ResponseHandle(client, requestInfo); } catch (Exception e) { _logger.Info($"终端状态信息处理异常"); } } public override void ResponseHandle(TcpSessionClient client, BufferRequestInfo requestInfo) { //throw new NotImplementedException(); ResponsePack responsePack = new ResponsePack() { terminalAddr = _stringChange.HexStrTorbytes(requestInfo.terminalAddr), identCode = Convert.ToByte(requestInfo.identCode), contentLen = 0x01, content = new byte[] { 0x01 } }; var messagePack = base.GetMessagePack(ref responsePack); _logger.Info($"返回终端状态信息:{_stringChange.bytesToHexStr(messagePack,messagePack.Length)}"); client.SendAsync(messagePack); } }