Archive for the ‘firmware’ Category

Android: управление устройствами через Bluetooth без проводов

Monday, October 14th, 2013

Закончил заказ на разработку приложения Android, управляющего настройками “звукового светофора”, приложение:

  • работает с устройством по протоколу Bluetooth – больше не нужно подключение с ноутбука проводом к каждому светофору
  • использует текстовую передачу команд для настройки параметров устройства: громкостей, пауз между звуками, текущего времени
  • использует бинарную передачу звуковых wav-файлов
  • помогает заменить прошивку (firmware) всего устройства полностью

Конечно, широкие функции железка имеет благодаря ее разработчику – но теперь ему гораздо удобнее обслуживать кучу внедренных железок по городу, прямо не выходя из машины.

Скоро эта наработка вместе с предыдущими – пригодится и для программирования еще одного оборудования: радиостанции с Bluetooth на борту.
Заказ подобных приложений возможен и для ваших устройств.

Поведение программ на устройствах Android

Tuesday, October 30th, 2012

Теперь мне, как разработчику Андроид-приложений стало понятно, почему такая разница в отзывах пользователей на одно и тоже приложение.

Оказывается, поведение программ на разных “железяках”, телефонах, планшетах…, на которые установлена операционная система Андроид  (тоже разных версий)  – может быть реально совершенно разным ! Даже если операционка одной и той же версии.

Кроме того, что датчики работают (получают питание) и отдают данные операционной системе на разных устройствах – по разному (в зависимости от работы дисплея, например), еще и системные события возникают так же не одинаково ! Я столкнулся с тем, что событие о смене состояния батареи ACTION_BATTERY_CHANGED (заряжается или нет) – на двух разный устройствах генерируется по разному !

Когда отсоединяешь кабель зарядного устройства  – брэндовый телефон выдает это событие четко, однократно, и программа реагирует на него также, четко, однократно, как задумывал программист. А вот андроидофон от каких-то китайских noname-молодцов – генерирует это событие периодически, как будто каждые несколько секунд отсоединяется по кабелю питания (не подтыкаясь обратно) ! Соответственно, и программа реагирует на каждое событие, что неправильно.

Я, как инженер по образованию, понимаю, что это зависит от аппаратного решения устройства, и связанного с ним программного драйвера, который написан с ошибкой, и выдает системе эти “ложные” сигналы.

Но теперь мне ясно, что “глюки” в одном и том же приложении (и отзывы о нем!) зависят не только от версии самой операционной системы, а и от версии “прошивки”\firmware конкретных аппаратов, что к сожалению, программисты прикладных приложений могут исправить только тщательным тестированием на разных устройствах, и все равно гарантий совместимости со всеми “железяками” от разных “криворучек” – не будет. 🙁