<?xml version="1.0" encoding="koi8-r"?>
<rss version="0.91">
<channel>
    <title>OpenForum RSS: Проблема обмена данными через виртуальный USB-com порт</title>
    <link>https://opennet.me/openforum/vsluhforumID9/10449.html</link>
    <description>Добрый день! Жизнь заставила переходить с виндов на Linux, столкнулся с проблемой: работаю с железкой по USB через виртуальный ком-порт в Qt Creator. В консольном приложении всё идет на &quot;ура&quot;, так же если делаю библиотеку и вызываю через консольное приложение - железка получает команды и отвечает как надо. Попытка использования оконного приложения или &quot;даблклика&quot; по файлу консольного приложения без запуска терминала приводит к тому, что функция read, возвращая нужное количество прочитанной информации, возвращает массив заполненный нулевыми значениями (0х00). Пробовал менять тип массива с char на wchar_t, все равно и старшие и младшие байты нули. Может кто чего подскажет? Примерная последовательность действий:&lt;br&gt;&lt;br&gt;    int fd = open(&quot;/dev/ttyACM0&quot;, O_RDWR);&lt;br&gt;    if (fd &amp;lt; 0) &#123; // обработка ошибок сокращена    &#125;&lt;br&gt;    fcntl(fd, F_SETFL, 0);&lt;br&gt;    struct termios oldsettings, newsettings;&lt;br&gt;    tcgetattr(fileno(stdin), &amp;oldsettings);&lt;br&gt;    newsettings = oldsettings;&lt;br&gt;    cfsetospeed(&amp;newsettings, B4000000);&lt;br&gt;    cfsetis</description>

<item>
    <title>Проблема обмена данными через виртуальный USB-com порт (EdiRu)</title>
    <link>https://opennet.me/openforum/vsluhforumID9/10449.html#2</link>
    <pubDate>Wed, 02 Aug 2023 22:40:02 GMT</pubDate>
    <description>&amp;gt; Ты взял атрибуты из STDIN. Терминальный эмулятор делал какие-то stty, которые ты &lt;br&gt;&amp;gt; сам не делаешь.&lt;br&gt;&lt;br&gt;Спасибо огромное посмотрел что прописывает STDIN, скопировал - всё заработало. Причем раньше читал про подобные ошибки начинающих, но забыл)) Про остальное - еще буду дорабатывать, главное обмен пошел.&lt;br&gt;</description>
</item>

<item>
    <title>Проблема обмена данными через виртуальный USB-com порт (ACCA)</title>
    <link>https://opennet.me/openforum/vsluhforumID9/10449.html#1</link>
    <pubDate>Wed, 02 Aug 2023 17:46:32 GMT</pubDate>
    <description>&#091;...&#093;&lt;br&gt;&amp;gt;     tcgetattr(fileno(stdin), &amp;oldsettings); &lt;br&gt;&lt;br&gt;Ты взял атрибуты из STDIN. Терминальный эмулятор делал какие-то stty, которые ты сам не делаешь.&lt;br&gt;Посмотри, чего не хватает, заполни сам свой newsettings, без подглядывания в stdin на лету.&lt;br&gt;&lt;br&gt;&lt;br&gt;Вообще, код получился очень хрупкий, так с COM-портом не работают.&lt;br&gt;&lt;br&gt;read может вернуть вообще 1 байт. Ну, очень шустрый у тебя процессор и успел уловить с помощью select что что-то пришло, потом read это &quot;что-то&quot; поймал, потом ещё что-то будет, но об этом никто не узнает.&lt;br&gt;&lt;br&gt;&lt;br&gt;Посмотри лучше пример с ~ICANON и без select: https://stackoverflow.com/questions/2917881/how-to-implement-a-timeout-in-read-function-call &lt;br&gt;</description>
</item>

</channel>
</rss>
