using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using DirectUSB; namespace Fron { public partial class SelectVariable : Form { #region Declarations private TIDevice _device; private List _visibleTypes; private List _variables; #endregion #region Constructors / Teardown public SelectVariable(TIDevice device) { InitializeComponent(); _device = device; } public SelectVariable(TIDevice device, List visibleTypes) { InitializeComponent(); _device = device; _visibleTypes = visibleTypes; } #endregion #region Public Properties public VariableInformation SelectedVariable { get { VariableInformation ret = null; if (dgvVariables.SelectedRows.Count > 0) { ret = dgvVariables.SelectedRows[0].DataBoundItem as VariableInformation; } return ret; } } #endregion #region Event Handlers private void SelectVariable_Load(object sender, EventArgs e) { btnRefresh.PerformClick(); } private void btnSelect_Click(object sender, EventArgs e) { this.DialogResult = DialogResult.OK; this.Close(); } private void btnCancel_Click(object sender, EventArgs e) { this.DialogResult = DialogResult.Cancel; this.Close(); } #endregion private void btnRefresh_Click(object sender, EventArgs e) { bool wasEnabled = this.Enabled; this.Enabled = false; if (_device != null) { _device.Connect(); int size = _device.SendNegotiateBufferSize(0x400); _device.SendPingSetMode(DirectUSB.VirtualPackets.PingSetModePacket.CalculatorMode.Normal, 0x07D0); var attributes = new List(); attributes.Add(DirectUSB.Attributes.Attribute.AttributeType.VariableSize); attributes.Add(DirectUSB.Attributes.Attribute.AttributeType.VariableType); attributes.Add(DirectUSB.Attributes.Attribute.AttributeType.ArchivedStatus); _variables = new List(); foreach (var v in _device.SendDirectoryListing(attributes)) { if (_visibleTypes == null || _visibleTypes.Count == 0 || _visibleTypes.Contains(v.VariableType.Value)) _variables.Add(v); } dgvVariables.AutoGenerateColumns = false; dgvVariables.DataSource = _variables; } this.Enabled = wasEnabled; } } }