init
This commit is contained in:
@@ -0,0 +1,26 @@
|
||||
namespace DTS.Common.DAS.Concepts.DAS.Channel
|
||||
{
|
||||
/// <summary>
|
||||
/// Definition of the concept of calsignal-check awareness.
|
||||
/// </summary>
|
||||
public interface ICalSignalAware
|
||||
{
|
||||
/// <summary>
|
||||
/// Get/set this object's <see cref="double"/> measured shunt deflection value.
|
||||
/// </summary>
|
||||
double MeasuredCalSignalMv
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Get/set this object's <see cref="double"/> target shunt deflection value.
|
||||
/// </summary>
|
||||
double TargetCalSignalMv
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,65 @@
|
||||
/*
|
||||
* DTS.Channel.IDecimatable
|
||||
*
|
||||
* Copyright © 2009
|
||||
* Diversified Technical Systems, Inc.
|
||||
* All Rights Reserved
|
||||
*/
|
||||
|
||||
namespace DTS.Common.DAS.Concepts.DAS.Channel
|
||||
{
|
||||
/// <summary>
|
||||
/// Definition of what it means for a DAS channel to be "decimatable".
|
||||
/// </summary>
|
||||
///
|
||||
/// <typeparam name="T">
|
||||
/// The type of data handled by this DAS channel.
|
||||
/// </typeparam>
|
||||
///
|
||||
public interface IDecimatable<out T>
|
||||
{
|
||||
/// <summary>
|
||||
/// The number of points to be squeezed into a single index point.
|
||||
/// </summary>
|
||||
uint PointsPerPoint
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Get/set the decimation method to be applied.
|
||||
/// </summary>
|
||||
DecimationMethod DecimationType
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Generate a decimated array using the current <see cref="DTS.Common.DAS.Concepts.DAS.Channel.DecimationMethod"/>.
|
||||
/// </summary>
|
||||
///
|
||||
/// <returns>
|
||||
/// A decimated array of type "T".
|
||||
/// </returns>
|
||||
///
|
||||
T[] ToDecimatedArray();
|
||||
|
||||
/// <summary>
|
||||
/// Get the value at the specified post-decimation index.
|
||||
/// </summary>
|
||||
/// <param name="i"></param>
|
||||
/// <returns></returns>
|
||||
///
|
||||
/// <remarks>
|
||||
/// Note that implementing this interface implies that the indexing operator should return values from
|
||||
/// the set decimated according to the PointsPerPoint and Method properties.
|
||||
/// </remarks>
|
||||
///
|
||||
T this[long i]
|
||||
{
|
||||
get;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
/*
|
||||
* DTS.Common.DAS.Concepts.DAS.Channel.IEngineeringUnitAware.cs
|
||||
*
|
||||
* Copyright © 2009
|
||||
* Diversified Technical Systems, Inc.
|
||||
* All Rights Reserved
|
||||
*/
|
||||
|
||||
namespace DTS.Common.DAS.Concepts.DAS.Channel
|
||||
{
|
||||
/// <summary>
|
||||
/// Definition of the concept of engineering unit awareness.
|
||||
/// </summary>
|
||||
public interface IEngineeringUnitAware
|
||||
{
|
||||
/// <summary>
|
||||
/// Get/set this object's engineering unit description <see cref="string"/>.
|
||||
/// </summary>
|
||||
string EngineeringUnits
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
/*
|
||||
* DTS.Common.DAS.Concepts.DAS.Channel.IInversionAware.cs
|
||||
*
|
||||
* Copyright © 2009
|
||||
* Diversified Technical Systems, Inc.
|
||||
* All Rights Reserved
|
||||
*/
|
||||
|
||||
namespace DTS.Common.DAS.Concepts.DAS.Channel
|
||||
{
|
||||
/// <summary>
|
||||
/// Definition of the concept of inversion awareness.
|
||||
/// </summary>
|
||||
public interface IInversionAware
|
||||
{ ///
|
||||
/// <summary>
|
||||
/// Get/set this object's inversion state <see cref="bool"/>.
|
||||
/// </summary>
|
||||
///
|
||||
bool IsInverted
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
/*
|
||||
* DTS.Common.DAS.Concepts.DAS.Channel.IIsoCodeAware.cs
|
||||
*
|
||||
* Copyright © 2009
|
||||
* Diversified Technical Systems, Inc.
|
||||
* All Rights Reserved
|
||||
*/
|
||||
|
||||
namespace DTS.Common.DAS.Concepts.DAS.Channel
|
||||
{
|
||||
/// <summary>
|
||||
/// Definition of the concept of ISO code awareness.
|
||||
/// </summary>
|
||||
public interface IIsoCodeAware
|
||||
{
|
||||
/// <summary>
|
||||
/// Get/set this object's IsoCode <see cref="string"/>.
|
||||
/// </summary>
|
||||
string IsoCode
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
/*
|
||||
* DTS.Common.DAS.Concepts.DAS.Channel.ILevelTriggerable.cs
|
||||
*
|
||||
* Copyright © 2009
|
||||
* Diversified Technical Systems, Inc.
|
||||
* All Rights Reserved
|
||||
*/
|
||||
|
||||
using System;
|
||||
|
||||
namespace DTS.Common.DAS.Concepts.DAS.Channel
|
||||
{
|
||||
///
|
||||
/// <summary>
|
||||
/// Definition of the concept of level triggerability.
|
||||
/// </summary>
|
||||
///
|
||||
public interface ILevelTriggerable
|
||||
{
|
||||
/// <summary>
|
||||
/// created for 14042 Flash Clear turns of excitation for s6
|
||||
/// this allows for a cached ADC value to be used rather than having to retrieve a sample average
|
||||
/// when calculating already level triggered
|
||||
/// </summary>
|
||||
double? SampleAverageADC { get; set; }
|
||||
/// <summary>
|
||||
/// Get/set the "trigger below" threshold. Set to "null" to deactivate.
|
||||
/// </summary>
|
||||
double? TriggerBelowThresholdEu { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Get/set the "trigger above" threshold. Set to "null" to deactivate.
|
||||
/// </summary>
|
||||
double? TriggerAboveThresholdEu { get; set; }
|
||||
|
||||
LevelTriggerTypes LevelTriggerType { get; set; }
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
namespace DTS.Common.DAS.Concepts.DAS.Channel
|
||||
{
|
||||
public interface ILinearized
|
||||
{
|
||||
DTS.Common.Classes.Sensors.LinearizationFormula LinearizationFormula
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
/*
|
||||
* DTS.Common.DAS.Concepts.DAS.Channel.ISerialNumberAware.cs
|
||||
*
|
||||
* Copyright © 2009
|
||||
* Diversified Technical Systems, Inc.
|
||||
* All Rights Reserved
|
||||
*/
|
||||
|
||||
namespace DTS.Common.DAS.Concepts.DAS.Channel
|
||||
{
|
||||
/// <summary>
|
||||
/// Definition of the concept of serial number awareness.
|
||||
/// </summary>
|
||||
public interface ISerialNumberAware
|
||||
{
|
||||
/// <summary>
|
||||
/// Get/set this object's serial number <see cref="string"/>.
|
||||
/// </summary>
|
||||
string SerialNumber
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
/*
|
||||
* DTS.Common.DAS.Concepts.DAS.Channel.IShuntAware.cs
|
||||
*
|
||||
* Copyright © 2009
|
||||
* Diversified Technical Systems, Inc.
|
||||
* All Rights Reserved
|
||||
*/
|
||||
|
||||
namespace DTS.Common.DAS.Concepts.DAS.Channel
|
||||
{
|
||||
/// <summary>
|
||||
/// Definition of the concept of shunt-check awareness.
|
||||
/// </summary>
|
||||
public interface IShuntAware
|
||||
{
|
||||
/// <summary>
|
||||
/// Get/set this object's <see cref="double"/> measured shunt deflection value.
|
||||
/// </summary>
|
||||
double MeasuredShuntDeflectionMv
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Get/set this object's <see cref="double"/> target shunt deflection value.
|
||||
/// </summary>
|
||||
double TargetShuntDeflectionMv
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
namespace DTS.Common.DAS.Concepts.DAS.Channel
|
||||
{
|
||||
public interface ITimestampAware
|
||||
{
|
||||
TimestampPartTypes TimestampPartType { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
/*
|
||||
* DTS.Common.DAS.Concepts.DAS.Channel.IVoltageInsertionAware.cs
|
||||
*
|
||||
* Copyright © 2012
|
||||
* Diversified Technical Systems, Inc.
|
||||
* All Rights Reserved
|
||||
*/
|
||||
|
||||
namespace DTS.Common.DAS.Concepts.DAS.Channel
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// Definition of the concept of shunt-check awareness.
|
||||
/// </summary>
|
||||
public interface IVoltageInsertionAware
|
||||
{
|
||||
/// <summary>
|
||||
/// Get/set this object's <see cref="double"/> measured shunt deflection value.
|
||||
/// </summary>
|
||||
double ExpectedGain
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Get/set this object's <see cref="double"/> target shunt deflection value.
|
||||
/// </summary>
|
||||
double MeasuredGain
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
}
|
||||
}
|
||||
121
Common/DTS.Common.DAS.Concepts/Interfaces/IArmable.cs
Normal file
121
Common/DTS.Common.DAS.Concepts/Interfaces/IArmable.cs
Normal file
@@ -0,0 +1,121 @@
|
||||
/*
|
||||
* IArmable.cs
|
||||
*
|
||||
* Copyright © 2010
|
||||
* Diversified Technical Systems, Inc.
|
||||
* All Rights Reserved.
|
||||
*/
|
||||
|
||||
namespace DTS.Common.DAS.Concepts
|
||||
{
|
||||
///
|
||||
/// <summary>
|
||||
/// Formal description of the ability to "arm".
|
||||
/// </summary>
|
||||
///
|
||||
public interface IArmable
|
||||
{
|
||||
void Arm();
|
||||
void Disarm();
|
||||
ArmStatus ArmStatus { get; }
|
||||
AvailableArmModes ArmMode { get; }
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//Like Rollin said, NGI will (for now) be orphaned. NASCAR is in for sure. TSR6DX is really TSRPRO, I think. RateTestTSR==BlastTestTSR and needs to be flattened. TSR==TSRBasic. The missing one in that list is HEADSII.
|
||||
|
||||
//NASCAR is 3 16-bit channels using a 216 daughterboard.
|
||||
//TSRPRO is 6 channels, 3 16-bit on a 216 daughterboard, 3 12-bit on the 215 motherboard
|
||||
//BlastTestTSR is 7 channels, 4 12-bit on the 215 motherboard, 3 16-bit on a hacked daughterboard
|
||||
//TSRBasic is 3 12-bit channels on the 215 motherboard
|
||||
//HEADSII is 7 12-bit channels on the 221 board
|
||||
|
||||
//The other missing component to some of what you sent earlier is that some of these systems have multiple sample rates. BlastTestTSR will have the 4 12-bit channels @ 40ksps and the 3 16-bit channels @ 1ksps. NGI had 2 24-bit channels @ 1ksps and 2 16-bit (?? can't remember for sure) channels @ 1sps. As it stands now we have the lower level download code just interpolate slow data to fast data and then everything has the "same" sample rate at the upper level, but it might be nice to deal with it more formally since that creates some funny edge cases we have to deal with by limiting the download to occur in sample number chunks that are a multiple of the fast rate divided by the slow rate.
|
||||
|
||||
//On 8/12/2010 11:12 AM, Paul Hrissikopoulos wrote:
|
||||
//> By the way, the types that the switches currently in the TSR2 code seem to think important are:
|
||||
//>
|
||||
//> TSRModel.NASCARIDR:
|
||||
//> TSRModel.TSR6DX:
|
||||
//> TSRModel.RateTestTSR:
|
||||
//> TSRModel.BlastTSR:
|
||||
//> TSRModel.TSR:
|
||||
//> TSRModel.NGIPrototype:
|
||||
//>
|
||||
//> Are we going to want all of those? Some of those? Those and then some?
|
||||
//>
|
||||
//> On 8/12/2010 11:07 AM, Paul Hrissikopoulos wrote:
|
||||
//>> I guess in theory the software should be able to deal with the multiplicity of device types as it sees fit -- some code, definitely including parts of the UI, will need to be able to actively discriminate between types before doing something type-specific, but I think the hope is that the bulk should be able to use it in a more generic sense (arm the same, download the same, realtime the same, etc.). But still maybe that's a valid point -- do we foresee a ton of cases where we'll be doing interface is/as and/or typefield checks before doing something?
|
||||
//>>
|
||||
//>> On 8/12/2010 10:50 AM, Tadd Seiff wrote:
|
||||
//>>> I like this.
|
||||
//>>>
|
||||
//>>> My approach at the moment is immediately how to use this as a HEADS device. My understanding is that the device will surface through the factory which will populate things such as TSR.Channel[] Channels which can then be accessed safely only with RunTime checks like if (HEADS == unit.TSRModel) {...}. Does this put us in the same position being at the mercy of switch statements at a higher level? This is just my knee-jerk reaction.
|
||||
//>>>
|
||||
//>>> On 8/12/2010 10:08 AM, Paul Hrissikopoulos wrote:
|
||||
//>>>> My reordering is attached. Search it for "?" for some open questions. Please let me know if you think I'm missing anything major (or minor) or am entirely on the wrong track.
|
||||
//>>>>
|
||||
//>>>> On 8/9/2010 10:26 PM, Rollin White wrote:
|
||||
//>>>>> Here's an update with a channel class.
|
||||
//>>>>>
|
||||
//>>>>> Please voice concerns, opinions, etc. This is just my simple view of the task.
|
||||
//>>>>>
|
||||
//>>>>> On 8/9/2010 3:02 PM, Rollin White wrote:
|
||||
//>>>>>> Here's my first cut at the interface description for the next generation TSR class. The interface is meant to describe the features common to all models.
|
||||
//>>>>>>
|
||||
//>>>>>> In addition to what's here, there needs to be significant definition of the channel class. Finally, there are probably a few interfaces that need to be defined that class implementers would optionally implement. For example, ISupportsDynamicEventLength.
|
||||
//>>>>>>
|
||||
//>>>>>> This is simply a starting point. Comments welcome.
|
||||
//>>>>
|
||||
//>>>
|
||||
//>>
|
||||
//>
|
||||
//>
|
||||
|
||||
//--
|
||||
//Chuck Gillen-O'Neel
|
||||
//Diversified Technical Systems, Inc.
|
||||
//909 Electric Avenue, Suite 206
|
||||
//Seal Beach, CA 90740
|
||||
//Telephone: (562) 493-0158
|
||||
//Email: chuck.go@dtsweb.com
|
||||
|
||||
// My comments:
|
||||
|
||||
// * For sensitivity we should either have mv/count and eu/mv for each channel OR have eu/count for each channel. Obviously the former is more flexible, but also a little more complicated and maybe unneeded for 95-99% of TSR/HEADS applications.
|
||||
// * OffsetCounts in IChannel should be signed. We nearly always need to make offsets signed. I'm speaking from my own mistakes here ... !!! :)
|
||||
// * We need to think about the arm states a bit more. There have been a couple of cases where having a Disarming state, in addition to Disarmed, has been nice.
|
||||
// * For GPIOs we might as well surface (and extend the firmware a bit to support this) the fact that IOs can be inputs as well as high/low outputs. So, rather than just returning a bool we might want to return a state enum. It's already there in the interface for SetGPIO since the GPIOPin.Direction enum has input and output and if it's set to input the State parameter is effectively a no-op.
|
||||
// * The question of a good interface for Calibration is still unanswered. The interface as shown is obviously fine for doing those three readings, but I'm not sure how truly useful that is in a generic sense. I have a feeling that this is a place where we'll be hooking in model checks, etc. etc. Maybe that's okay and can be limited to the cal software.
|
||||
|
||||
|
||||
//On 8/12/2010 10:50 AM, Tadd Seiff wrote:
|
||||
//> I like this.
|
||||
//>
|
||||
//> My approach at the moment is immediately how to use this as a HEADS device. My understanding is that the device will surface through the factory which will populate things such as TSR.Channel[] Channels which can then be accessed safely only with RunTime checks like if (HEADS == unit.TSRModel) {...}. Does this put us in the same position being at the mercy of switch statements at a higher level? This is just my knee-jerk reaction.
|
||||
//>
|
||||
//> On 8/12/2010 10:08 AM, Paul Hrissikopoulos wrote:
|
||||
//>> My reordering is attached. Search it for "?" for some open questions. Please let me know if you think I'm missing anything major (or minor) or am entirely on the wrong track.
|
||||
//>>
|
||||
//>> On 8/9/2010 10:26 PM, Rollin White wrote:
|
||||
//>>> Here's an update with a channel class.
|
||||
//>>>
|
||||
//>>> Please voice concerns, opinions, etc. This is just my simple view of the task.
|
||||
//>>>
|
||||
//>>> On 8/9/2010 3:02 PM, Rollin White wrote:
|
||||
//>>>> Here's my first cut at the interface description for the next generation TSR class. The interface is meant to describe the features common to all models.
|
||||
//>>>>
|
||||
//>>>> In addition to what's here, there needs to be significant definition of the channel class. Finally, there are probably a few interfaces that need to be defined that class implementers would optionally implement. For example, ISupportsDynamicEventLength.
|
||||
//>>>>
|
||||
//>>>> This is simply a starting point. Comments welcome.
|
||||
//>>
|
||||
//>
|
||||
|
||||
//--
|
||||
//Chuck Gillen-O'Neel
|
||||
//Diversified Technical Systems, Inc.
|
||||
//909 Electric Avenue, Suite 206
|
||||
//Seal Beach, CA 90740
|
||||
//Telephone: (562) 493-0158
|
||||
//Email: chuck.go@dtsweb.com
|
||||
27
Common/DTS.Common.DAS.Concepts/Interfaces/ICalibratable.cs
Normal file
27
Common/DTS.Common.DAS.Concepts/Interfaces/ICalibratable.cs
Normal file
@@ -0,0 +1,27 @@
|
||||
/*
|
||||
* ICalibratable.cs
|
||||
*
|
||||
* Copyright © 2010
|
||||
* Diversified Technical Systems, Inc.
|
||||
* All Rights Reserved.
|
||||
*/
|
||||
|
||||
namespace DTS.Common.DAS.Concepts
|
||||
{ ///
|
||||
/// <summary>
|
||||
/// Representation of the ability to calibrate.
|
||||
/// </summary>
|
||||
///
|
||||
public interface ICalibratable
|
||||
{ //
|
||||
// Properties required for rudimentary calibration.
|
||||
//
|
||||
string SerialNumber { get; set; }
|
||||
double Sensitivity { get; set; }
|
||||
double BatteryVolts { get; set; }
|
||||
double VddVolts { get; set; }
|
||||
double SignalConditioningVolts { get; set; }
|
||||
|
||||
// access for generic attributes.
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
/*
|
||||
* IDataCollectionEnabled.cs
|
||||
*
|
||||
* Copyright © 2010
|
||||
* Diversified Technical Systems, Inc.
|
||||
* All Rights Reserved.
|
||||
*/
|
||||
|
||||
namespace DTS.Common.DAS.Concepts
|
||||
{ ///
|
||||
/// <summary>
|
||||
/// Representation of the ability to perform a basic data collection.
|
||||
/// </summary>
|
||||
///
|
||||
public interface IDataCollectionEnabled
|
||||
: IArmable,
|
||||
ITriggerable,
|
||||
IDownloadEnabled
|
||||
{ //
|
||||
// Additional properties required for rudimentary data collection.
|
||||
//
|
||||
double[] AvailableSampleRates { get; }
|
||||
double SampleRate { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,60 @@
|
||||
/*
|
||||
* IDownloadEnabled.cs
|
||||
*
|
||||
* Copyright © 2010
|
||||
* Diversified Technical Systems, Inc.
|
||||
* All Rights Reserved.
|
||||
*/
|
||||
|
||||
using System;
|
||||
|
||||
/// <DevelopmentNote Developer="Paul Hrissikopoulos">
|
||||
/// It may make sense to refactor this namespace to be DTS.Common.DAS.ConceptsTsr and rename the TSR-specific
|
||||
/// event to "Event" so that the fully qualified name of the class is "DTS.Common.DAS.ConceptsTsr.Event", but
|
||||
/// then maybe keep the IDownloadEnabled and other generic interfaces outside of the "Tsr"-specific
|
||||
/// namespace...? No, should probably stay with Event, since it has an "Event" type referenced in the
|
||||
/// interface.
|
||||
/// </DevelopmentNote>
|
||||
|
||||
namespace DTS.Common.DAS.Concepts
|
||||
{
|
||||
|
||||
///
|
||||
/// <summary>
|
||||
/// Representation of the ability to download from this object.
|
||||
/// </summary>
|
||||
///
|
||||
public interface IDownloadEnabled
|
||||
{ //
|
||||
// TODO: Determine whether or not these things should be in here. Maybe the implementing
|
||||
// object should just ask for them in the constructor and keep them private? I don't think
|
||||
// these are universally applicable to something "download enabled"... are they?
|
||||
//
|
||||
//public uint MaximumStoredEventSizeSeconds { get; }
|
||||
//public ushort DownloadIncrementSamples { get; }
|
||||
//public string[] ChannelDescription { get; }
|
||||
//public int TimeOffsetMilliseconds { get; }
|
||||
|
||||
/// <summary>
|
||||
/// A list of download <see cref="DTS.Common.DAS.ConceptsTsrEvent"/>s available for download.
|
||||
/// </summary>
|
||||
TsrEvent[] EventList { get; }
|
||||
|
||||
///
|
||||
/// <summary>
|
||||
/// Get the event data for the specified sample.
|
||||
/// </summary>
|
||||
/// <param name="Event">The <see cref="DTS.Common.DAS.ConceptsTsrEvent"/> to have it's data extracted.</param>
|
||||
/// <param name="FirstSample">The <see cref="UInt64"/> index of the first sample to be downloaded.</param>
|
||||
/// <param name="LastSample">The <see cref="UInt64"/> index of the last sample to be downloaded.</param>
|
||||
/// <returns>An array of <see cref="double"/> data arrays for each channel.</returns>
|
||||
///
|
||||
double[][] GetEventData(TsrEvent Event, ulong FirstSample, ulong LastSample); // Any reason to do data as an out parameter rather than a return value?
|
||||
// Have a subclassed channel class that has a data array, just so that 2-d array isn't so ambiguous?
|
||||
|
||||
/// <summary>
|
||||
/// Determine whether or not the data on this download-enabled entity has been downloaded.
|
||||
/// </summary>
|
||||
bool DataHasBeenDownloaded { get; }
|
||||
}
|
||||
}
|
||||
33
Common/DTS.Common.DAS.Concepts/Interfaces/IGpioEnabled.cs
Normal file
33
Common/DTS.Common.DAS.Concepts/Interfaces/IGpioEnabled.cs
Normal file
@@ -0,0 +1,33 @@
|
||||
/*
|
||||
* IGpioEnabled.cs
|
||||
*
|
||||
* Copyright © 2010
|
||||
* Diversified Technical Systems, Inc.
|
||||
* All Rights Reserved.
|
||||
*/
|
||||
|
||||
using DTS.Common.Common.DAS.Concepts.GPIOPin;
|
||||
|
||||
namespace DTS.Common.Common.DAS.Concepts.GPIOPin
|
||||
{
|
||||
public enum Directions
|
||||
{
|
||||
Output = 0x00, Peripheral = 0x01, Input = 0x02,
|
||||
InputPulledUp = 0x03, InputPulledDown = 0x04
|
||||
};
|
||||
}
|
||||
|
||||
namespace DTS.Common.DAS.Concepts
|
||||
{ ///
|
||||
/// <summary>
|
||||
/// Representation of GPIO functionality.
|
||||
/// </summary>
|
||||
///
|
||||
public interface IGpioEnabled
|
||||
{
|
||||
// TODO: Well have to bring these in as soon as we figure out where to get that enum from.
|
||||
|
||||
void SetGpio(uint Port, uint Pin, Directions Direction, bool State);
|
||||
bool GetGpio(uint Port, uint Pin);
|
||||
}
|
||||
}
|
||||
27
Common/DTS.Common.DAS.Concepts/Interfaces/ILargeDataAware.cs
Normal file
27
Common/DTS.Common.DAS.Concepts/Interfaces/ILargeDataAware.cs
Normal file
@@ -0,0 +1,27 @@
|
||||
/*
|
||||
* DTS.Channel.ILargeDataAware
|
||||
*
|
||||
* Copyright © 2009
|
||||
* Diversified Technical Systems, Inc.
|
||||
* All Rights Reserved
|
||||
*/
|
||||
|
||||
namespace DTS.Common.DAS.Concepts.DAS.Channel
|
||||
{
|
||||
/// <summary>
|
||||
/// Definition of what it means for a DAS channel to be "large data aware".
|
||||
/// </summary>
|
||||
///
|
||||
public interface ILargeDataAware
|
||||
{
|
||||
/// <summary>
|
||||
/// Determine whether or not this data set is small enough to be safely fit into any array
|
||||
/// within the context of a slice application (will be filtered, sent to viewer, etc).
|
||||
/// </summary>
|
||||
bool IsDataArraySized
|
||||
{
|
||||
get;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
34
Common/DTS.Common.DAS.Concepts/Interfaces/IRealtimeable.cs
Normal file
34
Common/DTS.Common.DAS.Concepts/Interfaces/IRealtimeable.cs
Normal file
@@ -0,0 +1,34 @@
|
||||
/*
|
||||
* IRealtimeable.cs
|
||||
*
|
||||
* Copyright © 2010
|
||||
* Diversified Technical Systems, Inc.
|
||||
* All Rights Reserved.
|
||||
*/
|
||||
|
||||
using System;
|
||||
|
||||
namespace DTS.Common.DAS.Concepts
|
||||
{ ///
|
||||
/// <summary>
|
||||
/// Representation of a real-time data sample.
|
||||
/// </summary>
|
||||
///
|
||||
public class RealtimeSample
|
||||
{
|
||||
public double[] DataEU; // Note this indexes by channel.
|
||||
public ulong SampleNumber;
|
||||
}
|
||||
|
||||
///
|
||||
/// <summary>
|
||||
/// Representation of the ability to perform "real-time" data capture.
|
||||
/// </summary>
|
||||
///
|
||||
public interface IRealtimeable
|
||||
{
|
||||
void StartRealtime(double sampleRate);
|
||||
void StopRealtime();
|
||||
RealtimeSample[] GetRealtimeSamples();
|
||||
}
|
||||
}
|
||||
19
Common/DTS.Common.DAS.Concepts/Interfaces/ITriggerable.cs
Normal file
19
Common/DTS.Common.DAS.Concepts/Interfaces/ITriggerable.cs
Normal file
@@ -0,0 +1,19 @@
|
||||
/*
|
||||
* ITriggerable.cs
|
||||
*
|
||||
* Copyright © 2010
|
||||
* Diversified Technical Systems, Inc.
|
||||
* All Rights Reserved.
|
||||
*/
|
||||
|
||||
namespace DTS.Common.DAS.Concepts
|
||||
{ ///
|
||||
/// <summary>
|
||||
/// Functional description of a "triggerable" object.
|
||||
/// </summary>
|
||||
///
|
||||
public interface ITriggerable
|
||||
{
|
||||
void Trigger();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user