Files
DP44/Common/DTS.CommonCore/.svn/pristine/c9/c9fe8302a754f903238d6aacb9a95064f9998ee2.svn-base

204 lines
6.7 KiB
Plaintext
Raw Permalink Normal View History

2026-04-17 14:55:32 -04:00
using DTS.Common.Interface.Sensors;
namespace DTS.Common.Interface.TestSetups
{
public interface IISFFile
{
/// <summary>
/// RECORD_LENGTH bytes (80)
/// </summary>
char [] HeaderLine1 {get; set; }
/// <summary>
/// 8 characters, starting at character 7
/// </summary>
char [] TestSetupName {get; set;}
/// <summary>
/// starts at character 15, 5 characters long
/// </summary>
short NumberOfRecords { get; }
/// <summary>
/// 22 characters, starting at character 20
/// </summary>
char [] TestType { get; set; }
/// <summary>
/// 30 characters, starting at character 42
/// </summary>
char [] TestDivision { get; set; }
/// <summary>
/// 8 characters start at character 72, without .TCF extension
/// </summary>
char [] TCFile { get; set; }
/// <summary>
/// RECORD_LENGTH, we don't use anything from it currently...
/// </summary>
char [] HeaderLine2 { get; set; }
/// <summary>
/// RECORD_LENGTH, we don't use anything from it currently
/// </summary>
char [] HeaderLine3 { get; set; }
IISFSensorRecord [] Records { get; }
/// <summary>
/// adds a record, updates record count
/// </summary>
/// <param name="record"></param>
void AddRecord(IISFSensorRecord record);
void WriteToFile(string pathToFile);
void AddSensors(ISensorData[] sensors);
}
public interface IISFSensorRecord
{
/// <summary>
/// RECORD_LENGTH the whole first record
/// </summary>
char [] Record1 { get; set; }
/// <summary>
/// 2 characters, starting at character 75
/// </summary>
char [] Tag { get; set; }
/// <summary>
/// 5 characters start at character 7
/// </summary>
char [] DataChannelNumber { get; set; }
void SetDataChannelNumber(short value);
/// <summary>
/// 1 character, starting at character 15
/// </summary>
bool UserIdSensorIDIsNotSpecified { get; set; }
/// <summary>
/// 11 characters start at 19
/// </summary>
char [] CapacityCharacters { get; set; }
void SetCapacity(double capacity);
double GetCapacity();
/// <summary>
/// 12 characters, starting at 30
/// </summary>
char [] SerialNumber { get; set; }
/// <summary>
/// 11 characters, start at 42
/// is Sensitivity/1000 (V)
/// can also be c0 if polynomial
/// </summary>
char [] Sensitivity { get; set; }
void SetSensitivity(double sensitivity);
double GetSensitivity();
/// <summary>
/// 11 characters starting at 53
/// </summary>
char [] BridgeResistance { get; set; }
void SetBridgeResistance(double resistance);
/// <summary>
/// RECORD_LENGTH
/// </summary>
char [] Record2 { get; set; }
/// <summary>
/// 12 characters, starting at character 7 (of record 2)
/// </summary>
char [] EngineeringUnits { get; set; }
/// <summary>
/// 11 characters, starting at character 20
/// </summary>
char [] C1 { get; set; }
void SetC1(double c1);
double GetC1();
/// <summary>
/// 17 characters, starting at character 31
/// </summary>
char [] EID { get; set; }
/// <summary>
/// 4 characters, starting at 49
/// </summary>
char [] Unknown1 { get; set; }
/// <summary>
/// 2 characters, starting at 53
/// </summary>
char [] Unknown2 { get; set; }
/// <summary>
/// 11 characters starting at 55 (TOM ONLY [sensortype TI])
/// is /1000 of ordinary
/// </summary>
char [] FireDelay { get; set; }
/// <summary>
/// 8 characters, starting at 66
/// STANDARD is the default value, we don't really support anything else currently
/// </summary>
char [] TOMConfigurationName { get; set; }
/// <summary>
/// RECORD_LENGTH, third record of 4
/// </summary>
char [] Record3 { get; set; }
/// <summary>
/// 15 characters start at 14 of record 3
/// </summary>
char [] CommentPart1 { get; set; }
/// <summary>
/// 40 characters starting at 33
/// </summary>
char [] CommentPart2 { get; set; }
/// <summary>
/// RECORD_LENGTH, the 4th record of 4
/// </summary>
char [] Record4 { get; set; }
/// <summary>
/// 15 characters, starting at character 12
/// </summary>
char [] CommentPart3 { get; set; }
/// <summary>
/// sets CommentPart1, CommentPart2, CommentPart3
/// </summary>
/// <param name="s"></param>
void SetSensorComment(string s);
/// <summary>
/// 20 characters starting at 30
/// checked for digital inputs (should contain N/O or N/C)
/// </summary>
char [] SensorType { get; set; }
/// <summary>
/// 11 characters starting at 50
/// </summary>
char [] C2 { get; set; }
void SetC2(double c2);
/// <summary>
/// 11 characters starting at 61
/// notice for poly's we should be multiplying by 1000D?
/// calibration.Records.Records.First().Poly.SetCoefficient(0, calibration.Records.Records[0].Sensitivity / 1000.0D);
/// calibration.Records.Records.First().Poly.SetCoefficient(1, c1 / 1000.0D);
/// calibration.Records.Records.First().Poly.SetCoefficient(2, c2 / 1000.0D);
/// calibration.Records.Records.First().Poly.SetCoefficient(3, c3 / 1000.0D);
/// </summary>
char [] C3 { get; set; }
void SetC3(double c3);
/// <summary>
/// writes record to stream
/// </summary>
/// <param name="writer"></param>
void Write(System.IO.BinaryWriter writer);
void SetSensor(ISensorData sensor);
}
public abstract class ConstantsAndEnums
{
public const int RECORD_LENGTH = 80;
public enum ISFKnownChannelTypes
{
VS,
VU,
SB,
TI, //not analog (TOM)
TC, //not analog (TOM)
CT, //Digital
XP,
P4,
VF,
NB,
EX
}
}
}