Do not consider connection lost on some error codes

This commit is contained in:
Peter Butzhammer
2024-02-06 18:19:15 +01:00
parent d422249955
commit e7176c26e7
2 changed files with 38 additions and 10 deletions

27
Sharp7.Rx/S7ErrorCodes.cs Normal file
View File

@@ -0,0 +1,27 @@
using System.Collections.Generic;
namespace Sharp7.Rx
{
public static class S7ErrorCodes
{
/// <summary>
/// This list is not exhaustive and should be considered work in progress.
/// </summary>
private static readonly HashSet<int> notDisconnectedErrorCodes = new HashSet<int>
{
0x000000, // OK
0xC00000, // CPU: Item not available
0x900000, // CPU: Address out of range
};
/// <summary>
/// Some error codes indicate connection lost, in which case, the driver tries to reestablish connection.
/// Other error codes indicate a user error, like reading from an unavailable DB or exceeding
/// the DBs range. In this case the driver should not consider the connection to be lost.
/// </summary>
public static bool AssumeConnectionLost(int errorCode)
{
return !notDisconnectedErrorCodes.Contains(errorCode);
}
}
}