<?xml version="1.0" encoding="koi8-r"?>
<rss version="0.91">
<channel>
    <title>OpenForum RSS: Оптимизация алгоритма чтение данных с компорта</title>
    <link>https://opennet.ru/openforum/vsluhforumID9/9055.html</link>
    <description>Здравствуйте уважаемые. Я хочу попросить вас помочь мне в оптимизации моей программки для чтения данных с ком порта. На данный момент меня не устраивает сам алгоритм который я использую в программе для чтения, так как он использует циклы которые грузят процессор до 5-6&#037; что является не оптимальным. Не могли бы вы мне помочь изменить алгоритм. Скорость ком порта 4800 режим 8N1 пакет состоит из 16 байт вида CADR01234567891011. Пакеты приходят каждые 0.1 секунд. У меня проблема в том чтобы оптимально собрать его(пакет) в массив с которым я мог бы дальше работать в программе. Если вы подскажете мне как это сделать, я буду вам очень благодарен.&lt;br&gt;&lt;br&gt;Привожу текст моей программы:&lt;br&gt;Функция read_device (читает данные с ком порта)&lt;br&gt;&lt;br&gt;char read_device(fd,ch) &lt;br&gt;&#123;&lt;br&gt;   unsigned char s&#091;1&#093;;&lt;br&gt;   int nBytes;&lt;br&gt;   &lt;br&gt;   nBytes = read(fd, s, sizeof(s));&lt;br&gt;   if(nBytes&amp;gt;0)&#123;    // если прочитали нормальные данные то вернем их&lt;br&gt;      ch=s&#091;0&#093;;&lt;br&gt;      return ch;&lt;br&gt;   &#125;&lt;br&gt;   &lt;br&gt;   &lt;br&gt;   return 0; // иначе вернем 0&lt;br&gt;&#125;&lt;br&gt;&lt;br&gt;Main:&lt;br&gt;&lt;br&gt;int main(int a</description>

<item>
    <title>Оптимизация алгоритма чтение данных с компорта (Alex_S)</title>
    <link>https://opennet.ru/openforum/vsluhforumID9/9055.html#3</link>
    <pubDate>Mon, 07 Mar 2011 23:16:05 GMT</pubDate>
    <description>&amp;gt; Здравствуйте уважаемые. Я хочу попросить вас помочь мне в оптимизации моей программки &lt;br&gt;&amp;gt; для чтения данных с ком порта. На данный момент меня не &lt;br&gt;&amp;gt; устраивает сам алгоритм который я использую в программе для чтения, так &lt;br&gt;&amp;gt; как он использует циклы которые грузят процессор до 5-6&#037; что является &lt;br&gt;&amp;gt; не оптимальным. Не могли бы вы мне помочь изменить алгоритм. Скорость &lt;br&gt;&amp;gt; ком порта 4800 режим 8N1 пакет состоит из 16 байт вида &lt;br&gt;&amp;gt; CADR01234567891011. Пакеты приходят каждые 0.1 секунд.&lt;br&gt;&lt;br&gt; а почему бы не использовать select() с таймаутом ?&lt;br&gt;  &lt;br&gt;</description>
</item>

<item>
    <title>Оптимизация алгоритма чтение данных с компорта (DeadLoco)</title>
    <link>https://opennet.ru/openforum/vsluhforumID9/9055.html#2</link>
    <pubDate>Thu, 03 Mar 2011 18:06:30 GMT</pubDate>
    <description>&amp;gt;&#091;оверквотинг удален&#093;&lt;br&gt;&amp;gt;       databuf&#091;rBytes&#093;=ch;      &lt;br&gt;&amp;gt;     else&lt;br&gt;&amp;gt;     &#123; &lt;br&gt;&amp;gt;       usleep(6200);      &lt;br&gt;&amp;gt;       rBytes--;      &lt;br&gt;&amp;gt;     &#125; &lt;br&gt;&amp;gt;   &#125; &lt;br&gt;&amp;gt;       crtfile(databuf,rBytes,&amp;filelog);&lt;br&gt;&amp;gt;  &#125; &lt;br&gt;&amp;gt;&#125; &lt;br&gt;&lt;br&gt;Я так понимаю, нагрузка именно в этом цикле, и по микрослипу. А зачем он вообще нужен?&lt;br&gt;&lt;br&gt;Посмотрите код tip.c из FreeBSD: http://www.freebsd.org/cgi/cvsweb.cgi/src/usr.bin/tip/tip/tip.c?rev=1.19 - функцию tipin(void)&lt;br&gt;</description>
</item>

<item>
    <title>Оптимизация алгоритма чтение данных с компорта (pavlinux)</title>
    <link>https://opennet.ru/openforum/vsluhforumID9/9055.html#1</link>
    <pubDate>Wed, 02 Mar 2011 22:54:03 GMT</pubDate>
    <description>&amp;gt; Если вы подскажете мне как &lt;br&gt;&lt;br&gt;Всё нормально, проверил, программа работает!&lt;br&gt;</description>
</item>

</channel>
</rss>
