Page 1 of 110

Secu3Droid - Android-менеджер для Secu-3 с открытым кодом

Posted: 14 May 2013, 13:28
by mmlevin
2013-07-22_11-39-58.png
2013-07-22_11-39-37.png
2013-07-22_11-40-52.png
Screenshot_2014-05-16-14-26-25.png
Представляю вниманию пользователей Android-менеджер для Secu-3. Его разработка ведется с конца февраля-начала марта 2013 года, но по ряду причин проект не был представлен общественности ранее. Теперь же, в связи с появлением официального менеджера, я решил обнародовать свой проект.

Менеджер Secu3Droid на данный момент имеет следующие возможности и особенности:
  • -менеджер работает на версии Android начиная с Android 2.2
  • -менеджер работает с текущей релизной прошивкой Secu-3 и некоторыми предыдущими. На данный момент это релизы release_12042013, release_28082013, release_16122013, release_14052014 и release 10022015
  • -соединение с Secu-3 через Bluetooth.
  • -просмотр информации с сенсоров (тахометр, ДАД, напряжение бортсети, УОЗ и т.п.), в т.ч. сырых данных.
  • -индикация наличия ошибок CE, просмотр ошибок в реальном времени, просмотр, изменение и запись сохраняемых ошибок. Отображение ошибок с инертностью.
  • -просмотр, изменение и сохранение настроек.
  • -запись лога сенсоров и лога обмена.
  • -ночная и дневная тема оформления интерфейса.
  • -режим приборной панели
  • -диагностика входов и выходов.
Работа с устройством осуществляется следующим образом. Перед первым запуском менеджера должен быть включен Bluetooth на смартфоне, чтобы иметь возможность выбрать спаренное устройство для соединения. Включаем блютуз, запускаем программу, заходим в меню "Settings", жмем "Choose Bluetooth Device", и выбираем в этом списке устройство Secu-3. Перед этим устройство должно быть спарено средствами смартфона, менеджер поиск устройств и спаривание не поддерживает. Вроде бы в большинстве устройств Secu-3 модуль Bluetooth имеет имя "linvor". У меня модуль другой, поэтому имя не совпадает. Также нужно выбрать версию своей прошивки Secu-3 и, если нужно, бинарный режим протокола. После этого нужно перезапустить менеджер или вызвать его заново через иконку в строке статуса смартфона. При успешном соединении с Secu-3 на экране появятся данные с сенсоров, информация о прошивке, и статус "Подключено". Если статус имеет значение "Отключено", значит соединение с устройством не удалось или же во время работы было выключено зажигание. Бывали случаи, когда помогало просто перезапустить менеджер или выключить/включить блютуз на смартфоне. Для выхода из менеджера нужно выбрать пункт "Выход" в меню. Для просмотра ошибок CE жмем на значок двигателя, для просмотра и редактирования настроек жмем на значок, который соответствует значку настроек в вашем телефоне. В моем случае это гаечный ключ.
  • 16.05.2013: исправлено падение при наличии ошибок CE на Android версии ниже 3.0
  • 17.05.2013: исправлена аналогичная ошибка в окне отображения ошибок, добавлены базовые функции диагностики входов и выходов устройства.
  • 19.06.2013: добавлена возможность записи логов. для этого в настройках необходимо поставить соответствующую галочку. Запись лога в этом случае будет стартовать автоматически при получении данных от Secu-3
  • 25.06.2013: добавлена возможность выбора пути сохранения логов в окне настроек.
  • 26.06.2013: исправлена ошибка совместимости
  • 01.07.2013: добавлено разрешение BLUETOOTH_ADMIN
  • 02.07.2013: пересобрано приложение для устранения ошибок при запуске. разработчикам на заметку: обязательно делайте Project Clean перед экспортом в АПК.
  • 22.07.2013: давно обещанное масштабное обновление. Добавлена локализация на русский язык. Новый, более пальцеориентированный интерфейс в режимах редактирования параметров, просмотра ошибок, диагностики. Исправлен ряд ошибок, в частности, обработка смены ориентации экрана. Добавлена возможность выбора цветовой схемы - дневной и ночной режим (для применения настройки нужен перезапуск программы). Подсказка: в режиме редактирования параметра (где пальцем прокручиваются значения) можно ввести значение вручную, если нажать на число в центре.
  • 13.09.2013: новая реализация протокола. Теперь поддерживается не только последняя версия, но и предыдущая (т.е. весенний и летний релизы прошивки), в дальнейшем по мере выхода релизов они будут добавляться к поддерживаемым. Также поддерживается бинарный режим, появившийся в летнем релизе. Плюс поддерживаются новые фишки летнего релиза - датчик скорости, иммобилайзер, смена пароля блютуз. В меню нужно сделать соответствующие настройки. Смену пароля блютуз проверить не могу в связи с отсутствием реального Secu-3 у меня, вся работа ведется на симуляторе.
  • 04.10.2013: Неспроста 13 число считается несчастливым! Предыдущая версия содержала ряд ошибок, которые делали невозможным ее использование. Найденные ошибки исправлены, немного изменен диалог ввода чисел с плавающей запятой.
  • 11.11.2013: Устранена ошибка с отображением сырых значений датчиков. Починил запись значения выхода ДХ в зубьях шкива. Починил отображение сенсоров при возврате из других окон. Некоторые улучшения в реализации протокола. Комментарий по поводу ошибки со считыванием ошибок в реальном времени: я проанализировал ситуацию, и заметил, что после возврата из режима чтения параметров при заходе в режим отображения ошибок реального времени иногда по какой-то причине параметры считываются заново, и в отображении задержек происходит пауза. Тем не менее, спустя какое-то время (до 15 сек) ошибки все равно выводятся на экран. Причину такого поведения еще предстоит найти. Равно как и возникающие иногда зависания в обмене.
  • 13.11.2013: Добавлена украинская локализация, автор перевода - форумец V.
  • 14.11.2013: Добавлена опция записи протокола обмена данными между менеджером и устройством. Большинству пользователей она не нужна, поэтому обновляться не обязательно.
  • 28.11.2013: Привет, зима! Исправлено отображение отрицательной температуры.
  • 22.01.2014: Поддержка зимнего релиза прошивки: диагностика выходов BL и DE, добавление маркеров к лог-файлу (через меню главного окна), максимальное значение шагов двигателя подсоса. Починено отображение скорости движения (соответственно в лог тоже теперь записывается). Добавлен выбор символа-разделителя для лога. Улучшена обработка входа и выхода в режим диагностики выводов. Мелкие исправления и улучшения.
  • 28.01.2014: Кнопки вставки маркеров на главном экране (видны только если в настройках включена запись логов). Включение отображения сырых данных перенесено в меню. Добавлены настройки для запрета выключения экрана (только для окна с данными сенсоров) и запрет спящего режима устройства Android (все время, пока активен Secu3Droid) Протестировать нет возможности, телефон сохнет на батарее. В эмуляторе вроде не падает.
  • 16.05.2014: Добавлен режим приборной доски. Для его активации из главного окна нужно выбрать пункт меню "Приборная панель", для возврата - нажать клавишу "Назад" аппарата. Значок "Машинка" в середине сигнализирует о наличии связи с Secu. С остальным, думаю, и так все понятно. Это первая ласточка в данном направлении работы. Из задуманного пока не сделана шифт-лампа, отображение процента открытия ВЗ, регулировка и отображение УОЗ. Зато заложена возможность иметь сменные приборные панели в программе и сравнительно легко их создавать. За текущий вариант приборной панели в стиле NFS дружно благодарим форумца alvikagal. З.Ы. Так удачно совпало, что сегодня вышла новая версия прошивки и менеджера Secu-3. Ничего пока не могу сказать по этому поводу - в симуляторе эту версию запустить и связать с родным менеджером у меня не удалось, будем разбираться. Так что не могу сказать, будет ли данная версия Secu3Droid работать с последним релизом. Скорее всего нет, т.к. добавлялись новые поля в пакет Secu3Dat. Будем разбираться.
  • 02.10.2015:Добавлена поддержка двух последних релизов, весна 2014 и весна 2015. Также должен писаться лог от текущего девелоперского релиза (добавлена запись положения газового дозатора). Ряд улучшений, оптимизаций и исправлений. Новая иконка приложения. Также есть планы на будущее. Не поддерживаются версии Android до 3.0! Поэтому перезапустил голосовалку, если кто-то еще пользуется андроидом 2.4 и ниже, будем думать. Не забываем для последних прошивок установить галочку "Двоичный режим" и выбрать в настройках соответствующую версию протокола. Потом, наверное, скорректирую настройки по умолчанию на последний релиз и бинарный протокол.
  • 06.10.2015:Вернул поддежку версий Android от 2.2 и выше. Добавил ссылки на стороннее программное обеспечние, используемое в менеджере. Несущественные коррекции мелких ошибок.
Предыдущие версии:
secu3droid_20131114.apk
(464.2 KiB) Downloaded 3006 times
secu3droid_20131128.apk
(464.2 KiB) Downloaded 2762 times
secu3droid_20140122.apk
(490.9 KiB) Downloaded 2711 times
secu3droid_20140128.apk
(492.72 KiB) Downloaded 2989 times
secu3droid_20140516.apk
(918.47 KiB) Downloaded 4960 times
Последняя версия:
https://github.com/mmlevin/secu3droid/r ... tag/V0.6.1

Re: Secu3Droid - Android-менеджер для Secu-3 с открытым кодо

Posted: 14 May 2013, 15:29
by STC
Отличная новость! Я добавил ссылку на репозиторий Secu3Droid на сайт SECU-3 (раздел "Документация").
mmlevin, я бы посоветовал добавть в корневой каталог репозитория файл с лицензией и к какждому файлу добавить шапку GPL с твоим копирайтом (как сделано сейчас в исходниках SECU-3). Можно использовать такую же версию лицензии как и в SECU-3.

p.s. Если разгребусь с текущими задачами по проекту, то попробую попрограммировать на Java, но боюсь что не разгребусь :D. Хотелки добавляются быстрее чем их позволяют реализовывать мои умственные и физические фозможности.

Re: Secu3Droid - Android-менеджер для Secu-3 с открытым кодо

Posted: 14 May 2013, 15:52
by mmlevin
STC wrote:mmlevin, я бы посоветовал добавть в корневой каталог репозитория файл с лицензией и к какждому файлу добавить шапку GPL с твоим копирайтом (как сделано сейчас в исходниках SECU-3). Можно использовать такую же версию лицензии как и в SECU-3.
сделаю, надо исходники в порядок привести, все-таки теперь люди будут смотреть)))

Кроме того, нужно решить, в каком направлении вести развитие проекта, и что делать в первую очередь. Работы много. Локализация на русский, а может и другие языки, например, украинский. Редактирование данных прошивки. Редактирование таблиц. Работа с бутлоадером. Настройка датчика детонации. Запись логов. Диагностика. Это только то что сразу вспоминается.

Re: Secu3Droid - Android-менеджер для Secu-3 с открытым кодо

Posted: 14 May 2013, 17:35
by STC
Да, работы много, согласен. Думаю в самом начале нужно акцентировать внимание не на объеме работы, а на разработке архитектуры программы. Если архитектура будет расширяемой, то добавлять новые функции можно будет без существенного изменения уже написанного кода.
К своему стыду я никогда не пользовался Android-ом, в связи с этим точно не знаю какие там используются приемы при разработке UI и какой UI считать удобным, и т.д.

Re: Secu3Droid - Android-менеджер для Secu-3 с открытым кодо

Posted: 15 May 2013, 23:05
by denami
Проверил на 2-х девайсах.
Ainol Novo 7 Fire (Android 4.0.4). Полет нормальный.
Huawei U8500 (Android 2.2.2). Не полетело.
Вылетает на invalidateOptionsMenu();
IDE так же периодически ругается на данную строку в MainActivity. Так как мин SDK вершен 7 , а для даного метода требуется 11 версия.

Re: Secu3Droid - Android-менеджер для Secu-3 с открытым кодо

Posted: 16 May 2013, 14:09
by mmlevin
denami, мой косяк. функция invalidateOptionsMenu используется для перерисовки меню, а в api v7 меню рисуется только при нажатии кнопки, этой фукции там нет. пофиксил багу, заменив на ActivityCompat.invalidateOptionsMenu(). обнови исходники и проверь. у меня нет устройства на андроиде с api v7. собранный apk тоже выложил, в первом сообщении.

P.S. А что за ерунда с показаниями температуры и подсоса на скриншоте?

Re: Secu3Droid - Android-менеджер для Secu-3 с открытым кодо

Posted: 16 May 2013, 23:52
by denami
SECU на столе лежит.
Температура это мой косяк, у меня резистор подстрочник висит, в момент создания картинки видимо был завернут не корректно. Выставил на 20 градусов по secu3man в droid менеджере так же 20.
MAP совсем не подключен сейчас. Действительно что то действительно многовато. В обоих менеджерах напряжение 0В, а инициируется как 7 :). Надо пересмотреть алгоритм определения давления.
Утром проверю обновленный код.

Re: Secu3Droid - Android-менеджер для Secu-3 с открытым кодо

Posted: 17 May 2013, 08:13
by mmlevin
ДАД вполне может показывать величину, отличную от нуля, при нулевом напряжении на входе АЦП. Это зависит от того, какое начальное смещение датчика.

Re: Secu3Droid - Android-менеджер для Secu-3 с открытым кодо

Posted: 17 May 2013, 09:42
by denami
Если не ошибаюсь аналогичные правки необходимы для ErrorsActivity ( строка 128 заменил на ActivityCompat.invalidateOptionsMenu(ErrorsActivity.this); )
U8500 (Android 2.2.2) Приложение работает шустро в релиз моде. В дэбаг задержка по 20-40с (по ощущению вечность) на это понятно процессор всего ~600 МГц.
Ainol Novo 7 Fire (Android 4.0.4) Проблем не замечено.

Re: Secu3Droid - Android-менеджер для Secu-3 с открытым кодо

Posted: 17 May 2013, 11:40
by mmlevin
Совершенно верно, для ErrorsActivity тоже нужна эта правка. Проглядел. Добавил в код, релиз перезалью позже. Рад, что релизный проект работает шустро. Думал, все будет хуже на слабых телефонах.

UPD: ошибку исправил. Добавил функционал тестирования входов и выходов устройства (через диагностический режим)