Merge pull request #125 from rapha-dev/master

Fixes for Exception naming ReadData
This commit is contained in:
Michele Cattafesta
2018-06-10 17:13:15 +01:00
committed by GitHub
4 changed files with 30 additions and 14 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

@@ -154,7 +154,7 @@ namespace S7.Net
varType = VarType.Counter;
return;
default:
throw new InvalidAddressException(string.Format("{0} is not av valid address", address.Substring(0, 1)));
throw new InvalidAddressException(string.Format("{0} is not a valid address", address.Substring(0, 1)));
}
string txt2 = address.Substring(1);
@@ -248,7 +248,7 @@ namespace S7.Net
/// <returns></returns>
private object ParseBytes(VarType varType, byte[] bytes, int varCount, byte bitAdr = 0)
{
if (bytes == null)
if (bytes == null || bytes.Length == 0)
return null;
switch (varType)
@@ -352,10 +352,10 @@ namespace S7.Net
}
/// <summary>
/// Sets the <see cref="LastErrorCode"/> to <see cref="ErrorCode.NoError"/> and <see cref="LastErrorString"/> to <see cref="string.Empty"/>.
/// </summary>
public void ClearLastError()
/// <summary>
/// Sets the <see cref="LastErrorCode"/> to <see cref="ErrorCode.NoError"/> and <see cref="LastErrorString"/> to <see cref="string.Empty"/>.
/// </summary>
public void ClearLastError()
{
LastErrorCode = ErrorCode.NoError;
LastErrorString = string.Empty;

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;
}
}