Я должен создать программное обеспечение / драйвер для OSX, который взаимодействует с устройством HID, подключенным через USB. Цели применения заключаются в следующем,
Я не являюсь разработчиком драйверов, но у меня есть опыт работы с C, C ++, Obj C и т. Д. Мне интересно, каким будет наилучший способ достижения указанных целей. То есть я должен разработать расширение ядра (драйвер) или есть лучшая альтернатива?
Проблемы, с которыми я сталкиваюсь,
В любом случае, это новое поле для меня. Можете ли вы предложить некоторые документы или образцы кодов, с которых я могу начать.
Также просим упомянуть форумы или сообщества, которые могут быть полезны при разработке драйвера устройства для Mac.
Спасибо вам всем за помощь. 🙂
MacOS X уже имеет драйверы для устройств HID. Поэтому вам не нужно разрабатывать специальный драйвер / расширение для него.
Вы можете использовать кроссплатформенную библиотеку с открытым исходным кодом hidapi для связи с HID-устройствами.
Другой ответ на этот вопрос, безусловно, справедлив для множества разных вариантов использования, и я советую идти по этому пути, где это возможно. Однако, безусловно, есть случаи, когда вам нужно копаться в кексте. В частности, если устройство HID должно выступать в качестве системной клавиатуры или указательного устройства, но не используется встроенным стеком HID, как вы хотите, вам может потребоваться (или вы захотите) разработать ядро. космический водитель. (Тем не менее, у вас есть возможность вставлять события в систему управления окнами из пространства пользователя, поэтому сначала я создам прототип вашего варианта использования, если у вас есть сомнения.)
Вы не совсем подробно рассказали нам о том, что вы пытаетесь сделать, или о природе устройства, чтобы действительно сказать наверняка, какой подход может быть лучшим.
Для примера кода, проверьте собственный открытый исходный код Apple. (IOHIDFamily, IOUSBFamily и т. Д.) Поиск в Интернете классов, с которыми вы работаете, также приведет к появлению стороннего кода OSS на Github и т. Д.
Переполнение стека и соответствующие списки рассылки для разработчиков Apple (Darwin-драйверы, Darwin-kernel или Usb, в зависимости от вопроса) и, возможно, форумы разработчиков (я считаю, что им трудно следить / постоянно следить), вероятно, являются лучшими сообществами для этого. Такие вещи.