1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134
|
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace TEST_HID_USB
{
public partial class Form1 : Form
{
USBHIDDRIVER.USBInterface usb = new USBHIDDRIVER.USBInterface("vid_1234", "pid_4444");
//USBHIDDRIVER.USBInterface usb = new USBHIDDRIVER.USBInterface("vid_04d8", "pid_003f");
bool CONNECTED = false;
public Form1()
{
InitializeComponent();
usb.enableUsbBufferEvent(new System.EventHandler(myEventCatcher));
//usb.startRead();
}
public void myEventCatcher(object sender, System.EventArgs e)
{
//Log_message("Event ");
if (USBHIDDRIVER.USBInterface.usbBuffer.Count > 0)
{
byte[] currentRecord = null;
int counter = 0;
while ((byte[])USBHIDDRIVER.USBInterface.usbBuffer[counter] == null)
{
//Remove this report from list
lock (USBHIDDRIVER.USBInterface.usbBuffer.SyncRoot)
{
USBHIDDRIVER.USBInterface.usbBuffer.RemoveAt(0);
}
}
//since the remove statement at the end of the loop take the first element
currentRecord = (byte[])USBHIDDRIVER.USBInterface.usbBuffer[0];
lock (USBHIDDRIVER.USBInterface.usbBuffer.SyncRoot)
{
USBHIDDRIVER.USBInterface.usbBuffer.RemoveAt(0);
}
Log_message("DATA1: " + Convert_byte_array_to_string(currentRecord));
usb.stopRead();
}
}
private void button1_Click(object sender, EventArgs e)
{
if (usb.Connect()) {
textBox1.Text = "Connecté!";
CONNECTED = true;
}
}
private void button2_Click(object sender, EventArgs e)
{
//48656C6C6F = Hello
byte[] Buffer = new byte[64];
Buffer[0] = 0x48;
Buffer[1] = 0x65;
Buffer[2] = 0x6C;
Buffer[3] = 0x6C;
Buffer[4] = 0x6F;
if (usb.write(Buffer))
{
//Log_message("Message \"Hello\" OK!");
}
//Si pas d'ACK requis pour ce message...
//usb.startRead();
}
private void button3_Click(object sender, EventArgs e)
{
//54455354
byte[] Buffer = new byte[64];
//Buffer[0] = 0x00;
//Buffer[1] = 0x00;
//Buffer[2] = 0x54;
//Buffer[3] = 0x45;
//Buffer[4] = 0x53;
//Buffer[5] = 0x54;
Buffer[0] = 0x54;
Buffer[1] = 0x45;
Buffer[2] = 0x53;
Buffer[3] = 0x54;
Buffer[4] = 0x00;
Buffer[5] = 0x54;
if (usb.write(Buffer)) {
//Log_message("Message \"TEST\" OK!");
}
//On attend d'office qq chose en retour
usb.startRead();
}
private void button4_Click(object sender, EventArgs e)
{
textBox2.Text = "";
}
public void Log_message(String MSG){
this.Invoke(new EventHandler(delegate
{
textBox2.Text += "> "+MSG;
}));
return;
}
private void Form1_FormClosed(object sender, FormClosedEventArgs e)
{
//usb.stopRead();
//usb.Disconnect();
}
}
} |
Partager