Я работаю в программе C /C ++, которая общается с устройством RS232.
Порт открывается с использованием CreateFile () < /p>
hComm = CreateFile(DevPath, GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, FILE_FLAG_OVERLAPPED, NULL);
< /code>
Тогда порт настраивается с использованием setupcomm (), setcommstate () и setcommmimeouts () без аппаратного управления и бодрата из бод и тайм -аутов 115200, как показано здесь: < /p>
cTimeouts.ReadIntervalTimeout = MAXDWORD;
cTimeouts.ReadTotalTimeoutConstant = 1;
cTimeouts.ReadTotalTimeoutMultiplier = 0;
cTimeouts.WriteTotalTimeoutConstant = 40;
cTimeouts.WriteTotalTimeoutMultiplier = 1;
< /code>
порт закрыт с помощью BloseHandle () < /p>
CloseHandle(hComm);
< /code>
Это не система в реальном времени, но должна быть очень быстрой, и после того, как я заметил некоторые задержки, я измерил, что инструкция BloseHandle () занимает всегда более 100 мс, что является огромным количеством времени, учитывая, что открытие и настройка порта занимает всего 20 мс. или брандмауэр в тестовой машине (автономный).
[*] Я использую Visual Studio на совершенно нового компьютера на основе Intel Core-I5, работающего в Windows 10.
[*] USB-устройстве FTDI (виртуальное COMPPORT)
>
нет данных. /> Я пытался собрать аналогичную программу в Linux, и близкое время сокращается до 25 мс < /strong>.
Я также пытался использовать физическое соединение RS232, и близкие времена превращаются в 1 мс < /strong>, поэтому я предполагаю, что это происходит от драйвера FTDI. Я что -то упускаю?
Кто -нибудь испытал что -то подобное? < /P>
Подробнее здесь: https://stackoverflow.com/questions/679 ... ot-of-time
Закрытие COM -порта FTDI с Close Handle () занимает много времени ⇐ C++
Программы на C++. Форум разработчиков
-
Anonymous
1748373566
Anonymous
Я работаю в программе C /C ++, которая общается с устройством RS232.
Порт открывается с использованием CreateFile () < /p>
hComm = CreateFile(DevPath, GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, FILE_FLAG_OVERLAPPED, NULL);
< /code>
Тогда порт настраивается с использованием setupcomm (), setcommstate () и setcommmimeouts () без аппаратного управления и бодрата из бод и тайм -аутов 115200, как показано здесь: < /p>
cTimeouts.ReadIntervalTimeout = MAXDWORD;
cTimeouts.ReadTotalTimeoutConstant = 1;
cTimeouts.ReadTotalTimeoutMultiplier = 0;
cTimeouts.WriteTotalTimeoutConstant = 40;
cTimeouts.WriteTotalTimeoutMultiplier = 1;
< /code>
порт закрыт с помощью BloseHandle () < /p>
CloseHandle(hComm);
< /code>
Это не система в реальном времени, но должна быть очень быстрой, и после того, как я заметил некоторые задержки, я измерил, что инструкция BloseHandle () занимает всегда более 100 мс, что является огромным количеством времени, учитывая, что открытие и настройка порта занимает всего 20 мс. или брандмауэр в тестовой машине (автономный).
[*] Я использую Visual Studio на совершенно нового компьютера на основе Intel Core-I5, работающего в Windows 10.
[*] USB-устройстве FTDI (виртуальное COMPPORT)
>
нет данных. /> Я пытался собрать аналогичную программу в Linux, и близкое время сокращается до 25 мс < /strong>.
Я также пытался использовать физическое соединение RS232, и близкие времена превращаются в 1 мс < /strong>, поэтому я предполагаю, что это происходит от драйвера FTDI. Я что -то упускаю?
Кто -нибудь испытал что -то подобное? < /P>
Подробнее здесь: [url]https://stackoverflow.com/questions/67987829/closing-ftdi-comm-port-with-closehandle-takes-a-lot-of-time[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия