gpt4 book ai didi

c++ - 开始使用 Thorlabs APT

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:47:24 25 4
gpt4 key购买 nike

我希望其他人有编写 APT - DC 伺服 Controller 的经验。我的客户想要自定义解决方案,因此使用 ActiveX 控件不可行。

我想一旦我弄清楚如何发送基本消息,我就能够很好地遵循 API,但是我在开始时遇到了困难......而且文档似乎没有清楚地说明如何实际向 Controller 发送消息。

IE,我是否应该使用 FTDI 接口(interface),通过 FT_Write/FT_Read 命令来操作设备?

我运行了以下贯穿初始设置的代码,但在我尝试使 LED 闪烁的最后一行失败了。

//the following is per the user manual for thor device.    
ftHandle = FT_W32_CreateFile(SerialNumber.c_str(),
GENERIC_READ|GENERIC_WRITE,
0,
0,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL | FILE_FLAG_OVERLAPPED | FT_OPEN_BY_SERIAL_NUMBER,
0); // Open device by serial number
assert (ftHandle != INVALID_HANDLE_VALUE);
// Set baud rate to 115200.
const int uBaudRate=115200;
auto ftStatus = FT_SetBaudRate(ftHandle, (ULONG)uBaudRate);
assert(ftStatus==FT_OK);

// 8 data bits, 1 stop bit, no parity
ftStatus = FT_SetDataCharacteristics(ftHandle, FT_BITS_8, FT_STOP_BITS_1, FT_PARITY_NONE);
assert(ftStatus==FT_OK);
// Pre purge dwell 50ms.
Sleep(50);
// Purge the device.
ftStatus = FT_Purge(ftHandle, FT_PURGE_RX | FT_PURGE_TX);
assert(ftStatus==FT_OK);
// Post purge dwell 50ms.
Sleep(50);
ftStatus = FT_ResetDevice(ftHandle);
assert(ftStatus==FT_OK);
// Set flow control to RTS/CTS.
ftStatus = FT_SetFlowControl(ftHandle, FT_FLOW_RTS_CTS, 0, 0);
// Set RTS.
ftStatus = FT_SetRts(ftHandle);
assert(ftStatus==FT_OK);

//lets flash the led, MGMSG_MOD_IDENTIFY
BYTE buf[6] ={0x23,0x2,0,0,0x21,0x1};
DWORD written=0;
/*******************/
ftStatus = FT_Write(ftHandle, buf, (DWORD)6, &written);//4= FT_IO_ERROR
assert(ftStatus==FT_OK); //this is where I'm failing
/*******************/

作为引用,我正在编写 32 位应用程序 - 在 64 位笔记本电脑上工作。

最佳答案

通过使用 FT_OpenEx 而不是 FT_W32_CreateFile 修复。

关于c++ - 开始使用 Thorlabs APT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20218961/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com