Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
204 / 20 / 1
Регистрация: 29.10.2009
Сообщений: 430

Как лучше сделать обработку приходящих команд в COM-порт с железа?

01.10.2014, 23:05. Показов 1065. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет!

Уже как 2 года начал заниматься велоспортом, и имея багаж знаний по электронике и программированию железе решил собрать "своими руками" регистратор для установки на финиш. Задача регистратора - фиксировать время в таблице и делать фото в момент пересечения.

Железо - ATmegaXXX, Фототранзистор и лазерная указка(мощная). Эта часть в принципе собрана за 5 минут. Скорость обмена данными между железкой и компом 9600(битрейд). Получается в ком шлются данные либо постоянно, либо в момент пересечения отсылается флаг, от которого должна срабатывать программа на компе.

На компе идет постоянный мониторинг приодящих данных, от отлавливается наш флаг. Если флаг приходит - программа фиксирует время, и заносит в таблицу.

Также при срабатывании будет грабаться фоторяд с вебкамеры, но это уже я сам через библиотеки компютерного зрения сделаю.

Как лучше сделать обработку приходящих команд в компорт с железа ? Какая скорость лучше?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
01.10.2014, 23:05
Ответы с готовыми решениями:

Как лучше сделать обработку ошибок выполнения dll?
Варианты: Писать в лог-файл. Выводить сообщение. Издавать звук. Мне больше всего нравится комбинация второго и третьего...

Как лучше сделать вывод ключевых слов и описания? Через обработку текста скриптом или вытаскивать из базы?
пишу движок для сайта php, думаю как лучше сделать вывод ключевых слов и описания. Если делать сриптом обработки текста то нагрузка больше...

Как лучше реализовать обработку строки?
Здравствуйте, делаю простецкий обработчик HTTP заголовков. Как лучше сделать, с начало узнать длину подстроки с заголовками, а потом...

13
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
01.10.2014, 23:19
Цитата Сообщение от SERGEY199100 Посмотреть сообщение
Как лучше сделать обработку приходящих команд в компорт с железа ?
Повесить обработчик на порт и открыть его на прием данных.
Цитата Сообщение от SERGEY199100 Посмотреть сообщение
Какая скорость лучше?
Та, на которой работает ваше железо, ятд.
0
204 / 20 / 1
Регистрация: 29.10.2009
Сообщений: 430
01.10.2014, 23:22  [ТС]
Обработчик который держит порт открытым и постоянно читает все что в него сыпется, даже мусор... Как сделать скорость обработки так, чтобы если в процессе фиксации флага выполнялось параллельно действие -грабались фреймы с вебки, и при этом все происходило синхронно, не лагая. Я так понимаю тут надо через процессы делать. Но у меня нет опыта работы с процессами. Если кинете пример с исходниками, постараюсь изучить, ну или хотя бы переделать под свои задачи.
0
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
01.10.2014, 23:25
Цитата Сообщение от SERGEY199100 Посмотреть сообщение
Обработчик который держит порт открытым и постоянно читает все что в него сыпется, даже мусор...
А как иначе? Вы же не знаете точно, когда придет сигнал. Ну или в крайнем случае, выбрать приемлемый интервал и открывать порт через промежутки времени, достаточно малые, чтобы отследить появление сигнала...
Цитата Сообщение от SERGEY199100 Посмотреть сообщение
Я так понимаю тут надо через процессы делать.
Скорее через потоки. Многопоточность. Один поток на отслеживание сигнала из порта, второй на видео, ну и главный-интерфейс пользователя.
0
204 / 20 / 1
Регистрация: 29.10.2009
Сообщений: 430
01.10.2014, 23:30  [ТС]
Потоки, вы правы, думал о них. Может найдется парочка простых наглядных примера? Получается в первом потоке будет веститсь работа на SerialRead порта с железом, и занесение времени в таблицу, во втором потоке перехватываться фреймы с вебкамеры через библиотеку компьютерного зрения, а в третьей собственно сам интерфейс. Пока пишу эти комментарии постепенно осознаю что необходимо сделать)
0
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
01.10.2014, 23:34
Цитата Сообщение от SERGEY199100 Посмотреть сообщение
Может найдется парочка простых наглядных примера?
Конкретно под вашу задачу? Это вряд ли, я же такое не делал...
Как создать потоки, как запустить и т.п. - могу показать, но всю рабочую логику вам придется писать самому, тут уж извините...
0
204 / 20 / 1
Регистрация: 29.10.2009
Сообщений: 430
01.10.2014, 23:37  [ТС]
Вот железо
Миниатюры
Как лучше сделать обработку приходящих команд в COM-порт с железа?   Как лучше сделать обработку приходящих команд в COM-порт с железа?   Как лучше сделать обработку приходящих команд в COM-порт с железа?  

0
204 / 20 / 1
Регистрация: 29.10.2009
Сообщений: 430
01.10.2014, 23:39  [ТС]
Мне пример любой, я в коде покапаюсь и разберусь что куда и как) Я в основном сперва ищу примеры, ковыряюсь в них, тестирую, изучаю как работает а потом либо пишу свой либо переделываю пример...
0
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
01.10.2014, 23:40
SERGEY199100, это я понял, по вашему рассказу. Что непосредственно ваше железо отправляет в порт?
Можете запустить терминал порта и отмониторить, что в порт летит?
0
204 / 20 / 1
Регистрация: 29.10.2009
Сообщений: 430
01.10.2014, 23:50  [ТС]
Могу. Железо выдает мне то, что я сам укажу. Но в данном примере у меня идет условие, что, если засветка фотодатчика в пределах от 100 до 500 - выдавать в комп порт строку "Finish detected". Если за пределами - ничего не слать.
0
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
01.10.2014, 23:52
SERGEY199100, Ну и отлично. Значит принимать строку. Могу что-то примерное накидать, но сегодня вряд ли, у нас уже поздновато, а мне еще по работе надо пару железок отремонтировать. Завтра, ближе к вечеру-можно.
1
204 / 20 / 1
Регистрация: 29.10.2009
Сообщений: 430
01.10.2014, 23:59  [ТС]
Завтра накидаю интерфейс и поищу тоже примеры.
0
484 / 397 / 68
Регистрация: 14.02.2014
Сообщений: 1,930
03.10.2014, 09:09
А зачем с SerialPort работать в отдельном потоке? Есть же событие DataReceived.
0
204 / 20 / 1
Регистрация: 29.10.2009
Сообщений: 430
26.08.2016, 15:22  [ТС]
Продолжение темы тут Пример для записи времени таймера в ячейку подключенной БД. Фотофиниш
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
26.08.2016, 15:22
Помогаю со студенческими работами здесь

Посоветуйте как лучше реализовать обработку порядка 100 млн. записей
Основная суть вопроса в самой теме. Исходные данные в СSV файлах с количеством записей от 5 000 до 1 000 000 в каждом. Изначально нужно...

Необходимо создать обработку команд которые введёт пользователь в текстовом меню
Есть программа которая принимает текст пользователя и нумерует каждую букву по алфавиту Добавлено через 36 секунд /** * @autor...

Как лучше - создавать и уничтожать несколько команд или каждый раз просто менять свойство команды
У меня несколько команд: 1) запрос к одной таблице; 2) очистка второй таблицы; 3) вставка данных во вторую таблицу Вот тут в примере...

Как сделать обработку событий в консоли?
Как сделать, чтобы при нажатии на клавиатуру, в консоли выводилось уведомление ?Можете еще скинуть понятной литературы на эту тему? ...

Как сделать спектральную обработку изображения?
Приветствую всех! возник такой вопрос как это реализовать ?? Суть вопроса "Спектральная обработка изображения в MATLAB" 1)...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru