Как работать с ethernet портом на c++

368
06 июня 2017, 00:35

Здравствуйте. У меня есть пульт который подключается к специальному контроллеру через ethernet кабель. Пульт состоит из двух кнопок, а в кабеле имеется только 3 провода. Я хочу подключить компьютеру к контроллеру, что бы компьютер выполнял функции пульта.

План был такой: Сперва я хотел подключить пульт к компьютеру и узнать какого рода команды он подаёт контроллеру нажимая на кнопки. Далее написать не большой код на основе полученной информации, который давал бы команды на контроллер. Потом уже добавил бы те функции программе которые не мог выполнять пульт.

Проблема в том, что у меня и так не большой опыт в программировании на c++, а о работе с портами я вообще не чего не знаю.

Вопрос: Что потребуется для написания программы которая будет отображать сигнал поступающий на ethernet порт компьютера? Как отправлять сигнал на ethernet порт с помощью c++? Возможно ли вообще всё это?

Ниже приведена "схема" подключений. 1011 символизирует информацию. (1. Нынешнее подключение. 2. Получение сигнала от пульта на компьютер. 3. Отправка сигнала с компьютера на контроллер)

Также фотография пульта с обратной стороны.

Заранее спасибо!

Answer 1

Это не COM порт чтобы напрямую с него считывать сигналы, этим занимается сетевая карта и обрабатывает по протоколу Ethernet.

Подключите этот пульт к COM-порту.

Answer 2

Как уже выяснили в комментариях, это не Ethernet. И даже не com. По-моему, эта вещичка устроена так:

На средний провод подаётся постоянное напряжение, а кнопки замыкают соответствующие цепи, и тогда напряжение появляется на других линиях. Из интерфейсов, существующих в компьютере, здесь подойдёт только LPT-порт: центральный провод соединить с линией strobe и подать на него высокий уровень (логическую единицу). Другие линии соединить с любой из линий состояния и постоянно проверять на них логический уровень.

Проблема в том, что на современных компьютерах такого порта давно уже нет. Поэтому я могу посоветовать брать свой контроллер (например, STM32F103), с его помощью проверять состояние кнопок. Это легко делается через порты GPIO. На компьютер можно передавать данные с помощью USB, который встроен в этот контроллер. Но USB - штука довольно сложная, поэтому вам легче будет воспользоваться преобразователем USB-UART, например, CP2102.

READ ALSO
Ожидание выполнения потока Winapi

Ожидание выполнения потока Winapi

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

297
Что значит конструкция if (mas[i] - !!a != a[i])

Что значит конструкция if (mas[i] - !!a != a[i])

Недавно начал изучать C++, столкнулся со странной конструкцией условного оператора и не могу понять что он с чем сравнивает

381
Получить данные с модального окна

Получить данные с модального окна

У меня есть класс основного окна MainWindowС него я запускаю (допустим, при авторизации) модальное окно авторизации с полями "Логин", "Пароль" (lineLogin,...

258