using System;
using System.Collections.Generic;
namespace DTS.Common.Interface.DASFactory.Config
{
public interface IInfoResult
{
string MACAddress { get; set; }
///
/// An array of the modules in this DAS.
///
IInfoResultModule[] Modules { get; set; }
List ActiveExternalTilts { get; set; }
//public IDASCommunication OwningDAS { get; set; }
uint MaxNumberOfModules { get; set; }
///
/// How many bytes of sample storage is available in this DAS? This is null if
/// it's specified per module instead.
///
ulong? MaxEventStorageSpaceInBytes { get; set; }
///
/// How many bytes are stored for all channels at each sample interval? This is
/// null if it's specified per module instead.
///
uint? NumberOfBytesPerSampleClock { get; set; }
///
/// FB15353 Is this device hardware configured for streaming only?
/// null if device doesn't support a streaming-only configuration
///
bool? DeviceStreamingOnly { get; set; }
// temporary constant
int NumberOfBridgeChannels { get; set; }
IEID BatteryID { get; set; }
///
/// TRUE if a battery is present in the hardware unit.
///
bool HasBattery{ get; }
byte MapDASChannelNumber2RealtimeChannelNumber(int channelNumber);
///
/// Convert a DASChannel number (0..29) to a module array index (0..9).
/// A DASChannel number is a channel's identifier global within this DAS.
/// A Module array index is a Module identifier as it would be indexed in an array.
///
/// The DAS channel number to convert
/// The module array index
byte MapDASChannelNumber2ModuleArrayIndex(int channelNumber);
///
/// Convert a DAS channel number (0..29) to a module device id (1..10)
/// A DASChannel number is a channel's identifier global within this DAS.
/// A Module deviceID is an identifier for the corresponding channel that starts at 1 for the first Module.
///
/// The DAS channel number to convert
/// The module device id
byte MapDASChannelNumber2ModuleDeviceID(int channelNumber);
///
/// Convert a DAS channel number (0..29) to a module channel number (0..2)
/// A DASChannel number is a channel's identifier global within this DAS.
/// A moduleChannel number is the channel's identifier relative only to it's parent Module.
///
/// The DAS channel number to convert
/// The channel number within the module
byte MapDASChannelNumber2ModuleChannelNumber(int channelNumber);
///
/// Convert a module array index (0..9) and a module channel number (0..2) to a DAS channel number (0..29)
/// A Module array index is a Module identifier as it would be indexed in an array.
/// A moduleChannel number is the channel's identifier relative only to it's parent Module.
/// A DASChannel number is a channel's identifier global within this DAS.
///
/// The module array index (0..9)
/// The module channel number (0..2)
/// The DAS channel number within the DAS (0..29)
byte MapModuleArrayIndexAndChannelNum2DASChannel(int moduleArrayIdx, int channelNumber);
///
/// The returns the datetime of the DAS (or the oldest module's calibration)
/// returns 1970-01-01 is considering invalid/NA
///
DateTime? CalibrationDate{ get; set; }
}
}