File: EventData
Details
File: EventData.cs
Date: Thu, Mar 7, 2019
using System;
/// +------------------------------------------------------------------------------------------------------------------------------+
/// | TERMS OF USE: MIT License |
/// +------------------------------------------------------------------------------------------------------------------------------|
/// |Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation |
/// |files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, |
/// |modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software|
/// |is furnished to do so, subject to the following conditions: |
/// | |
/// |The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.|
/// | |
/// |THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE |
/// |WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR |
/// |COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, |
/// |ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
/// +------------------------------------------------------------------------------------------------------------------------------+
namespace BBBCSIO
{
/// +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=
/// +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=
/// <summary>
/// Provides a container to transport event data
/// </summary>
/// <history>
/// 28 Aug 14 Cynic - Originally written
/// </history>
public class EventData
{
// set this as the creation time
private DateTime eventDateTime = DateTime.Now;
private int evCode=0;
private uint evValue=0;
private InterruptPortMM portObject = null;
/// +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=
/// <summary>
/// Constructor
/// </summary>
/// <param name="portObjectIn">The interrupt port object that associated with this event </param>
/// <history>
/// 28 Aug 14 Cynic - Originally written
/// </history>
public EventData(InterruptPortMM portObjectIn)
{
PortObject = portObjectIn;
}
/// +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=
/// <summary>
/// Constructor
/// </summary>
/// <param name="portObjectIn">The interrupt port object that associated with this event </param>
/// <param name="evCodeIn">A user specified code which appears in the events</param>
/// <param name="evValueIn">The current state of the pin 0 or 1</param>
/// sent by this class
/// <history>
/// 28 Aug 14 Cynic - Originally written
/// </history>
public EventData(InterruptPortMM portObjectIn, int evCodeIn, uint evValueIn)
{
PortObject = portObjectIn;
evCode = evCodeIn;
evValue = evValueIn;
}
/// +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=
/// <summary>
/// Gets/Sets the port object which generated this event.
/// </summary>
/// <history>
/// 28 Aug 14 Cynic - Originally written
/// </history>
public InterruptPortMM PortObject
{
get
{
return portObject;
}
set
{
portObject = value;
}
}
/// +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=
/// <summary>
/// Gets the event GPIO
/// </summary>
/// <history>
/// 28 Aug 14 Cynic - Originally written
/// </history>
public GpioEnum EvGPIO
{
get
{
if (PortObject == null)
{
return GpioEnum.GPIO_NONE;
}
return PortObject.GpioID;
}
}
/// +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=
/// <summary>
/// Gets the event date time. Will never return null. There is no set
/// accessor. The event dateTime is set when the event is created.
/// </summary>
/// <history>
/// 28 Aug 14 Cynic - Originally written
/// </history>
public DateTime EventDateTime
{
get
{
return eventDateTime;
}
}
/// +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=
/// <summary>
/// Gets/Sets the event time in seconds.
/// </summary>
/// <history>
/// 28 Aug 14 Cynic - Originally written
/// </history>
public int EvSec
{
get
{
return EventDateTime.Second;
}
}
/// +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=
/// <summary>
/// Gets/Sets the event elapsed milli seconds.
/// </summary>
/// <history>
/// 28 Aug 14 Cynic - Originally written
/// </history>
public int EvMSec
{
get
{
return EventDateTime.Millisecond;
}
}
/// +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=
/// <summary>
/// Gets the event time microseconds
/// </summary>
/// <history>
/// 28 Aug 14 Cynic - Originally written
/// </history>
public long EvUSec
{
get
{
// there are 10 ticks per micro second
return EventDateTime.Ticks/10;
}
}
/// +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=
/// <summary>
/// Gets the event time ticks. A tick is 100 nano seconds or 0.1 micro sec
/// </summary>
/// <history>
/// 28 Aug 14 Cynic - Originally written
/// </history>
public long EvTicks
{
get
{
return EventDateTime.Ticks;
}
}
/// +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=
/// <summary>
/// Gets the event code. This is a userdefined value specified when
/// the interrupt port was created.
/// </summary>
/// <history>
/// 28 Aug 14 Cynic - Originally written
/// </history>
public int EvCode
{
get
{
return evCode;
}
}
/// +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=
/// <summary>
/// Gets the event value. 0 for pin is now low, 1 for pin is now high
/// </summary>
/// <history>
/// 28 Aug 14 Cynic - Originally written
/// </history>
public uint EvValue
{
get
{
return evValue;
}
}
/// +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=
/// <summary>
/// Gets the event boolean state. This is false if EvValue is zero otherwise true
/// </summary>
/// <history>
/// 28 Aug 14 Cynic - Originally written
/// </history>
public bool EvState
{
get
{
if (EvValue == 0) return false;
return true;
}
}
/// +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=
/// <summary>
/// Gets the event data as string.
/// </summary>
/// <history>
/// 28 Aug 14 Cynic - Originally written
/// </history>
public override string ToString()
{
return "GPIO="+EvGPIO.ToString() + ", date="+ EventDateTime.ToString("yyyy-MM-dd HH:mm:ss.fffff") + ", evCode=" + EvCode.ToString("X4") + ", evValue=" + EvValue.ToString ("X8");
}
}
}