Tomset91, схему перевыложите.
Этот топик читают: Гость
Ответов: 3889
Рейтинг: 362
|
|||
карма: 1 |
|
Ответов: 8926
Рейтинг: 823
|
|||
Tomset91 писал(а): информация вообще не запоминается ни в каких буферах, об этом говорят опыты которые проделал |
|||
карма: 19 |
|
Ответов: 51
Рейтинг: 3
|
|||
карма: 0 |
| ||
файлы: 1 | code_25984.txt [2.3KB] [157] |
Разработчик
Ответов: 26155
Рейтинг: 2127
|
|||
Tomset91, что он у тебя читать будет, когда ты с потока на doRead Null подаешь А ведь в описании к точке конкретно написано
COM писал(а): doRead=Читает данные из порта. Необходимое количество байт указывается в потоке |
|||
карма: 22 |
|
Ответов: 51
Рейтинг: 3
|
|||
Леонид писал(а): Любые опыты можно интерпретировать как угодно, например я своими глазами вижу, как всходит и заходит Солнце и делаю вывод - оно крутится вокруг меня и Земли
|
|||
карма: 0 |
|
Разработчик
Ответов: 26155
Рейтинг: 2127
|
|||
Tomset91 писал(а): "считать из буфера"Ну так и сделай свой буфер, в чем проблема-то |
|||
карма: 22 |
|
Ответов: 3889
Рейтинг: 362
|
|||
Tomset91 писал(а): зачем пустые разговоры ? когда нужно приводить готовые примеры и я проверю и удоставерюсьСкромно. У меня вот целый парк ПК, и даже виртуальных COM портов нету, не считая BT. Даже модемов. Если бы были, наверняка моментально выявил где Ваши ручки что-то не так делают, благо для Вас просто проверять не на чем, а виртуальные порты ради этого ставить моветон. |
|||
карма: 1 |
|
Ответов: 51
Рейтинг: 3
|
|||
nesco, я вообще не понимаю суть этого предложения "Необходимое количество байт указывается в потоке" как программа может заранее предъугадать сколько байт ей предстоить принять ? Внешнее устройство может отправить 1 байт подождать некоторое время и в случайный момент времени отправить 256 байт и так далее в хаотическом порядке...
|
|||
карма: 0 |
|
Разработчик
Ответов: 26155
Рейтинг: 2127
|
|||
Tomset91 писал(а): как программа может заранее предъугадать сколько байт ей предстоить принять ? Внешнее устройство может отправить 1 байт подождать некоторое время и в случайный момент времени отправить 256 байт и так далее в хаотическом порядке...И никуда они не денуться, а застрянут в системном буфере USART, пока ты его не считаешь. Система не предоставляет пользователю RealTime чтение порта, все работает через буферизацию. doRead как раз и читает системный буфер |
|||
карма: 22 |
|
Ответов: 51
Рейтинг: 3
|
|||
nesco, ну наконец то я начинаю понимать почему буферы не работали.. тоесть в doRead нужно отправлять число, тем самым указывать сколько байт прочитать из буфера? остаётся вопрос данные будут читаться с конца? схема должна содержать поле для ввода числа прочитанных байт и кнопку по нажатию которой число отправляется в doRead и в окне мы уже видим принятые байты из буфера так?
|
|||
карма: 0 |
|
Разработчик
Ответов: 26155
Рейтинг: 2127
|
|||
Tomset91 писал(а): остаётся вопрос данные будут читаться с конца?Нет, с начала системного буфера, хвост будут оставаться в буфере, и к нему пришедшие на порт данные будт приклеиваться. Вот я про то и писал раньше, что на выход onRead будет попадать пустая строка, если системный буфер пуст |
|||
карма: 22 |
|
Ответов: 51
Рейтинг: 3
|
|||
nesco писал(а): Tomset91 писал(а): остаётся вопрос данные будут читаться с конца?Нет, с начала системного буфера |
|||
карма: 0 |
|
Разработчик
Ответов: 26155
Рейтинг: 2127
|
|||
Tomset91 писал(а): по нажатию которой число отправляется в doRead и в окне мы уже видим принятые байты из буфера так?Да, только хвост может быть меньше, чем длина запрашиваемых байт, компонент подождет определенное время и выдаст все что осталось в буфере на момент окончания задержки |
|||
карма: 22 |
|
Ответов: 51
Рейтинг: 3
|
|||
Вот я про то и писал раньше, что на выход onRead будет попадать пустая строка, если системный буфер пуст
тоесть onRead (пустую строку) отправить через хаб в doRead и в окно отображения? |
|||
карма: 0 |
|
Разработчик
Ответов: 26155
Рейтинг: 2127
|
|||
Tomset91 писал(а): тоесть onRead (пустую строку) отправить через хаб в doRead и в окно отображения?А зачем, лучше читать порт по циклу с задержкой и определенным количеством кратных байт, если пусто на выходе, значит ничего не поймали или все считали, вот тебе и синхронизация Tomset91 писал(а): Поясните тогда какие там буферы и их отличие, ёмкость?Если я не ошибаюсь, то по умолчанию парамеры порта -- dwMaxTxQueue = 4096 и dwMaxRxQueue = 4096 |
|||
карма: 22 |
| ||
Голосовали: | Tomset91 |