Files
2026-04-17 14:55:32 -04:00

112 lines
5.8 KiB
C#

using DTS.Common.Utilities.Logging;
using System;
using System.Windows.Forms;
namespace DTS.Serialization.SliceRaw
{
public partial class ModifyChannel : Form
{
private File.PersistentChannel _channel;
public File.PersistentChannel ChannelToModify
{
set { _channel = value; PopulateFromTest(); }
}
private void PopulateFromTest()
{
tbDataZeroLevel.Text = _channel.DataZeroLevelCounts.ToString();
tbEU.Text = new string(_channel.EngineeringUnit);
tbISO.Text = new string(_channel.IsoCode);
tbMagicKey.Text = _channel.MagicKey.ToString();
tbNumberOfBitsPerSample.Text = _channel.NumberOfBitsPerSample.ToString();
tbNumberOfSamples.Text = _channel.NumberOfSamples.ToString();
tbNumberOfTriggers.Text = _channel.NumberOfTriggers.ToString();
tbOffset.Text = _channel.OffsetOfSampleDataStart.ToString();
tbPostTestCalLevel.Text = _channel.PostTestDiagnosticsLevelCounts.ToString();
tbPreTestCalLevel.Text = _channel.PreTestDiagnosticsLevelCounts.ToString();
tbPreTestNoise.Text = _channel.PreTestNoisePercentageOfFullScale.ToString();
tbPreTestZeroADC.Text = _channel.PreTestZeroLevelCounts.ToString();
tbPreTestZeroMv.Text = _channel.RemovedADC.ToString();
tbSampleRate.Text = _channel.SampleRate.ToString();
tbScaleFactorMV.Text = _channel.ScaleFactorMv.ToString();
tbTriggerSampleNumber.Text = _channel.TriggerSampleNumbers.Length > 0 ? _channel.TriggerSampleNumbers[0].ToString() : "0";
tbScaleFactorEU.Text = _channel.MvPerEu.ToString();
lblFilename.Text = _channel.Filename;
tbVersionNumber.Text = _channel.HeaderVersionNumber.ToString();
tbZeroMVInADC.Text = _channel.ZeroMvInADC.ToString();
tbWindowAverageADC.Text = _channel.WindowAverageADC.ToString();
tbTriggerAdjustmentSamples.Text = _channel.TriggerAdjustmentSamples.ToString();
tbOriginalOffset.Text = _channel.OriginalOffsetADC.ToString();
tbExcitation.Text = _channel.Excitation.ToString();
}
public ModifyChannel()
{
InitializeComponent();
}
private void c1Button2_Click(object sender, EventArgs e)
{
DialogResult = DialogResult.Cancel;
Close();
}
private void btnWrite_Click(object sender, EventArgs e)
{
_channel.DataZeroLevelCounts = Convert.ToInt32(tbDataZeroLevel.Text);
_channel.EngineeringUnit = tbEU.Text.ToCharArray();
_channel.IsoCode = tbISO.Text.ToCharArray();
_channel.MagicKey = Convert.ToUInt32(tbMagicKey.Text);
_channel.NumberOfBitsPerSample = Convert.ToUInt32(tbNumberOfBitsPerSample.Text);
_channel.NumberOfSamples = Convert.ToUInt64(tbNumberOfSamples.Text);
//_channel.NumberOfTriggers = Convert.ToUInt16(tbNumberOfTriggers.Text);
_channel.OffsetOfSampleDataStart = Convert.ToUInt64(tbOffset.Text);
_channel.PostTestDiagnosticsLevelCounts = Convert.ToInt32(tbPostTestCalLevel.Text);
_channel.PreTestDiagnosticsLevelCounts = Convert.ToInt32(tbPreTestCalLevel.Text);
_channel.PreTestNoisePercentageOfFullScale = Convert.ToDouble(tbPreTestNoise.Text);
_channel.RemovedADC = Convert.ToInt32(tbPreTestZeroMv.Text);
_channel.PreTestZeroLevelCounts = Convert.ToInt32(tbPreTestZeroADC.Text);
_channel.SampleRate = Convert.ToDouble(tbSampleRate.Text);
_channel.ScaleFactorMv = Convert.ToDouble(tbScaleFactorMV.Text);
_channel.WindowAverageADC = Convert.ToInt32(tbWindowAverageADC.Text);
_channel.TriggerSampleNumbers = new ulong[] { Convert.ToUInt64(tbTriggerSampleNumber.Text) };
_channel.ZeroMvInADC = Convert.ToInt32(tbZeroMVInADC.Text);
_channel.TriggerAdjustmentSamples = Convert.ToInt32(tbTriggerAdjustmentSamples.Text);
_channel.OriginalOffsetADC = Convert.ToInt32(tbOriginalOffset.Text);
_channel.Excitation = Convert.ToDouble(tbExcitation.Text);
_channel.MvPerEu = Convert.ToDouble(tbScaleFactorEU.Text);
lblFilename.Text = _channel.Filename;
_channel.HeaderVersionNumber = Convert.ToUInt32(tbVersionNumber.Text);
_channel.StampCrc();
DialogResult = DialogResult.OK;
Close();
}
private void btnBrowse_Click(object sender, EventArgs e)
{
using (var ofd = new OpenFileDialog())
{
ofd.RestoreDirectory = true;
ofd.InitialDirectory = System.IO.Path.Combine(Environment.CurrentDirectory, "DATA");
ofd.Filter = "SLICE Binary Channel (*.chn) | *.chn";
ofd.FilterIndex = 0;
var dr = ofd.ShowDialog();
if (dr == DialogResult.OK)
{
try
{
var fi = new System.IO.FileInfo(ofd.FileName);
var newFile = System.IO.Path.Combine(fi.Directory.FullName, fi.Name);
newFile += ".BAK";
if (System.IO.File.Exists(newFile)) { System.IO.File.Delete(newFile); }
System.IO.File.Copy(fi.FullName, newFile);
ChannelToModify = new File.PersistentChannel(fi.FullName, null, false);
}
catch (Exception ex)
{
APILogger.Log(ex.Message);
}
}
}
}
}
}