Форум программистов, компьютерный форум, киберфорум
Наши страницы
КИП, датчики
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.69/13: Рейтинг темы: голосов - 13, средняя оценка - 4.69
седьмой
42 / 41 / 1
Регистрация: 11.07.2012
Сообщений: 1,015
1

Как из com порта получить сигнал?

28.07.2016, 19:45. Просмотров 2707. Ответов 28
Метки нет (Все метки)

Здравствуйте уважаемые форумчаны и форумчанки. Мне нужно из СОМ порта получить данные, но не опрашивать порт периодически, а прочитать его по аппаратному прерыванию под виндой, как это примерно можно сделать сделать? Как прочитать значение данных в порту на с# я примерно понял из вот этой темы Работа с монохроматором МХД-2 через COM-порт а вот каким образом выполнять на компьютере какой то длительный процесс, а потом его прервать по прерыванию СОМ порта, проанализировать на C# и отправить на пример в другой порт, как отправить я тоже знаю. Я не понимаю как мне поймать прерывание по СОМ порту и запустить по нему программу на с# для обработки этого кода? Драйвер нужно какой то писать? Или что нужно делать?, винда 7- 64 количество процессоров (ядер) несколько, буду признателен за помощь.
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.07.2016, 19:45
Ответы с готовыми решениями:

Получить сигнал с СОМ-порта
Здравствуйте.Собсно поставлена такая задача - получить по COM-порту код,преобразовать в число и...

PyQt как получить сигнал из потока
у меня не получается получить сигнал из созданного потока. # -*- coding: utf-8 -*- import sys...

Может ли получить сигнал потомок от родителя, если сигнал: посылается всем (kill(0,SIGTERM) а потомок был добавлен в группу
Может ли получить сигнал потомок от родителя, если сигнал: посылается всем (kill(0,SIGTERM)) а...

питание ОУ или как из +5В получить разнополярный сигнал
Привтствую созедатели и творцы микроэлетронного сообщества. вопрос такой есть AVR 16мега. собран...

Как получить событие от COM или LPT порта?
Возникла проблемка! Хотелось бы создать обработчик события, которое приходит на COM или LPTпорт....

28
Rius
Эксперт .NET
6213 / 4042 / 970
Регистрация: 25.05.2015
Сообщений: 12,230
Записей в блоге: 12
Завершенные тесты: 4
01.08.2016, 11:53 21
Что за PCI шина? Что на ней висит?
Нужна ли на самом деле работа в режиме реального времени?
1
Витальич
1277 / 1183 / 175
Регистрация: 02.12.2013
Сообщений: 4,886
01.08.2016, 12:02 22
Цитата Сообщение от седьмой Посмотреть сообщение
То я все же не понимаю зачем использовать внешний МК
Навскидку:
1. Скорость инициализации при включении (МК сразу начнет выполнять код, компу еще надо загрузиться)
2. Наличие нескольких WDT делают систему более надежной. (Хотя если брать пром пи си там тоже он есть)
3. Чем сложней система тем она менее надежна (код без OS "вылезать" проще, чем компоненты операционной системы)
4. Энерго потребление на МК ниже.
ФедосеевПавел,Вы абсолютно правы, извините за категоричность.
1
седьмой
42 / 41 / 1
Регистрация: 11.07.2012
Сообщений: 1,015
01.08.2016, 13:14  [ТС] 23
Rius на плате микроконтроллер и какая то логика. Да нужно на самом деле ... Спасибо всем за пояснения, дальше буду разбираться сам, наверно тему можно закрыть. Витальич спасибо, что все подробно разжевали, просто как всегда все надо срочно, а самому быстро не сориентироваться в современных технологиях, когда приходится работать не узко по одному направлению, спасибо всем за помощь.
0
ValeryS
Модератор
7964 / 5933 / 785
Регистрация: 14.02.2011
Сообщений: 20,413
Завершенные тесты: 1
02.08.2016, 08:00 24
простейший ответ на стартовый вопрос
Цитата Сообщение от седьмой Посмотреть сообщение
Мне нужно из СОМ порта получить данные, но не опрашивать порт периодически, а прочитать его по аппаратному прерыванию под виндой,
1 подключаем порт при помощи CreateFile вот здесь описано https://ru.wikibooks.org/wiki/COM-порт_в_Windows_(программирование)
2 в отдельном потоке опрашиваем порт, в синхронном режиме
3 как только с порта что то считалось, поток посылает сообщение главному потоку, этакий аналог прерывания
Но как уже выше отмечалось Винда не система реального времени, не гарантирует одинаковый отклик на события
из бесплатных систем реального времени могу порекомендовать FreeRTOS https://ru.wikipedia.org/wiki/FreeRTOS, портирована на стопитсот платформ, даже на большие компы, но под ДОСом
но я на больших не работал, дело в том что ДОС тоже не система реального времени, и как они дружат не знаю
1
02.08.2016, 08:00
седьмой
42 / 41 / 1
Регистрация: 11.07.2012
Сообщений: 1,015
02.08.2016, 11:34  [ТС] 25
Спасибо всем за помощь, решил делать на Убунту в линуксе пока, а дальше уже смотреть что получится...
0
седьмой
42 / 41 / 1
Регистрация: 11.07.2012
Сообщений: 1,015
15.08.2016, 15:07  [ТС] 26
Ну все спасибо всем за помощь разобрался, настроил второй комп в качестве эмулятора внешнего устройства и с него (он под виндой) в программе Com port Toolkit 4.0 меняю выходные управляющие сигналы на контактах DTR и RTS, по кабелю Полный нульмодемный для сом порта на своем компьютере под линуксом в программе считываю сигналы, соответственно с контактов DSR и CTS. и они соответственно изменяются в зависимости от входных
C
1
2
TIOCM_CTS установлен
TIOCM_DSR установлен
или не установлены
0
Вложения
Тип файла: zip serial_port6.c.zip (649 байт, 2 просмотров)
седьмой
42 / 41 / 1
Регистрация: 11.07.2012
Сообщений: 1,015
19.08.2016, 06:55  [ТС] 27
Цитата Сообщение от Витальич Посмотреть сообщение
Потом покажите драйвер на VB когда создадите
С драйвером пока ничего не вышло, слишком сложная оказалась задача, а под заказ может кто нибудь написать. не подскажете случайно? пока не нужно, но если вдруг потребуется, просто никогда не обращался по таким задачам. как то код находился сам собой...
0
Витальич
1277 / 1183 / 175
Регистрация: 02.12.2013
Сообщений: 4,886
19.08.2016, 09:06 28
Цитата Сообщение от седьмой Посмотреть сообщение
а под заказ может кто нибудь написать. не подскажете случайно?
В тематических ветках запрещено размещать предложение о работе!
Разместить предложение можете здесь http://www.cyberforum.ru/order-work-hardware/
1
destructor53
0 / 0 / 0
Регистрация: 12.08.2019
Сообщений: 3
02.10.2019, 10:21 29
Подниму тему. Вопрос похожий.
Есть некое устройство , обмен с аппаратным контролем RTS/CTS.
Но "Com Port Toolkit" сразу вешает сигнал RTS при подключении к порту. Сигнал висит постоянно (смотрю осциллографом) . И, соответственно, я не могу получить ответ от устройства.
Пробовал "Terminal v1.9b" - то же самое.
Может кто подскажет что можно сделать?

"Родная" программа для этого устройства есть, но тупо работаем\не работаем , и посмотреть что ответило устройство нет возможности.
0
02.10.2019, 10:21
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.10.2019, 10:21

Как программно получить адрес СОМ порта?
Пишу программу для прошивки Flash памяти прибора через СОМ порт. Выяснилось, что при ошибке...

как можно получить данные из ком-порта?
Пожалуйста, напомните, В Вижуал Бейсик как можно получить и отправить даннқе на адреса порт. В...

Как получить сигнал с клавиатуры, если активно другое приложение
Всем привет. Хочу реализовать вызов приложения, которое в данный момент не является активным....


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

Или воспользуйтесь поиском по форуму:
29
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.