Да, можно подключить эту библиотеку в средах C/C++ и C#. Можно и к подключить, при желании, ++-специфических штук там не наблюдается. Но судя по всему эта работа уже сделана. Я загуглил, фирма ToupTek предоставляет для своих камер тот же самый SDK: http://www.touptek.com/download/showdow ... g=en&id=33 Качаем файл toupcamsdk.zip, заходим в \extras\labview и там лежит пример на demo.zip, использующий toupcam.dll и т.н. хэлпер toupcam_labview.dll. При запуске примера спросит, где находятся эти DLL, надо ему указать на них (учитывая разрядность). Также нужен установленный Vision Development Module. Пример, конечно, не идеален в плане архитектуры, но все CLFN там есть и настроены.
Советы по программированию на LabVIEW
-
dadreamer
- professor
- Сообщения: 3957
- Зарегистрирован: 17 фев 2013, 16:33
- Награды: 4
- Версия LabVIEW: 2.5 — 2024
- Благодарил (а): 12 раз
- Поблагодарили: 138 раз
- Контактная информация:
Re: Советы по программированию на LabVIEW
- nae
- user
- Сообщения: 79
- Зарегистрирован: 20 мар 2014, 14:21
- Версия LabVIEW: 15
- Откуда: Новосибирск
- Благодарил (а): 5 раз
- Контактная информация:
Re: Советы по программированию на LabVIEW
Скачал, указал, пример запускается, и даже заполняет поля справа вроде разрешения камеры верно. Но видеопоток на экране не появляется, попытка сохранить картинку приводит к ошибке - IMAQ драйвер говорит что это не картинка. Камера на этой же машине в toupcamview (софт производителя) работает. NI MAX её не видит, а видит вебкамеру этого ноута и vision assistant тоже видит только вебку. Правильно ли я понимаю, что пока в nI MAX камера не появится, то и приведеные выше примеры не заработают?dadreamer писал(а): ↑04 сен 2022, 20:50Да, можно подключить эту библиотеку в средах C/C++ и C#. Можно и к подключить, при желании, ++-специфических штук там не наблюдается. Но судя по всему эта работа уже сделана. Я загуглил, фирма ToupTek предоставляет для своих камер тот же самый SDK: http://www.touptek.com/download/showdow ... g=en&id=33 Качаем файл toupcamsdk.zip, заходим в \extras\labview и там лежит пример на demo.zip, использующий toupcam.dll и т.н. хэлпер toupcam_labview.dll. При запуске примера спросит, где находятся эти DLL, надо ему указать на них (учитывая разрядность). Также нужен установленный Vision Development Module. Пример, конечно, не идеален в плане архитектуры, но все CLFN там есть и настроены.
доп1) ...
доп2) первая страица с вычиткой параметров камеры точно срабатывает, получает циферки и переходит ко второй, где регистрируется ивент. Но ивенты не возникают. Возможно функция Start не запускает то, что должна запускать...
-
dadreamer
- professor
- Сообщения: 3957
- Зарегистрирован: 17 фев 2013, 16:33
- Награды: 4
- Версия LabVIEW: 2.5 — 2024
- Благодарил (а): 12 раз
- Поблагодарили: 138 раз
- Контактная информация:
Re: Советы по программированию на LabVIEW
Сложно что-то сказать, не имея железа под рукой. Есть вот такие две ссылки:
Are USB UVC Cameras Supported in NI Vision?
Camera Interfaces Supported by NI Software
Там сказано, что IMAQdx сможет получить данные от USB-камеры только в том случае, когда для неё будет установлен драйвер DirectShow от производителя. Вы этот драйвер ставили? Доступен по той ссылке, что я ранее приводил. Также попробуйте и второй драйвер тоже. Всё-таки либо Vision должен заработать, либо dll'ки от разработчика. Ну, и можно ещё написать в ToupTek, если совсем ничего не получится.
Are USB UVC Cameras Supported in NI Vision?
Camera Interfaces Supported by NI Software
Там сказано, что IMAQdx сможет получить данные от USB-камеры только в том случае, когда для неё будет установлен драйвер DirectShow от производителя. Вы этот драйвер ставили? Доступен по той ссылке, что я ранее приводил. Также попробуйте и второй драйвер тоже. Всё-таки либо Vision должен заработать, либо dll'ки от разработчика. Ну, и можно ещё написать в ToupTek, если совсем ничего не получится.
- nae
- user
- Сообщения: 79
- Зарегистрирован: 20 мар 2014, 14:21
- Версия LabVIEW: 15
- Откуда: Новосибирск
- Благодарил (а): 5 раз
- Контактная информация:
Re: Советы по программированию на LabVIEW
Похоже вызовы к toupcam.dll (stdcall) работают, а toupcam_labview.dll (cdecl) - нет. там всего лишь одна функция Start и та не работает :)dadreamer писал(а): ↑05 сен 2022, 20:23 Сложно что-то сказать, не имея железа под рукой. Есть вот такие две ссылки:
Are USB UVC Cameras Supported in NI Vision?
Camera Interfaces Supported by NI Software
Там сказано, что IMAQdx сможет получить данные от USB-камеры только в том случае, когда для неё будет установлен драйвер DirectShow от производителя. Вы этот драйвер ставили? Доступен по той ссылке, что я ранее приводил. Также попробуйте и второй драйвер тоже. Всё-таки либо Vision должен заработать, либо dll'ки от разработчика. Ну, и можно ещё написать в ToupTek, если совсем ничего не получится.
У неё прототип void Start(int32_t htoupcam, void *rwer) (cdecl), где htoupcam- хидер (получаемый от toupcam.dll) , а rwer - adopt to type / handles by value куда подключается UE типа U32 - что может пойти не так?
-
dadreamer
- professor
- Сообщения: 3957
- Зарегистрирован: 17 фев 2013, 16:33
- Награды: 4
- Версия LabVIEW: 2.5 — 2024
- Благодарил (а): 12 раз
- Поблагодарили: 138 раз
- Контактная информация:
Re: Советы по программированию на LabVIEW
Боюсь, ничего толкового не посоветую. Можно проанализировать возвращаемые функциями значения на предмет ошибок: https://github.com/NMGRL/toupcam/blob/master/docs.md Вдруг что-то даст. Используется подход "Pull Mode": в toupcam_labview.dll регистрируется коллбэк с помощью DllStartPullModeWithCallback и далее toupcam.dll начинает его вызывать, генерируя эвенты. TOUPCAM_EVENT_IMAGE - это как раз 4-й кадр в кейс структуре примера: видео-данные пришли и можно их "вытягивать" через Toupcam_PullImage. Попробуйте обе dll'ки положить в одну папку и рядом с . В Event Inspector'е хоть какие-то события появляются или вообще ноль на массу?
- nae
- user
- Сообщения: 79
- Зарегистрирован: 20 мар 2014, 14:21
- Версия LabVIEW: 15
- Откуда: Новосибирск
- Благодарил (а): 5 раз
- Контактная информация:
Re: Советы по программированию на LabVIEW
Именно ноль на массу ) В ерроре пусто, ивенты не возникают.dadreamer писал(а): ↑06 сен 2022, 16:39 Боюсь, ничего толкового не посоветую. Можно проанализировать возвращаемые функциями значения на предмет ошибок: https://github.com/NMGRL/toupcam/blob/master/docs.md Вдруг что-то даст. Используется подход "Pull Mode": в toupcam_labview.dll регистрируется коллбэк с помощью DllStartPullModeWithCallback и далее toupcam.dll начинает его вызывать, генерируя эвенты. TOUPCAM_EVENT_IMAGE - это как раз 4-й кадр в кейс структуре примера: видео-данные пришли и можно их "вытягивать" через Toupcam_PullImage. Попробуйте обе dll'ки положить в одну папку и рядом с . В Event Inspector'е хоть какие-то события появляются или вообще ноль на массу?
После установки директшоу дров камера появилась в MAXе (можно покрутить и понастраивать там), но в Vision assistant при её выборе возникает "непредсказуемая ошибка" и он отказывается с ней работать (а с вебкой работает).
Сегодня поставщик обещал подключить к переписке с китайцами и они всё подскажут... наверное...
UPD: Общение ограничилось выкладыванием новой версии toupteksdk. Внезапно это помогло примеру на LV, но Vision asistant всё равно послал лесом. Ну и ладно, не очень-то он мне и нужен... Как оказалось для работы с кадрами IMAQ вообще не нужен - можно удалить все его инстансы из примера и работать просто с матрицей U16 (12бит глубины). Также внезапно для меня эта USB3 камера работает без изменения софта и в USB2 режиме пусть и в десять раз медленнее.
- nae
- user
- Сообщения: 79
- Зарегистрирован: 20 мар 2014, 14:21
- Версия LabVIEW: 15
- Откуда: Новосибирск
- Благодарил (а): 5 раз
- Контактная информация:
Re: Советы по программированию на LabVIEW
Выложу тут на всякий случай (чтобы потом самому найти) код обращения к toupcam.dll для извлечения монохромной 12бит картинки без дополнительных модулей LV.
Отмечу, что моя камера на IMX174 сенсоре (1920x1200x120fps) в режиме 12 бит выдает не более 60фпс. Шумит оно так, что даже в 8бит её нужно четыре раза усреднить, чтобы шум стал +-1бит, по этому целесообразность 12 битного монохрома под вопросом.
Отмечу, что моя камера на IMX174 сенсоре (1920x1200x120fps) в режиме 12 бит выдает не более 60фпс. Шумит оно так, что даже в 8бит её нужно четыре раза усреднить, чтобы шум стал +-1бит, по этому целесообразность 12 битного монохрома под вопросом.
-
- advanced
- Сообщения: 176
- Зарегистрирован: 18 июл 2019, 13:53
- Версия LabVIEW: 2020
- Откуда: Россия, Ижевск
- Благодарил (а): 34 раза
- Контактная информация:
Re: Советы по программированию на LabVIEW
Добрый день.
Вопрос по таблице Multicolumn Listbox.
При закрытии таблица запоминает последнюю выбранную строку и при следующем открытии пытается её показать, даже если этой строки нету (при каждом открытии в свойство ItemNames сначала записывается пустой массив, а затем массив с данными). А мне хотелось бы, чтобы при окрытии всегда показывало первые строки в таблице.
Установка свойства FocusRow в 0 решает эту проблему лишь отчасти - фокус переходит на начало таблицы только при нажатии на стрелки.
Вопрос:
Как сделать так, что бы при открытии в таблице всегда строки отображались начиная с нулевой?
Вопрос по таблице Multicolumn Listbox.
При закрытии таблица запоминает последнюю выбранную строку и при следующем открытии пытается её показать, даже если этой строки нету (при каждом открытии в свойство ItemNames сначала записывается пустой массив, а затем массив с данными). А мне хотелось бы, чтобы при окрытии всегда показывало первые строки в таблице.
Установка свойства FocusRow в 0 решает эту проблему лишь отчасти - фокус переходит на начало таблицы только при нажатии на стрелки.
Вопрос:
Как сделать так, что бы при открытии в таблице всегда строки отображались начиная с нулевой?
- zxc_pavel
- adviser
- Сообщения: 244
- Зарегистрирован: 02 июн 2016, 12:07
- Версия LabVIEW: 15
- Благодарил (а): 9 раз
- Поблагодарили: 23 раза
- Контактная информация:
Re: Советы по программированию на LabVIEW
Property node -> Top left Visible cell -> 0,0
- Вложения
-
- 111111.png (1.81 КБ) 1714 просмотров
-
- advanced
- Сообщения: 176
- Зарегистрирован: 18 июл 2019, 13:53
- Версия LabVIEW: 2020
- Откуда: Россия, Ижевск
- Благодарил (а): 34 раза
- Контактная информация:
-
- advanced
- Сообщения: 176
- Зарегистрирован: 18 июл 2019, 13:53
- Версия LabVIEW: 2020
- Откуда: Россия, Ижевск
- Благодарил (а): 34 раза
- Контактная информация:
Re: Советы по программированию на LabVIEW
Доброго времени суток.
Вопрос по обработке событий в Event structure.
Если выбрать несколько контролов, то через свойство CtlRef -> Property Node -> Label.Text можно получить имя контрола, который вызвал событие. А если выбрать <All elements>, то Label.Text возвращает имя кластера.
Вопрос: можно получит имя контрола, который вызвал событие в случае выбора <All elements>?
Вопрос по обработке событий в Event structure.
Если выбрать несколько контролов, то через свойство CtlRef -> Property Node -> Label.Text можно получить имя контрола, который вызвал событие. А если выбрать <All elements>, то Label.Text возвращает имя кластера.
Вопрос: можно получит имя контрола, который вызвал событие в случае выбора <All elements>?
-
- professor
- Сообщения: 3495
- Зарегистрирован: 31 июл 2011, 23:05
- Награды: 2
- Версия LabVIEW: 12-18
- Благодарил (а): 54 раза
- Поблагодарили: 185 раз
- Контактная информация:
Re: Советы по программированию на LabVIEW
1) не делать <All elements>, а сделать отдельные событияrsv писал(а): ↑24 июл 2023, 15:50 Доброго времени суток.
Вопрос по обработке событий в Event structure.
Если выбрать несколько контролов, то через свойство CtlRef -> Property Node -> Label.Text можно получить имя контрола, который вызвал событие. А если выбрать <All elements>, то Label.Text возвращает имя кластера.
Вопрос: можно получит имя контрола, который вызвал событие в случае выбора <All elements>?
2) сравнить new val и old val
- Juri
- I/O
- Сообщения: 271
- Зарегистрирован: 19 апр 2017, 23:06
- Версия LabVIEW: 2021
- Благодарил (а): 16 раз
- Поблагодарили: 6 раз
Re: Советы по программированию на LabVIEW
Кто как решает проблему с тем, что не существует "Splitter bar" для таб контролла и нет свойства "Fit control to tab" помимо "Fit control to pane"?
Я попробовал в ручную регулировать размеры контроллов, но работает так себе. Если резко дергать размеры окна, то все ломается.
Возможно как-то можно заставить изменять размеры контролла не налету, а только после того как отжата мышка от края экрана, но как так сделать?
Я попробовал в ручную регулировать размеры контроллов, но работает так себе. Если резко дергать размеры окна, то все ломается.
Возможно как-то можно заставить изменять размеры контролла не налету, а только после того как отжата мышка от края экрана, но как так сделать?
- Вложения
-
- AutoResize.llb
- (73.18 КБ) 49 скачиваний
-
- professor
- Сообщения: 3495
- Зарегистрирован: 31 июл 2011, 23:05
- Награды: 2
- Версия LabVIEW: 12-18
- Благодарил (а): 54 раза
- Поблагодарили: 185 раз
- Контактная информация:
Re: Советы по программированию на LabVIEW
Не у всех есть 21Juri писал(а): ↑25 июл 2023, 15:07 Кто как решает проблему с тем, что не существует "Splitter bar" для таб контролла и нет свойства "Fit control to tab" помимо "Fit control to pane"?
Я попробовал в ручную регулировать размеры контроллов, но работает так себе. Если резко дергать размеры окна, то все ломается.
Возможно как-то можно заставить изменять размеры контролла не налету, а только после того как отжата мышка от края экрана, но как так сделать?
Подобные проблемы я решаю через subpanel, а все изыски уже нормально на FP втраиваемого
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение