Вверх ↑
Этот топик читают: Гость
Ответов: 3889
Рейтинг: 362
#61: 2011-11-27 11:40:50 ЛС | профиль | цитата
Tomset91, схему перевыложите.
карма: 1

0
Ответов: 8926
Рейтинг: 823
#62: 2011-11-27 11:46:15 ЛС | профиль | цитата
Tomset91 писал(а):
информация вообще не запоминается ни в каких буферах, об этом говорят опыты которые проделал
Любые опыты можно интерпретировать как угодно, например я своими глазами вижу, как всходит и заходит Солнце и делаю вывод - оно крутится вокруг меня и Земли
карма: 19

0
Ответов: 51
Рейтинг: 3
#63: 2011-11-27 11:50:39 ЛС | профиль | цитата
1nd1g0 писал(а):
Tomset91, схему перевыложите.
code_25984.txt
карма: 0

0
файлы: 1code_25984.txt [2.3KB] [157]
Разработчик
Ответов: 26155
Рейтинг: 2127
#64: 2011-11-27 11:56:42 ЛС | профиль | цитата
Tomset91, что он у тебя читать будет, когда ты с потока на doRead Null подаешь А ведь в описании к точке конкретно написано

COM писал(а):
doRead=Читает данные из порта. Необходимое количество байт указывается в потоке

карма: 22

0
Ответов: 51
Рейтинг: 3
#65: 2011-11-27 12:01:28 ЛС | профиль | цитата
Леонид писал(а):
Любые опыты можно интерпретировать как угодно, например я своими глазами вижу, как всходит и заходит Солнце и делаю вывод - оно крутится вокруг меня и Земли

Ну возьмите сами сделайте свой рабочий вариан где данные поступают в порт, потом вы нажимаете кнопку "считать из буфера" и у вас в окно выпадает куча данных а не те которые в данный момент приходят, у меня например не то чтобы появились пропущеные, да и поданные в данный момент не при каждом нажатии кнопки приходят. Конечно я незнаю как работает компонент и какие потоки данных куда и откуда в нём идут, за что точно отвечает каждый кружок в схеме и возможно что-то не так делаю, если вы знаете внутренний алгоритм работы элемента привидите свою схему и расскажите каким образом она у вас запоминает и решите мою проблему, зачем пустые разговоры ? когда нужно приводить готовые примеры и я проверю и удоставерюсь что да я ошибался / неправильно состовил схему и т.д.
карма: 0

0
Разработчик
Ответов: 26155
Рейтинг: 2127
#66: 2011-11-27 12:07:10 ЛС | профиль | цитата
Tomset91 писал(а):
"считать из буфера"

Ну так и сделай свой буфер, в чем проблема-то
карма: 22

0
Ответов: 3889
Рейтинг: 362
#67: 2011-11-27 12:09:05 ЛС | профиль | цитата
Tomset91 писал(а):
зачем пустые разговоры ? когда нужно приводить готовые примеры и я проверю и удоставерюсь

Скромно. У меня вот целый парк ПК, и даже виртуальных COM портов нету, не считая BT. Даже модемов. Если бы были, наверняка моментально выявил где Ваши ручки что-то не так делают, благо для Вас просто проверять не на чем, а виртуальные порты ради этого ставить моветон.
карма: 1

0
Ответов: 51
Рейтинг: 3
#68: 2011-11-27 12:11:06 ЛС | профиль | цитата
nesco, я вообще не понимаю суть этого предложения "Необходимое количество байт указывается в потоке" как программа может заранее предъугадать сколько байт ей предстоить принять ? Внешнее устройство может отправить 1 байт подождать некоторое время и в случайный момент времени отправить 256 байт и так далее в хаотическом порядке...
карма: 0

0
Разработчик
Ответов: 26155
Рейтинг: 2127
#69: 2011-11-27 12:13:10 ЛС | профиль | цитата
Tomset91 писал(а):
как программа может заранее предъугадать сколько байт ей предстоить принять ? Внешнее устройство может отправить 1 байт подождать некоторое время и в случайный момент времени отправить 256 байт и так далее в хаотическом порядке...

И никуда они не денуться, а застрянут в системном буфере USART, пока ты его не считаешь. Система не предоставляет пользователю RealTime чтение порта, все работает через буферизацию. doRead как раз и читает системный буфер
карма: 22

0
Ответов: 51
Рейтинг: 3
#70: 2011-11-27 12:21:55 ЛС | профиль | цитата
nesco, ну наконец то я начинаю понимать почему буферы не работали.. тоесть в doRead нужно отправлять число, тем самым указывать сколько байт прочитать из буфера? остаётся вопрос данные будут читаться с конца? схема должна содержать поле для ввода числа прочитанных байт и кнопку по нажатию которой число отправляется в doRead и в окне мы уже видим принятые байты из буфера так?
карма: 0

0
Разработчик
Ответов: 26155
Рейтинг: 2127
#71: 2011-11-27 12:23:30 ЛС | профиль | цитата
Tomset91 писал(а):
остаётся вопрос данные будут читаться с конца?

Нет, с начала системного буфера, хвост будут оставаться в буфере, и к нему пришедшие на порт данные будт приклеиваться. Вот я про то и писал раньше, что на выход onRead будет попадать пустая строка, если системный буфер пуст
карма: 22

0
Ответов: 51
Рейтинг: 3
#72: 2011-11-27 12:28:41 ЛС | профиль | цитата
nesco писал(а):
Tomset91 писал(а):
остаётся вопрос данные будут читаться с конца?

Нет, с начала системного буфера
Поясните тогда какие там буферы и их отличие, ёмкость?
карма: 0

0
Разработчик
Ответов: 26155
Рейтинг: 2127
#73: 2011-11-27 12:30:11 ЛС | профиль | цитата
Tomset91 писал(а):
по нажатию которой число отправляется в doRead и в окне мы уже видим принятые байты из буфера так?

Да, только хвост может быть меньше, чем длина запрашиваемых байт, компонент подождет определенное время и выдаст все что осталось в буфере на момент окончания задержки
карма: 22

0
Ответов: 51
Рейтинг: 3
#74: 2011-11-27 12:36:56 ЛС | профиль | цитата


Вот я про то и писал раньше, что на выход onRead будет попадать пустая строка, если системный буфер пуст
тоесть onRead (пустую строку) отправить через хаб в doRead и в окно отображения?
карма: 0

0
Разработчик
Ответов: 26155
Рейтинг: 2127
#75: 2011-11-27 12:49:29 ЛС | профиль | цитата
Tomset91 писал(а):
тоесть onRead (пустую строку) отправить через хаб в doRead и в окно отображения?

А зачем, лучше читать порт по циклу с задержкой и определенным количеством кратных байт, если пусто на выходе, значит ничего не поймали или все считали, вот тебе и синхронизация
Tomset91 писал(а):
Поясните тогда какие там буферы и их отличие, ёмкость?

Если я не ошибаюсь, то по умолчанию парамеры порта -- dwMaxTxQueue = 4096 и dwMaxRxQueue = 4096
карма: 22

1
Голосовали:Tomset91
Сообщение
...
Прикрепленные файлы
(файлы не залиты)