.NET 4.x Не отправляются данные в HID устройство - C#

Узнай цену своей работы

Формулировка задачи:

Добрый день. Пару дней пытаюсь пообщаться с HID устройством. Но пока получилось только принять данные и то с библиотекой, в которой нет событий по приему... Сейчас пробую по этой статье сделать http://microsin.net/programming/PC/h...et-csharp.html . Получился следующий код:
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. Т.е. ничего не записалось. Без каких либо пояснений... Подскажите что не так делаю? Из делфи общался с этим же устройством, отправляя ему массив из 2 байт минимум. максимум - 8. И работало, а тут понять не могу, что не так делаю... Подскажите пожалуйста, как общаться с устройством
Вот полный код, который принимает данные, но с отправкой никак не получается. Постоянно возвращает 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();

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 4.375 из 5
Похожие ответы