Счетчик последовательных портов

Я хочу подключить простой коммутатор к компьютеру с помощью последовательного порта. Всякий раз, когда переключатель закрывается, я хочу увеличить переменную. Я использую Visual C ++ для проекта.

Может ли кто-нибудь показать мне подход к этой задаче? Я использовал Google и нашел примеры для чтения и записи данных через последовательный интерфейс, но я не знаю, как реализовать счетчик.

0
nl ja de
Вы можете подключить переключатель к одной из линий квитирования, линии Ring или CTS. WaitCommEvent (), чтобы увидеть его изменение. Остерегайтесь электрических проблем, которые у вас есть, вы должны качать входную линию, по крайней мере, плюс/минус 5 вольт. Спросите на электронике.stackexchange.com
добавлено автор Hans Passant, источник
Что вы имеете в виду, не зная, как реализовать счетчик? Вы имеете в виду механику инициализации и приращения переменной?
добавлено автор RonaldBarzell, источник

2 ответы

Я не думаю, что это работает на обычном последовательном порту, так как последовательный порт в целом использует импульсы (несколько импульсов могут быть одного уровня для последовательных или нулей, но по крайней мере будут импульсы для начала/конца последовательность и обычно посередине). В сообщении задано количество бит, обычно 1 старт, 8 данных и 1 стоповый бит.

Вы можете сделать это с помощью параллельного порта или вывода GPIO, если в системе, в которой вы работаете, есть такая вещь.

Или вам нужно реализовать некоторую логику, чем простой коммутатор, так что вещь отправляет последовательность импульсов для составления полного пакета и имеет сообщение «close» и одно для «open».

1
добавлено
В зависимости от того, насколько широким является импульс, это может быть действительный сигнал BREAK, о котором сообщается в программное обеспечение.
добавлено автор Ben Voigt, источник
Технически, если мы хотим быть немного сложными, я полагаю, что у нас может быть драйвер, который реагирует на изменения в статусных контактах модема, например. CTS и DSR. Отшелушивание одного из них, и мы могли сосчитать их в драйвере. Но я не думаю, что это решение, которое имел в виду первоначальный вопросник.
добавлено автор Mats Petersson, источник
Да, есть различные способы подключения к последовательному порту, но я все еще не думаю, что это то, что имел в виду оригинальный плакат. Если я ошибаюсь, тогда @marc, пожалуйста, сделайте комментарий.
добавлено автор Mats Petersson, источник
Это действительно так. Последовательный порт на ПК управляется простым аппаратным обеспечением, которое использует протокол RS232 для отправьте символы между ним и последовательным портом на другом конце. Протокол является одним из простейших протоколов связи, но он все еще не так прост, как использование параллельного порта.
добавлено автор Will, источник

К разъему DTR последовательного порта можно подключить контакты DSR или RI через коммутатор или провод. Легко управлять последовательным портом с классом последовательного порта .NET framework. Образцы кода можно найти в записи класса последовательного порта msdn.

0
добавлено
pro.cxx
pro.cxx
3 049 участник(ов)

C/C++ chat 0. Простые вопросы, лабы и о IDE — в чат новичков @supapro 1. Не хамим, не переходим на личности, не вбрасываем утверждения без доказательств 2. No Ads, offtop, flood Объявления о вакансиях и евенты - в лс @AlexFails https://t.me/ProCxx/259155

supapro.cxx
supapro.cxx
1 925 участник(ов)

Чат для тех, кто немного знает C++, простые вопросы по реализации, синтаксису и ide – сюда, а для другого есть: /Главный чат по серьезным вопросам — @ProCxx /Чат по обсуждению всего — @fludpac

C++ Russia
C++ Russia
384 участник(ов)

Сообщество разработчиков C++ в Telegram.

cxx.Дискуссионная
cxx.Дискуссионная
298 участник(ов)

это не двач, общайтесь вежливо; разговор на почти любые темы; Не согласны с баном? В лс @AlexFails, @ivario

C++ для маленьких и тупых
C++ для маленьких и тупых
105 участник(ов)

Лоу левел (по среднему IQ участников) чатик ExtremeCode @extremecode Флудилка @extremecode_rest