#android
#Android
Вопрос:
Мы хотим реализовать ZigBee на планшете Android с использованием soc Texas Instrument cc2530m ZigBee. Планшет уже работал, и у нас есть драйвер ZigBee и драйвер стека. Как мы можем разработать приложение для профиля домашней автоматизации с ZigBee?
Комментарии:
1. Ну, предположительно, вы бы каким-то образом подключили его к планшету (есть ли у планшета USB-порт хоста?), загрузили соответствующий драйвер в ядро, а затем написали какое-нибудь программное обеспечение пользовательского режима для выполнения чего-либо, либо в машинном коде, либо на java…
2. Да, у него есть USB-порт, и у меня есть приложение, которое компилируется в коде c nativ на Android, и теперь я использую USB-ключ texas instrument cc2531 zigbee. Программа на c (называемая ZAP) хорошо работает в режиме совместного использования на Android, но я хочу, чтобы она взаимодействовала с реальным приложением Android, обычно в стандартном Linux мы можем использовать каналы, разделяемую память для осуществления межпроцессного взаимодействия, но здесь я не знаю, как на самом деле обеспечить взаимодействие обоих.
Ответ №1:
Существует несколько планшетов Android со встроенным модулем Zigbee (http://www.geekland.co/Zigbee-Tablets_c69.htm ), которые используют последовательный порт для связи с модулем zigbee. Вы можете написать Java-приложение, которое записывает команды в виде сообщений на последовательный порт, и иметь встроенное программное обеспечение (разработанное на чипе) для преобразования сообщений в соответствующие команды zigbee.
Ответ №2:
Вы можете использовать большинство стандартных механизмов IPC unix, таких как каналы или доменные сокеты unix, с Android. В то время как Android добавляет свой собственный механизм binder IPC, который было бы довольно сложно использовать из части вашего решения «командная строка», каналы и сокеты должны быть легко доступны из java-подобного кода приложения. Вам даже не понадобится помощник NDK для обмена данными, хотя вы можете использовать его, если предпочитаете.
Более поздние планшеты Android с официальным USB-хостом под управлением honeycomb имеют пользовательский интерфейс usb host management API, где вы можете напрямую взаимодействовать с USB-устройствами из кода приложения (по иронии судьбы, этот механизм не поддерживает написание драйверов в машинном коде!)