123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191 |
- //using LibUsbDotNet;
- //using LibUsbDotNet.Main;
- using System;
- using System.Text;
- using System.Windows.Forms;
- namespace BaseLibComm
- {
- //public class LibUsbDotNetOper
- //{
- // //public static LibUsbDotNetOper usbOperIns = new LibUsbDotNetOper();
- // public static int vid = 0x0483; //厂商VID号
- // public static int pid = 0x9999; //厂商PID号
- // public static string epNumStr = "1";//Open,writeEndpointReader设定
- // public static bool AsHex = false;//接收数据类型为16进制
- // public string readData; //接收的数据
- // private UsbEndpointReader mEpReader;
- // public bool autoRead = true;//是否自动接收数据。
- // private UsbEndpointWriter mEpWriter;
- // public UsbDevice MyUsbDevice;
- // public static UsbDeviceFinder MyUsbFinder = new UsbDeviceFinder(vid, pid);
- // /// <summary>
- // /// 打开USB设备
- // /// </summary>
- // /// <returns></returns>
- // public bool OpenDevice()
- // {
- // CloseDevice();
- // MyUsbDevice = UsbDevice.OpenUsbDevice(MyUsbFinder);
- // if (MyUsbDevice == null)
- // {
- // MessageBox.Show("打开指定USB设备失败");
- // return false;
- // }
- // else
- // {
- // try
- // {
- // IUsbDevice wholeUsbDevice = MyUsbDevice as IUsbDevice;
- // if (!ReferenceEquals(wholeUsbDevice, null))
- // {
- // //这是一个“完整的”USB设备。在使用之前,
- // //必须选择所需的配置和接口。
- // //选择config #1
- // wholeUsbDevice.SetConfiguration(1);
- // // 接口地址重置 #0
- // wholeUsbDevice.ClaimInterface(0);
- // }
- // byte epNum = byte.Parse(epNumStr);
- // mEpReader = MyUsbDevice.OpenEndpointReader((ReadEndpointID)(epNum | 0x80));
- // mEpWriter = MyUsbDevice.OpenEndpointWriter((WriteEndpointID)epNum);
- // if (autoRead)
- // {
- // mEpReader.DataReceivedEnabled = true;//自动收数据
- // mEpReader.DataReceived += new EventHandler<EndpointDataEventArgs>(mEp_DataReceived);
- // }
- // mEpReader.Flush();
- // return true;
- // }
- // catch (Exception ex)
- // {
- // MessageBox.Show(ex.ToString());
- // if (MyUsbDevice.IsOpen) MyUsbDevice.Close();
- // MyUsbDevice = null;
- // return false;
- // }
- // }
- // }
- // /// <summary>
- // /// 自动接收数据
- // /// </summary>
- // /// <param name="sender"></param>
- // /// <param name="e"></param>
- // private void mEp_DataReceived(object sender, EndpointDataEventArgs e)
- // {
- // ShowBytes(e.Buffer, e.Count);
- // }
- // private void ShowBytes(byte[] readBuffer, int uiTransmitted)
- // {
- // if (AsHex)
- // {
- // // Convert the data to a hex string before displaying
- // readData = GetHexString(readBuffer, 0, uiTransmitted).ToString();
- // }
- // else
- // {
- // //readData= Encoding.UTF8.GetString(readBuffer, 0, uiTransmitted);
- // StringBuilder strRead = new StringBuilder();
- // for (int i = 0; i < uiTransmitted; i++)
- // {
- // strRead.Append(readBuffer[i]);
- // }
- // readData = strRead.ToString();
- // }
- // }
- // private StringBuilder GetHexString(byte[] data, int offset, int length)
- // {
- // StringBuilder sb = new StringBuilder(length * 3);
- // for (int i = offset; i < (offset + length); i++)
- // {
- // sb.Append(data[i].ToString("X2") + " ");
- // }
- // return sb;
- // }
- // /// <summary>
- // /// 关闭端口
- // /// </summary>
- // public void CloseDevice()
- // {
- // if (MyUsbDevice != null)
- // {
- // if (MyUsbDevice.IsOpen)
- // {
- // if (mEpReader != null)
- // {
- // mEpReader.DataReceivedEnabled = false;
- // mEpReader.DataReceived -= new EventHandler<EndpointDataEventArgs>(mEp_DataReceived); ;
- // mEpReader.Dispose();
- // mEpReader = null;
- // }
- // if (mEpWriter != null)
- // {
- // mEpWriter.Abort();
- // mEpWriter.Dispose();
- // mEpWriter = null;
- // }
- // //如果这是一个“完整的”usb设备(libus -win32, linux libusb)
- // //它将有一个IUsbDevice接口。如果没有(WinUSB),为null。
- // IUsbDevice wholeUsbDevice = MyUsbDevice as IUsbDevice;
- // if (!ReferenceEquals(wholeUsbDevice, null))
- // {
- // // Release interface #0.
- // wholeUsbDevice.ReleaseInterface(0);
- // }
- // MyUsbDevice.Close();
- // MyUsbDevice = null;
- // }
- // }
- // }
- // /// <summary>
- // /// 读取USB数据
- // /// </summary>
- // /// <returns></returns>
- // public bool ManualRead()
- // {
- // byte[] readBuffer = new byte[64];
- // int uiTransmitted;
- // ErrorCode eReturn;
- // if ((eReturn = mEpReader.Read(readBuffer, 1000, out uiTransmitted)) == ErrorCode.None)
- // {
- // ShowBytes(readBuffer, uiTransmitted);
- // return true;
- // }
- // else
- // {
- // readData = "NULL";
- // return false;
- // }
- // }
- // /// <summary>
- // /// 写入USB数据
- // /// </summary>
- // /// <param name="data"></param>
- // /// <returns></returns>
- // public bool WriteData(string data)
- // {
- // byte[] bytesToWrite = Encoding.UTF8.GetBytes(data);
- // int uiTransmitted;
- // if (mEpWriter.Write(bytesToWrite, 1000, out uiTransmitted) == ErrorCode.None)
- // {
- // return true;
- // }
- // else
- // {
- // MessageBox.Show("Write failed");
- // return false;
- // }
- // }
- //}
- }
|