Files

90 lines
5.0 KiB
C#
Raw Permalink Normal View History

2026-04-17 14:55:32 -04:00
using System.Data;
using System.Data.SqlClient;
namespace DASFactoryDb.ARM
{
public static class ARM
{
public static void SetArmStatus(int iDASRecordId,
bool isArmed,
bool isTriggered,
bool isTriggerShorted,
bool isStartShorted,
bool isRecording,
bool isFaulted,
bool isInRealtime,
bool isInFlashWrite,
bool isUndefined,
bool isInPostTestDiagnostics,
double timeRemainingSeconds,
double percentComplete,
ulong totalSamples,
ulong currentSample,
uint sampleRate,
double? inputMilliVolts,
double? batteryMilliVolts,
int? eventNumber,
int recordingMode,
string faultMessage,
bool isRearming,
bool hasBeenRecording,
double? timeLeftInArm
)
{
if (!DbWrapper.Connected) { return; }
using (var cmd = DbWrapper.GetDASFactoryCommand())
{
try
{
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "sp_ArmStatusSet";
cmd.Parameters.Add(new SqlParameter("@IDASCommunicationRecordId", SqlDbType.Int) { Value = iDASRecordId });
cmd.Parameters.Add(new SqlParameter("@IsArmed", SqlDbType.Bit) { Value = isArmed });
cmd.Parameters.Add(new SqlParameter("@IsTriggered", SqlDbType.Bit) { Value = isTriggered });
cmd.Parameters.Add(new SqlParameter("@IsTriggerShorted", SqlDbType.Bit) { Value = isTriggerShorted });
cmd.Parameters.Add(new SqlParameter("@IsStartShorted", SqlDbType.Bit) { Value = isStartShorted });
cmd.Parameters.Add(new SqlParameter("@IsRecording", SqlDbType.Bit) { Value = isRecording });
cmd.Parameters.Add(new SqlParameter("@IsFaulted", SqlDbType.Bit) { Value = isFaulted });
cmd.Parameters.Add(new SqlParameter("@IsInRealtime", SqlDbType.Bit) { Value = isInRealtime });
cmd.Parameters.Add(new SqlParameter("@IsInFlashWrite", SqlDbType.Bit) { Value = isInFlashWrite });
cmd.Parameters.Add(new SqlParameter("@IsUndefined", SqlDbType.Bit) { Value = isUndefined });
cmd.Parameters.Add(new SqlParameter("@IsInPostTestDiagnostics", SqlDbType.Bit) { Value = isInPostTestDiagnostics });
cmd.Parameters.Add(new SqlParameter("@TimeRemainingSeconds", SqlDbType.Decimal) { Value = timeRemainingSeconds });
cmd.Parameters.Add(new SqlParameter("@PercentComplete", SqlDbType.Decimal) { Value = percentComplete });
cmd.Parameters.Add(new SqlParameter("@TotalSamples", SqlDbType.Int) { Value = totalSamples });
cmd.Parameters.Add(new SqlParameter("@CurrentSample", SqlDbType.Int) { Value = currentSample });
cmd.Parameters.Add(new SqlParameter("@SampleRate", SqlDbType.Int) { Value = sampleRate });
cmd.Parameters.Add(new SqlParameter("@InputMillivolts", SqlDbType.Decimal) { Value = inputMilliVolts ?? 0 });
cmd.Parameters.Add(new SqlParameter("@BatteryMilliVolts", SqlDbType.Decimal) { Value = batteryMilliVolts ?? 0 });
cmd.Parameters.Add(new SqlParameter("@EventNumber", SqlDbType.Int) { Value = eventNumber.HasValue ? eventNumber.Value : 0 });
cmd.Parameters.Add(new SqlParameter("@RecordingMode", SqlDbType.Int) { Value = recordingMode });
cmd.Parameters.Add(new SqlParameter("@FaultMessage", SqlDbType.NVarChar) { Value = faultMessage ?? "" });
cmd.Parameters.Add(new SqlParameter("@IsRearming", SqlDbType.Bit) { Value = isRearming });
cmd.Parameters.Add(new SqlParameter("@HasBeenRecording", SqlDbType.Bit) { Value = hasBeenRecording });
cmd.Parameters.Add(new SqlParameter("@TimeLeftInArm", SqlDbType.Decimal) { Value = timeLeftInArm ?? 0 });
var errorNumber = new SqlParameter("@errorNumber", SqlDbType.Int)
{ Direction = ParameterDirection.Output };
cmd.Parameters.Add(errorNumber);
var errorMessage = new SqlParameter("@errorMessage", SqlDbType.NVarChar, 255)
{ Direction = ParameterDirection.Output };
cmd.Parameters.Add(errorMessage);
var newId = new SqlParameter("@new_id", SqlDbType.Int)
{ Direction = ParameterDirection.Output };
cmd.Parameters.Add(newId);
cmd.ExecuteNonQuery();
DbWrapper.ProcessReturn(errorNumber, errorMessage);
}
finally
{
cmd.Connection.Dispose();
}
}
}
}
}