シリアル接続が分かりやすいため、USBデバイスがUSB-HIDではなくVCPで通信することがわかりました。
デバイスがVCP
(Virtual Comポート)で動作している場合は、System.IO.Ports.SerialPort
タイプを使用するのと同じくらい簡単です。デバイスに関するいくつかの基本情報を知る必要があります。そのほとんどはWindows Management(Device Manager)から収集できます。そのように構築した後:
SerialPort port = new SerialPort(portNo, baudRate, parity, dataBits, stopBits);
あなたmay or may not次に、このような(RTS)を送信するために要求とデータ端末レディ(DTR)
port.RtsEnable = true;
port.DtrEnable = true;
など、いくつかの追加のフラグを設定する必要性、オープンポート。聞くために
port.Open();
は、あなたがport.DataReceived
にイベントハンドラをアタッチしてから送信するにはport.Read(byte[] buffer, int offset, int count)
port.DataReceived += (sender, e) =>
{
byte[] buffer = new byte[port.BytesToRead];
port.Read(buffer,0,port.BytesToRead);
// Do something with buffer
};
を使用することができ、あなたは私がPORTNO(ポート名を参照してくださいかport.Write(byte[] buffer, int offset, int count)
を使用することができます)? SerialPort.GetPortNamesは0のポートを返します。 – Karlth
私の場合、常に同じではない可能性があるので、私はポート番号を知らない。私は 'SearchObjectSearcher'を使ってデバイスを見つけます(名前を知っているので)、' searcher = new ManagementObjectSearcher( "SELECT * FROM WIN32_SERIALPORT") 'を実行し、searcher.Getの' ManagementBaseObject'コレクションを反復します) '。私は答えにそれを働かせます。 –
Windows用のMbedシリアルポートドライバ(http://mbed.org/handbook/Windows-serial-configuration)をインストールする必要があるようです。私はそれを実行し、コンピュータはハングして数分吹き、最終的にデバイスマネージャーに「mbedシリアルポート(COM3)」のラインを作りました! :)私はそれを試してみましょう。 – Karlth