.NET 4.x Не отправляются данные в HID устройство - C#
Формулировка задачи:
Добрый день. Пару дней пытаюсь пообщаться с HID устройством. Но пока получилось только принять данные и то с библиотекой, в которой нет событий по приему...
Сейчас пробую по этой статье сделать http://microsin.net/programming/PC/h...et-csharp.html .
Получился следующий код:
При попытки записи байтового массива возвращается False. Т.е. ничего не записалось. Без каких либо пояснений... Подскажите что не так делаю?
Из делфи общался с этим же устройством, отправляя ему массив из 2 байт минимум. максимум - 8. И работало, а тут понять не могу, что не так делаю... Подскажите пожалуйста, как общаться с устройством
private void button1_Click(object sender, EventArgs e) { byte[] mass = new byte[2] { 07, 00 }; USBHIDDRIVER.USBInterface usb = new USBInterface("vid_0590","pid_0028"); this.richTextBox1.Lines = usb.getDeviceList(); if (usb.Connect()) { MessageBox.Show( usb.write(mass).ToString()); MessageBox.Show("OK"); } else { MessageBox.Show("NOT OK"); } }
Вот полный код, который принимает данные, но с отправкой никак не получается. Постоянно возвращает FALSE
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using USBHIDDRIVER; namespace WindowsFormsApplication13 { public partial class Form1 : Form { public delegate void print_data(byte[] test); public Form1() { InitializeComponent(); } public void Print_data(byte[] test) { richTextBox1.AppendText("\n"); richTextBox2.AppendText("\n"); for (int i = 0; i < 9; i++) { richTextBox1.AppendText(test[i].ToString("X2")); richTextBox1.AppendText(" "); richTextBox2.AppendText(Convert.ToString((char)test[i])); richTextBox2.AppendText(" "); } } private void data(object sender, EventArgs e) { USBHIDDRIVER.List.ListWithEvent test = (USBHIDDRIVER.List.ListWithEvent)sender; print_data Delegate = new print_data(Print_data); byte[] t = new byte[9]; t = (byte[])test[test.Count-1]; this.Invoke(Delegate,t); } private void button1_Click(object sender, EventArgs e) { byte[] mass = new byte[] { 00,07, 00,00,00,00,00,00,00 }; USBHIDDRIVER.USBInterface usb = new USBInterface("vid_0590","pid_0028"); usb.enableUsbBufferEvent(new System.EventHandler(data)); usb.startRead(); this.richTextBox1.Lines = usb.getDeviceList(); if (usb.Connect()) { //Delegate(10); MessageBox.Show( usb.write(mass).ToString()); //MessageBox.Show("OK"); } else { MessageBox.Show("NOT OK"); } } } }
Решение задачи: «.NET 4.x Не отправляются данные в HID устройство»
textual
Листинг программы
USBHIDDRIVER.USBInterface usb = new USBInterface("vid_"+vid_pid.Vid,"pid_"+vid_pid.Pid); usb.enableUsbBufferEvent(new System.EventHandler(data)); usb.startRead();
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д