![]() Ответы Mail.Ru Программирование Java JavaScript jQuery MySQL Perl PHP Python Веб-дизайн Верстка, CSS, HTML, SVG Системное администрирование Другие языки и технологии. Давно слышал, что API для приложений Google Chrome даёт доступ к Serial. Можно и нужно использовать всё те же JavaScript, CSS, HTML5, подключать сторонние библиотеки и примочки. Кто знает как в dosemu сделать прямой доступ к LPT порту? Очень хочется программатор запустить. Кусок из dmesg: Serial driver version 5.05c (2001-07-08) with HUB-6 MANY Serial to JSON in Node.js and Arduino в. Отображаем данные из Serial в Chrome Application / Блог компании Амперка / Хабрахабр. Здравствуй, Хабр! Хочу поделиться опытом создания небольшого приложения для Google Chrome, которое взаимодействует с последовательным портом. Краткая предыстория. Много раз мне хотелось, чтобы компьютер и подключенная к нему Arduino работали, как единая система, в которой микроконтроллер был бы посредником для общения с датчиками и исполнительными устройствами, а компьютер — большой удобной консолью. Если Вы ищите сайт, где можно найти много разных 2PCS Esp-05 ESP8266 Remote Serial Port WIFI Transceiver Wireless Module AP+STA то Вы попали по адресу! Чтобы это произошло, на компьютере нужно либо по хакерски сидеть в консольном терминале, либо писать какую- нибудь небольшую GUI’шку. Даже самая примитивная GUI’шка требует каких- то непропорциональных усилий для своего создания. Нужно выбрать framework, реализовать кучу побочной GUI- логики, скомпилировать под всевозможные платформы, разобраться с зависимостями, запаковать . Давно слышал, что API для приложений Google Chrome даёт доступ к Serial. Захотел попробовать и заодно освоить создание Chrome- приложений как таковое. Получился Serial Projector — замена штатному Serial Monitor для Arduino IDE. Суть проста до безобразия: приложение на весь экран отображает последнюю текстовую строку, пришедшую через последовательный порт. Это позволяет, например, выводить показания устройства крупно и няшно. Может оказаться полезным для всяких выставок, презентаций, инсталляций. Подробности исходного кода и демонстрация работы — под катом. Как устроено приложение. Давайте разберём Serial Projector. Все исходники есть на Git. Hub. Итак, что же такое приложение для Google Chrome? По- большому счёту это просто динамическая web- страница. Точно такая же, как если бы вы её делали для своего сайта. Можно и нужно использовать всё те же Java. Script, CSS, HTML5, подключать сторонние библиотеки и примочки. Я использовал j. Query, Backbone. ![]() Underscore. js. Отличие заключается в том, что такая страница может использовать дополнительное «небезопасное» API для работы с компьютером пользователя. В частности, есть API для чтения и записи последовательного порта. А ещё такое приложение может быть элементарно опубликовано в Chrome Web Store, а ваши пользователи смогут его элементарно установить. Подобно тому, как это происходит на мобильниках, при установке приложение спросит подтверждение того, что вы доверяете ему доступ к тем или иным небезопасным API. Их перечень задаётся в файле- описании приложения manifest. Ниже приведён класс- модель для взаимодействия с serial- соединением. Не стоит вдумчиво читать сверху вниз, чтобы всё понять. Комментарии приведу ниже. RETRY. Во первых, в конструкторе класса: initialize: function() . При успешном получении порции данных мы будем вызывать метод . Связи установлены, но подключения ещё нет. Для начала нужно выяснить, какие Serial- порты на компьютере пользователя сейчас видит Chrome: enumerate. Ports: function() . Каждый элемент — это словарь, содержащий системный путь к порту, человекочитаемое имя, USB VID & PID железки. Имея на руках системный путь, можно уже наконец подключиться: chrome. В частности с connection. Id, который понадобится для большинства операций по взаимодействию с портом. Теперь рассмотрим процесс получения и разбора данных. Весь он умещается в одном методе класса: . Сами данные передаются в поле data. Оно имеет тип Array. Buffer, с которым практически ничего нельзя делать напрямую. Это не строка, это не массив, это просто брикет из байтов «как есть». Для того, чтобы брикет разобрать, нужно создать проекцию (view) Array. Buffer’а, которая знает, как интерпретировать сырые данные. В случае с Arduino компилятором является AVR GCC, исходники пишутся в UTF- 8, а следовательно данные, которые отправляются штатным Serial. UTF- 8 строк. Далее всё тривиально: Получаем порцию данных. Переводим в массив байт через проекцию. Приклеиваем к тому, что уже есть в памяти. Ищем код символа переноса строки. Если нашли — режем буфер на «до» и «после». Для совместимости со старыми версиями, метод можно реализовать самостоятельно: Uint. Array. prototype. А что в итоге получилось у нас, можете посмотреть в очередном видео на нашем You.
0 Комментарии
Оставить ответ. |
АвторНапишите что-нибудь о себе. Не надо ничего особенного, просто общие данные. Архивы
Июль 2017
Категории |