Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Delphi Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 2 [3]      все
 Re: Подключение FTDI  [new]
Mizer
Member

Откуда: Питер
Сообщений: 560
defecator
Mizer
пропущено...


собственно говоря, это и устанавливаю.
вчера дома запустил каким то чудом,

на рабочей машине не запускается, этот же проект.

не удалось библиотеку перекрыжить.
как увидеть, что дрова встали нормально?
втыкаю устройство в USB порт, ничего нового не появляется.
устройство воткнуто - тестовая программа пишет "ок", вытыкаю устройство - тоже все хорошо, пишет.
вот функция:

 FT_STATUS ftStatus;
	DWORD numDevs;
	ftStatus = FT_ListDevices(&numDevs,NULL,FT_LIST_NUMBER_ONLY);
    if (ftStatus == FT_OK)
    {
    	Form2->Caption = "Всё окей" ;
    // FT_ListDevices OK, number of devices connected is in numDevs
    }
    else
    {
    	Form2->Caption = "Жопа";
    }


тебе всего этого не надо.
Ты устанавливаешь виртуальный последовательный порт,
после установки драйверов втыкаешь девайс, он находит дрова и ставится.
В Диспетчере устройств у тебя появится последовательный порт под каким-то именем,
например, COM2


еще разок напишу:
как увидеть, что дрова встали нормально?
втыкаю устройство в USB порт, ничего нового не появляется.
устройство воткнуто - тестовая программа пишет "ок", вытыкаю устройство - тоже все хорошо, пишет.
11 янв 17, 21:24    [20095757]     Ответить | Цитировать Сообщить модератору
 Re: Подключение FTDI  [new]
defecator
Member

Откуда: arm-pascal.ru
Сообщений: 31135
Mizer
defecator
пропущено...


тебе всего этого не надо.
Ты устанавливаешь виртуальный последовательный порт,
после установки драйверов втыкаешь девайс, он находит дрова и ставится.
В Диспетчере устройств у тебя появится последовательный порт под каким-то именем,
например, COM2


еще разок напишу:
как увидеть, что дрова встали нормально?
втыкаю устройство в USB порт, ничего нового не появляется.
устройство воткнуто - тестовая программа пишет "ок", вытыкаю устройство - тоже все хорошо, пишет.

отключаешь девайс
ставишь дрова
подключаешь девайс - винда ставит дрова.
подключаешь девайс.
если дрова правильные и девайс валиден, в диспетчере устройств появляется последовательный порт.
11 янв 17, 21:26    [20095765]     Ответить | Цитировать Сообщить модератору
 Re: Подключение FTDI  [new]
Mizer
Member

Откуда: Питер
Сообщений: 560
defecator,
вот, буду разбираться с этим моментом, т.к. дрова не встают нормально.
еще вычитал следующее в их руководстве.
автор
The FTD2XX.DLL and FTD2XX.LIB files from the latest release are for Microsoft Visual C++ projects only.

For Borland projects use FTD2XX.DLL from the latest release, but create a LIB file for use with C++ Builder. Borland supplies a utility with C++ Builder called IMPLIB which can be used to create a LIB file from a DLL.

IMPLIB can be run using the following command:

implib ftd2xx.lib ftd2xx.dll

Then FTD2XX.LIB can be linked with the application.

это вчера получилось на домашнем компьютере, но не получалось на рабочем.
11 янв 17, 21:43    [20095839]     Ответить | Цитировать Сообщить модератору
 Re: Подключение FTDI  [new]
defecator
Member

Откуда: arm-pascal.ru
Сообщений: 31135
Mizer
defecator,
вот, буду разбираться с этим моментом, т.к. дрова не встают нормально.
еще вычитал следующее в их руководстве.
автор
The FTD2XX.DLL and FTD2XX.LIB files from the latest release are for Microsoft Visual C++ projects only.

For Borland projects use FTD2XX.DLL from the latest release, but create a LIB file for use with C++ Builder. Borland supplies a utility with C++ Builder called IMPLIB which can be used to create a LIB file from a DLL.

IMPLIB can be run using the following command:

implib ftd2xx.lib ftd2xx.dll

Then FTD2XX.LIB can be linked with the application.

это вчера получилось на домашнем компьютере, но не получалось на рабочем.

ещё раз повторюсь, третий раз, кажись: тебе это не надо
11 янв 17, 21:44    [20095842]     Ответить | Цитировать Сообщить модератору
 Re: Подключение FTDI  [new]
wadman
Member

Откуда: Санкт-Петербург
Сообщений: 21446
Mizer
устройство воткнуто - тестовая программа пишет "ок", вытыкаю устройство - тоже все хорошо, пишет.

Если тестовая программа та, что выше, то она возвращает ОК на вызов функции, а не список/количество устройств.
Доку-то совсем не читаешь?
+
In its simplest form, it can be used to return the number of devices currently connected. If FT_LIST_NUMBER_ONLY bit is set in dwFlags, the parameter pvArg1 is interpreted as a pointer to a DWORD location to store the number of devices currently connected.

В numDevs твое количество девайсов. Там ноль?

Первым делом установи дрова нормально, чтоб диспетчер увидел девайс.
12 янв 17, 09:08    [20096755]     Ответить | Цитировать Сообщить модератору
 Re: Подключение FTDI  [new]
Mizer
Member

Откуда: Питер
Сообщений: 560
wadman
Mizer
устройство воткнуто - тестовая программа пишет "ок", вытыкаю устройство - тоже все хорошо, пишет.

Если тестовая программа та, что выше, то она возвращает ОК на вызов функции, а не список/количество устройств.
Доку-то совсем не читаешь?
+
In its simplest form, it can be used to return the number of devices currently connected. If FT_LIST_NUMBER_ONLY bit is set in dwFlags, the parameter pvArg1 is interpreted as a pointer to a DWORD location to store the number of devices currently connected.

В numDevs твое количество девайсов. Там ноль?

Первым делом установи дрова нормально, чтоб диспетчер увидел девайс.

вот, этим сейчас и занимаюсь
12 янв 17, 13:58    [20098385]     Ответить | Цитировать Сообщить модератору
 Re: Подключение FTDI  [new]
Mizer
Member

Откуда: Питер
Сообщений: 560
defecator
Mizer
defecator,
вот, буду разбираться с этим моментом, т.к. дрова не встают нормально.
еще вычитал следующее в их руководстве.
пропущено...

это вчера получилось на домашнем компьютере, но не получалось на рабочем.

ещё раз повторюсь, третий раз, кажись: тебе это не надо


хорошо. еще раз спрошу: с какой либой иметь дело?
12 янв 17, 13:59    [20098391]     Ответить | Цитировать Сообщить модератору
 Re: Подключение FTDI  [new]
defecator
Member

Откуда: arm-pascal.ru
Сообщений: 31135
Mizer
defecator
пропущено...

ещё раз повторюсь, третий раз, кажись: тебе это не надо


хорошо. еще раз спрошу: с какой либой иметь дело?


Я ведь уже писал: 20091230

Ты ещё и сообщение целиком прочитай
12 янв 17, 14:39    [20098579]     Ответить | Цитировать Сообщить модератору
 Re: Подключение FTDI  [new]
makhaon
Member

Откуда:
Сообщений: 1086
Mizer,

Зачем тебе либа, что ты с ней будешь делать? FTDI, насколько я помню, как порт всегда виделась.
12 янв 17, 16:45    [20099311]     Ответить | Цитировать Сообщить модератору
 Re: Подключение FTDI  [new]
Mizer
Member

Откуда: Питер
Сообщений: 560
как узнать номер порта, к которому подключено устройство?
13 янв 17, 21:29    [20104477]     Ответить | Цитировать Сообщить модератору
 Re: Подключение FTDI  [new]
wadman
Member

Откуда: Санкт-Петербург
Сообщений: 21446
Mizer
как узнать номер порта, к которому подключено устройство?

Важнее "как внимательно читать". 20090216
13 янв 17, 21:32    [20104482]     Ответить | Цитировать Сообщить модератору
 Re: Подключение FTDI  [new]
Mizer
Member

Откуда: Питер
Сообщений: 560
wadman
Mizer
как узнать номер порта, к которому подключено устройство?

Важнее "как внимательно читать". 20090216


это метод перебора, а как сделать не перебором?
13 янв 17, 21:37    [20104487]     Ответить | Цитировать Сообщить модератору
 Re: Подключение FTDI  [new]
wadman
Member

Откуда: Санкт-Петербург
Сообщений: 21446
Mizer
wadman
пропущено...

Важнее "как внимательно читать". 20090216


это метод перебора, а как сделать не перебором?

Никак. Тут нужен программист.
13 янв 17, 21:42    [20104494]     Ответить | Цитировать Сообщить модератору
 Re: Подключение FTDI  [new]
Mizer
Member

Откуда: Питер
Сообщений: 560
wadman
Mizer
пропущено...


это метод перебора, а как сделать не перебором?

Никак. Тут нужен программист.


тогда беда. поищу ответа в другом месте
13 янв 17, 21:46    [20104499]     Ответить | Цитировать Сообщить модератору
 Re: Подключение FTDI  [new]
Mizer
Member

Откуда: Питер
Сообщений: 560
такая штук получилась

+
 // В какой системе работаем?
	OSVERSIONINFO osvi;
	osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
	BOOL bGetVer = GetVersionEx(&osvi);

	// В NT используем API QueryDosDevice
	if (bGetVer && (osvi.dwPlatformId == VER_PLATFORM_WIN32_NT)) {
	    // Используем QueryDosDevice для просмотра всех устройств похожих на COMx.
	    // Это наилучшее решение, так как порты не требуется открывать
	    TCHAR szDevices[65535];
	    DWORD dwChars = QueryDosDevice(NULL, szDevices, 65535);
	    if (dwChars) {
		int i = 0;

		for (; ;) {
		    // Получаем текущее имя устройства
		    TCHAR* pszCurrentDevice = &szDevices[i];

		    // Если похоже на "COMX" выводим на экран
		    int nLen = _tcslen(pszCurrentDevice);
		    if (nLen > 3 && _tcsnicmp(pszCurrentDevice, _T("COM"),
			3) == 0) {
			ListBox1->Items->Add(pszCurrentDevice);

			printf(pszCurrentDevice);
			printf("\n");
		    }

		    // Переходим к следующему символу терминатору
		    while (szDevices[i] != _T('\0'))
			i++;

		    // Перескакиваем на следующую строку
		    i++;

		    // Список завершается двойным симмволом терминатором, так что если символ
		    // NULL, мы дошли до конца
		    if (szDevices[i] == _T('\0'))
			break;
		} // for ( ; ; )
	    } // if(dwChars)
	} // if(bGetVer && (osvi.dwPlatformId == VER_PLATFORM_WIN32_NT))
	else {
	    // В 95/98 открываем каждый порт для определения его существования

	    // Поддерживается до 255 COM портов, так что мы проходим пл всему списку
	    // Если мы не можем открыть порт, или происходит ошибка при открытии,
	    // получаем access denied или общую ошибку все эти случаи указывают на
	    // то, что под таким номером есть порт.
	    for (UINT i = 1; i < 256; i++) {
		// Формируем сырое имя устройства
		char sPort[10];
		sprintf(sPort, "\\\\.\\COM%d", i);

		// Пытаемся открыть каждый порт
		BOOL bSuccess = FALSE;
		HANDLE hPort = CreateFile(sPort, GENERIC_READ | GENERIC_WRITE,
		    0, 0, OPEN_EXISTING, 0, 0);
		if (hPort == INVALID_HANDLE_VALUE) {
		    DWORD dwError = GetLastError();

		    // Смотрим что получилось при открытии
		    if (dwError == ERROR_ACCESS_DENIED ||
			dwError == ERROR_GEN_FAILURE)
			bSuccess = TRUE;
		}
		else {
		    // Порт открыт успешно
		    bSuccess = TRUE;

		    // Не забываем закрывать каждый открытый порт,
		    // так как мы не собираемся с ним работать...
		    CloseHandle(hPort);
		} // if(hPort == INVALID_HANDLE_VALUE)

		// Выводим на экран название порта
		if (bSuccess) {

		    printf(sPort);
		    printf("\n");
		}
	    } // for (UINT i=1; i<256; i++)
	} // if(bGetVer && (osvi.dwPlatformId == VER_PLATFORM_WIN32_NT))
13 янв 17, 23:03    [20104638]     Ответить | Цитировать Сообщить модератору
 Re: Подключение FTDI  [new]
DesWind
Member

Откуда:
Сообщений: 7
Mizer,

 if GetFTDeviceSerialNo(fDevIndex)<>FT_OK then
    raise EFTDIPortError.Create(Format(strCantOpenPort,['']));
 if Open_USB_Device_By_Serial_Number(FT_Device_String) = FT_OK then
  begin
    Reset_USB_Device;
    FT_Current_DataBits:=FT_DATA_BITS_8;
    FT_Current_StopBits:=FT_STOP_BITS_1;
    FT_Current_Parity:=FT_PARITY_NONE;
    FT_Current_FlowControl:=FT_FLOW_NONE;

    Set_USB_Device_DataCharacteristics;
    Set_USB_Device_FlowControl;
    FT_Current_Baud:=fBitRate;
    Set_USB_Device_BaudRate;
  end
  else
    raise EFTDIPortError.Create(Format(strCantOpenPort,[FT_Device_String]));
14 янв 17, 01:55    [20104919]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 2 [3]      все
Все форумы / Delphi Ответить