Files
DP44/DataPRO/IService/Interfaces/IDiagnosticsActions.cs
2026-04-17 14:55:32 -04:00

100 lines
5.6 KiB
C#

using System;
namespace DTS.DASLib.Service
{
public interface IDiagnosticsActions
{
/// <summary>
/// clears the trigger out line via SetSwitchImmediate
/// </summary>
void ClearTriggerOut(ServiceCallback callback, object userData);
/// <summary>
/// clears any latched FPGA via a QATS call
/// </summary>
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);
/// <summary>
/// If any of the units to run diagnostics are in
/// <see cref="DTS.DASLib.Service.ArmingService">
/// DTS.DASLib.Service.ArmingService.EnterLowPowerMode</see> then the analog circuits must be "warmed up" before accurate
/// diagnostics can be performed. If the units have not been placed into
/// <see cref="DTS.DASLib.Service.ArmingService">DTS.DASLib.Service.ArmingService.EnterLowPowerMode</see> then there is no need to call
/// this but since it is quite important habitually calling it everytime
/// diagnostics are performed would be beneficial.
/// </summary>
/// <param name="DiagnosticsSampleRateHz">The firmware will use this sample rate when
/// collecting diagnostics data from the channel.</param>
/// <param name="DiagnosticsAAFilterFrequencyHz">The firmware will use this Anti-Aliasing
/// filter when collectin diagnostics data from the channel.</param>
/// <param name="callback">The function to call with information.</param>
/// <param name="userData">Whatever you want to pass along.</param>
void PrepareForBridgeResistanceMeasurement(UInt32 DiagnosticsSampleRateHz,
float DiagnosticsAAFilterFrequencyHz,
ServiceCallback callback, object userData);
/// <summary>
/// Perform diagnostics based on the property ChannelDiagnostics and stuff the
/// result in ChannelDiagnosticsResults
/// </summary>
/// <param name="DiagnosticsSampleRateHz">sample rate</param>
/// <param name="DiagnosticsAAFilterFrequencyHz">AA Filter rate</param>
/// <param name="callback">The function to call with information</param>
/// <param name="userData">Whatever you want to pass along</param>
void PrepareForDiagnostics(UInt32 DiagnosticsSampleRateHz,
float DiagnosticsAAFilterFrequencyHz,
DTS.DASLib.Service.PrePostResults WhichResult,
ServiceCallback callback, object userData);
void SetStatusIndicator(DiagnosticsStatusIndicatorState state,
ServiceCallback callback, object userData);
/// <summary>
/// Perform diagnostics based on the property ChannelDiagnostics and stuff the
/// result in ChannelDiagnosticsResults
/// </summary>
/// <param name="callback">The function to call with information</param>
/// <param name="userData">Whatever you want to pass along</param>
void DiagnosAndGetResults(int EventNumber, PrePostResults WhichResult,
ServiceCallback callback, object userData);
/// <summary>
/// Retrieve the results from the implicit pre and post event diagnostics
/// </summary>
/// <param name="EventNumber">Which event number to Retrieve from</param>
/// <param name="WhichResult">The pre or post test results?</param>
/// <param name="callback">The function to call with information</param>
/// <param name="userData">Whatever you want to pass along</param>
void GetEventDiagnosticsResults(int EventNumber, PrePostResults WhichResult,
ServiceCallback callback, object userData);
/// <summary>
/// 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
/// </summary>
/// <param name="callback"></param>
/// <param name="userData"></param>
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);
/// <summary>
/// Perform diagnostics based on the property ChannelDiagnostics and stuff the
/// result in ChannelDiagnosticsResults
/// </summary>
/// <param name="callback">The function to call with information</param>
/// <param name="userData">Whatever you want to pass along</param>
void GetBridgeMeasurement(ServiceCallback callback, object userData);
void MeasureTransferSpeed(ServiceCallback callback, object userData);
}
}