Mam program, który monitoruje stan przycisku.
Problem jest taki, że wszystko się skompiluje ale z uruchomieniem to już nie jest dobrze, wciąż wyskakuje mi:
Odwołanie do obiektu nie zostało ustawione na wystąpienie obiektu.
w linijce :
HidLibrary.HidReport wej = new HidLibrary.HidReport(hidusb.Capabilities.InputReportByteLength);
Mój kod to:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading;
using System.Windows.Forms;
using HidLibrary;
namespace stm32_usb
{
public partial class Form1 : Form
{
private static HidDevice hidusb;
byte[] button = new byte[1];
public Form1()
{
InitializeComponent();
Thread odczyt = new Thread(odczyt_danych);
odczyt.Start();
}
private void timer1_Tick(object sender, EventArgs e)
{
hidusb = HidDevices.Enumerate(VID, PID).FirstOrDefault();
if (hidusb != null)
{
hidusb.OpenDevice();
label1.Text = "Podłączony";
if (button[0] == 0x01)
panel1.BackColor = Color.Green;
else
panel1.BackColor = Color.Red;
}
else
{
label1.Text = "Nie połączony";
}
}
void odczyt_danych()
{
HidLibrary.HidReport wej = new HidLibrary.HidReport(hidusb.Capabilities.InputReportByteLength);
while (true)
{
if (hidusb != null)
{
wej = hidusb.ReadReport();
if (wej.ReportId == 0x02)
button[0] = wej.Data[0];
}
Thread.Sleep(50);
}
}
}
}