Read og Write til og fra HID Infrared device vil ikke virke?
Hej Eksperter!Jeg håber virkelig at der er nogen der har tålmodighed til at få det her til at virke til mig, og da det er lidt mere avanceret end jeg troede, er der lige kommet lidt flere point på (hvis nogle skulle være interesseret).
Jeg har i nogle dage nu bogstaveligt talt uafbrudt forsøgt at få det her til at virke, men hver gang det er ved at virke, kommer der en stopklods, og jeg er nød til at begynde stort set forfra.
Jeg har et USB Infrarødt stik som jeg vil connecte til via C#, og så læse data derfra, og sende data dertil. Mit USB stik ligger i øvrigt under HID enheder, hvis nogle skulle være i tvivl. :)
Har fundet ud af at hvis man skal connecte til mit device via:
Vendor ID og Product ID.
I mit tilfælde er det:
Vendor ID: 0x045e
Product ID: 0x006d
De 2 oplysninger har jeg fået adgang til via det her program, som jeg har lagt på min ftp:
http://www.shax.dk/HidTest.exe (hvis nogle skulle være interesseret i det)
Jeg troede først at jeg var nød til at lave en virtuel COM port på mit usb stik for at connecte, og da jeg søgte hjælp til lavede jeg dette spørgsmål:
http://www.eksperten.dk/spm/915617
og efter ca 50 indlæg blev vi enige om at jeg skulle oprette et nyt spørgsmål. Men i må meget gerne kigge hvad vi nåede frem til!
Jeg forsøger lige nu at få det til at virke med hjælp fra denne side:
http://labs.mikeobrien.net/Document.aspx?id=hidlibrary
Har indtil videre fået lavet et program der tillader mig at connecte til mit device, og åbne forbindelse.
Og både funktionen 'IsConnected' og 'IsOpen' siger 'TRUE'.
Men når jeg forsøger at bruge funktionen HidDevice.Read() så "hænger" mit program bare, og jeg er nød til at afslutte DEBUG.
'HidDevice' er mit usb stik.
Er der nogen der ved hvad jeg kan gøre? Eller nogen der kender en bedre side til at lærer at lave en forbindelse til en HID enhed?
I får lige den stump kode jeg har:
public HIDLibrary.HidDevice[] HidDeviceList;
public HidDevice HidDevice;
public HidDeviceData InData;
private void connect_Click(object sender, EventArgs e)
{
HidDeviceList = HidDevices.Enumerate(0x045e, 0x006d);
if (HidDeviceList.Length > 0)
{
// Grab the first device
HidDevice = HidDeviceList[0];
HidDevice.Open();
Thread.Sleep(2000);
// Check if connected...
status.Text = "Connected: " + HidDevice.IsConnected.ToString() + "\r\n";
status.Text += "Open: " + HidDevice.IsOpen.ToString() + "\r\n";
}
}
private void receive_Click(object sender, EventArgs e)
{
try
{
InData = HidDevice.Read();
}
catch (Exception e2)
{
MessageBox.Show(e2.ToString());
}
}
Som i kan se har jeg en knap til at connecte, og en til at modtage data.
Når jeg trykker på connect knappen, viser den som sagt tidligere, at der er forbindelse til min enhed.
Men når jeg trykker på modtag knappen, hænger programmet til jeg lukker det.
På forhånd MANGE gange tak for hjælpen!
- Christian Madsen