|
0 / 0 / 0
Регистрация: 02.06.2014
Сообщений: 38
|
||||||
Прием данных в COM Port02.06.2014, 21:59. Показов 10231. Ответов 41
Метки нет (Все метки)
пытаюсь написать код для принятия данных из Comport компилируется все без ошибок но почемуто обработчик прерываний на прием не срабатывает
0
|
||||||
| 02.06.2014, 21:59 | |
|
Ответы с готовыми решениями:
41
Прием и передача строки Serial Port Прием данных клиентом TcpClient, данных попадается некорректные значения, почему? Считывания данных с com-port! |
|
13 / 13 / 5
Регистрация: 21.06.2013
Сообщений: 128
|
||||||
| 11.06.2014, 19:24 | ||||||
на счет ошибки - получается массив пустой, поэтому и выдает ошибку. Как вариант - может быть ничего не принимается. Или принимается только один байт, который теряется при обработке. Если не критично терять один пакет, то поставить обработку исключения и должно заработать
0
|
||||||
|
0 / 0 / 0
Регистрация: 02.06.2014
Сообщений: 38
|
|
| 11.06.2014, 21:34 [ТС] | |
|
то есть в для каждого If нужно делать else {break;} ?
0
|
|
|
13 / 13 / 5
Регистрация: 21.06.2013
Сообщений: 128
|
||||||
| 11.06.2014, 21:44 | ||||||
|
нее, если массив пустой, то он при любом обращении к несуществующему элементу будет выдавать исключение. Я имел ввиду если можно потерять один пакет, который вызывает ошибку, поставить это условие в блок:
0
|
||||||
|
0 / 0 / 0
Регистрация: 02.06.2014
Сообщений: 38
|
||||||
| 11.06.2014, 21:53 [ТС] | ||||||
|
раза 4 нормально принимает на 5 раз ошибку бахает мне
Добавлено через 8 минут
0
|
||||||
|
13 / 13 / 5
Регистрация: 21.06.2013
Сообщений: 128
|
|
| 11.06.2014, 22:00 | |
|
да, попробуй так. Но если это в приеме данных через ком порт и срабатывает событие прихода данных, то в массиве что-то же должно быть, правильно? Вариант с обработкой исключений - уберет ошибку, а не причину ее появления. Попробуй посмотреть что находится в переменной для приема, при возникновении исключения.
0
|
|
|
0 / 0 / 0
Регистрация: 02.06.2014
Сообщений: 38
|
|
| 11.06.2014, 22:32 [ТС] | |
|
странно в буфере всего 1 символ а посылается 4 байта
0
|
|
|
13 / 13 / 5
Регистрация: 21.06.2013
Сообщений: 128
|
|
| 12.06.2014, 21:20 | |
|
можете привести весь свой код приема данных? Судя по скрину, вы только и принимаете 1 байт...
0
|
|
|
0 / 0 / 0
Регистрация: 02.06.2014
Сообщений: 38
|
||||||
| 13.06.2014, 19:24 [ТС] | ||||||
0
|
||||||
|
|
|
| 13.06.2014, 19:53 | |
|
кингофф, я уже неоднократно в темах говорил, что по моим наблюдениям, последовательный порт-жутко тормозная штука... И в обработчике приема пытаться принять данные не всегда получается (или получается, но в буфере приема не все данные, что ожидаются, а уже таймаут порта вылетает). Я обходил это циклом с проверкой свойства порта BytesToRead. Как только количество байт в буфере было то, что нужно, выход из цикла.
0
|
|
|
0 / 0 / 0
Регистрация: 02.06.2014
Сообщений: 38
|
||||||
| 14.06.2014, 00:56 [ТС] | ||||||
0
|
||||||
|
0 / 0 / 0
Регистрация: 02.06.2014
Сообщений: 38
|
||||||
| 16.06.2014, 11:47 [ТС] | ||||||
|
Comport не может же быть таким глюченым, из 5 посылок по 4 байта, 3 посылки бракуются
Добавлено через 27 минут я взял готовую программу терминал которая в text.box выводила принимаемые данные без всяких ошибок и в обработчике прерывания по приему добавил
0
|
||||||
|
13 / 13 / 5
Регистрация: 21.06.2013
Сообщений: 128
|
|
| 16.06.2014, 12:09 | |
|
посмотрите сторонними программами, что передает устройство. Может оно через несколько посылок отправляет еще что-то. Как вариант программа Putty
0
|
|
|
0 / 0 / 0
Регистрация: 02.06.2014
Сообщений: 38
|
|
| 16.06.2014, 12:22 [ТС] | |
|
я параллейно подцепил еще один приемник pl2303 и программой терминал смотрю что идет. контроллер посылает стабильно 4 байта.
0
|
|
|
13 / 13 / 5
Регистрация: 21.06.2013
Сообщений: 128
|
|
| 16.06.2014, 12:42 | |
|
тогда вариант смотреть сколько пришло в буфер, если меньше 4 - пропускать
0
|
|
|
0 / 0 / 0
Регистрация: 02.06.2014
Сообщений: 38
|
|
| 16.06.2014, 12:50 [ТС] | |
|
странно почему их пропускает. программа терминал нормально все выводит без единой потери а эта раз через раз
0
|
|
|
13 / 13 / 5
Регистрация: 21.06.2013
Сообщений: 128
|
|
| 16.06.2014, 12:56 | |
|
угу, странно. У меня вот, при отрисовке графика 4 ядра на 80% грузит, тоже очень странно ))
Но все равно при любой передачи желательно проверять, то ли прислали, что предполагалось... иначе могут запустить программу с другим устройством и она вместо того, что бы сообщить, что устройство не правильное вылетит или повиснет. Но это мое мнение. Если это программа именно для вас, то поставить только проверку количества принятых байтов и норм.
0
|
|
|
0 / 0 / 0
Регистрация: 02.06.2014
Сообщений: 38
|
|
| 16.06.2014, 12:58 [ТС] | |
|
а контроллер то один раз посылает пакет он потеряется и все. будет написанно что реле выкл а на самом деле оно включится
0
|
|
|
13 / 13 / 5
Регистрация: 21.06.2013
Сообщений: 128
|
|
| 16.06.2014, 15:08 | |
|
сложно что-то сказать в данном случае, т.к. именно ком порт не может сам потерять 3 байта и оставить один... это разве что в буфер не поместилось. а прошивка МК у Вас есть? может все-таки отправляет иногда 1 байт? Или посмотрите, что в этом байте, может он вообще рендомный... и не реагирует он на реле
0
|
|
|
0 / 0 / 0
Регистрация: 02.06.2014
Сообщений: 38
|
||||||
| 16.06.2014, 15:21 [ТС] | ||||||
0
|
||||||
|
13 / 13 / 5
Регистрация: 21.06.2013
Сообщений: 128
|
|
| 16.06.2014, 15:35 | |
|
ага, а первые два пакета - постоянные? если да, то можно по ним и смотреть реальная ли это посылка
0
|
|
| 16.06.2014, 15:35 | |
|
Асинхронные сокеты: Как организовать разделение на прием сообщений и прием файлов Прием по COM HEX данных TelegramBot прием данных с Inline Прием данных с СОМ-порта Прием и передача данных на одном порту Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#.
Название изменил на ColorStep.
Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
|
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами:
- ВидТО (СправочникСсылка. ВидыТО);
- ВидГСМ. . .
|
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала.
Ниже прикреплён. . .
|
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F
Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU.
Опрашиваются регистры. . .
|
|
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка:
Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
|
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо
Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
|
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман.
Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
|
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
|