Форум программистов, компьютерный форум, киберфорум
C++
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Создание документации https://www.cyberforum.ru/ cpp/ thread231772.html
Один из самых больных вопросов для плохо организованных проектов :) Вопрос собственно такой: чем (в чём, в каком редакторе) создавать документацию и в каком формате хранить? Есть мысли-вопрос...
Автоматизация OpenOffice 3.2 C++
Доброго времени суток. Необходимо прикрутить OpenOffice 3.2 API к VS 2008 или Qt Creator(вроде как, правда, Оо не дружит особо с MinGW, но все таки). ОС Win7. Долго читал различные манула, форумы и...
Как написать функцию, которая бы автоматически определяла типа принимаемых параметров? C++
Друзья! На самом деле примеров подобных функций много, я имею ввиду конструкторы объектов классов из библиотеки STL Но там принимаемые параметры различаются явно. А у меня- никак, но тем не менее,...
C++ Подключение TLB-файла Доброе время суток. Попросили написать программу учета для кассового аппарата. Чтобы хозяин пришел глянул что как, подредактировал и ушел. На сайте производителя нашел описание протокола связи... https://www.cyberforum.ru/ cpp/ thread230987.html
C++ не могу разобраться с процессом https://www.cyberforum.ru/ cpp/ thread230038.html
незнал куда написать необходимо разобраться с процессом прикрепленным ниже а именно принцип работы. При работе с дизасемблером(я еще новичок не разбираюсь) суть не открылась мне если кто разбирается...
C++ Программирование микшера для windows 7
Пишу программу - микшер через win API. На XP все работает без проблем, перенес на windows 7 и оказалось что микшер не работает. Проблему нашел при выполнении команды mixerSetControlDetails, выдавала...
Тестирование потоками данных программы в C++ C++
Как это реализовать? где можно почитать
C++ Софт для спутниковых тюнеров Ребята кто нибудь сталкивался стаким вешами писат прогу. для тюнера как сделать это просто стало интересно? Извините если ошибся разделом я пишу на С++ и Visual C++ основном.. https://www.cyberforum.ru/ cpp/ thread229937.html
C++ работа с системой https://www.cyberforum.ru/ cpp/ thread229399.html
хочется что-нибудь написать , чтобы оно работало с системой , прожки работающие сами в себе конечно интересно , но хочется что-нибудь поразвитей что ли вижу только так возможность: 1.взять...
C++ VSTO 2007 Добрый день!Подскажите где можно найти литературу по Visual Studio Tools for Office 2007 на русском языке. Для написания add-in под MS Project 2007. писать буду на Visual C# или Vicual C++. https://www.cyberforum.ru/ cpp/ thread228725.html
4 / 4 / 0
Регистрация: 19.01.2011
Сообщений: 26
0

Задержка между записью/чтением Serial-порта

21.01.2011, 04:15. Просмотров 3480. Ответов 4
Метки (Все метки)

Доброе время суток.
Работаю с одним устройством через RS232 порт, точнее через его эмуляцию с помощью PL2303 (USB-to-RS232).

Подключаюсь к порту на скорости 38400, 8 бит, без учета четности.
Так же устанавливаю таймауты чтения записи (вот тут-то мне скорее всего и нужна ваша помощь).
Затем передаю два байта: необходимый мне байт и байт окончания данных '\0'.
Далее мне необходимо делать Sleep(1500); для того что бы ReadFile(..); дал какие-то результаты.
Находил в интернете всякие рассуждения по этому поводу, советовали эти таймауты менять. Но как бы я их не менял результат один и тот же, если не поставлю Sleep(1500); - данные не будут приняты (BytesRead = 0), а буффер пуст.

Получается что я считываю данные до того, как эти данные сгенерируются на устройстве.

Мне постоянно надо слип ставить между этими операциями? Ставить 1500 или рассчитывать число как количество_байт*время_передачи_1_байт?
Или может время узнавать какой-то функцией, которой передам хэндл порта а она узнает время?
Или может я что-то не правильно делаю с настройками таймаута?

Сейчас они такие:
C++
1
2
3
4
5
6
COMMTIMEOUTS CommTimeOuts;
CommTimeOuts.ReadIntervalTimeout = MAXDWORD;
CommTimeOuts.ReadTotalTimeoutMultiplier  = 0;
CommTimeOuts.ReadTotalTimeoutConstant    = 0;
CommTimeOuts.WriteTotalTimeoutMultiplier = 0;
CommTimeOuts.WriteTotalTimeoutConstant   = 1500;
Добавлено через 20 минут
Проблему решил:

C++
1
2
3
4
5
6
COMMTIMEOUTS CommTimeOuts;
CommTimeOuts.ReadIntervalTimeout = MAXDWORD;
CommTimeOuts.ReadTotalTimeoutMultiplier  = 0;
CommTimeOuts.ReadTotalTimeoutConstant    = 1500;
CommTimeOuts.WriteTotalTimeoutMultiplier = 0;
CommTimeOuts.WriteTotalTimeoutConstant   = 1500;
при таких параметрах программа ждала необходимое время и потом читало данные. все получилось, пока что, если что, буду писать, потому как мне не два байта передавать надо, а намного больше, предполагаю что в том случае мне придется 0 на 1 или 10 поменять))

1500 подобралось подбором. Но почему именно 1500? Никто не объяснит?

Вернуться к обсуждению:
Задержка между записью/чтением Serial-порта
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.01.2011, 04:15
Готовые ответы и решения:

Шифрование. Проблема с чтением и записью файла.
Доброго времени суток. Программа шифрует и расшифровывает файлы с помощью сети Фейстеля. Только...

Задержка между показом картинок
такой кусок кода void __fastcall TForm1::Button1Click(TObject *Sender) { Image1->Visible...

Задержка между выводом изображении
Как сделать задержку между выводом изображении на экран? Чтобы к примеру запускаешь форму, и на ней...

Работа с чтением/записью бинарного файла
Здравствуйте. Хочу создать бинарный файл, туда записать число. Затем его закрыть, заново открыть и...

4
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.