Начало работы с Thorlabs APT

Я надеюсь, что у кого-то еще есть опыт программирования сервоконтроллера APT — DC.
Мой клиент хочет индивидуальное решение, поэтому использование элемента управления ActiveX нецелесообразно.

Я думаю, что когда я смогу понять, как отправить основное сообщение, я смогу достаточно хорошо следовать API, но у меня возникают трудности с началом работы … и в документации, похоже, не ясно указано, как на самом деле отправлять сообщения на контроллер.

IE, я должен использовать интерфейс FTDI с командами FT_Write / FT_Read для управления устройством?

Я запустил следующий код, который проходит через начальную настройку, которая заканчивается в последней строке, где я пытаюсь мигать светодиод.

//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-битном ноутбуке.

2

Решение

Исправлено использование FT_OpenEx вместо FT_W32_CreateFile.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]