|
14 / 14 / 1
Регистрация: 21.10.2010
Сообщений: 462
|
||||||
SerialPort. Максимальный размер буфера22.05.2018, 12:19. Показов 4427. Ответов 10
Метки нет (Все метки)
Задаю ReadBufferSize 1000000, принимаю около 30К данных, а в буфере почему-то всего 12290 байт. В чём тут дело, и что это за магическое число 12290? Откуда оно взялось? И как преодолеть этот магический барьер?
0
|
||||||
| 22.05.2018, 12:19 | |
|
Ответы с готовыми решениями:
10
SerialPort: не получается прочитать байты из буфера com-порта размер буфера Размер буфера для получения данных из сокета |
|
14 / 14 / 1
Регистрация: 21.10.2010
Сообщений: 462
|
|
| 22.05.2018, 14:52 [ТС] | |
|
Благодарю за ответ. Но, похоже, что дело не в этом. Данные идут с совершенно произвольной скоростью - считывание перфоленты, протягиваемой вручную через фотосчитывающее устройство. Если бы дело упиралось в таймаут, то неизбежно получался бы каждый раз разный объём считанного.
Добавлено через 2 часа 20 минут Решилась проблема. Через использование DataReceived. Загадка, однако, осталась - что это за магическое число 12290? Хотя, теперь оно уже не так и важно. Разве что, для общего развития хотелось бы понять.
0
|
|
|
2 / 2 / 0
Регистрация: 06.03.2017
Сообщений: 50
|
||
| 21.02.2019, 23:26 | ||
|
0
|
||
|
2 / 2 / 0
Регистрация: 06.03.2017
Сообщений: 50
|
||
| 22.02.2019, 10:20 | ||
|
Добавлено через 12 минут Но если обьяснить суть того почему вопрос так интересует.Через железо по виртуальному порту принимаем данные ввиде высокоскоростной шины данных автомобиля. Все хорошо.Но ....проведя разные эксперименты обнаружилось что если убрать весь код и оставить только чтоб данные получать из порта, то работа порта так нагружает процессор, что я даже не знаю какой в таком случае и надо то.Вот и хотелось поиграть с размерностью буфера, чтоб количество считывания с порта уменьшить.НО все время принимает в одной и той же размерности,хотя настройки показывают что буфер -его размерность меняется, в зависимости какое выставили. Или это такая особенность на с#
0
|
||
|
[Bicycle Reinventor]
|
|||
| 22.02.2019, 10:32 | |||
|
0
|
|||
|
2 / 2 / 0
Регистрация: 06.03.2017
Сообщений: 50
|
||
| 22.02.2019, 11:23 | ||
|
Меня на данный момент интересует почему так много используется процессор и как сделать так чтоб он не сильно нагружался .Вот и хотел поиграть с буфером но ....Упс так и не понял как за один раз принимать то количество что которое ограничено размером буфера а не магические 12300
0
|
||
|
[Bicycle Reinventor]
|
|
| 22.02.2019, 11:30 | |
|
Буфер можно хоть гигабайтный поставить, но принять за секунду больше, чем позволяет скорость порта, всё равно не получится.
Если скорость 256000, 10 бит на кадр, то выходит 25600 байт/сек. Таймаут чтения в SerialPort по умолчанию выставлен в 500 мсек, за это время можно принять максимум 12800 байт. С учетом того, что у таймеров в винде есть погрешности, можно допустить, что принимается только 12300 байт.
0
|
|
|
2 / 2 / 0
Регистрация: 06.03.2017
Сообщений: 50
|
|
| 22.02.2019, 11:43 | |
|
Все как бы правильно,но тайминг разный пробовал.Все одно .12300 плюс ,минус единицы.Пробовал другое оборудование, в зависимости от скорости порта, чем ниже опеделенной скорости происходит переполнения буфера порта и соответственно на том оборудовании об этом говорит оборудование.То есть при меньшей скорости не успевал обновляться ком порт.Скорость выше все нормально.Программное обеспечение для оборудование позволяет выставить скорость в плоть до 8 мбит,что и рекомендует призводитель выставить 4мбит.Значит скорость порт поддержит и выше 256000.Но в том то идело что ам и там везде эти 12300.Как быть -ума не хватает.
Добавлено через 3 минуты и все именно связано с работай порта.Если в оборудовании выставить аппаратные фильтра, то уменьшаем количество данных, сразу падает нагрузка проца.Если принимать все то и проблема с нагрузкой.В пике до 60 процентов, в среднем до 30.Много.
0
|
|
|
2 / 2 / 0
Регистрация: 06.03.2017
Сообщений: 50
|
|
| 23.02.2019, 12:35 | |
|
Во всяком случае определенное решение было найдено, хотелось еще, ну во всяком случае это уже решение. Задача ставилась уменьшить нагрузку на процессор при очень большом и очень быстром приеме данных через CОМ порт. Если кому интересно применение внешней длл при работе порта уменьшило нагрузку на проц раз в 10-20. https://github.com/jcurl/SerialPortStream
0
|
|
| 23.02.2019, 12:35 | |
|
Помогаю со студенческими работами здесь
11
Оптимальный размер буфера для чтения/записи файла
Микроконтроллер от B&R, как получить размер буфера Реализация сервер - клиенты через Сокеты. Размер буфера при передаче списков Serialport.write и serialport.basestream.write - в чем разница Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2.
Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива.
Было так:. . .
|
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: реализовать контроль корректности заполнения дат назначения. . .
|
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html
Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
|
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
|
|
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях.
Задача: при копировании документа очищать определенные реквизиты и табличную. . .
|
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git
main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели
8ATzM_2aurI
|
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2.
Задача: запретить редактирование документа, если он открыт у другого пользователя.
/ / . . .
|
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои.
А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
|