Отправить СМС
Автоматизация отправки СМС (SMS) с компьютера через сотовый
СОМ-порт и сотовый — как найти? 29 Апр
Большинство компьютерных программ для работы с сотовыми телефонами используют COM-порт.
Говоря на простом языке — сом-порт это дверь через которую несчастные электроны переносят данные от сотового к компьютеру и назад 🙂 В этой ситуации ясно, что чтобы электроны знали дорогу — им надо знать номер двери, а то занесет к соседке и потеряются 🙂
Шутки-шутками, но человеку, перед которым до этого никогда не стояла задача определить номер COM-порта, через который программе надо работать с сотовым — такому человеку сразу и не понять что делать. Поэтому я покажу на конкретном примере — во-первых, как определить сам сом-порт, а во-вторых, как вручную попробовать некоторые команды (АТ-команды) для работы с сотовым.
Если Вы не знаете как подключить сотовый телефон к компьютеру, то вот Вам “Подключение сотового телефона к компьютеру“
Итак, у меня сотовый телефон модели Sony Ericsson Z310i, подключен к компьютеру через блютуч адаптер. Драйвера на адаптер BlueSoleil 1.6.1.4. И все это на Win XP.
Активирую на телефоне блютуч, открываю основное окно программы от BlueSoleil:
Как видите на картинке, мой сотовый программа-драйвер увидела. Теперь я наведу мышкой на обозначение своего сотового и сделаю “двойной клик” — чтобы программа показала, какие сервисы мне доступны. Как Вы можете видеть в верхней части окна, третий значок слева — это и есть “СОМ-порты” или еще говорят “сериал-порт” (последовательный порт).
Все Ок — сом-порты работать будут. Осталось узнать какой же номер будет у СОМ-порта, через который можно работать с сотовым телефоном. Для этого надо активировать эту связь — просто кликаю мышкой на третий слева значок:
И чтобы узнать номер СОМ-порта через который идет связь — навожу мышкой на значок своего сотового, нажимаю на правую кнопку, и в выпавшем меню выбираю “Состояние”:
И видим такое окно, на котором все ясно видно:
Красным я специально подчеркнул те детали, на которые нам стоит обратить внимание — это наш сотовый Sony Ericcson Z310i и находится он на порту COM4.
Т.е. на самом деле ничего сложного тут нет. Но если у Вас другая ситуация — и программа-драйвер не подсказывает Вам ничего. Тогда нужно зайти в диспетчер устройств и самому посмотреть. какие есть в системе COM-порты и возможно модемы. Делается это так — “на рабочем столе” находим значок “Мой компьютер”, наводим на него мышкой, нажимаем на правую кнопку — выпадает меню:
Выбираем “Свойства”. Откроется окно “Свойства системы”, переходим на вкладку “Оборудование” :
и нажимаем на кнопочку “Диспетчер устройств”. И увидим из чего состоит наш компьютер:
В списке “Порты” Вы можете видеть наш COM4. А вообще Вы видите сколько СОМ-портов в компьютере. Бывают ситуации, когда драйвер позволяет подключить Ваш сотовый телефон или GSM-модем именно как модем — тогда смотрите его в списке “Модемы”. И если также, через правую кнопку мышки вызвать свойства конкретного модема, то на вкладке “Модем” можно увидеть тот самый номер COM-порта:
Ну хорошо. Номер СОМ-порта мы определили. Теперь давайте почувствуем себя полными “профи” и поработаем с сотовым напрямую, с помощью специальных команд. Для этого вызовем простую программу HyperTerminal — это стандартная программа для WinXP. Находится эта программа здесь:
Запускаем ее и получаем первый экран:
Вводим название сеанса связи с сотовым — пусть будет “test4″ . И нажимаем ОК.
Здесь нам надо выбрать наш COM-порт — если помните это COM4. И также нажать ОК.
Надо выбрать параметры соединения. Но лучше ничего не трогать, те значения, которые уже стоят по умолчанию, как правило подходят. В редких случаях можно поменять “Скорость” — иногда оборудование жестко запрограммировано на работу только на какой-то одной скорости (например, для Сименс C45 скорость только 19200). Нажимаем ОК. Окроется основное окно программы HyperTerminal и сразу установится связь через COM4:
Теперь подадим несколько команд сотовому телефону. Это очень просто 🙂 Сперва я дам команду ATZ . Все команды пишутся латинскими буквами и подтверждаются нажатием на “Enter”. Затем я даю команду ATI :
потом я прошу сотовый показать мне IMEI-код командой AT+CGSN . И последняя команда AT+CUSD=0,”*100#”,15 — это USSD-запрос баланса. Если плохо видно — просто нажмите на картинку, она увеличится.
Вот и все! В это статье получилось много картинок, и я думаю это только на пользу — наглядно видно что и как. Если есть вопросы именно по теме статьи, то пишите их прямо в комментарии. Если Вам помогла эта статья, то тоже обязательно напишите комментарий.
Комментарии к этому сообщению (8)
какие модели телефонов лучше всего работают с этой программой?Нокию программа не видит
Олег, у меня есть Нокиа 6600, программа видит все прекрасно. Многие другие модели также работают. Лучше всего себя зарекомендовали моли фирмы Sony Ericsson.
Замечательные пошаговые инструкции, сделала все как здесь написано. Но вот в окошке test-HyperTerminal курсор мигает, а с клавиатуры ничего набрать не могу: ни ATZ, ни ATI — вообще никакие буквы не набираются. Телефон у меня Nokia 6500 slide. Хотелось бы узнать в чём причина?
Значит “не угадали” с номером сом-порта или скорость.
Подскажите как настроить подключение мобильника в windows 7. У меня sony ericsson w205. СОМ порты не отражают подключение и программу hyper terminal в семёрке я не нашёл.
Александр, я посмотрел насчет SE w205. Это телефон, выпущенный под маркой SE, но это не их разработка. И он не имеет встроенного модема. Не мучайтесь, если нужно отправлять-принимать смс, то поставьте недорогой gsm-модем, например Huawei e1550.
Здравствуйте.
При попытке запроса баланса выдаёт ошибку остальное нормально.
телефон: моторола C350
Спасибо. А я по экспериментировал с 3G модемом Мегафон и получилось использовать команды.
Источник
Работа с устройствами USB в Android
В недавней статье на Geektimes в комментариях возник вопрос о поддержке в ОС Android периферии, подключенной к шине USB. Действительно, большинство вендорского ПО, к примеру, для работы с принтерами и МФУ, поддерживает только подключение по сети. Однако это не означает, что в самой ОС Android нет такой возможности — это означает лишь то, что большинство устройств не имеют полноценного USB хоста, и далеко не все имеют поддержку OTG. По сети же могут работать абсолютно все без исключения.
Большинство устройств на Android при наличии порта OTG поддерживают на уровне системы (ядра Linux или стандартных компонентов Android) следующие классы устройств:
- Устройства ввода — клавиатуры, мыши, джойстики (HID)
- Накопители (Mass Storage)
Несколько реже:
- Сотовые модемы
- Сетевые адаптеры
- Вебкамеры
Хабы поддерживаются при наличии полноценных хост-портов, но не поддерживаются на портах OTG.
Подробнее список устройств, поддерживаемых на уровне ядра Linux, можно получить в sysfs:
$ ls /sys/bus/usb/drivers
Если же модуль в принципе доступен в исходниках ядра Linux, но не включен в Android — не стоит рассчитывать на то, что его получится собрать и расставить на все целевые системы.
Однако, начиная с Android 3.1 (API 12), в системе содержатся средства, достаточные для поддержки на уровне приложения любой USB периферии. Данные средства описаны в разделе USB Host руководства по Android API. Здесь же я хочу привести примеры реальной работы с некоторыми видами устройств.
Права доступа
Как и для прочих действий, Android требует, чтобы приложение получило разрешение на доступ к USB периферии. Существует 2 способа получить такое разрешение:
- Задекларировать список устройств в AndroidManifest
- Явно показать пользователю диалог “разрешить”
Поскольку для моих задач лишние вопросы к пользователю были нежелательны, я использовал первый способ.
Итак, нам необходимо добавить в манифест следующее:
А в res/xml/device_filter.xml вписать следующее:
Отмечу, что хотя общепринято указывать VID:PID в 16-ричной системе счисления, здесь они должны быть указаны в десятичной. В документации заявляется, что возможно указание только класса, без VID и PID, но у меня это не стало работать.
Принтеры
На примере принтера я покажу, как непосредственно использовать API android.hardware.usb. На уровне передачи данных все принтеры поддерживают стандартый класс USB устройств:
Класс предельно простой. В рамках этого класса устройство должно поддерживать:
- Обязательный bulk out endpoind для отправки данных на принтер
- Опциональный bulk in endpoind для получения статуса принтера
- 3 управляющих запроса
Код, приведенный ниже, предоставляет функциональность, аналогичную устройству /dev/usb/lp в Linux. Далее нам нужен фильтр, преобразующий исходный документ в пакет данных, понятный конкретной модели принтера. Но это тема иной статьи. Как один из вариантов — можно собрать ghostscript с помощью NDK.
Для работы с устройством нам в первую очередь нужно:
1. Найти устройство. В примере для простоты я ищу первый попавшийся:
2. Получить endpoint’ы:
3. Непосредсвенно открыть устройство:
4. После этого мы можем читать и писать в устройство:
5. По завершении работы — закрыть устройство:
Преобразователи USB-Serial
В отличие от притеров, преобразователи USB-Serial гораздо менее стандартизированы. Существует несколько распространенных чипов, для которых существенно отличается установка параметров последовательного порта — битрейта, чётности и проч. К счастью, есть библиотека github.com/mik3y/usb-serial-for-android, поддерживающая практически все существующие чипы. Библиотека полностью скрывает USB API, сводя все необходимые действия к минимуму вызовов с минимумом параметров.
1. Найти и открыть устройство:
2. Установить параметры последовательного порта:
3. Читать и писать в порт:
4. По завершении работы — закрыть порт:
Резюме
Надеюсь, что мне удалось показать, что работа с USB периферией достаточно проста и логична. Безусловно, реализация протоколов некоторых конкретных устройств не блещет простотой — но это проявится в любой системе в одинаковой степени.
Все приведенные примеры я взял из реального проекта, лишь исключил очевидные проверки, оставив только ключевые строки.
Источник
COM порт на Android
Сейчас я расскажу, как, имея в наличии совершенно стандартное устройство на Android с поддержкой USB Host (в моем случае Nexus 7), совершенно стандартный USB Host переходник на полноразмерный разъем «мама», совершенно стандартный USB serial контроллер на чипе PL2303 (они почти все работают именно на этом чипе) и не менее стандартный цискин голубой шнурок, зайти на консоль сетевого оборудования и без всяких ограничений работать с ней. Хотя никто не мешает подключать к планшету/телефону и любое другое оборудование, работающее с командной строкой поверх RS-232.
Первым делом получаем на планшете рут-права. Иначе никак.
Вторым делом ставим Busybox. Кто не знает — это отличный комплект утилит, одна из которых нам потребуется. После установки надо запустить его и нажать в самой программе «Install», когда программа спросит про метод установки — сказать «Normal».
Затем понадобится любой приличный эмулятор терминала. Мне нравится Irssi ConnectBot.
Ну и напоследок — штатные клавиатуры плохо годятся для работы с консолью. Нам ведь нужны клавиши Tab, ctrl и прочие, верно? Да и цифры хочется иметь в верхнем ряду, над буквами, а не где-то еще. Потому — Hacker’s Keyboard. Лучше, конечно, подключить внешнюю клавиатуру, но мы пока не собираемся набивать вручную многоэкранные конфиги.
Всё готово для подключения.
Запускаем терминальный клиент, выбираем локальное подключение, и подключаем к планшету контроллер. Нужно убедиться, что он определился, хотя тут проблем не ожидается, драйвера для PL2303 уже много лет как включены в ядро Linux. Под рутом запускаем dmesg.
(если кому мелковато — кликните на картинку)
Нужно запомнить, куда смонтировало контроллер. В моем случае это всегда был /dev/ttyUSB0.
Осталось установить соединение. В комплект Busybox входит программа «microcom», она-то нам и пригодится.
Набираем в консоли «microcom -s [скорость порта] [точка монтирования устройства]».
Выход из microcom по ctrl+x. Break должен посылаться по ctrl+b (пока не проверял). Другие горячие клавиши передаются корректно.
Альтернативы?
Можно купить один из многих «Bluetooth Serial» адаптеров. Вот только такие адаптеры и стоят дороже (>$50), и требуют внешнего питания. Ни одного на аккумуляторах не видел. В лучшем случае батарейку надо самому прикрутить.
Для пользователей техники Apple есть проводное решение за те же >$50.
Источник
Узнать com порт андроид
Уже давно известно (начиная с Android 3.1+ и его Android USB Host API), что через порт USB OTG операционная система Android умеет работать как хост USB с мышами и клавиатурами. Также можно управлять и самодельными устройствами USB HID [2, 3]. Но как обстоят дела с обменом данными с классом USB CDC (виртуальный COM-порт), или USB serial-интерфейс (RS-232 TTL)? Возможность работать с последовательным портом очень удобна для подключения множества устройств на микроконтроллерах, например тех же плат Arduino, или какого-нибудь заводского оборудования. Оказывается, все также очень даже неплохо. Эта статья посвящена краткому обзору готового софта и библиотек, которые позволяют работать с последовательными портами в операционной системе Android.
[Первое подключение устройства USB CDC к Android]
Для подключения к порту USB Android какого-нибудь устройства USB Вам понадобится специальный кабель USB OTG. Его можно недорого купить в магазине или на рынке, или изготовить самому [4]. Если у Вас уже установлены какие-нибудь программы, поддерживающие последовательное соединение через USB (например, какие-нибудь программы, рассмотренные во врезках ниже), то при первом подключении устройства к порту USB OTG операционная система Android выдаст приглашение запустить для работы с устройством какую-нибудь из установленных программ, см. скриншот ниже.
Если Вы сделаете на этом экране свой выбор, то сразу запустится выбранная программа, и ей будет предоставлено разрешение работать с подключенным устройством USB. Если Вы ничего не выберете (просто нажмете на кнопку «Назад»), то разрешение на доступ к устройству будет запрошено позже, когда в программе Вы попытаетесь подключиться к устройству USB CDC:
Если на этом экране выбрать «Да», то программа сможет работать с Вашим устройством USB CDC. Если еще при этом установить галочку «Использовать по умолчанию для этого USB-устройства», то при каждом подключении устройства USB CDC к порту USB OTG будет автоматически запускаться эта программа, и ей будут сразу автоматически дано разрешение на доступ к устройству.
[Терминальные клиенты, поддерживающие USB OTG serial]
Готовые программные клиенты под Android, которые позволяют организовать текстовую консоль для приема/передачи текстовой информации через виртуальный COM-порт USB, избавляют Вас от необходимости писать управляющее программное обеспечение, когда Вы хотите через Android управлять какой-нибудь электронной аппаратурой.
Ниже представлен краткий обзор нескольких таких утилит.
Это утилита для проверки, совместим ли Ваш мобильный телефон, или смартфон, или планшет с устройством UART/RS-232. Рута не требует, бесплатная, но на этом достоинства программы заканчиваются. У меня она не заработала, не нашла подключенное через порт USB OTG устройство на чипе FT232R (при попытке открыть соединение через меню Open программа выдавала сообщение «Not found USB UART device!»). Причина в том, что пока чипы FTDI этой программой не поддерживаются.
Весьма годная программа. Можно подключать устройства USB CDC на чипах Silicon Laboratories CP210X, FTDI FT232 (ARDUINO) и Prolific PL2303 (это популярные микросхемы моста USB-CDC/ACM — TTL UART). Так же можно использовать беспроводную систему Zigbee Chip TI CC2531 (USB-Enabled SOC Solution for 2.4-GHz IEEE 802.15.4).
Поддерживаются все смартфоны, на которых есть порт USB с поддержкой режима хоста (OTG) — Samsung galaxy2 / galaxy 3 / galaxy note / galaxy note2 / Vega racer R3 и т. п. Требуемая версия Android: 3.1 (API Level 12).
[Быстрый старт]
1. Подключите кабелем OTG устройство к смартфону.
2. Операционная система Android определит подключенное устройство USB, и запросит разрешение на запуск приложения. Кликните OK, программа запустится.
3. Кликните кнопку «Settings» (она в виде гаечного ключа) для настройки параметров соединения. После внесенных изменений кликните на кнопку «Save» (чтобы она стала видна, прокрутите вниз окно настроек). Перезапустите программу, переподключите устройство, чтобы настройки вошли в силу.
4. Кликните на кнопку «Connect» (с иконкой в виде телефонной трубки) на верхней панели программы для подключения к устройству.
[Создание кнопок управления]
5. Кликните на кнопку с зеленым плюсиком, введите имя для кнопки и содержимое данных для отправки.
6. Кликните кнопку «Save». Кнопка управления будет добавлена на панель.
Если кликнуть на эту кнопку, то программа отправит данные в устройство. Принятые от устройства данные будут отображены в текстовом окне консоли.
Формат данных для кнопок управления. Можно вводить двоичные данные, как это показано ниже — в шестнадцатеричном (hex), двоичном (binary) или десятичном (decimal) виде:
— Decimal: @ + 3 цифры (0..255), например CR: @013
— Hex: # + 2 hex-цифры, например CR: #0D
— Binary: & + 8 двоичных цифр, например CR: &00001101
Escape-символы @, #, & можно вводить, если их указать дважды, тогда будут переданы соответственно @, #, &.
Между передаваемыми данными можно вводить задержку. Задержка указывается в миллисекундах, пример:
up down left right
Здесь закодирована следующая последовательность действий:
1. Отправка «up».
2. Задержка (sleep) на 1 секунду.
3. Отправка «down».
4. Задержка на 2 секунды.
5. Отправка «left»
6. Задержка на 3 секунды.
7. Отправка «right»
Простая программа последовательного терминала (с открытым исходным кодом, см. https://github.com/devmel/), предназначенная для управления устройством на микроконтроллерах (http://devmel.com/). Очень полезна как инструмент отладки в приложениях с обменом данными.
1. С Bluetooth (модули HC-05, HC-06, любой Bluetooth-Serial адаптер).
2. С адаптерами USB OTG и микросхемами моста USB-TTL UART:
Silicon Laboratories CP210X
FTDI FT232
Prolific PL2303
Arduino
CDC/ACM
3. С шиной LinkBus (Ethernet to UART device, подробнее см. http://www.devmel.com/linkbus).
Для адаптеров USB-TTL UART поддерживаются настройки:
Baud Rate: 1200 .. 250000
Data Bits : 5, 6, 7 или 8
Stop Bits 1 или 2
Parity Bit: none, even или odd
В приложении нет никакой рекламы. Несмотря на то, что в описании к программе для поддержки режима хоста USB требуются права root, программа все равно нормально работает с USB-TTL UART (например, с платами Arduino) и не на рутованном устройстве Android.
Выбор порта подключения и настройка параметров:
Запрос на подтверждение пользователем разрешения для подключения к устройству USB CDC (USB-TTL UART платы Arduino):
Общий вид на главное окно программы в отключенном и подключенном состоянии соединения с устройством USB CDC:
Программа для последовательного терминала на смартфонах. Можно использовать устройства USB на чипах Silicon Laboratories CP210X, FTDI FT232 и Prolific PL2303 (CDC/ACM UART для моста USB). Также можно использовать Zigbee Chip TI CC2531 (USB-Enabled SOC Solution для 2.4-GHz IEEE 802.15.4 и приложений ZigBee).
Предоставляет стандартный набор базового функционала, который предоставляют аналогичные программы на платформе PC. Поддерживаются все смартфоны, на которых есть порт USB с поддержкой режима хоста (OTG) — Samsung galaxy2 / galaxy 3 / galaxy note / galaxy note2 / Vega racer R3 и т. п. Требуемая версия Android: 3.1 (API Level 12) или более свежая.
[Быстрый старт]
1. Подключите кабелем OTG устройство к смартфону.
2. Операционная система Android определит подключенное устройство USB, и запросит разрешение на запуск приложения. Кликните OK, программа запустится.
3. Кликните кнопку «Settings» (она в виде гаечного ключа) для настройки параметров соединения. После внесенных изменений кликните на кнопку «Save» (чтобы она стала видна, прокрутите вниз окно настроек). Перезапустите программу, переподключите устройство, чтобы настройки вошли в силу.
4. Кликните на кнопку «Connect» (с иконкой в виде телефонной трубки) на верхней панели программы для подключения к устройству.
Можно настраивать параметры последовательного соединения — Baud rate, Data bits, Parity, Stop bits, также поддерживаются опции режима управления потоком данных (Handshaking Mode setting). Доступно ведение лога для принимаемых данных, для файла лога нужно указать путь наподобие «[External Storage Root] / USBTerminal / YYMMDD_hhmmss.log».
[Описание кнопок и функций главного окна]
— ASCII: выводить принимаемые данные как строку ascii.
— HEX: выводить принимаемые данные как шестнадцатеричную строку.
— BIN: выводить принимаемые данные как двоичную строку.
— Кнопка Connect (с иконкой в виде телефонной трубки): запускает подключение к устройству USB. После соединения картинка на кнопке поменяется на крестик, и кнопка будет работать для функции закрытия соединения.
— Кнопка Settings (с гаечным ключом): откроется окно для настройки параметров последовательного соединения.
— Галочки CR, LF (в верхней части, RX): конфигурация обработки разделения строк. Задает преобразование принимаемых символов возврата каретки и перевода строки перед выводом текста на экран.
— Кнопки состояния модема: показывают уровни сигналов CTS, DSR, CD, RI.
— Кнопка отображения описания устройства USB: откроется окно с подробными системными данными подключенного устройства USB.
— Очистка принятых данных: иконка с мусорной корзиной, стирает с экрана все принятые данные.
— Кнопка DTR: управляет состоянием сигнала модема DTR.
— Кнопка RTS: управляет состоянием сигнала модема RTS.
— Галочки CR, LF (в нижней части, TX): конфигурация обработки разделения строк. Управляет добавлением символов разделения строк к передаваемым данным.
— Поле ввода текста (TX): можно ввести данные для передачи в виде символов текста.
Передаваемые данные по умолчанию передаются как строки символов. Но можно вводить данные и в других форматах:
— Decimal: @ + 3 цифры (0..255), например CR: @013
— Hex: # + 2 hex-цифры, например CR: #0D
— Binary: & + 8 двоичных цифр, например CR: &00001101
Escape-символы @, #, & можно вводить, если их указать дважды, тогда будут переданы соответственно @, #, &.
— Кнопка передачи (в виде правой стрелки): запускает передачу данных в устройство USB.
— Кнопки макросов 1 .. 7: запускают макросы (можно применять для часто используемых передач).
— Кнопка редактирования макросов (с иконкой карандаша): откроется окно редактирования макроса.
[Пункты меню]
— Settings: откроется окно настроек параметров соединения (Serial Communication Settings).
— USB Descriptions: откроется окно с описанием подключенного оборудования USB.
— Edit Macro: откроется окно редактирования макроса.
— ASCII Code Table: откроется окно кодовой таблицы символов ASCII. Здесь можно выбрать нужный код, он автоматически вставится в строку ввода передаваемого текста.
— Help: система помощи.
Очень простая программа консоли соединения с устройством USB-Serial (CDC-ACM). Автором тестировалась а платами Arduino UNO, MEGA, а также с NXP LPC1769. При обнаружении совместимого устройства USB программа запросит разрешение на доступ:
Когда соединяетесь с устройством CDC-ACM, выберите в меню пункт Open Device.
[Возможности программы]
— Поддержка протокола CDC-ACM (Arduino, встраиваемые платформы, PSoC и т. п.
— Поддержка чипов FTDI (FT232RL, FT230X).
— Настройка скорости (1200 — 115200 bps).
— Настройка параметров соединения — Data bits, Parity Check, Stop bits, flow control, break options (не поддерживается в CDC-ACM).
— Отображение принимаемых данных в символьном, двоичном и шестнадцатеричном виде.
— Отправка результатов на e-mail.
— Отправка/прием различных комбинаций разделения строк (CR,LF или CR+LF).
— Опция размера шрифта.
С помощью этой программы Вы можете, к примеру, обмениваться данными между Android и платой Arduino UNO. И если на Вашем электронном устройстве стоит адаптер FTDI USB-Serial (FT232RL), то любой микроконтроллер можно соединить с устройством на Android.
[FAQ]
Q: Почему мой телефон/планшет (Android 3.1 или более новая версия) не совместим с программой?
A: Сейчас это редкость. Возможно Ваше устройство Android не поддерживает аппаратно функцию USB Host API.
Q: Но мой телефон/планшет поддерживает флешки USB, USB мышь и USB клавиатуру.
A: Это не USB Host API, а Linux USB Host. Пожалуйста, проверьте поддержку Вашим устройством Android функции USB Host API.
Q: Можно ли получить двоичный или исходный код программы?
A: Да, программа с открытым исходным кодом, см. страницу на github.
Основная программа: https://github.com/ksksue/Android-USB-Serial-Monitor-Lite.Библиотека (драйвер): https://github.com/ksksue/FTDriver.
Q: Какой может быть самый большой выходной ток для устройства USB?
A: Смартфоны: 150 .. 180 mA (Galaxy Nexus, Galaxy S2), планшеты: 400 .. 500 mA (ICONIA A500, Nexus 7).
Утилита UsbTerminal это программа эмулятора терминала (иногда она называется «monitor»). С её помощью можно использовать телефоны или планшеты с портом USB обмениваться данными с внешними устройствами. Телефон или планшет с системой Android должен поддерживать режим хоста USB, так называемый USB On-The-Go (USB-OTG). Также требуется кабель USB-OTG [4].
[Возможности программы]
• Поддержка устройств USB, принадлежащих классу CDC-ACM.
• Поддержка устройств на базе чипов FTDI.
• Поддержка устройств на базе Winchiphead-CH340/CH341 (пока эта функция экспериментальная, автор ждет обратной связи от пользователей с сообщениями о проблемах).
• Поддержка двух режимов ввода с клавиатуры:
1. Auto — работает как «настоящий» терминал, без специального поля ввода для подготовки отправляемых данных. Символы отправляются в последовательное устройство по мере их ввода, в соответствии с нажатиями кнопок на клавиатуре. Это режим по умолчанию.
2. С помощью выделенного поля ввода — ввод с клавиатуры сначала попадает в специальное текстовое поле, и отправляется в устройство только после нажатия на кнопку «Send».
• Поддержка отправки управляющих символов (например Ctrl-C).
• Поддержка управления выходными уровнями DTR и CTS.
• Запись сессий в лог-файлы. Затем эти логи могут быть проанализированы, отправлены по email и т. п.
• Большой буфер прокрутки (его размер конфигурируется).
• Мигающий курсор, показывающий текущую позицию на экране.
• Строка состояния (status line). Показывает статус соединения и сообщения об ошибках.
• Встроенная система помощи (help). Нет необходимости подключаться к Интернету для получения справки.
• Не требуется права root.
Ограничения: нет поддержки escape-последовательностей для перемещения курсора, управления цветом текста и т. п.. Это означает, что нет эмуляции VT100, и такие программы Unix, как vi, emacs, top, и т. д. не поддерживаются.
Поддерживаются устройства USB: Arduino на основе чипов FTDI (например оригинальный Arduino Uno), на основе класса CDC (например Arduino Uno R3) и на основе чипа CH340 (например дешевые клоны Arduino). Также поддерживаются любые устройства, которые используют микросхему FTDI FT232R.
Примечание: устройства Prolific (например, основанные на кристалле PL2303) в настоящий момент не поддерживаются.
Для пользователей Arduino: одно из достоинств UsbTerminal это метод обработки DTR. Обычно когда плата Arduino подключена к компьютеру PC, она перезагружается каждый раз приложением эмуляции терминала, которая подключена к ней. Это происходит из-за того, что PC переводит сигнал DTR в лог. 0 всякий раз при формировании соединения, и Arduino разработана так, что сбрасывается, когда сигнал DTR падает в лог. 0. Программа UsbTerminal работает по-другому — она не меняет автоматически уровень сигнала DTR. Когда Вы подключаете смартфон или планшет к плате Arduino и открываете UsbTerminal, плата Arduino продолжит работать так, как она это делала до сего времени. Если Вы хотите перегрузить плату Arduino, то можете просто управлять сигналом DTR в программе UsbTerminal с помощью специальной кнопки.
Компания ECYPH LLC анонсирует полное программное и аппаратное решение для поддержки терминала на Android. Вместе с кабелем идет бесплатная программа терминала FTDI UART Terminal, и это позволяет получить полноценную поддержку RS232 Serial Port. Эта программа может работать с любыми чипами компании FTDI.
На мой взгляд у этой программы есть главное достоинство — функция, которой нет ни у одной другой программы — возможность передавать файлы по протоколу XMODEM (и другим популярным коммуникационным протоколам). Это очень удобно для обновления программного обеспечения радиоаппаратуры и для обмена информацией в виде файлов.
Что еще немало важно — эта программа с открытыми исходниками (ссылка для закачки J2xxHyperTerm.7z)! Программу можно установить из Google play store, для неё доступно руководство пользователя AN_242, и можно установить программу локально через пакет apk, см. J2xxHyperTerm.zip.
Требования к операционной системе и устройству Android: Android OS 3.2 или более свежая, и аппаратная поддержка порта хоста USB.
[Возможности программы]
• Приложение запустится автоматически, когда Вы подключите к Android устройство USB на чипе FTDI: FT232R, FT245R, FT232H, FT2232D, FT2232H, FT4232H, FT230X, FT231X.
• Поддерживается USB TTL Serial, USB RS232 и высокоскоростные кабели USB.
• Поддерживает основной функционал терминала UART; легко адаптируется к функции консоли.
• Поддерживает сигналы управления потоком CTS/RTS, DTR/DSR и XOFF/XON.
• Поддерживает скорости 300 .. 921600 бод.
• Может сохранять (принимать) файл и отправлять файл по протоколам XModem, YModem и ZModem.
• Полностью совместима с USB 2.0 Full Speed.
Выводы: к сожалению, только одна программа показала хорошую устойчивость при приеме большого непрерывного потока данных — USB Serial Monitor Lite. Все остальные протестированные программы либо в таких условиях отказывались работать, либо слишком тормозили.
[Библиотеки для написания программ под Android]
Источник