public DetailsForm(HidDevice dev) { InitializeComponent(); if (dev == null || dev.IsInvalid) { Close(); return; } lblProdName.Text += " " + dev.Product; lblVendName.Text += " " + dev.Manufacturer; lblSerialNum.Text += " " + dev.SerialNumber; Hid.HiddAttributes att = dev.Attributes; lblVid.Text += " " + att.VendorId.ToString("X4"); lblPid.Text += " " + att.ProductId.ToString("X4"); lblRev.Text += " " + att.VersionNumber.ToString("X4"); Hid.HidpCaps caps = dev.Capabilities; lblInputSize.Text += " " + caps.InputReportByteLength + " bytes"; lblOutputSize.Text += " " + caps.OutputReportByteLength + " bytes"; lblFeatureSize.Text += " " + caps.FeatureReportByteLength + " bytes"; listBoxValueCaps.DisplayMember = "Text"; foreach (var inCap in dev.InputValueCaps) { AddValueCap(inCap, "Input Report"); } foreach (var outCap in dev.OutputValueCaps) { AddValueCap(outCap, "Output Report"); } foreach (var featCap in dev.FeatureValueCaps) { AddValueCap(featCap, "Feature Report"); } for (uint i = 1; i < 255; i++) { string str = dev.GetIndexedString(i); if (!string.IsNullOrEmpty(str)) { listBoxStrings.Items.Add(i.ToString() + ": " + str); } else { break; //HACK Logitech G105 keyboard crashes unless this is here } } }
private void UsbAttach(string dev) { ListViewItem item = new ListViewItem(); item.Tag = dev; HidDevice hdev = new HidDevice(dev); if (hdev.IsInvalid) { AddDataListBoxItem("nerr Invalid device attached"); return; } Hid.HiddAttributes att = hdev.Attributes; item.Text = hdev.Product; item.SubItems.Add(hdev.Manufacturer); item.SubItems.Add(hdev.SerialNumber); item.SubItems.Add(att.VendorId.ToString("X4")); item.SubItems.Add(att.ProductId.ToString("X4")); devicesListView.Items.Add(item); hdev.Dispose(); AddDataListBoxItem("natt Device attached: " + item.Text + " (" + dev + ")"); if (!string.IsNullOrEmpty(lastSelectedDevice)) { if (lastSelectedDevice.Equals((string)dev, StringComparison.InvariantCultureIgnoreCase)) { item.Selected = true; } } }