| | |
| | | |
| | | LogWarning($"将在 {delay}ms 后尝试第 {_retryCount} 次重连"); |
| | | |
| | | Task.Delay(delay, _cancellationTokenSource.Token).ContinueWith(async _ => |
| | | Task.Delay(delay, _cancellationTokenSource?.Token ?? CancellationToken.None).ContinueWith(async _ => |
| | | { |
| | | if (!_cancellationTokenSource.Token.IsCancellationRequested) |
| | | if (!(_cancellationTokenSource?.Token.IsCancellationRequested ?? true)) |
| | | { |
| | | await ConnectAsync(); |
| | | } |
| | | }, _cancellationTokenSource.Token); |
| | | }, _cancellationTokenSource?.Token ?? CancellationToken.None); |
| | | } |
| | | |
| | | #endregion |
| | |
| | | // 检测常见的错误码模式 |
| | | if (registers.Length >= 2) |
| | | { |
| | | var combined = ((long)(registers[0] & 0xFFFF) << 16) | (registers[1] & 0xFFFF); |
| | | var combined = ((long)((uint)registers[0] & 0xFFFF) << 16) | ((uint)registers[1] & 0xFFFF); |
| | | if (combined == 0xE2400001) |
| | | { |
| | | LogInfo($"[PATTERN] 字段 '{fieldName}' 检测到已知的无效数据标识 0xE2400001"); |
| | |
| | | /// <summary> |
| | | /// 处理连接丢失 |
| | | /// </summary> |
| | | private async Task HandleConnectionLoss() |
| | | private Task HandleConnectionLoss() |
| | | { |
| | | if (_isConnected) |
| | | { |
| | |
| | | ScheduleReconnect(); |
| | | } |
| | | } |
| | | |
| | | return Task.CompletedTask; |
| | | } |
| | | |
| | | #endregion |