using DTS.Common.Enums.Sensors;
using System;
using DTS.Common.Enums;
using DTS.Common.Classes.Sensors;
using DTS.Common.Interface.Sensors.SoftwareFilters;
namespace DTS.Common.Interface.Sensors.SensorsList
{
///
/// this interface is used to describe objects used to represents sensors for UI purposes
///
public interface IAnalogSensor
{
///
/// bridge mode of the sensor in question
///
SensorConstants.BridgeType Bridge { get; set; }
///
/// indicates if the sensor is Integrated Electronics Piezo-Electric (IEPE)
///
bool IEPE { get; }
///
/// id in the database if available
/// only positive values are valid
///
int DatabaseId { get; set; }
///
/// used to indicate that the sensor should be checked if in a list
/// with a checkbox
///
bool Included { get; set; }
///
/// serial number of the sensor
///
string SerialNumber { get; set; }
///
/// description or comment of the sensor
///
string Description { get; set; }
///
/// the maker of the sensor
///
string Manufacturer { get; set; }
///
/// the model of the sensor
///
string Model { get; set; }
///
/// the current capacity or desired range of the sensor in EU
/// in general this value refers to maximum capacity, however
/// in some contexts this can refer to desired range instead
///
double Capacity { get; set; }
///
/// an arbitrary EU value for range for the sensor
///
double RangeHigh { get; set; }
///
/// an arbitrary EU value for medium range for the sensor
///
double RangeMedium { get; set; }
///
/// an arbitrary EU value for the low range for the sensor
///
double RangeLow { get; set; }
///
/// a user display friendly string representation of the sensor's sensitivity
/// this is suitable for tables and user display
///
string Sensitivity { get; set; }
///
/// in the case of dual sensitivity sensors, this is a string
/// user friendly representation of the second calibration
///
string AddedSensitivity { get; set; }
///
/// resistance in ohms of the sensor
///
double Resistance { get; set; }
///
/// a user friendly representation of the supported excitations
/// of the sensor
///
string Excitation { get; set; }
///
/// the engineering units of the sensor
/// usually obtained from the most recent calibration
///
string Units { get; set; }
///
/// Electronic ID associated with the sensor, if any
///
string EID { get; set; }
///
/// the last (most recent) calibration date for the sensor
///
DateTime CalDate { get; set; }
///
/// the date the sensor is due for calibration
///
DateTime CalDueDate { get; set; }
///
/// the user that last modified the sensor or calibration
///
string ModifiedBy { get; set; }
///
/// the date the sensor or calibration was last modified
///
DateTime LastModified { get; set; }
///
/// returns true if the sensor matches the filter criteria
///
///
///
bool Filter(string term);
///
/// used to indicate if the sensor has been assigned to a channel
///
bool Assigned { get; set; }
///
/// used to indicate if the sensor is online or not
///
bool Online { get; set; }
///
/// the isocode associated with the sensor
/// this is the default isocode for the sensor when assigned to a new blank channel
///
string ISOCode { get; set; }
///
/// the isochannel name associated with the sensor
/// this is the default user channel name for the sensor when assigned to a new blank channel
///
string ISOChannelName { get; set; }
///
/// the user code associated with the sensor
/// this is the default user code for the sensor when assigned to a new blank channel
///
string UserCode { get; set; }
///
/// the user channel name associated with the sensor
/// this is the default user channel name for the sensor when assigned to a new blank channel
///
string UserChannelName { get; set; }
///
/// the channel filter class (CFC) associated with the sensor
/// this is the default CFC for the sensor when assigned to a new blank channel
///
Enums.Sensors.FilterClassType CFC { get; set; }
///
/// indicates whether the sensor output should be inverted or not
/// this is the default polarity for the sensor when assigned to a new blank channel
///
bool Polarity { get; set; }
///
/// indicates what the type of nonlinear calculation is used for this sensor as a string
///
string NonLinearCalculationType { get; set; }
///
/// indicates what the type of nonlinear calculation is used for this sensor, as an enum
///
NonLinearStyles NonLinearCalculationTypeEnum { get; set; }
///
/// indicates what the type of software zero method is used for this sensor
///
Enums.Sensors.ZeroMethodType ZeroMethod { get; set; }
///
/// If ZeroMethod is Average over Time, indicates the start time
///
double ZeroMethodStart { get; set; }
///
/// If ZeroMethod is Average over Time, indicates the end time
///
double ZeroMethodEnd { get; set; }
string UserValue1 { get; set; }
string UserValue2 { get; set; }
string UserValue3 { get; set; }
UIItemStatus SensorCalibrationOrUsageStatus { get; }
InitialOffset[] InitialOffsets { get; set; }
//FB 13120 define filter class
IFilterClass FilterClass { get; set; }
///
/// Date of first use (null value indicates not set)
/// only valid when using latest calibration (as indicated by UsingLatestCalibration and LatestCalibrationId)
/// 13065 Sensor "First Use" Date
///
DateTime? FirstUseDate { get; set; }
///
/// latest calibration id for sensor, null indicates not set
/// 13065 Sensor "First Use" Date
///
int? LatestCalibrationId { get; set; }
///
/// whether the sensor is using the latest calibration (as indicated by calibration id)
/// 13065 Sensor "First Use" Date
///
bool UsingLatestCalibration { get; set; }
int SensorUsageCount { get; set; }
int MaximumUsage { get; set; }
string AssemblyName { get; set; }
}
}