<?xml version="1.0" encoding="koi8-r"?>
<rss version="0.91">
<channel>
    <title>OpenForum RSS: Определение бита четности при передаче через последовательны...</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/6228.html</link>
    <description>Есть задача - организовать обмен данными с неким устройством, которое подключено к последовательному порту компьютера с ОС Linux. При этом устройство общается с компьютером в простой асинхронном режиме, ничего сложного - принимать/отправлять байты (символы) получается, не проблема.&lt;br&gt;&lt;br&gt;Но есть одна единственная загвоздка - при передаче данных устройству необходимо первый байт посылки принудительно пометить битом четности (т.н. wakeup bit). Кроме того, в некоторых случаях, от устройства тоже возможен прием байта с таким битом, при том, что контроль четности на самом деле отключен. В связи с этим, собственно, вопрос: можно ли каким-то образом при получении байта из порта проверить, а установлен ли бит четности; и наоборот, при посылке байта, принудительно его установить?&lt;br&gt;&lt;br&gt;Внимательно изучив доступную документацию по работе с послед. портом, особенно вот здесь http://www.opennet.ru/docs/RUS/serial_guide/ - есть такая возможность:&lt;br&gt;&lt;br&gt;&amp;gt; Пробел (space parity) бита четности устанавливается также как и отсутствие пр</description>

<item>
    <title>Определение бита четности при передаче через последовательны... (Iceman)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/6228.html#20</link>
    <pubDate>Thu, 13 Dec 2007 19:22:14 GMT</pubDate>
    <description>&amp;gt;так в конечном итоге решилась проблема? &lt;br&gt;&lt;br&gt;Решилась - написанием своего драйвера последовательного порта и включением всех необходимых настроек порта вручную.&lt;br&gt;</description>
</item>

<item>
    <title>Определение бита четности при передаче через последовательны... (Sigareta)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/6228.html#19</link>
    <pubDate>Thu, 13 Dec 2007 10:18:58 GMT</pubDate>
    <description>так в конечном итоге решилась проблема?&lt;br&gt;</description>
</item>

<item>
    <title>Определение бита четности при передаче через последовательны... (pvl)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/6228.html#18</link>
    <pubDate>Fri, 23 Mar 2007 14:08:59 GMT</pubDate>
    <description>&lt;br&gt;&amp;gt;Если использовать inb/outb для взаимодействия с ком-портом, то в любом случае придется &lt;br&gt;&amp;gt;цепляться за прерывания, самому организовывать очереди и т.д. и т.п. В &lt;br&gt;&amp;gt;конце-концов получим драйвер, надо будет делать модуль ядра - очень неохота &lt;br&gt;&amp;gt;этим заниматься. ((( &lt;br&gt;&lt;br&gt;&lt;br&gt;да вы батенька хотите и рыбку сьесть и на х&quot;&amp;#8470;; сесть.&lt;br&gt;&lt;br&gt;ничего там сложного нет. кроме того.. по всей видимости задача по другому не решится</description>
</item>

<item>
    <title>Определение бита четности при передаче через последовательны... (Iceman)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/6228.html#17</link>
    <pubDate>Fri, 23 Mar 2007 14:05:33 GMT</pubDate>
    <description>&amp;gt;Попробуй использовать в своей проге функции inb/outb для взаимодействия с ком-портом, правда &lt;br&gt;&amp;gt;прогу придется пускать из-под root&apos;a и самому надо будет реализовать очередь. &lt;br&gt;&amp;gt;Если ты программишь под Linux, то для доступа к портам в &lt;br&gt;&amp;gt;этом случае потребуется ioperm. С помощью этих же функций можно читать &lt;br&gt;&amp;gt;состояние регистров компорта. &lt;br&gt;&amp;gt;А еще можно написать свой модуль ядра и зацепиться за прерывание ком-порта, &lt;br&gt;&amp;gt;в обработчике прерывания можно будет побыстрому проверять нужные биты и складывать &lt;br&gt;&amp;gt;данные в буфер. При отправки в модуле тоже можно по хитрому &lt;br&gt;&amp;gt;организовать очередь и управление компортом. На уровне ядра (модуля) от многих &lt;br&gt;&amp;gt;временных задержек можно избавиться. &lt;br&gt;&lt;br&gt;Если использовать inb/outb для взаимодействия с ком-портом, то в любом случае придется цепляться за прерывания, самому организовывать очереди и т.д. и т.п. В конце-концов получим драйвер, надо будет делать модуль ядра - очень неохота этим заниматься. (((</description>
</item>

<item>
    <title>Определение бита четности при передаче через последовательны... (someone)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/6228.html#16</link>
    <pubDate>Fri, 23 Mar 2007 13:50:47 GMT</pubDate>
    <description>&amp;gt;Поэтому я сейчас ищу способ заставить ожидать отправки всех поставленных в очередь &lt;br&gt;&amp;gt;байтов меньше времени (возможно, с помощью каких-либо сигналов), либо придется писать &lt;br&gt;&amp;gt;какой-то свой драйвер. Если есть мысли по этому поводу, с радостью &lt;br&gt;&amp;gt;выслушаю. &lt;br&gt;Попробуй использовать в своей проге функции inb/outb для взаимодействия с ком-портом, правда прогу придется пускать из-под root&apos;a и самому надо будет реализовать очередь. Если ты программишь под Linux, то для доступа к портам в этом случае потребуется ioperm. С помощью этих же функций можно читать состояние регистров компорта.&lt;br&gt;А еще можно написать свой модуль ядра и зацепиться за прерывание ком-порта, в обработчике прерывания можно будет побыстрому проверять нужные биты и складывать данные в буфер. При отправки в модуле тоже можно по хитрому организовать очередь и управление компортом. На уровне ядра (модуля) от многих временных задержек можно избавиться.&lt;br&gt;&lt;br&gt;</description>
</item>

<item>
    <title>Определение бита четности при передаче через последовательны... (Iceman)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/6228.html#15</link>
    <pubDate>Fri, 23 Mar 2007 13:45:11 GMT</pubDate>
    <description>&amp;gt;так может по просторам безкрайнего пошарится и найти какую нибудь либу для &lt;br&gt;&amp;gt;этого дела.. &lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt;ЗЫ: &lt;br&gt;&amp;gt;а что jerm?? ниче в нем интересного не нашлось?? &lt;br&gt;&lt;br&gt;Для этого SAS&apos;а даже описание платное, поэтому даже его найти на шару в сети оченно сложно. А уж либу, да еще желательно под Линукс - сильно сомневаюсь, хотя еще не искал.&lt;br&gt;&lt;br&gt;ЗЫ. В jerm&apos;е ничего интересного пока не нашел, терминал себе и терминал... использует тот же стандартный драйвер, точно также делает настройки...</description>
</item>

<item>
    <title>Определение бита четности при передаче через последовательны... (pvl)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/6228.html#14</link>
    <pubDate>Fri, 23 Mar 2007 13:03:19 GMT</pubDate>
    <description>&amp;gt;Ну тогда по порядку. Распространяться особо не буду, но скажу, что устройство &lt;br&gt;&amp;gt;- игральный автомат, протокол - SAS, на сегодняшний день всеми авторитетами &lt;br&gt;&amp;gt;в игральном мире признан как самый лучший протокол для связи с &lt;br&gt;&amp;gt;ПК. &lt;br&gt;&lt;br&gt;так может по просторам безкрайнего пошарится и найти какую нибудь либу для этого дела..&lt;br&gt;&lt;br&gt;ЗЫ:&lt;br&gt;а что jerm?? ниче в нем интересного не нашлось??&lt;br&gt;&lt;br&gt;&lt;br&gt;</description>
</item>

<item>
    <title>Определение бита четности при передаче через последовательны... (Iceman)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/6228.html#13</link>
    <pubDate>Fri, 23 Mar 2007 12:47:02 GMT</pubDate>
    <description>&amp;gt;Ну тогда по порядку. Распространяться особо не буду, но скажу, что устройство &lt;br&gt;&amp;gt;- игральный автомат, протокол - SAS, на сегодняшний день всеми авторитетами &lt;br&gt;&amp;gt;в игральном мире признан как самый лучший протокол для связи с &lt;br&gt;&amp;gt;ПК. &lt;br&gt;&amp;gt;&lt;br&gt;Уточню - для связи игровых автоматов с ПК</description>
</item>

<item>
    <title>Определение бита четности при передаче через последовательны... (Iceman)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/6228.html#12</link>
    <pubDate>Fri, 23 Mar 2007 12:20:55 GMT</pubDate>
    <description>&amp;gt;&amp;gt;А это поможет в решении проблемы?&lt;br&gt;&amp;gt;Нет, не поможет. Просто, если в будущем у меня появится перспектива поработать &lt;br&gt;&amp;gt;с такими устройствами, сразу от них отказаться. Хотя бы намекни абревиатуру &lt;br&gt;&amp;gt;названия этого устройства. &lt;br&gt;&amp;gt;Если по существу твоего вопроса, то отследить значение бита четности или его &lt;br&gt;&amp;gt;наличие на _ПК_ нельзя, даже зная заранее скорость взаимодействия с устройством. &lt;br&gt;&amp;gt;Объясняю почему. Com-порт на ПК перед началом взаимодействия с внешним устройством &lt;br&gt;&amp;gt;устанавливается в определенный режим работы: скорость, контроль четности, количество бит в &lt;br&gt;&amp;gt;байте, количество стоп-битов и т.п. Com-порт не предназначен, точнее в него &lt;br&gt;&amp;gt;не закладывали такой функционал, чтобы на лету можно было менять режим &lt;br&gt;&amp;gt;работы в рамках взаимодействия с одним устройством. Автоопределение там тем более &lt;br&gt;&amp;gt;не заложено. Более того, пожет получиться такая ситуация: &lt;br&gt;&amp;gt;1)ты установил ком-порт в нужный режим работы &lt;br&gt;&amp;gt;2)получил первый байт от устройства &lt;br&gt;&amp;gt;3)начинаешь переключать ком-порт в другой режим работы &lt;br&gt;&amp;gt;4)пока</description>
</item>

</channel>
</rss>
