NIDAQmx Йосемитская совместимость
Я установил osx 10.10 ( Yosemite), и с тех пор устройство (NI-USB 6210) больше не работает. Проблема, очевидно, связана с драйвером. Я позвонил в National Instruments, и они подтвердили проблему, и они также сказали мне, что проблема, вероятно, будет исправлена в следующем выпуске nidaqmx, что произойдет не так скоро. Таким образом, их предложение состоит в том, чтобы понизить до Маверикс, которые вроде как отстой. Они также сказали мне, чтобы проверить таблицу совместимости
http://www.ni.com/labview/os-support/i/
чтобы знать, когда будет поддерживаться, до тех пор я должен бороться с понижением рейтинга или найти обходной путь, который был бы лучшим. кто-нибудь нашел решение этой проблемы в последнее время?
2 ответа
В зависимости от вашего устройства и от того, как вы его запрограммируете, вы сможете настроить его на работу с Yosemite с помощью NI-DAQmx Base 14.0 [1].
NI-DAQmx Base 14.0 не требует поддержки Yosemite, но после проверки установщика и выполнения нескольких тестов я определил следующее:
- Установщик, расширения ядра, фреймворки и приложения подписаны National Instruments, что означает, что Gatekeeper не будет вам мешать: "Вы уверены, что хотите это сделать?" вопросы.
- Предусмотрены как 32-битные, так и 64-битные API LabVIEW.
- Предоставляются как 32-битные, так и 64-битные API-интерфейсы C, но приложение C или Cocoa выдает предупреждение при выходе. Похоже, что один из компонентов в драйвере пытается получить доступ к элементам пользовательского интерфейса из фонового потока. Я подозреваю, что это делает LabVIEW Run-Time Engine, в котором работает API DAQmx Base C.
связи
[1] NI-DAQmx Base 14.0 для Mac
http://www.ni.com/download/ni-daqmx-base-14.0/5060/en/
У меня была та же проблема, и я провел вечер, выясняя проблему.
По-видимому, платформа NiDaq пытается отправить сообщение setHandler:withData: приложению. На yosemite этот обработчик больше не существует, вызывая исключение.
Если вы не внедрили такое сообщение в своем делегате приложения, дела идут плохо.
Но вы можете просто реализовать фиктивный обработчик, добавив его в свой класс делегата приложения:
- (id)setHandler:(id)a withData:(id) b
{
return nil;
}
таким образом, фреймворк не падает!!! Я все еще должен проверить, правильны ли измеренные данные, но по крайней мере я бегу снова!