<?xml version="1.0" encoding="koi8-r"?>
<rss version="0.91">
<channel>
    <title>OpenForum RSS: Работа с com-портом в Linux</title>
    <link>https://opennet.me/openforum/vsluhforumID9/9206.html</link>
    <description>Здравствуйте!&lt;br&gt;&lt;br&gt;Возникла необходимость научиться работать с com-портом под Linux. &lt;br&gt;&lt;br&gt;Мой прошлый опыт в этом направлении, к сожалению, относится к далеким временам лет 15-20 назад. Разработки были под голый DOS и все было проще пареной репы: расчеты/логика на ЯВУ, работа с портами/памятью - inline вставки на ассемблере или отдельно собираемые .obj на том же ассемблере. Продукты с &quot;доведенной&quot; логикой прогоняли под профайлером и пару-тройку самых медленных функций тоже переписывали на ассемблере.&lt;br&gt;&lt;br&gt;Интернет пестрит статьями по теме, но основная масса, насколько я понимаю, описывает процесс со стороны embedded&#092;ARM и т.п., что мне не очень близко.&lt;br&gt;&lt;br&gt;Хотелось бы советов от почтеннейшей публики - с чего мне проще начать со своим &quot;багажом&quot;, чего остерегаться, на что обратить внимание.&lt;br&gt;&lt;br&gt;В частности интересны такие вопросы:&lt;br&gt;1. Если нет особо жестких требований по времени - достаточно ли просто работы с /dev/ttySX, в частности непонятно - можно ли контролировать последовательность приема-передачи (мне важно зна</description>

<item>
    <title>Работа с com-портом в Linux (newbie)</title>
    <link>https://opennet.me/openforum/vsluhforumID9/9206.html#5</link>
    <pubDate>Wed, 03 Aug 2011 18:09:09 GMT</pubDate>
    <description>&amp;gt;&amp;gt; 1. Если нет особо жестких требований по времени - достаточно ли просто &lt;br&gt;&amp;gt;&amp;gt; работы с /dev/ttySX, в частности непонятно - можно ли контролировать последовательность &lt;br&gt;&amp;gt;&amp;gt; приема-передачи (мне важно знать, что такой-то байт был получен до или &lt;br&gt;&amp;gt;&amp;gt; после отправки такой-то команды)?&lt;br&gt;&amp;gt; Точная привязка по времени невозможена даже из-за буфера в 16550. В обычном &lt;br&gt;&amp;gt; Unix время между приходом байта в порт и чтением из /dev/ttySx &lt;br&gt;&amp;gt; никак не регламентировано. Посмотри внимательнее на протокол - если нельзя сделать &lt;br&gt;&amp;gt; дисциплину запрос-ответ, то может понадобится какая-нибудь RTOS.&lt;br&gt;&lt;br&gt;Я выразился невнятно. Точная привязка ко времени - не нужна, нужно знать что такой-то ответ пришел после такой-то команды, т.е. порядок ответов относительно команд, а не относительно времени. Железка отвечает за известное время и всегда шестью байтами, если не все нужны, лишние - пустые, первый всегда маркер ответа (не может встречаться в данных). По своей инициативе ничего не присылает, но если долго (около 40 секунд) нет команд, сиг</description>
</item>

<item>
    <title>Работа с com-портом в Linux (ACCA)</title>
    <link>https://opennet.me/openforum/vsluhforumID9/9206.html#4</link>
    <pubDate>Tue, 02 Aug 2011 21:04:39 GMT</pubDate>
    <description>&amp;gt; 1. Если нет особо жестких требований по времени - достаточно ли просто &lt;br&gt;&amp;gt; работы с /dev/ttySX, в частности непонятно - можно ли контролировать последовательность &lt;br&gt;&amp;gt; приема-передачи (мне важно знать, что такой-то байт был получен до или &lt;br&gt;&amp;gt; после отправки такой-то команды)?&lt;br&gt;&lt;br&gt;Точная привязка по времени невозможена даже из-за буфера в 16550. В обычном Unix время между приходом байта в порт и чтением из /dev/ttySx никак не регламентировано. Посмотри внимательнее на протокол - если нельзя сделать дисциплину запрос-ответ, то может понадобится какая-нибудь RTOS.&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;gt; 2. Правильно ли я понимаю, что вместо того, чтобы расставлять вычисления маленькими &lt;br&gt;&amp;gt; кусочками между чтением/записью, сейчас более правильно просто &quot;отсаживать&quot; обмен в&lt;br&gt;&amp;gt; отдельный поток с более высоким приоритетом?&lt;br&gt;&lt;br&gt;Сильно проще - while (select(...)) &#123; read .... write .... &#125;, однако см. #1. Кроме того, read может вернуть только часть посылки и нужно будет дочитывать остальное. Ещё советуют делать tcdrain перед каждой записью.&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;gt; 3. Важн</description>
</item>

<item>
    <title>Работа с com-портом в Linux (newbie)</title>
    <link>https://opennet.me/openforum/vsluhforumID9/9206.html#3</link>
    <pubDate>Tue, 02 Aug 2011 17:05:27 GMT</pubDate>
    <description>Спасибо! Копию текста в другом месте видел, но дата напугала, ушел искать поновее. Оказалось - все вполне неплохо. &lt;br&gt;</description>
</item>

<item>
    <title>Работа с com-портом в Linux (XAnder)</title>
    <link>https://opennet.me/openforum/vsluhforumID9/9206.html#2</link>
    <pubDate>Tue, 02 Aug 2011 14:46:08 GMT</pubDate>
    <description>На мой неискушённый взгляд вот здесь достаточно хорошо изложено:&lt;br&gt;&lt;br&gt;http://www.opennet.ru/docs/RUS/serial_guide/&lt;br&gt;&lt;br&gt;На хитрые вопросы отвечать не берусь.&lt;br&gt;</description>
</item>

<item>
    <title>Работа с com-портом в Linux (f00l)</title>
    <link>https://opennet.me/openforum/vsluhforumID9/9206.html#1</link>
    <pubDate>Tue, 02 Aug 2011 10:47:01 GMT</pubDate>
    <description>Читаешь, записываешь в файл /dev/ttySx, настраиваешь работу с устройством через функцию ioctl. &lt;br&gt;</description>
</item>

</channel>
</rss>
