123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177 |
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading;
- using System.Drawing;
- using System.Windows.Forms;
- using System.Threading.Tasks;
- using Uestc.Auto6.Dso.Hardware.Calibration.Data.Base;
- namespace Uestc.Auto6.Dso.Hardware.Calibration.Tool
- {
- public partial class TabPageCaliData_AcqSync : UserControl,IMainFormTabPage
- {
- public TabPageCaliData_AcqSync()
- {
- InitializeComponent();
- Init();
- }
- public CaliDataType CaliDataType { get => CaliDataType.TiAdc_SyncSampleClock; }
- private IInstrumentSession currInstrument = null;
- private void Init()
- {
- dataGridViewCaliData_AcqSync.RowCount = CaliConstants.Fixed_PerChannelMergeAdcMaxCount;
- for (int adcIndex = 0; adcIndex < CaliConstants.Fixed_PerChannelMergeAdcMaxCount; adcIndex++)
- {
- dataGridViewCaliData_AcqSync.Rows[adcIndex].Cells[0].ReadOnly = true;
- dataGridViewCaliData_AcqSync.Rows[adcIndex].Cells[0].Value = $"Adc{adcIndex + 1}";
- }
- comboBoxCaliDataChannelSelectedChannel.SelectedIndex = 0;
- dataGridViewCaliData_AcqSync.Columns[0].Frozen = true;
- dataGridViewCaliData_AcqSync.Columns[0].DefaultCellStyle.BackColor = Color.DarkGray;
- //目前暂时没有使用
- dataGridViewCaliData_AcqSync.Columns[2].Visible = false;
- dataGridViewCaliData_AcqSync.Columns[3].Visible = false;
- dataGridViewCaliData_AcqSync.Columns[4].Visible = false;
- dataGridViewCaliData_AcqSync.Columns[5].Visible = false;
- RefreshData();
- }
- public void SetInstrumentInteract(IInstrumentSession instrumentInteract)
- {
- currInstrument = instrumentInteract;
- }
- enum AcqSyncColumnIndex : int
- {
- Start = 1,
- SampleClock = 1,
- SyncReset = 2,
- RM = 3,
- Serdes = 4,
- WriteEnable = 5,
- End = 5
- }
- public void RefreshData()
- {
- int currChannelID = comboBoxCaliDataChannelSelectedChannel.SelectedIndex;
- for (int adcIndex = 0; adcIndex < CaliConstants.Fixed_PerChannelMergeAdcMaxCount; adcIndex++)
- {
- dataGridViewCaliData_AcqSync.Rows[adcIndex].Cells[(int)AcqSyncColumnIndex.SampleClock].Value = TiAdc_SyncSampleClock.Default[currChannelID,adcIndex].SampleClockDelay.ToString();
- dataGridViewCaliData_AcqSync.Rows[adcIndex].Cells[(int)AcqSyncColumnIndex.SyncReset].Value = TiAdc_SyncSampleClock.Default[currChannelID, adcIndex].SyncResetDelay.ToString();
- dataGridViewCaliData_AcqSync.Rows[adcIndex].Cells[(int)AcqSyncColumnIndex.RM].Value = TiAdc_SyncSampleClock.Default[currChannelID, adcIndex].RMDelay.ToString();
- dataGridViewCaliData_AcqSync.Rows[adcIndex].Cells[(int)AcqSyncColumnIndex.Serdes].Value = TiAdc_SyncSampleClock.Default[currChannelID, adcIndex].SerdesDelay.ToString();
- dataGridViewCaliData_AcqSync.Rows[adcIndex].Cells[(int)AcqSyncColumnIndex.WriteEnable].Value = TiAdc_SyncSampleClock.Default[currChannelID, adcIndex].WriteEnableDelay.ToString();
- }
- }
- private void CaliData_AcqSync_SendGridData(int rowIndex, int columnIndex, bool bNeedSend)
- {
- DataGridViewCell currCell = dataGridViewCaliData_AcqSync.Rows[rowIndex].Cells[columnIndex];
- UInt32 data = 0;
- UInt32.TryParse(currCell.Value.ToString(), out data);
- AcqSyncColumnIndex enumColumn = (AcqSyncColumnIndex)columnIndex;
- //AcqSyncItem 是结构,不是引用类型的,之后需要拷贝
- int currChannelID = comboBoxCaliDataChannelSelectedChannel.SelectedIndex;
- AcqSyncItem currAcqSyncItem = TiAdc_SyncSampleClock.Default[currChannelID,rowIndex];
- UInt32 oldData = enumColumn switch
- {
- AcqSyncColumnIndex.SampleClock => currAcqSyncItem.SampleClockDelay,
- AcqSyncColumnIndex.SyncReset => currAcqSyncItem.SyncResetDelay,
- AcqSyncColumnIndex.RM => currAcqSyncItem.RMDelay,
- AcqSyncColumnIndex.Serdes => currAcqSyncItem.SerdesDelay,
- AcqSyncColumnIndex.WriteEnable => currAcqSyncItem.WriteEnableDelay,
- _ => data
- };
- if (oldData == data) //判断新旧值,避免连续发送
- return;
- switch (enumColumn)
- {
- case AcqSyncColumnIndex.SampleClock: currAcqSyncItem.SampleClockDelay = data; currCell.Value = currAcqSyncItem.SampleClockDelay.ToString(); break;
- case AcqSyncColumnIndex.SyncReset: currAcqSyncItem.SyncResetDelay = data; currCell.Value = currAcqSyncItem.SyncResetDelay.ToString(); break;
- case AcqSyncColumnIndex.RM: currAcqSyncItem.RMDelay = data; currCell.Value = currAcqSyncItem.RMDelay.ToString(); break;
- case AcqSyncColumnIndex.Serdes: currAcqSyncItem.SerdesDelay = data; currCell.Value = currAcqSyncItem.SerdesDelay.ToString(); break;
- case AcqSyncColumnIndex.WriteEnable: currAcqSyncItem.WriteEnableDelay = data; currCell.Value = currAcqSyncItem.WriteEnableDelay.ToString(); break;
- };
- TiAdc_SyncSampleClock.Default[currChannelID,rowIndex] = currAcqSyncItem;
- if (bNeedSend && currInstrument != null)
- InstrumentInteract.CaliData_Send(currInstrument, CaliDataType.TiAdc_SyncSampleClock);
- }
- private void buttonCaliData_AcqSyncLoadFromFile_Click(object sender, EventArgs e)
- {
- if (currInstrument == null)
- {
- MessageBox.Show("请先连接仪器!");
- return;
- }
- bool bResult = InstrumentInteract.CaliData_LoadFromFile(currInstrument, CaliDataType.TiAdc_SyncSampleClock);
- RefreshData();
- MessageBox.Show(bResult ? "OK!" : "错误!");
- }
- private void buttonCaliData_AcqSyncSaveToFile_Click(object sender, EventArgs e)
- {
- if (currInstrument == null)
- {
- MessageBox.Show("请先连接仪器!");
- return;
- }
- bool bResult = InstrumentInteract.CaliData_SaveToFile(this.currInstrument, CaliDataType.TiAdc_SyncSampleClock);
- RefreshData();
- MessageBox.Show(bResult ? "OK!" : "错误!");
- }
- private void onCaliData_AcqSync_NeedRefreshGrid(object sender, DataGridViewCellEventArgs e)
- {
- CaliData_AcqSync_SendGridData(e.RowIndex, e.ColumnIndex, checkBoxCaliData_AcqSync_AutoSend.Checked);
- }
- private void buttonCaliData_AcqSync_Send_Click(object sender, EventArgs e)
- {
- if (currInstrument == null)
- {
- MessageBox.Show("请先连接仪器!");
- return;
- }
- for (int rowIndex = 0; rowIndex < CaliConstants.Fixed_PerChannelMergeAdcMaxCount; rowIndex++)
- {
- for (int columnIndex = (int)AcqSyncColumnIndex.Start; columnIndex <= (int)AcqSyncColumnIndex.End; columnIndex++)
- CaliData_AcqSync_SendGridData(rowIndex, columnIndex, false);
- }
- bool bResult = InstrumentInteract.CaliData_Send(this.currInstrument, CaliDataType.TiAdc_SyncSampleClock);
- MessageBox.Show(bResult ? "OK!" : "错误!");
- }
- private void buttonCaliData_LoadDefualtValue_AcqSync_Click(object sender, EventArgs e)
- {
- if (MessageBox.Show("装载缺省值将覆盖现有数据,\r\n您确认要执行此操作吗?", "警告", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) != DialogResult.Yes)
- return;
- TiAdc_SyncSampleClock.Default.LoadDefaultValue();
- RefreshData();
- if (currInstrument!=null)
- InstrumentInteract.CaliData_Send(this.currInstrument, CaliDataType.TiAdc_SyncSampleClock);
- }
- private void comboBoxCaliDataChannelSelectedChannel_SelectedIndexChanged(object sender, EventArgs e)
- {
- RefreshData();
- }
- private void buttonRead5200AdcWindow_Click(object sender, EventArgs e)
- {
- if (currInstrument == null)
- {
- MessageBox.Show("请先连接仪器!");
- return;
- }
- string scpiCmd = InstrumentInteract.GetCmdStr(ScpiCmd.Factory_SpecailData);
- scpiCmd += " ? " + "ADC5200SyncWindowRegValue";
- currInstrument.WriteString(scpiCmd);
- Thread.Sleep(1000);
- richTextBoxAdc5200SyncWindows.Text= currInstrument.ReadString();
- }
- }
- }
|