Основы разработки на языке elm (руководство по инструментарию для начинающих)

Клоны ELM327

Под «клоном» ELM327 будем понимать следующее… По своей сути – микросхема ELM327 является обычным PIC контроллером, который стоит сущие копейки. Но вот то программное обеспечение (ну или прошивка), которое записано внутрь этой микросхемы является интеллектуальной собственностью компании ElmElectronics. И за это они уже берут весьма немалую плату… Прочитать эту прошивку из процессора нельзя. Прошивка защищена от копирования, но нельзя недооценивать китайцев… Вот и получается, что «клон» ELM327 – это сканер, собранный на обычном PIC контроллере. Главное – что внутри этой микросхемы записана либо собственноручная прошивка, написанная народными умельцами, либо аккуратно прочитанная оригинальная.

Я думаю, каждый захотел бы тут спросить: «Так в чем же разница? Зачем платить больше?» Разница есть, если вам попался плохой «клон». К примеру, китайцы написали плохую прошивку ну или еще что-нибудь.

Ну а основном, «клоны» работают ничуть не хуже, чем оригиналы!

Опрос

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

Подведу также итоги прошлого опроса. Итак, на вопрос «Если Вы программируете на функциональных языках, то каково Ваше мнение об Elm» расклад был получен такой:

  • 28.2%: первый раз слышу, но выглядит годным
  • 21.1%: не нужен
  • 20.5%: годный, я на нём уже программирую
  • 15.8%: сыроват для продакшн
  • 14.1%: годный, но писать на нём не собираюсь

Проголосовало 170, воздержалось 147. Прочитало статью 13,9k, добавило в закладки 51.

Интересно, наверное, будет сравнить с результатами голосования, зафиксированными автором через неделю после публикации той статьи:

  • 31%: не нужен
  • 18%: первый раз слышу, но выглядит годным
  • 18%: сыроват для продакшн
  • 18%: годный, но писать на нём не собираюсь
  • 15%: годный, я на нём уже программирую

Проголосовало 99, воздержалось 76. Прочитало статью 5,5k, добавило в закладки 41.

Заметен рост благосклонности к Elm, существенно уменьшилось число тех, кто считал, что Elm не нужен, также заметно выросло число тех, кто на нём уже программирует. При этом также увеличилось число тех, кто считает язык годным, но писать на нём не собирается.

Выбор приложения для диагностики

Я думаю что здесь у Вас вопросов не возникнет. Заходим в Google Play (Плэй маркет) и скачиваем приложение “InCarDoc free” (Автомобильный доктор). Преимуществом является то, что программа на русском языке. Этим приложением я пользуюсь уже на протяжении длительного времени и проблем у меня с ним не возникало, тем более что в сети есть PRO версия которую можно установить бесплатно.

Есть так-же програмки под названием Torque, OpenDiag Mobile, Car Scanner ELM OBD2, ХобДрайв и другие. Torque например поможет вывести на экран дополнительные виджеты, а если у Вас магнитола на Android, то можно использовать эту программу как бортовой компьютер. Выбор на самом деле большой. Цель у всех одна – прочитать электронные блоки вашего автомобиля. Если по каким-то причинам Вам не нравиться “InCarDoc free” то попробуйте что-то из выше предложенного.

Что такое ELM327 и зачем он нужен?

ELM327 – Это сканер или адаптер, который подключается к бортовому компьютеру машины через разъём OBD-II и считывает показания с электронных блоков управления. Этот чудо прибор поможет Вам:

  • Диагностировать неисправность;
  • Посмотреть показания датчиков в режиме онлайн;
  • Вывести графики работы различных систем автомобиля;
  • Сбросить ошибок ЭБУ и других блоков.

ELM327 Bluetooth

Многие сканеры открывают и больше возможности, так же многое зависит и от автомобиля. Цвет корпуса и форма могут отличаться.

Сканер чаще всего представлен в виде:

  • Bluetooth адаптера. Самый распространенный и дешевый, работает с Android (сегодня рассмотрим именно её);
  • USB ELM327, который работает в паре с компьютером;
  • Wi-Fi адаптер. Если у Вас Iphone, то это Ваш выбор.

Автосканер стоит покупать только с версией прошивки 1.5 !!!Никакие заманчивые 2.1 или 2,2 брать не стоит! Вы только разочаруетесь. То есть Автосканер ELM327 версии 1.5 – Ваш выбор.

Стоимость данного девайса начинается обычно от 300 ₽. Все что дешевле брать не советую. Ориентироваться надо на стоимость 300-600 рублей. Дорогой сканер OBD-II покупать нет смысла.

Так-же крайне не рекомендую пользоваться диском который идет в комплекте со сканером. Скорее всего полезного там ничего нет и нередко бывало что там оказывались вирусы.

Инструкция ELM327

Итак у нас есть адаптер ELM327 Bluetooth версии 1.5, телефон на базе Android с установленной программой InCarDoc free, Автомобиль с разъемом OBD-II. Теперь можно приступить непосредственно к диагностике:

  1. При выключенном зажигании (обязательно) вставить адаптер ELM327 в разъём OBD-II, при этом он подаст признаки жизни (загорится светодиодный индикатор) ;
  2. Включить Bluetooth на телефоне и найти устройство под названием OBDII (название может отличаться), затем при сопряжении устройств потребуется ввести пароль: как правило это 1234 или 0000.
  3. Если все получилось тогда переходим в приложение InCarDoc free и нажимаем зелененькую кнопку “Подключить” (фото слева). Если всё выполнили правильно, то неактивные разделы меню станут активными (фото справа).

Подключение к авто в программе InCarDoc free

4. Как только Вы успешно подключились к автомобилю его следует завести.5. Диагностика автомобиля. Следуйте инструкции на картинке ниже. Что бы продиагностировать автомобиль перейдите во вкладку “Диагностика”, после нескольких секунд на экране появиться список ошибок которые есть в Вашем автомобиле. Сделайте скриншот экрана с ошибками, это необходимо для их дальнейшего изучения и поиска причины их возникновения. Теперь можете смело очистить их. Следуйте инструкции ниже:

сброс ошибок авто в программе InCarDoc free

6. Эта программа имеет функции вывода динамических параметров на экран телефона в режиме реального времени. Для примера я вывел на экран Обороты двигателя на холостом ходу (можно наблюдать как они у меня плавают) и температуру охлаждающей жидкости (автомобиль только прогревался). В этой программе достаточно широкий выбор вывода динамических параметров, поэтому я использую именно её.

Вывод на экран динамических параметров авто в программе InCarDoc free

7. Что бы закончить работу со сканером ELM327 просто нажмите кнопку “Отключить” в программе InCarDoc free. Заглушите двигатель автомобиля и извлеките сам сканер из диагностического разъёма OBD-II.

Установка дополнительных пакетов Elm

И последнее, но не менее важное: чтобы установить дополнительные пакеты Elm, нужно вызвать команду. Например, установим пакет :

Обратите внимание, что идентификатор пакета состоит из двух частей, то есть не просто , а. С этой командой связан файл проекта

В него записываются названия и версии устанавливаемых пакетов в разделе. Например, сгенерированный Brunch файл выглядит так:

С этой командой связан файл проекта . В него записываются названия и версии устанавливаемых пакетов в разделе . Например, сгенерированный Brunch файл выглядит так:

Репозиторий пакетов можно просматривать здесь.

Есть ли официальные представители ElmElectronics в России?

Важно отметить, что оригинальная микросхема – только Канадская. Занимается их производством фирма ElmElectronics

Больше никто и нигде не имеет права ее выпускать! У этой фирмы нет никаких региональных представительств. Вот цитата с сайта

Таким образом, все самозваные «Официальные представители и дистрибьюторы» ElmElectronics просто напросто мошенники или, в лучшем случае, вводящие людей в заблуждение продавцы.

Примечателен и тот факт, что фирма ElmElectronics, которая выпускает эти самые знаменитые чипы, не занимается выпуском готовых сканеров ELM327. Их сборкой занимаются все кому не лень!

Оригинальный чип ELM327 с доставкой из Канады стоит 29 американских рублей или 1100руб на наши деньги. И это только чип! Без преобразователей интерфейса, без корпуса, светодиодов и т.д.

Дополнительный, но важный инструментарий

Пожалуй самый важный инструмент из дополнительных это elm-format. С помощью этой утилиты можно приводить внешний вид программы к стандартному (общепринятому) виду. Установим его:

Также установим соответствующее дополнение для Atom elm-format:

Благодаря этому дополнению, каждый раз, как мы будем сохранять наш код, elm-format будет его форматировать. Если в коде будет синтаксическая ошибка, то утилита её обнаружит, и мы об этом узнаем, хотя, для выяснения наличия ошибок всё же лучше использовать компилятор. А в этом нам будет помогать дополнение для Atom linter-elm-make.

Поставим его:

Не забудьте также зайти в настройки этих дополнений и задать все необходимые параметры.

Дополнение elm-lens показывает прямо в коде для функций и типов экспонируются ли они или являются локальными, а также сколько раз на них ссылаются. Для установки дополнения просто вызовите:

Для поддержки REPL в Atom можно установить дополнение elm-instant:

Если вы хотите работать с терминалом прямо в Atom, рекомендую установить дополнение platformio-ide-terminal:

Программы для Windows

Кроме мобильных приложений для телефонов на ОС «Андроид», для автодиагностики можно использовать программные приложения для ОС Windows.

  • Утилита ScanMaster-ELM, работающая с любыми видами адаптеров ELM327. Возможности этого ПО достаточно широкие: удобный и понятный интерфейс, мониторинг работы мотора в реальном времени, построение графиков, просмотр, расшифровку и удаление ошибок. Минусы таких приложений: необходимость покупки лицензии для использования ряда функций и требование русификации для упрощения работы.
  • Диагностическая утилита – PCMScan, которая легко определяет неисправности европейских, американских и азиатских машин, получает данные со стоп-кадра и удаляет ошибки в ЭБУ. Для расширения функционала можно добавлять сторонние плагины. Из плюсов: многофункциональность, бесплатная демо-версия. Минусы: необходимость покупки платного ПО для подключения некоторых опций и русификации.  
  • Мультифункциональная программа автодиагностики для ОС Windows – FORScan. Обрабатывает данные датчиков в реальном времени, считывает основные параметры и сбрасывает коды ошибок. Плюсы: Возможность получения данных практически обо всех функциональных узлах и основных системах авто. Минус: рассчитана на диагностику только 4 марок авто – Ford, Mazda, Lincoln и Mercury.

Основы разработки на языке Elm (руководство по инструментарию для начинающих)

Tutorial

От автора: вместо этой статьи рекомендую прочитать более актуальную Инструменты разработчика на языке Elm.

Elm это функциональный язык программирования для разработки веб-приложений, работающих в браузере. Elm строгий, статически типизированный. Elm похож на Haskell, однако это лишь поверхностное сходство, ведь Elm изначально заточен для быстрой разработки веб-приложений.

Эта статья представляет из себя шпаргалку для начинающих по основам разработки на языке Elm, а именно, здесь рассматривается организация проекта, инструментарий Elm и среда разработки Light Table.

Программное обеспечение

ПО дается в комплекте со сканером. Если его нет, вы сможете легко скачать нужную программу в интернете или в Google Play.

Программа Torque

Имеются платная и бесплатная версии данной программы. В бесплатной версии можно проверить исправность работы сканера, его совместимость с авто, узнать многие функции обнуления ошибок.

Функции Torque:

  • Расшифровка ошибок Check-Engine.
  • Выведение параметров на приборную панель.
  • Оповещение о критичных показателях.
  • Учет расхода бензина и стоимости поездок.
  • Возможность видеорегистрации (необходим плагин TrackRecorder).

Главный минус — не полная поддержка русского языка. Но программа все равно пользуется большой популярностью.

OBD Авто Доктор

Приложение считывает числовые показатели из узла двигателя, диагностирует и русские, и зарубежные автомобили.

Функции OBD Авто Доктор:

  • Сканирование ошибок, расшифровка, а также их сброс.
  • Чтение параметров online.
  • Определение VIN-номера кузова.

OpenDiag Mobile

Приложение определяет детали инжекторных русских авто с помощью сканера ELM327. Данная версия полностью бесплатна.

Главное преимущество OpenDiag Mobile – поддержка USB протокола. В наше время софт с такими возможностями не сильно распространен.

Но, чтобы ELM327 через USB подключить к смартфону или iPhone нужно иметь USB to MicroUSB Adapter.

Второстепенные задачи ELM 327:

  • Вывод информации, расшифровка значений датчиков.
  • При необходимости возможность устранения ошибок.
  • Точное установление скорости авто.
  • Определение температуры двигателя.

Обратите внимание, вначале нужно завести машину, и уже затем подключать ELM 327. В противном случае вам высветится ошибка

Автосканер ELM 327 – незаменимое устройство для автовладельца. Особенно он нужен тем, кому частенько приходится исправлять ошибки двигателя. Это дешевле, чем в автосервисе.

Подключение

Сканер ELM327 подходит для машин из США, выпускаемых с 1996 года, из Европы — с 2001 года, дизельные – с 2004 года. Но некоторые автомобили, произведенные в 2003 году, не поддерживают работу с данным девайсом.

Работа ELM327 производится со считывающим устройством. На него необходимо установить диагностическое ПО. Для этого подойдет гаджет на андроиде, компьютер или ноутбук. Устройство подсоединяется по Bluetooth, Wi-Fi или USB.

Хотелось бы подробнее остановиться на первых двух подключениях. Некоторые модели авто не поддерживают работу ELM327 через Bluetooth, Wi-Fi. Т.е. передача данных на смартфон или ноутбук по данным протоколам осуществляется не будет.

И дело не в установленной программе, а в блоке управления, который установлен в машине. К примеру, ЭБУ Микас 10.3 (М103), который устанавливается на Ланосе 1.4i, Славуте 1.2i/1.3i и может (быть установлен в других авто) работает только через протокол USB

Этот момент важно учитывать при выборе устройства

Подробный обзор автосканеров ELM327 и OBD2 читайте в статье https://elm327-obd2.ru/sovmestimost/elm-327-spisok-avto-kak-ispolzovat-elm327.html. Там вы узнаете о совместимости устройства с различными моделями авто, какие виды сканеров бывают, отличия в разъемах, виды протоколов, какие бывают переходники для OBD2 и много другой информации.

MVC без C: Что изменит SwiftUI в архитектуре приложений?

Перевод

MVC был давним стандартом в паттернах проектирования, используемых для написания iOS приложений. Структура iOS приложений, которые создавались ранее, была основана на одном базовом компоненте, который присутствует везде, и называется он — Controller. На WWDC19 был представлен SwiftUI, который не имеет такого компонента.
Проблема с так называемыми massive view-controllers должна быть решена в SwiftUI. Так, необходимо найти новый способ правильной декомпозиции кода. Давайте посмотрим на текущее состояние платформы и подумаем, какие парадигмы мы можем использовать при разработке для iOS13 и более поздних версий.

Что такое OBD2 и ELM327

OBD2 — это стандартизированный протокол автодиагностики, и на сегодняшний день мы имеем дело со второй, улучшенной и более функциональной, версией программного приложения для диагностики и сброса ошибок бортового компьютера автомобиля.

Разъем для подключения диагностического сканера или смартфона может находиться в бардачке, под рулевой колонкой или под передней панелью. Определить точнее его расположение помогут мобильные приложения типа «Где мой OBD2 разъем? Find it!». Остается выбрать подходящий адаптер, установить ПО и — можно работать.

Для считывания информации, в том числе, технологических ошибок, к автомобилю можно подключить специальный диагностический сканер, которым обычно пользуются на автосервисах. Если дорогой прибор для вас не подходит, можно обойтись бюджетной моделью ELM327, который подключается к смартфону по Bluetooth или WiFi. ПО диагностики для телефона или ПК выбирайте на свое усмотрение — в Интернете есть множество приложений с разными возможностями. Даже платный вариант обойдется дешевле, чем диагностика на СТО, тем более, что программой вы сможете пользоваться постоянно.

Паттерн Model-Update-View и зависимые типы

Model-Updater-View — функциональный паттерн, успешно применяемый в языке Elm в основном для разработки пользовательских интерфейсов. Что бы им воспользоваться надо создать тип Model, представляющий полное состояние программы, тип Message, описывающий события внешней среды, на которые программа должна реагировать, меняя свое состояние, функцию updater, которая из старого состояния и сообщения создает новое состояние прораммы и функции view, которая вычисляет по состоянию программы требуемые воздействия на внешнюю среду, которые порождают события типа Message. Паттерн очень удобный, но у него есть маленький недостаток — он не позволяет описать какие события имеют смысл для конкретных состояний программы.
Схожая проблема возникает (и решается) и при использовании ОО-паттерна State.
Язык Elm простой, но очень строгий — он проверяет, что функция updater хоть как-то обрабатывает все возможные сочетания модели-состояние и сообщения-события. По этому приходится писать лишний, пусть и тривиальный — как правило оставляющий модель без изменений, код. Я хочу продемонстрировать, как этого можно избежать в более сложных языках — Idris, Scala, C++ и Haskell.

Характеристики и возможности автосканера ELM327

В комплекте поставки Вы найдете сам автосканер elm327 bluetooth, для диагностики автомобиля, а также специальный диск с базовым программным обеспечением а также elm327 инструкция. Как правило диском никто не пользуется(так как он на английском языке). Все сразу идут в интернет, и скачивают наиболее подходящую программу, о них мы поговорим ниже. Принцип работы сканера предельно прост — Вы подключаете адаптер к блоку управления двигателем, затем находите его по bluetooth при помощи любого поддерживаемого устройства(смартфон, планшет, ноутбук), открываете заранее установленную программу и все данные уже у Вас перед глазами.

Теперь более подробно о задачах, которые данное устройство сможет помочь Вам выполнить:

  • Мониторинг показателей датчиков установленных на Вашем автомобиле;
  • Выявление вышедших из строя датчиков и проверка правильности показателей датчиков;
  • Мониторинг и считывание показателей кодов ошибок(разъяснение значения каждого кода);
  • Возможность самостоятельного сброса ошибок в режиме реального времени;

Вообще, возможности автосканера EML327 Bluetooth, напрямую зависят от программного обеспечения которое у Вас установлено.

Как говорилось выше, конструкция автосканера довольно компактна, основную ее часть занимает разъем, при помощи которого он подключается специальное диагностическое гнездо на Вашем блоке управления двигателем. Остальную часть устройства занимает модуль bluetooth и чип с микросхемой для обработки данных.

Если Вы не знаете где находится диагностический разъем блока управления двигателем, попробуйте посмотреть в следующих местах:

  • Под крышкой блока предохранителей;
  • В бардачке(Например это машина марки Renault);
  • Под панелью приборов.

Управление кодом на Elm с помощью Brunch

Одним из удобнейших средств управления кодом на Elm представляется Brunch. Устанавливается Brunch как пакет NPM:

Проверим версию только что установленного Brunch:

Вызовем Brunch для генерации кода нашего примера проекта на Elm:

После генерации кода Brunch также сразу загрузит все необходимые NPM- и Elm-пакеты.

Рассмотрим сгенерированное дерево каталогов:

  • : исходные тексты приложения

    • : минимальный документ HTML5, который будет контейнером для нашего приложения
    • : стили для примера приложения
    • : исходные тексты на Elm
    • : главный модуль приложения на Elm
    • : код на JavaScript
    • : пример кода, работающего отдельно от кода на Elm
  • : загруженные пакеты на Elm
  • : загруженные NPM-пакеты
  • : настройки для Brunch с учётом поддержки Elm
  • : настройки для Elm, в том числе список используемых пакетов
  • : список зависимостей NPM (сгенерирован NPM автоматически)
  • : настройки для NPM

Уже сейчас мы можем собрать наш проект:

После сборки проекта появится также папка , в которой разместятся все части нашего веб-приложения.

Давайте запустим приложение в режиме отладки:

Откроем в браузере ссылку и полюбуемся на прекрасное веб-приложение:

В правом нижнем углу находится интерфейс инспектора состояния приложения. Щёлкнем на нём. Сейчас счётчик имеет значение :

Пощёлкаем на кнопках и и понаблюдаем как меняется состояние:

Мы можем вернуться к любому предыдущему состоянию:

И даже вернуться к последнему, просто нажав на кнопку .

Неискушённому зрителю читателю наверное будет интересно также узнать, как устроено приложение на Elm, но сначала давайте настроим редактор, чтобы изучать исходный код приложения было приятней и удобней.

Топ 5 программ для Андроида

MotorData OBD

Одна из самых популярных и бесплатных диагностических программ для смартфонов на ОС Android и адаптеров ELM327. С ее помощью можно считывать ошибки и удалять их из памяти ЭБУ, снимать показания в реальном времени, контролировать более 70 показателей. Интерфейс программы на русском языке. Для профессионального анализа полученной информации, все же, необходимо купить дополнительные расширения.  

Из плюсов: интеграция с большинством адаптеров (включая дешевые китайские модели), стоп-кадрами и графическими изображениями параметров, возможность получения полной паспортной информации, включая версию прошивки и VIN. Минусы — ограничения для бесплатной версии (для большинства пользователей их достаточно).

OBD Car Doctor

Еще одна русифицированная программа для ОС Android, поддерживающая практически любые беспроводные адаптеры. Способна определять состояния Check Engine, удалять коды ошибок, рассчитывать мгновенное и среднее потребление топлива, вести журнал заправок и техобслуживания, отображать показания датчиков в реальном времени.

Среди плюсов: русскоязычный интерфейс и широкий функционал, легкая интеграция с ЭБУ для изменения настроек работы мотора. Минусы: сложные настройки для начинающих пользователей. Неопытному водителю изменять настройки самостоятельно не рекомендуется.

ScanMaster

Мобильное диагностическое приложение, превращающее смартфон на Андроид в многофункциональный автомобильный сканер. Имеет мощную бесплатную версию Lite, с помощью которой считывает и стирает ошибки, строит графики по полученным данным и контролирует состояние топливной системы. Еще больше возможностей предлагает платная версия ScanMaster Pro.

Из плюсов ПО: поддержка любых моделей адаптеров, получение информации по Bluetooth и WiFi. Удобно применяется для диагностики автомобилей американского производства, выпущенных с 1996 года, и европейских моделей с 2001-2004 года. Недостатки: сложные настройки, высокая стоимость платной версии приложения.

Torque

Приложение Torque позволяет получать информацию об техническом состоянии автомобиля в реальном времени, сохранять логи поездки и устанавливать собственные рабочие экраны с показаниями выбранных датчиков. Программа может определить время разгона до 100 км/ч и стереть ошибки из ЭБУ. При добавлении плагинов сторонних разработчиков возможности программы можно существенно расширить.  

Плюсы ПО: функциональность и поддержка большинства адаптеров. Минусы: наличие некоторых диагностических функций только в платной версии.

InCarDoc

Приложение тестирует большинство технических параметров автомобиля в реальном времени (в том числе, скорость, углы поворота, давление в системе, температуру и характеристики двигателя), удаляет ошибки, способно отправлять диагностические отчеты на электронную почту, поддерживает несколько языков, включая русский.

Из плюсов: определение скорости и местонахождения авто с помощью GPS, наличие консольного режима для опытных пользователей, ведение журналов и выгрузка информации в Интернет, установка пользовательских настроек для работы с широким спектром параметров. Минусы: нестабильное соединение с дешевыми адаптерами.

Заключение

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

Обзоры Семейных автомобилей на нашем портале

4 694

8+

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector