Перейти к содержанию
    

Добрый день. Впрсо имею я.

 

Не получается под QT открыть устройство функцией USBDevice->Open(0). Если полезть в недра, то почему-то не формируется DevPath - он всегда равен "/", хотя должен быть большим и длинным с vid/pid и прочими штуками.

Код такой:

...
pUSBDevice = new CCyUSBDevice();
int deviceCount = pUSBDevice->DeviceCount(); // <- отрабатывает нормально
pUSBDevice->Open(0) // <- вот тут, если полезть внутрь Open, то DevPath почему-то оказывается пустой
...

 

Такое поведение и с компилятором Mingw и с VS2015.

 

Тот же самый код, но собранный в виде проекта VS, работает нормально.

 

Что я не докрутил или куда хотя бы копать для решения проблемы?

Гугл молчит по данному вопросу.

 

Спасибо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Причем тут QuickTime? Я говорю о QT Creator )))

Вы ощущаете разницу между QT и Qt?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я конечно не настаиваю, но как мне кажется, из контекста вопроса понятно о чем идет речь. И давайте не будем разводить оффтоп.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

 

Возможно в обработке строк дело. Попробуйте насильно выставить английскую локаль и юникод нужной версии.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я конечно не настаиваю, но как мне кажется, из контекста вопроса понятно о чем идет речь. И давайте не будем разводить оффтоп.
Вот зовут вас, скажем, Ваня. А кто-то вас зовёт Вася. Подумаешь, всего одна буква. Из контекста понятно, о ком идёт речь.

 

Впрочем, о чём это я. Некоторые тутотшние господа инженеры МГц и мГц путают. Тоже пустячок -- одна буква. Из контекста же понятно, о чём речь. Неряшливость в письме выдаёт неряшливость в мыслях.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вот зовут вас, скажем, Ваня. А кто-то вас зовёт Вася. Подумаешь, всего одна буква. Из контекста понятно, о ком идёт речь.

 

Впрочем, о чём это я. Некоторые тутотшние господа инженеры МГц и мГц путают. Тоже пустячок -- одна буква. Из контекста же понятно, о чём речь. Неряшливость в письме выдаёт неряшливость в мыслях.

 

"Жора, не изводите себя, вы же ещё не отсидели за ТО дело!" 'c'

В 9 случаях из 10 мГц в конце концов окажется МГц.

Вы сами-то миллигерцами давно пользовались? Небось тогда же как водку отмеряли мегалитрами...

 

Из контекста абсолютно ясно было, что никак не QuickTime имелся в виду.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

. . . . . .

Такое поведение и с компилятором Mingw и с VS2015.

Тот же самый код, но собранный в виде проекта VS, работает нормально.

Какой версии VS ?

. . . . . .

Что я не докрутил или куда хотя бы копать для решения проблемы?

. . .

1. При компляции и линковке обратите внимаение на все Warning. Иногда Warn - это вежливый намек компилятора на грубую ошибку.

2. Как тут правильно советовали, придецца перешерстить все опции прокта,

а также #define - переменные, которые могу присутствовать как в опциях проекта,

так запрятаны в файлах, обычно .h

Посмотрите настройки проектов утилит от Cypress (в исходниках).

Также просмотрите методы из pUSBDevice->XXXXXX - возможно получите дополнительную диагностику.

Сравните эту диагностику рабочего и нерабочего проектов.

3.

int deviceCount = pUSBDevice->DeviceCount(); // <- отрабатывает нормально

Ну, допустим deviceCount получили 0 ?

Этож тоже нормально.

 

    . . . . .
    for (int i=0; i < USBDevice->DeviceCount(); i++)
    {
        if (USBDevice->Open(i)) // а нет ли тут чевой ?
        {
        }
        else
        {
        }

Не факт, что будет на Open( 0 );

Ну, итд итп и прочея и всякая ...

Cypress дает хороший API к своим девайсам в виде dll.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Какой версии VS ?

В виде отдельного проекта работает и под VS2010 и под VS2015.

Из-под Qt (ага, теперь пишу правильно :biggrin: :maniac: ) пробовали с VS2015 - не хочет.

...

Не факт, что будет на Open( 0 );

Пробовали от 0 до 255 :) Тоже толку ноль... DeviceCount всегда дает 1, если устройство подключено.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Проверяли ?

Возможно в обработке строк дело. Попробуйте насильно выставить английскую локаль и юникод нужной версии.

 

С юникодом могут быть нестыковки. Я его в опциях проекта отключаю и комментирую tchar.h

 

ps - проверьте какой CyAPI.lib используется - для 32 или 64 версии.

 

Изменено пользователем k155la3

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Всем спасибо за помощь, заработало.

Нужно было подключить следующие либы (в особенности, последнюю):

CyAPI.lib

user32.lib

setupapi.lib

legacy_stdio_definitions.lib

 

Помогла эта ссылка: http://www.cypress.com/forum/usb-high-spee...cyapilib-vs2015

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

. . . .

Помогла эта ссылка: http://www.cypress.com/forum/usb-high-spee...cyapilib-vs2015

 

Хари Кришна, аллилуйя :)

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Приветствую.

Стоит задача написать подобную прогу на Qt (буквы верные написал, на всякий случай) для обмена с EZ-USB FX3 (Cypress).

Почитал по инету, наткнулся на вашу тему. Ясно, что нужно подключить указанные 4 библиотеки... Первые три я нашел, но вот legacy_stdio_definitions.lib не могу найти.

Подскажите, где её найти? И еще, без неё проект не собирается?

 

Писал проги для работы с FTDI - проблем вообще не возникло, подключил либу ftd2xx и все. Здесь же я пока только готовлюсь, но уже какие-то грабли начинаются с подключением кучи библиотек... Неужели Cypress менее заботится о своих потребителях?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У меня EZ-USB (правда, FX2) в bulk нормально работают и с libusb. Что-то супрессовские библиотеки не приглянулись. Не помню уже чем, давно было

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...