using System;
namespace DTS.DASLib.Service
{
public interface IDiagnosticsActions
{
///
/// clears the trigger out line via SetSwitchImmediate
///
void ClearTriggerOut(ServiceCallback callback, object userData);
///
/// clears any latched FPGA via a QATS call
///
void ClearLatches(ServiceCallback callback, object userData);
void PerformVoltageCheck(ServiceCallback callback, object userData);
void PerformVoltageCheckTAOnly(ServiceCallback callback, object userData);
void PerformArmChecks(ServiceCallback callback, object userData);
void SaveTiltSensorDataPre(ServiceCallback callback, object userData);
void SaveTemperaturesPre(ServiceCallback callback, object userData);
///
/// If any of the units to run diagnostics are in
///
/// DTS.DASLib.Service.ArmingService.EnterLowPowerMode then the analog circuits must be "warmed up" before accurate
/// diagnostics can be performed. If the units have not been placed into
/// DTS.DASLib.Service.ArmingService.EnterLowPowerMode then there is no need to call
/// this but since it is quite important habitually calling it everytime
/// diagnostics are performed would be beneficial.
///
/// The firmware will use this sample rate when
/// collecting diagnostics data from the channel.
/// The firmware will use this Anti-Aliasing
/// filter when collectin diagnostics data from the channel.
/// The function to call with information.
/// Whatever you want to pass along.
void PrepareForBridgeResistanceMeasurement(UInt32 DiagnosticsSampleRateHz,
float DiagnosticsAAFilterFrequencyHz,
ServiceCallback callback, object userData);
///
/// Perform diagnostics based on the property ChannelDiagnostics and stuff the
/// result in ChannelDiagnosticsResults
///
/// sample rate
/// AA Filter rate
/// The function to call with information
/// Whatever you want to pass along
void PrepareForDiagnostics(UInt32 DiagnosticsSampleRateHz,
float DiagnosticsAAFilterFrequencyHz,
DTS.DASLib.Service.PrePostResults WhichResult,
ServiceCallback callback, object userData);
void SetStatusIndicator(DiagnosticsStatusIndicatorState state,
ServiceCallback callback, object userData);
///
/// Perform diagnostics based on the property ChannelDiagnostics and stuff the
/// result in ChannelDiagnosticsResults
///
/// The function to call with information
/// Whatever you want to pass along
void DiagnosAndGetResults(int EventNumber, PrePostResults WhichResult,
ServiceCallback callback, object userData);
///
/// Retrieve the results from the implicit pre and post event diagnostics
///
/// Which event number to Retrieve from
/// The pre or post test results?
/// The function to call with information
/// Whatever you want to pass along
void GetEventDiagnosticsResults(int EventNumber, PrePostResults WhichResult,
ServiceCallback callback, object userData);
///
/// clears the trigger lines for any DAS
/// 14229 DataPRO crash when run diagnostics second time
/// note there's already a service to clear the trigger lines for S6DB, ECM (TriggerCheck.PreStart)
/// 5211 for more info
/// however we need one for DAS that will explictly run AFTER prestart runs
/// this service just sets trigger out to 0 and runs QATS to reset the FPGA on affected units
///
///
///
void ClearDASTriggerLine(ServiceCallback callback, object userData);
void SquibFireCheckArm(double delay, double duration, ServiceCallback callback, object userData);
void TriggerCheckTrigger(ServiceCallback callback, object userData);
void TriggerCheckDownload(double delay, double duration, float diagnosticsAAFilterFrequencyHz, uint diagnosticsSampleRateHz, ServiceCallback callback, object userData);
///
/// Perform diagnostics based on the property ChannelDiagnostics and stuff the
/// result in ChannelDiagnosticsResults
///
/// The function to call with information
/// Whatever you want to pass along
void GetBridgeMeasurement(ServiceCallback callback, object userData);
void MeasureTransferSpeed(ServiceCallback callback, object userData);
}
}