Files
OneWireAPI/owException.cs
2014-05-01 16:19:33 -04:00

107 lines
2.9 KiB
C#

using System;
namespace OneWireAPI
{
[Serializable]
public class owException : Exception
{
#region Enumerations
public enum owExceptionFunction
{
Access,
CRC,
ReadBit,
ReadByte,
Select,
SendBit,
SendBlock,
SendByte,
SetLevel
}
#endregion
#region Private member variables
private readonly int _errorNumber;
private readonly owExceptionFunction _errorFunction;
private readonly owIdentifier _deviceID;
#endregion
#region Constructors
public owException(owExceptionFunction function, int number)
{
// Store the exception function
_errorFunction = function;
// Store the exception number
_errorNumber = number;
}
public owException(owExceptionFunction function, owIdentifier deviceID)
{
// Store the exception function
_errorFunction = function;
// Store the device ID
_deviceID = deviceID;
}
public owException(owExceptionFunction function, owIdentifier deviceID, int number)
{
// Store the exception function
_errorFunction = function;
// Store the device ID
_deviceID = deviceID;
// Store the exception number
_errorNumber = number;
}
#endregion
#region Properties
public owIdentifier DeviceID
{
get { return _deviceID; }
}
public owExceptionFunction Function
{
get { return _errorFunction; }
}
public override string Message
{
get
{
switch (_errorFunction)
{
case owExceptionFunction.Access: return "Unable to access device";
case owExceptionFunction.CRC: return "CRC mismatch";
case owExceptionFunction.ReadBit: return "Error reading bit";
case owExceptionFunction.ReadByte: return "Error reading byte";
case owExceptionFunction.Select: return "Unable to select device";
case owExceptionFunction.SendBit: return "Error sending bit";
case owExceptionFunction.SendBlock: return "Error sending block";
case owExceptionFunction.SendByte: return "Error sending byte";
case owExceptionFunction.SetLevel: return "Error setting level";
default: return "Unknown error in function" + _errorFunction;
}
}
}
public int Number
{
get { return _errorNumber; }
}
#endregion
}
}