這看起來很有前途。
從FDTI網站上可以下載應用程序「重新分配COMNo實用程序」。此應用程序在所有Windows平臺上顯示哪些FTDI設備可用。它有助於檢查哪些FDTI設備可用。
當我嘗試在自己的應用程序中使用您的代碼時,我發現我在啓動運行時遇到了一些問題。如果可能的話,擴展你的代碼,這樣任何人都可以用它作爲示例項目,而不用費力去先編譯它。
但仍有很大的貢獻。 謝謝。
下面的示例代碼,爲我工作。
using FTD2XX_NET;
private List<FDTIPort> FindFdtiUsbDevices()
{
///////////////////////
// Requires
// FTD2XX_NET.dll
///////////////////////
List<FDTIPort> ports = new List<FDTIPort>();
FTDI _ftdi = new FTDI();
UInt32 count = 0;
FTDI.FT_STATUS status = _ftdi.GetNumberOfDevices(ref count);
if (status != FTDI.FT_STATUS.FT_OK)
{
Console.WriteLine("log.Warn: Unable to access FTDI");
return ports;
}
FTDI.FT_DEVICE_INFO_NODE[] list = new FTDI.FT_DEVICE_INFO_NODE[count];
status = _ftdi.GetDeviceList(list);
if (status != FTDI.FT_STATUS.FT_OK)
{
Console.WriteLine("log.Warn: Unable to access FTDI");
return ports;
}
foreach (FTDI.FT_DEVICE_INFO_NODE node in list)
{
if ((status = _ftdi.OpenByLocation(node.LocId)) == FTDI.FT_STATUS.FT_OK)
{
try
{
string comport;
_ftdi.GetCOMPort(out comport);
if (comport != null && comport.Length > 0)
{
ports.Add(new FDTIPort(comport, node.Description.ToString(), node.SerialNumber.ToString()));
}
}
finally
{
_ftdi.Close();
}
}
}
_ftdi.Dispose();
return ports;
}
public class FDTIPort
{
private string _nodeComportName = "";
private string _nodeDescription = "";
private string _nodeSerialNumber = "";
// Constructor
public FDTIPort()
{
_nodeComportName = "";
_nodeDescription = "";
_nodeSerialNumber = "";
}
// Constructor
public FDTIPort (string nodeComportName, string nodeDescription, string nodeSerialNumber)
{
_nodeComportName = nodeComportName;
_nodeDescription = nodeDescription;
_nodeSerialNumber = nodeSerialNumber;
}
public string nodeComportName {
get { return this._nodeComportName; }
}
public string nodeDescription
{
get { return this._nodeDescription; }
}
public string nodeSerialNumber
{
get { return this._nodeSerialNumber; }
}
}
如果有人有問題,那是因爲它的FTDI不是FDTI。 – RW4