| | |
| | | /// <param name="client">TCP 客户端连接</param> |
| | | /// <param name="state">机器人当前状态</param> |
| | | /// <returns>响应消息,如果无需回复则返回 null</returns> |
| | | public async Task<string?> HandleMessageReceivedAsync(string message, bool isJson, TcpClient client, RobotSocketState state) |
| | | public async Task<string?> HandleMessageReceivedAsync(string message, bool isJson, TcpClient client) |
| | | { |
| | | var state = _stateManager.GetState(client.Client.RemoteEndPoint.ToString()); |
| | | if(state.OperStatus == message) |
| | | { |
| | | // 处理成功后,将原消息回写到客户端(保持原有行为) |
| | | await _socketClientGateway.SendMessageAsync(client, message); |
| | | } |
| | | // 记录接收到的消息日志 |
| | | _logger.LogInformation($"接收到客户端【{state.RobotCrane?.DeviceName}】发送消息【{message}】"); |
| | | QuartzLogger.Info($"接收到客户端消息【{message}】", state.RobotCrane?.DeviceName); |
| | |
| | | // 简单命令包括:homing、homed、running、pausing、runmode、controlmode 等 |
| | | if (await _simpleCommandHandler.HandleAsync(messageLower, state)) |
| | | { |
| | | // 处理成功后,将原消息回写到客户端(保持原有行为) |
| | | await _socketClientGateway.SendMessageAsync(client, message); |
| | | QuartzLogger.Info($"发送消息:【{message}】", state.RobotCrane?.DeviceName); |
| | | if(messageLower != "batteryarrived") |
| | | { |
| | | // 处理成功后,将原消息回写到客户端(保持原有行为) |
| | | await _socketClientGateway.SendMessageAsync(client, message); |
| | | QuartzLogger.Info($"发送消息:【{message}】", state.RobotCrane?.DeviceName); |
| | | } |
| | | |
| | | // 安全更新状态到数据库 |
| | | _stateManager.TryUpdateStateSafely(state.IPAddress, state); |