Fixed ErrorCode.ReadData for specific methods

This commit is contained in:
Raphael
2018-06-08 10:26:52 +02:00
parent ddfedaa17e
commit 1b22badea1
3 changed files with 24 additions and 8 deletions

View File

@@ -897,6 +897,21 @@ namespace S7.Net.UnitTest
Assert.AreEqual(tc.Bool1, tc2.Bool1);
}
[TestMethod]
public void T29_Read_Write_ExceptionHandlingWhenPlcIsNotReachable()
{
// leave plc Open
S7TestServer.Stop();
double test_value = 55.66;
plc.Write("DB1.DBD0", test_value);
Assert.AreEqual(plc.LastErrorCode, ErrorCode.WriteData, "No Write Error.");
var helper = plc.Read("DB1.DBD0");
Assert.AreEqual(helper, null, "Value in Read.");
Assert.AreEqual(plc.LastErrorCode, ErrorCode.ReadData, "No Read Error.");
}
#endregion
#region Private methods

View File

@@ -234,12 +234,12 @@ namespace S7.Net
}
catch (SocketException socketException)
{
LastErrorCode = ErrorCode.WriteData;
LastErrorCode = ErrorCode.ReadData;
LastErrorString = socketException.Message;
}
catch (Exception exc)
{
LastErrorCode = ErrorCode.WriteData;
LastErrorCode = ErrorCode.ReadData;
LastErrorString = exc.Message;
}
return dataItems;

View File

@@ -272,7 +272,8 @@ namespace S7.Net
ErrorCode lastError = WriteBitWithASingleRequest(dataType, db, startByteAdr, bitAdr, value);
if (lastError != ErrorCode.NoError)
{
return lastError; }
return lastError;
}
return ErrorCode.NoError;
}
@@ -388,13 +389,13 @@ namespace S7.Net
}
catch (SocketException socketException)
{
LastErrorCode = ErrorCode.WriteData;
LastErrorCode = ErrorCode.ReadData;
LastErrorString = socketException.Message;
return null;
}
catch (Exception exc)
{
LastErrorCode = ErrorCode.WriteData;
LastErrorCode = ErrorCode.ReadData;
LastErrorString = exc.Message;
return null;
}
@@ -525,7 +526,7 @@ namespace S7.Net
{
package.Add(CreateReadDataRequestPackage(dataItem.DataType, dataItem.DB, dataItem.StartByteAdr, VarTypeToByteLength(dataItem.VarType, dataItem.Count)));
}
stream.Write(package.Array, 0, package.Array.Length);
var s7data = COTP.TSDU.Read(stream); //TODO use Async
@@ -536,12 +537,12 @@ namespace S7.Net
}
catch (SocketException socketException)
{
LastErrorCode = ErrorCode.WriteData;
LastErrorCode = ErrorCode.ReadData;
LastErrorString = socketException.Message;
}
catch (Exception exc)
{
LastErrorCode = ErrorCode.WriteData;
LastErrorCode = ErrorCode.ReadData;
LastErrorString = exc.Message;
}
}