Оглавление
- Распиновка COM порта RS232
- Frequently asked questions about Serial Port Monitor
- Среда разработки
- Ярлыки
- Отправка данных
- Последовательный интерфейс RS-232 — обзор стандарта
- Телеграм-бот для передачи файлов и взаимодействия с системой QR-кодирования печатных форм и не только
- Feature list comparison
- Терминал для com порта windows 10
- Downloads & license
- Программный доступ к СОМ-порту [ править | править код ]
- Постановка задачи
- Выполнение задачи
- Putty как аналог гипертерминала
Распиновка COM порта RS232
Правильная распиновка СOM-порта RS232
Распиновка COM порта — RS232 интерфейс был сконструирован более пятидесяти лет тому назад. А после этого был стандартизирован. В различных периодах усовершенствования технических возможностей компьютеров успешно применялся для подключения к телефонной линии с помощью модема. На данный момент такой интерфейс считается как уже вчерашний день. В основном его невостребованность заключается слишком низким быстродействием. Так как там задействованы линейные сигналы в однофазной форме. То-есть не дифференциальные.
Наружный вид девяти-контактного коннектора RS232
В современных устройствах на смену интерфейсу RS-232 пришел новый, отличающейся существенным быстродействием — USB. Тем не менее, и до настоящего времени их можно встретить в действительности огромное количество в различных аппаратах. Последовательный порт, цоколевка которого описана ниже, очень востребован в изделиях предназначенных для промышленных целей, а также для медицинского оборудования.
В бытовых условиях необходимость в применении стыковочных проводов для соединения с COM-портом в большинстве случаев появляется в определенные моменты. Например: когда возникает необходимость работы с периферией ранних лет изготовления, и требующих создать взаимосвязь с персональным компьютером. Помимо этого, его можно часто обнаружить в девайсах для загрузки программы в микроконтроллер.
Характерные особенности порта
Что касается самой контактной колодки интерфейса RS-232 и ее кабельной составляющей, то они собраны на 9-пиновом разъеме D-Sub. Штыревые контакты размещенные в двухрядном варианте, для обеспечения точности подсоединения вилки к разъему, форма колодки имеет несимметричную конструкцию. Все контактные штырьки обозначены номерами, подробнее как делается распиновка COM порта обозначено в приведенной ниже таблице.
Таблица
Номер контакта | Назначение | Обозначение |
1 | Активная несущая | DCD |
2 | Прием компьютером | RXD |
3 | Передача компьютером | TXD |
4 | Готовность к обмену со стороны приемника | DTR |
5 | Земля | GND |
6 | Готовность к обмену со стороны источника | DSR |
7 | Запрос на передачу | RTS |
8 | Готовность к передаче | CTS |
9 | Сигнал вызова | RI |
Множество устройств во время своей работы задействует не все контакты, а только необходимую им часть, поэтому исходя из этого обусловливается реальная распиновка COM-порта. Необходимая информация об это имеется прилагаемой документации к соответствующему оборудованию.
Соединительный кабель
Если нет необходимости задействования все контактной группы, то в таком случае можно использовать обычную витую пару. При этом ее отдельные провода припаиваются к вилке и контактам в колодке разъема. Ввиду ограниченного пространства в самой колодке, в местах пайки провода желательно помещать в кембрик.
Наибольшее расстояние связи относительно стандарта должна быть более 15 метров. Если требуется ее увеличение, тогда для этого нужно использовать экранированный провод.
COM порт — лекция
Предыдущая запись Предварительный усилитель hi-fi
Следующая запись Проекторы для кинотеатра
Frequently asked questions about Serial Port Monitor
Serial Port Monitor displays, logs and analyzes serial communication.
To start a serial monitoring session download and launch Serial Port Monitor. Then click ‘Start monitoring’ to initiate the monitoring session.
Yes, Serial Port Monitor lets you monitor an unlimited number of serial ports at a time. All you need to do is to launch a new instance of the software for every new COM port interface.
Serial Port Tester is a professional software that comes with a slew of powerful features, including advanced filtering and search options, built-in terminal, convenient data visualizers, the ability to record serial communication data to a file.
Среда разработки
Главный критерий выбора среды разработки — наличие выделенных библиотек для поддержки последовательных портов.
Альтернатива, которая заключается в прямом использовании Win32 API, трудна, неинтуитивна и иногда плохо читается. |
Поэтому нет смысла усложнять себе жизнь. Кроме того, многие среды определенно облегчают создание простых, в использовании, приложений. Это определенно хорошее изменение для кривых консольных программ.
Мы выбрали платформу .NET и Visual C# 2010 для написания своей программы, но ничто не мешает вам написать такую программу, например, на Java. Процесс разработки приложений и даже необходимые функции в Java очень похожи, поэтому проблем с переводом на другой язык возникнуть не должно .
Если кто-то уже имел дело с C, C++ или Java, переход на C# не должен стать большой проблемой. Пользователей, предпочитающих Bascom, Pascal и другие подобные языки, может заинтересовать Visual Basic. Однако мы рекомендуем им C#, потому что он представляет собой гораздо более популярное семейство языков, и в Интернете легче найти по нему помощь.
Visual C# Express 2010 можно бесплатно загрузить с веб-сайта Microsoft , школьники и студенты могут бесплатно загрузить Visual Studio 2010 с MSDNAA. Для остальных лицензия на Visual Studio, к сожалению, платная. Мы же используем экспресс-версию.
После успешной установки откройте Visual C# 2010 Express и выберите:
File->New Project
Появится следующее окно (в полной версии Visual Studio 2010 есть выбор из большего количества типов проектов).
Мы выбираем Windows Forms Aplication Visual C# , а внизу выбираем имя для нашего проекта и нажимаем ОК. Мы должны увидеть представление Designer:
В нем мы увидим, как выглядит наше приложение. Если теперь мы нажмем зеленую кнопку «Play» на верхней панели, или «Debug->Start», мы увидим, что наша программа в настоящее время является лишь пустым окном, и ее единственная функция — 3 кнопки в правом верхнем углу.
Рекомендуется сразу расположить панели параметров так, чтобы работать с программой было удобнее. Сначала нажмите на молоток, отмеченный кружком. Он активирует панель с элементами, которые можно добавить в нашу форму.
Чтобы изменить положение панели, нажмите на нее левой кнопкой мыши и переместите. Мы расположили ее справа, а затем щелкнули на булавке вверху, которая называется «Auto Hide» . Теперь, когда мы наведим указатель мыши на панель справа, открывается панель инструментов. |
После щелчка правой кнопкой мыши в окне Form1 и выбора «Properties» появятся параметры объекта. Этой вкладкой мы будем пользоваться часто. Вот почему мы переместили его вправо без автоматического скрытия. А проект перенесли в левую часть экрана. В конечном итоге все выглядит так:
Ярлыки
_удалить
(17)
1С
(93)
1С++
(8)
1Cpp.dll
(1)
1cv7evt.txt
(1)
3G-модем
(1)
автоматизация
(5)
автоматическое обновление
(1)
авторское право
(1)
АгентПлюс
(10)
АгентПлюс Сервер
(2)
администрирование
(10)
администрированиe
(162)
аккумулятор
(2)
активация
(1)
алгоритмы
(5)
антивирус
(6)
аренда
(1)
АТС
(2)
аудит
(1)
банки
(1)
батарея
(2)
безопасность
(4)
Бест Звит
(1)
бизнес
(1)
виртуализация
(2)
внедрение
(2)
война
(2)
восстановление
(1)
восстановление пароля
(1)
выражения
(1)
геокодирование
(2)
гипервизоры
(1)
ГИС
(1)
горячие клавиши
(1)
громкость
(1)
групповые политики
(1)
группы
(1)
документация
(2)
доступ
(1)
драйвера
(5)
дурдом
(1)
животные в городе
(3)
журнал событий
(3)
забавно
(14)
загрузка
(6)
Запорожье-2
(1)
заправка
(2)
запросы
(2)
защита
(1)
ибп
(2)
игры
(5)
инструкции
(7)
интересное
(32)
интернет
(1)
интерфейс
(1)
информация
(1)
историческое
(1)
калибровка
(1)
картинки
(1)
картриджи
(4)
Киев
(1)
кино
(1)
клонирование
(1)
книги
(1)
коды ошибок
(2)
коды событий
(1)
командная строка
(2)
координаты
(1)
копирайт
(1)
КПК
(11)
личное
(1)
локализация
(1)
Мариуполь
(1)
маркеры
(1)
маршрутизация
(4)
математика
(1)
мебель
(1)
метки
(1)
мини-АТС
(1)
мониторинг
(2)
МТС
(1)
музыка
(3)
МФУ
(2)
настройка
(2)
ностальгическое
(1)
обжимка кабеля
(2)
обмен данными
(1)
обозреватель сети
(1)
обслуживание
(1)
Одесса
(1)
онлайн сервисы
(3)
оптимизация
(7)
организация рабочего места
(1)
ОС
(1)
оснастки
(1)
очистка диска
(1)
ошибки
(8)
памятка
(5)
панель управления
(1)
парсер
(1)
парсинг
(4)
переворот
(5)
перенаправление принтеров
(1)
печать
(2)
пиратство
(1)
платформа
(1)
ПО
(4)
познавательно
(2)
пользователи
(1)
порты
(2)
посуточно
(1)
почта
(1)
правила
(1)
принтеры
(7)
природа
(1)
проблемы
(53)
проблемы печати
(7)
проблемы печати из 1С
(6)
проверка подлинности
(2)
программирование
(18)
производственное
(40)
прокси
(1)
профиль пользователя
(3)
процессоры
(1)
прямые запросы
(7)
ПУЭ
(1)
ПФУ
(1)
пьеса
(1)
раскладка
(1)
расписание поездов
(1)
рассказы
(7)
реестр
(7)
режим бога
(1)
резервное копирование
(1)
рекомендации
(3)
рецепты
(2)
САПР
(1)
сатира
(1)
сетевая печать
(6)
сетка цветов
(1)
сеть
(6)
синхронизация данных
(1)
сканирование
(1)
СКД
(1)
службы
(3)
смешное
(60)
снежинки
(1)
события
(2)
сообщения
(1)
ссылки
(17)
ссылки на ПО
(11)
статьи
(5)
стихи
(2)
строительство
(1)
строка соединения
(1)
строки
(1)
теория
(2)
терминология
(1)
тестирование
(1)
технологии
(2)
ТЗ
(1)
торренты
(1)
трудности перевода
(3)
удаление
(1)
Украина
(4)
улыбнуло
(2)
установка
(2)
утилиты
(4)
форматы видео
(1)
формы
(1)
фразы
(1)
франчайзинг
(1)
Херсон
(1)
хроники
(1)
ценообразование
(1)
цитаты
(34)
числа
(1)
чужие мысли
(43)
шаблон
(1)
шифрование
(1)
шрифты
(1)
ЭККР
(1)
экран приветствия
(2)
электропроводка
(1)
эмулятор
(2)
Югославия
(1)
язык запросов
(1)
Ясиноватая
(1)
active directory
(11)
Alawar
(1)
amd
(1)
android
(13)
apcupsd
(1)
applus.dll
(1)
avast
(2)
backup
(1)
BartPE
(1)
base.sdf
(1)
BIOS
(2)
bluetooth
(1)
bmc
(1)
boot
(3)
Brother
(2)
BSOD
(1)
CAD
(1)
canon
(1)
CAPICOM
(1)
Cisco AnyConnect
(3)
cleanmgr
(1)
cleanwipe
(1)
COM
(2)
compmgmt
(1)
Daemon Tools
(1)
dcpromo
(2)
dfs
(1)
dial-up
(1)
dns
(1)
dnscache
(1)
DropBox
(1)
ERP
(1)
event log
(3)
Excel
(11)
explorer
(3)
firefox
(5)
flash
(1)
from1c.zip
(3)
(2)
gpo
(1)
gprs
(1)
gps
(7)
gpstrack.txt
(1)
grub
(1)
hard reset
(1)
HASP
(1)
hdd
(2)
hpmup081.bin
(2)
html5
(1)
iGo8
(3)
intel
(1)
ipmi
(1)
ipv4
(1)
ipv6
(1)
iso
(1)
KML
(1)
kms
(1)
LineAge
(1)
linux
(1)
liveupdate
(1)
Lotus Notes
(1)
MD Office
(1)
MediaServer
(1)
mlg
(4)
mmc
(1)
ms office
(2)
msg
(1)
msxml
(1)
nmea
(1)
Norton
(1)
nslookup
(1)
NTLDR is missing
(1)
olap
(1)
ole
(5)
OS
(1)
panasonic
(2)
pdf
(1)
ping
(1)
RDP
(10)
RIP
(1)
root-права
(2)
RRAS
(1)
Samsung
(2)
SAP
(1)
SEP
(1)
skype
(4)
smart
(1)
Smart-UPS
(1)
SPTD
(1)
SQL
(21)
ssd
(1)
Symantec
(7)
sysprep
(1)
TCP/IP
(3)
tda-100
(2)
TeamViewer
(2)
to1C.zip
(2)
torrents
(1)
tp-link
(2)
ubuntu
(1)
UltraISO
(1)
upgrade
(1)
uptime
(1)
USB
(5)
UTF-8
(1)
v7plus.dll
(1)
viber
(1)
Vista
(1)
VPN
(2)
Wake-on-LAN
(1)
wifi
(4)
windows
(106)
Windows 2003 Server
(11)
Windows 2008 Server
(1)
Windows 7
(7)
windows 8
(1)
windows features
(1)
windows server
(4)
windows update
(2)
windows xp
(4)
wmi
(1)
Word
(3)
wsus
(2)
XML
(2)
youtube
(1)
Отправка данных
Когда мы нажимаем кнопку «Отправить», текущее значение поля NumericUpDown должно быть отправлено через COM-порт. Для этого создаем еще одно событие двойным щелчком в дизайнере. Вот следующий код:
private void butSend_Click(object sender, EventArgs e)
{
if (port.IsOpen)
{
DodajKolorowy(rtbTerminal, ((Int32)numericSend.Value).ToString(«X») + » «, System.Drawing.Color.Black);
Byte[] tosend = { (Byte) numericSend.Value};
port.Write(tosend, 0, 1);
}
else System.Windows.Forms.MessageBox.Show(«Для отправки байта необходимо установить соединение»);
}
1 2 3 4 5 6 7 8 9 10 |
privatevoidbutSend_Click(objectsender,EventArgse) { if(port.IsOpen) { DodajKolorowy(rtbTerminal,((Int32)numericSend.Value).ToString(«X»)+» «,System.Drawing.Color.Black); Bytetosend={(Byte)numericSend.Value}; port.Write(tosend,,1); } elseSystem.Windows.Forms.MessageBox.Show(«Для отправки байта необходимо установить соединение»); } |
Здесь стоит отметить несколько моментов. Во-первых, функция ToString с аргументом «X» преобразует числа типа int в шестнадцатеричный код. Условие if-else предотвращает попытку отправки сообщения при неактивном соединении. Теперь давайте сосредоточимся на функции AddColor. Изменение цвета шрифта необходимо, поскольку исходящие, входящие и статусные сообщения должны отображаться в одном текстовом поле. Однако, если мы попробуем сделать это обычным способом и добавим текст xxx.Text + = «string»; предыдущий текст также изменит цвет, полностью испортив эффект. Следовательно, вам нужно обойти проблему с помощью дополнительной функции, которая использует команду AppendText :
private void Добавить цвет(System.Windows.Forms.RichTextBox RichTextBox, string Text, System.Drawing.Color Color)
{
var StartIndex = RichTextBox.TextLength;
RichTextBox.AppendText(Text);
var EndIndex = RichTextBox.TextLength;
RichTextBox.Select(StartIndex, EndIndex — StartIndex);
RichTextBox.SelectionColor = Color;
}
1 2 3 4 5 6 7 8 |
privatevoidДобавитьцвет(System.Windows.Forms.RichTextBox RichTextBox,stringText,System.Drawing.Color Color) { varStartIndex=RichTextBox.TextLength; RichTextBox.AppendText(Text); varEndIndex=RichTextBox.TextLength; RichTextBox.Select(StartIndex,EndIndex-StartIndex); RichTextBox.SelectionColor=Color; } |
Зная начальную и конечную длину текста в поле, мы выбираем данную часть строки, а затем меняем цвет только выбранной части. Это позволит обойти проблему окрашивания всего текста стандартной функцией String. Поскольку она нам понадобится в нескольких местах, создание функции, подходящей для этого, является для нас спасением.
Последовательный интерфейс RS-232 — обзор стандарта
Это широко используемый последовательный интерфейс синхронной и асинхронной передачи данных, определяемый стандартом EIA RS-232-C и рекомендациями V.24 CCITT. Изначально он создавался для связи компьютера с терминалом. В настоящее время используется в самых различных сферах.
Интерфейс RS-232-C соединяет два устройства. Линия передачи первого устройства соединяется с линией приема второго и наоборот (полный дуплекс) Для управления соединенными устройствами используется программное подтверждение (введение в поток передаваемых данных соответствующих управляющих символов). Возможна организация аппаратного подтверждения путем организации дополнительных RS-232 линий для обеспечения функций определения статуса и управления.
Стандарт | EIA RS-232-C, CCITT V.24 |
Скорость передачи | 115 Кбит/с (максимум) |
Расстояние передачи | 15 м (максимум) |
Характер сигнала | несимметричный по напряжению |
Количество драйверов | 1 |
Количество приемников | 1 |
Схема соединения | полный дуплекс, от точки к точке |
Порядок обмена по интерфейсу RS-232C:
Наименование | Направление | Описание | Контакт(25-контактный разъем) | Контакт(9-контактный разъем) |
DCD | IN | Carrier Detect (Определение несущей) | 8 | 1 |
RXD | IN | Receive Data (Принимаемые данные) | 3 | 2 |
TXD | OUT | Transmit Data (Передаваемые данные) | 2 | 3 |
DTR | OUT | Data Terminal Ready (Готовность терминала) | 20 | 4 |
GND | — | System Ground (Корпус системы) | 7 | 5 |
DSR | IN | Data Set Ready (Готовность данных) | 6 | 6 |
RTS | OUT | Request to Send (Запрос на отправку) | 4 | 7 |
CTS | IN | Clear to Send (Готовность приема) | 5 | 8 |
RI | IN | Ring Indicator (Индикатор) | 22 | 9 |
Интерфейс RS-232C предназначен для подключения к компьютеру стандартных внешних устройств (принтера, сканера, модема, мыши и др.), а также для связи компьютеров между собой. Основными преимуществами использования RS-232C по сравнению с Centronics являются:
Назначение сигналов следующее:
Для двухпроводной линии связи в случае только передачи из компьютера во внешнее устройство используются сигналы SG и TxD. Все 10 сигналов интерфейса задействуются только при соединении компьютера с модемом.
Формат передаваемых данных показан на рисунке ниже. Собственно, данные (5, 6, 7 или 8 бит) сопровождаются стартовым битом, битом четности и одним или двумя стоповыми битами. Получив стартовый бит, приемник выбирает из линии биты данных через определенные интервалы времени
Очень важно, чтобы тактовые частоты приемника и передатчика были одинаковыми, допустимое расхождение — не более 10 %). Скорость передачи по RS-232C может выбираться из ряда: 110, 150, 300, 600, 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200 бит/с
Все сигналы RS-232C передаются специально выбранными уровнями, обеспечивающими высокую помехоустойчивость связи (рисунок ниже). Отметим, что данные передаются в инверсном коде (логической единице соответствует низкий уровень, логическому нулю — высокий уровень).
Для подключения произвольного УС к компьютеру через RS-232C обычно используют трех- или четырехпроводную линию связи, но можно задействовать и другие сигналы интерфейса.
Обмен по RS-232C осуществляется с помощью обращений по специально выделенным для этого портам:
Телеграм-бот для передачи файлов и взаимодействия с системой QR-кодирования печатных форм и не только
(Топчий Д.Ю.) Данный телеграм-бот (вернее его серверная часть) написан с целью оперативной передачи фото документов или pdf-файлов на сервер вашей Фирмы от доставщиков или внешних пользователей. Имеет систему защиты от «незванных гостей», может фильтровать фото с QR и без, автоматически преобразует pdf в jpg и прочее. Могут использовать неограниченное количество сотрудников, которым разрешен доступ. Удобен и прост в использовании. Может работать в паре с https://infostart.ru/public/893115/ (QR — штрихкодирование документов БЕЗ изменения печатных форм, с произв. алгоритмами создания QR -кода и обработки для УТ 11 (все), ERP 2, КА 2, УТ 10.3, УПП 1.3, Розница 2.2, УНФ 1.6, БП 3)
17988 руб.
Feature list comparison
Check out the main differences in feature packs of free open source and advanced versions
# | Options | Free | Advanced |
---|---|---|---|
1 | Support for RS232 ports | ||
2 | Compatibility with RS422, RS485 ports | ||
3 | Reading COM port data and saving it to a file | ||
4 | Logging data from any number of serial ports at a time | ||
5 | Capturing all data received by a COM port | ||
6 | The possibility to add several ports for monitoring in one session | ||
7 | Support for all baud rates | ||
8 | Search options | ||
9 | Filtering of recorded IPRs | ||
10 | Availability of several data viewing modes | ||
11 | Sniffing COM ports already opened by other apps | ||
12 | Command line support | ||
13 | Sessions comparison | ||
14 | Parsing of Modbus RTU and Modbus ASCII protocols | ||
15 | Redirected file can be either split into a bunch of files or can be limited to user-defined size | ||
16 | The ability to copy captured data to clipboard |
Терминал для com порта windows 10
Терминал (для работы с COM портом) под Windows.
– Требуемый функционал был разбросан по нескольким программам и это было очень не удобно.
– Часть требуемых функций не было и вовсе.
– Часть программ банально падали в самый неподходящий момент.
– Часть функций реализованы с ошибками.
Так жить нельзя и работать тоже .
Значит надо создать свою программу, с необходимым функционалом.
Данный проект задумывался как вспомогательный для тестирования большого проекта связанного
с телеметрией. В проекте требовалось принимать и передавать данные через COM порт компьютера.
Проект готов и сдан. Программа осталась и продолжает использоваться по назначению, для отладки
На текущий момент программа продолжает дорабатывается, исправляются ошибки, добавляются
В данной статье будут публиковаться все изменения и нововведения сделанные в программе.
Краткое описание программы.
Программа создана в среде Microsoft Studio 2008, на языке VB.
Репозитарий программы представлен на GitHub, готовый бинарный файл(exe) в виде Zip архива.
Собранная программа представляет из себя один запускаемый файл.
Программа не требует установки и работает из любого места.
Программа не требует для запуска привилегий администратора.
1. Подключаться к любому com порту в системе.
2. Выставлять параметры работы com порта, включая нестандартные скорости работы порта
(при условии что драйвер windows поддерживает нестандартные скорости).
3. Производить запись принимаемых данных в файл.
4. Передавать в порт строку с разными концовками в виде дополнительных кодов.
5. Циклически передавать в порт строку с заданным интервалом времени.
6. Передавать в порт файл.
Программа пока не может:
1. Разбирать ESC последовательности.
2. Вести историю передаваемых строк.
3. Передавать в порт кода нажатых клавиш в окне приема и передачи.
Текущая версия: v1.3.2
Вывод подробного описания СОМ портов.
Проигрывание сценария из текстового файла.
Пример сценария (Файл TXT), формат:
81 01 04 07 03 FF > 100 81 01 04 07 02 FF
Перевод строки в TXT-HEX виде в байтовый массив и передача в СОМ порт.
Версия: v1.2.2
Добавлена история ввода передаваемых строк.
Версия: v1.2.1
Внесены изменения в интерфейс. Часть функций вынесены в окно приема.
Добавлена функция Вкл/Выкл печати символа с кодом 0x0A.
Решено: При закрытии порта продолжалась передача в порт.
Добавлена подсказка при наведении курсора на элементы управления.
При запуске программы производится автоматический поиск СОМ портов в системе.
Версия: v1.1.0
Добавлена передача в порт кодов нажатых клавиш в окне приема и передачи.
Downloads & license
Termite 3.4 is copyrighted software that is free for personal and commercial use.
You may use it and distribute it without limitations. You may however not remove
or conceal the copyright. There are no guarantees or warranties whatsoever; use
it at your own risk.
The example plug-in filters are distributed under the
zlib/libpng (open
source) license.
- Termite version 3.4 — complete setup (332 KiB)
- A self-extracting setup that contains Termite and all plug-ins and
documentation (but excluding the source code for these plug-ins). This setup
is provided to conveniently and quickly install Termite. (Note that Termite
does not require installation, but it may just be convenient
to do so.) - Termite version 3.4 (program only) (76 KiB)
- Termite RS232 terminal in a ZIP archive. Just unzip and run; Termite writes
nothing in the registry, no installation or uninstallation is required. - GNU Unifont as a TrueType file (3.2 MiB)
- The GNU Unifont
allows showing control characters as characters, rather than as
. No installation
of this font is needed; just unzip the font into the same directory as where
Termite resides. - «Time stamp» filter, including source code (36 KiB)
- A filter that adds a time-stamp to received data. For those who want to
write their custom plug-in filter(s), the commented source code that this ZIP
file also contains may serve as a starting point. - «Hexadecimal View» filter, including source code (32 KiB)
- A filter that shows the received data as a hex dump instead of as plain
text, and that also allows you to send non-ASCII bytes by typing hexadecimal
values on the transmit line. This ZIP file contains a compiled filter as
well as commented source. - «Highlight» filter, including source code (41 KiB)
- A filter that shows any received text that matches one of several patterns
in a different (user-selectable) colour. The patterns are regular expressions.
This ZIP file contains a compiled filter as well as commented source. It uses
the SLRE library
for matching regular expressions. The source code for the
SLRE library is
not included in the above ZIP file, and must be downloaded
separately. - «Status LEDs» filter, including source code (27 KiB)
- This plug-in filter shows the status of the auxiliary modem and handshaking
lines (CTS, DSR, RI and CD) and it allows you to toggle the RTS and DTR lines.
The ZIP file contains a compiled filter as well as commented source code. - «Log file» filter, including source code (34 KiB)
- This plug-in filter writes all data that it receives to a log file (new data
is appended to existing data). The ZIP file contains a compiled filter as
well as commented source code and project files for Microsoft Visual Studio. - «Function Key macros» filter, including source code (28 KiB)
- This plug-in filter transmits a user-defined string of text on the press of
a function key (keys F1 to F12 are currently supported). The ZIP file contains
a compiled filter as well as commented source code. - «Automatic Reply» filter, including source code (48 KiB)
- This plug-in filter checks the incoming text or data for keywords or patterns.
When it detects such a pattern, it automatically transmits a user-defined
reply. The «pattern» used for matching is regular expression. A series
of such match/reply rows can be used to handle a simple handshake protocol.
The ZIP file contains a compiled filter as well as commented source code.
This filter uses the SLRE library
for matching regular expressions. The source code for the
SLRE library is
not included in the above ZIP file, and must be downloaded
separately. - Writing plug-in filters for Termite (124 KiB)
- Programmer’s documentation (Adobe Acrobat format).
- Translating Termite (92 KiB)
- A guide to add a translation of the user interface of Termite (Adobe Acrobat
format).
Recent changes (version 3.4)
- Bug fix in handling the backspace character in received text.
- Bug fixes in handling the display of forwarded data (received data that
is re-transmitted on a second port). - The time-stamp filter now has a setting to time-stamp every new line
(instead of only time-stamping after a minimum delay has been passed). - The documentation for writing plug-in filters has been updated.
Программный доступ к СОМ-порту [ править | править код ]
UNIX
COM-порты в операционной системе Unix (Linux) — это файлы символьных устройств. Обычно эти файлы располагаются в каталоге /dev и называются
Для программного доступа к СОМ-порту необходимо открыть на чтение/запись соответствующий файл и сделать вызовы специальных функций tcgetattr (для того, чтобы узнать текущие настройки) и tcsetattr (чтобы установить новые настройки). Также может потребоваться сделать вызовы ioctl с определенными параметрами. После этого при записи в файл данные будут отправляться через порт, а при чтении программа будет получать уже принятые данные из буфера СОМ-порта.
Устройства с именами «ttyxx» используются как серверные, то есть приложение, открывшее данное устройство, обычно ожидает входящего звонка от модема. Классическим таким приложением, используемым по умолчанию, является getty, которая ожидает входящего звонка, далее настраивает COM-порт в соответствии с файлами конфигурации, выводит туда «login: «, принимает имя пользователя и запускает как потомка команду «login ИмяПользователя», со стандартным вводом и выводом, перенаправленными в COM-порт. Эта команда в свою очередь запрашивает и проверяет пароль, и в случае успеха запускает (не как потомка, а вместо себя вызовом execve в том же процессе) default user shell, прописанный в файле /etc/passwd.
Эта технология исторически возникла в 1970-е годы, когда под ОС UNIX использовались компьютеры вроде PDP-11 (в СССР серия называлась СМ ЭВМ) или VAX, позволяющие подключение многих терминалов для работы многих пользователей. Терминалы — а значит, и весь интерфейс пользователя — при этом подключались через последовательные порты, с возможностью подключения вместо терминала модема и дальнейшего дозвона на компьютер по телефону. До сих пор в UNIX-подобных ОС существует терминальный стек, и обычно 3 реализации терминалов — последовательный порт, консоль текстового режима экрана+клавиатура, и «обратная петля» в один из открытых файлов управляющего приложения (так реализованы telnetd, sshd и xterm).
Клиентские устройства последовательного порта, предназначенные для совершения звонков вовне, в многих UNIX (не во всех) называются cuaxx.
Так как последовательный порт в UNIX доступен только через терминальный стек, он может быть управляющим терминалом для процессов и групп (посылать SIGHUP при разрыве связи от модема и SIGINT при нажатии Ctrl-C), на уровне ядра поддерживать редактирование последней введенной строки клавишами стрелочек, и т. д. Для отключения этой возможности с целью превращения устройства в «трубу» для потока байт необходимы вызовы ioctl.
Windows
Имеется викиучебник по теме «COM-порт в Windows (программирование)» |
С последовательными портами в Win32 работают как с файлами. Для открытия порта используется функция CreateFile. Портов может быть много, поэтому они обозначаются как COM1, COM2 и т. д. по порядку обнаружения драйверов соответствующих устройств. Первые 9 портов доступны в том числе как именованные каналы для передачи данных (доступны по именам «COM1», «COM2», …), такой метод доступа считается устаревшим. Рекомендуется ко всем портам обращаться как к файлам (по именам «\.COM1», «\.COM2»,… «\.COMx»).
Поиск PnP-имен устройств в системе осуществляется вызовом SetupDiGetClassDevs. В реестре существует раздел HKEY_LOCAL_MACHINEHARDWAREDEVICEMAPSERIALCOMM, в котором отображаются имеющиеся в данный момент COM-порты.
Для каждого порта в реестре имеется раздел. Эти разделы имеют такие имена:
где последнее значение «Serial10000» — уникальный номер для каждого нового добавленного в систему COM-порта, для второго — «Serial10001» и т. д.
OS/2
Имеющийся драйвер COM.SYS поддерживает только 4 COM-порта, каждый из которых должен иметь свою линию прерываний. Для обслуживания COM-портов с общей линией прерывания необходимо воспользоваться драйвером SIO .
Постановка задачи
Нужно отправить из Qt-приложения пакет данных на устройство с микроконтроллером STM8. К компьютеру присоединён USB-RS485 преобразователь, а на устройстве соответственно преобразователь RS485-UART. Нужно учесть, что на линии связи возможен высокий уровень помех. В этой ситуации было принято решение написать быструю и легкую библиотеку для гарантии целостности принятых данных. *Гарантию доставки данных брала на себе бизнес-логика. Библиотеку решил назвать Sheller.
Требования к разрабатываемой библиотеки были следующие:
-
Фиксированная длинна пакета: количество байт, которые пользователь хочет передать не влияют на общую длину пакета, она остается фиксированной;
-
Минимальное количество внутренних буферов;
-
Наличие надежной, быстровычисляемой контрольной суммы;
-
Побайтного занесения данных;
-
Возможность работы в условиях поврежденных и потерянных байт в пакете;
Выполнение задачи
Принцип работы: определимся с понятием пакета. Пакет представляет собой стартовый байт, данные пользователя и два байта контрольной суммы CRC-16:
В начале использовался алгоритм контрольной суммы CRC8, однако в ходе тестов было выяснено, что при длине пакета в 8 байт количество коллизий было слишком высоким. Тест заключался в следующем: некоторые пакеты специально отправлялись битыми (менялись значения или вовсе удалялся байт из пакета). В итоге на каждый 50000й пакет происходила коллизия CRC и неправильный пакет передавался в бизнес-логику.
Первый случай коллизии происходил, когда значения байтов в пакете были изменены таким образом, что их контрольная сумма осталась прежней:
А во втором случае часть побитого пакета с частью целого пакета соединялись в один пакет, который проходил по контрольной сумме:
*Красной чертой обозначен пакет, последние байты которого не дошли до приемника. Зеленой чертой показан нормальный пакет. Синей чертой изображен пакет, который был отправлен в бизнес-логику.
Поэтому было принято решение перейти на CRC16. При запуске тоже теста было пройдено более 2млн пакетов без коллизий и тест был завершен удачно. Вычисление контрольной суммы происходит по табличному методу для ускорения работы.
В качестве StartByte используется значение 0x23. С помощью этого числа парсер делает предположение, что с этого места начинается пакет. Далее парсер проверяет количество байт в буфере и если их столько же или больше чем длинна пакета, то производится подсчет контрольной суммы. Если подсчитанная и принятая контрольные суммы совпадают, то пакет выдается и бизнес логику приложения.
При приеме байтов мы записываем их в циклический буфер, в основном я это делаю в обработчике прерывания принятого байта.
Работу всей библиотеки можно описать следующей схемой:
Данная библиотека реализована на Си и на C++. C++ версия предназначена в основном для Arduino.
Для проверки работы Sheller на микроконтроллере был написан ShellerTerminal:
*представляет собой обычный COM-port терминал с использованием алгоритма Sheller.
Putty как аналог гипертерминала
Если вы хотите радикально избавиться от устаревшего гипертерминала, придется искать его аналоги для Windows 7.
Из наиболее удобных вариантов аналога мне видится утилита Putty (тем более она входит в арсенал практически любого администратора). Все, что необходимо сделать для работы Putty с локальным COM-портом, выполнить следующую настройку:
- Запустить утилиту putty.exe и в дереве настроек перейти в раздел Connection->Serial
- И задать нужные параметры для подключения к конкретному оборудованию. Для подключения к устройству Cisco выставляем следующие параметры:
- Bits per Second –> 9600
- Data bit –> 8
- Parity –> None
- Stop bit–> 1
- Flow control –> None
Затем возвращаемся в начальное окно Putty, в качестве типа соединения указываем Serial и указываем COM порт, к которому подключено оборудование (например, COM1)
Жмем кнопку Open и — вуаля! – открывается искомая консоль!