我正在使用FT245R USB转并口FIFO接口设备。该芯片使用FTDI D2XX库。我使用powershell和DllImport来加载和访问库函数。我在使用FT_ListDevices函数时遇到问题。设备的参考和示例可以在下面的链接中找到。参见第11,12页和13的一部分
http://www.ftdichip.com/Support/Documents/ProgramGuides/D2XX_Programmer's_Guide(FT_000071).pdf
一位同事和我能够得到第二个例子,但我们没有成功获得第三个。以下是有效的代码。第三个示例类似于下面的示例,但它使用数组数组而不是Byte数组,如下面的工作代码所示。
from django.views.edit import CreateView
from appname.forms import FooForm
class FooCreateView(CreateView):
model = Foo
form_class = FooForm
让示例3工作的最佳尝试如下。
#2. Get serial number of first device
$FT_LIST_BY_INDEX = '0x40000000'
$FT_OPEN_BY_SERIAL_NUMBER = 1
$numDevs = 0
$SerialNumber = New-Object byte[] 64
$run=@'
[DllImport("FTD2XX.dll")] static public extern UInt32 FT_ListDevices(System.IntPtr pvArg1, byte[] pvArg2, System.UInt32 dwFlags);
'@
$typef = Add-Type -MemberDefinition $run -Name "ListDevices" -PassThru
$typef::FT_ListDevices($numDevs, $SerialNumber, $FT_LIST_BY_INDEX -bor $FT_OPEN_BY_SERIAL_NUMBER)
[System.Text.Encoding]::ASCII.GetString($SerialNumber)
所以这里的目标是在DLLimport语句中将Array更改为Byte [] [],但是 这将导致错误。 。 。
错误:“嵌套数组没有编组支持”
我做了一些研究,并尝试使用自定义编组,但这导致了另一个错误。
错误:“无法找到类型或命名空间名称'ICuztomMarshaler'”
我需要能够将Jagged / Nested数组发送到库中才能得到这个 工作。
请提前帮助并表示感谢。 J.韦德
答案 0 :(得分:0)
您使用的是64或x86版本的PowerShell来运行代码吗?我之前遇到过类似的问题,因为在运行“错误”位版本的PowerShell时,驱动程序无法找到设备。