DimonK пишет:Привет всем
организовать кольцо 2-х сом-портов на компе(простой обмен битами).
И Вам привет!
Про СОМх забываем, этот термин Вендовый термин здесь не применяется. В Линуксе любая сущность -- это файл. Если Вам удастся уловить смысл этой парадигмы, дальше пойдет легче. Итак, поехали.
Все что шевелится -- это процессы. Все, что не шевелится -- это файлы. Под файлом понимается все, откуда можно брать или, наоборот, записывать информацию. Таким образом, последовательный порт, который у железячников раньше именовался RS232C, в контексте Линукса -- это тоже файл.
Идем дальше. Что можно делать с файлом? Упрощенно: читать из него, писать в него. Применительно к последовательному порту, Вы копируете информацию из файла последовательного порта в обычный дисковый файл или же наоборот -- копируете инфу из обычного дискового файла в файл последовательного порта. Что называется: проще некуда!
Файлы последовательных портов располагаются в директории /dev наряду с файлами других устройств и портов. Файлы последовательных портов называются незатейливо: ttyS0, ttyS1, ttyS2. Обратите внимание, нумерация начинается с нуля. Поскольку в Линуксе большие и маленькие буквы в названиях файлов имеют значение, то имена нужно набирать так (в том регистре), как указано.
Следует также заметить, что поскольку файлы располагаются не в текущей директории (т.е. той, где Вы даете свою команду), то вы не можете обращаться к ним по одному лишь имени, Вам обязательно нужно указать полный путь. Например, так /dev/ttyS0
Таким образом копирование информации из порта в дисковый файл можно выполнить с помощью команды:
$ cat /dev/ttyS0 myfile.txt
(знак доллара набирать не надо! Это подсказка шела.)
Если нужно отправить содержимое файла в порт, то делаем так:
$ cat myfile.txt /dev/ttyS0
Процесс копирования будет идти "молча", т.е. на экране Вы ничего не увидите. Это тоже одна из парадигм Линукса -- зачем орать, создавать лишний шум, привлекать к себе внимание, если все идет хорошо? Но если Вы хотите видеть, как идет процесс, то можете "расщепить" поток информации на два. Один пойдет так, как Вы задумывали, а второй (дубль первого) -- направить на консоль. Делается это добавление канала и команды tee:
$ cat /dev/ttS0 | tee myfile.txt
Возможно Вам понадобится сначала настроить скорости последовательных портов (точнее -- терминалов). Делается это командой stty. Например, мне надо установить максимальную скорость обмена. Я делаю так:
$ stty -F /dev/ttyS0 115200
Да, и не забывайте, что волшебная комбинация Ctrl-C прекращает процессы. А комбинация Ctrl-D -- вводит в поток символ "конец файла", по получении которого команда cat сама прекращает свою работу работу.
Надеюсь, мой ликбез поможет еще кому-нибудь продвинуться в направлении "приручения" Линукса.
Live Free or Die