.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();