// Copyright (c) 2010, Peter Smith
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without modification,
// are permitted provided that the following conditions are met:
//
// Redistributions of source code must retain the above copyright notice, this list
// of conditions and the following disclaimer.
//
// Redistributions in binary form must reproduce the above copyright notice, this
// list of conditions and the following disclaimer in the documentation and/or
// other materials provided with the distribution.
//
// Neither the name of the Author nor the names of its contributors may be used to
// endorse or promote products derived from this software without specific prior
// written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
// IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
// INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
// OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
// OF THE POSSIBILITY OF SUCH DAMAGE.
namespace PS
{
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
public class ActiveTransmitterPDU
{
#region Fields
/// <summary>
/// Application ID
/// </summary>
public ushort application;
/// <summary>
/// Entity
/// </summary>
public ushort entity;
/// <summary>
/// Frequency of Transmitter
/// </summary>
public ulong frequency;
/// <summary>
/// Unique Radio ID
/// </summary>
public ushort radioID;
/// <summary>
/// Site ID
/// </summary>
public ushort site;
/// <summary>
/// Timestamp of sent Transmission
/// </summary>
public DateTime timeStamp;
#endregion Fields
#region Constructors
/// <summary>
/// Initialize Transmitter PDU
/// </summary>
/// <param name="Site">Site</param>
/// <param name="Application">Application</param>
/// <param name="Entity">Enityt</param>
/// <param name="RadioID">Unique Radio ID</param>
/// <param name="Frequency">Frequency of Transmission</param>
/// <param name="TimeStamp">TimeStamp</param>
public ActiveTransmitterPDU(ushort Site, ushort Application, ushort Entity, ushort RadioID, ulong Frequency, DateTime TimeStamp)
{
site = Site;
application = Application;
entity = Entity;
radioID = RadioID;
frequency = Frequency;
timeStamp = TimeStamp;
}
#endregion Constructors
#region Properties
/// <summary>
/// Transmitter Application ID
/// </summary>
public ushort Application
{
get
{
return application;
}
}
/// <summary>
/// Transmitter Entity ID
/// </summary>
public ushort Entity
{
get
{
return entity;
}
}
/// <summary>
/// Transmitter Frequency
/// </summary>
public ulong Frequency
{
get
{
return frequency;
}
}
/// <summary>
/// Transmitter Site ID
/// </summary>
public ushort Site
{
get
{
return site;
}
}
#endregion Properties
#region Methods
/// <summary>
/// Equate method used for the DIS VOIP application
/// </summary>
/// <param name="obj">Transmitter Object</param>
/// <returns>True if equal</returns>
public override bool Equals(object obj)
{
ActiveTransmitterPDU compareToObj = (ActiveTransmitterPDU)obj;
//If both are null, or both are the same instance, return true;
if (System.Object.ReferenceEquals(this, obj))
{
return true;
}
//If one is null, but not both, return false;
if (((object)this == null) || ((object)obj == null))
{
return false;
}
if (this.application == compareToObj.application && this.entity == compareToObj.entity && this.frequency == compareToObj.frequency && this.radioID == compareToObj.radioID && this.site == compareToObj.site)
return true;
else
return false;
//return base.Equals(obj);
}
#endregion Methods
}
}