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;
}

таким образом, фреймворк не падает!!! Я все еще должен проверить, правильны ли измеренные данные, но по крайней мере я бегу снова!

Другие вопросы по тегам