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

У меня есть машина (прибор), которая может читать шестнадцатеричные числа отдельно от 8 контактов в последовательном порту или принтере.

Я хочу отправить шестнадцатеричные данные из программы на C, работающей на компьютере, на этот компьютер. Компьютер и устройство подключены через порт принтера.

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

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

1 ответ

Решение

Во-первых, некоторые уточнения:

Последовательная связь - это протокол, который использует все (большинство) контактов. Некоторые контакты используются для синхронизации двух коммуникационных чипов. Но фактические данные отправляются с одного ПИН-кода данных, один бит за раз.

Параллельная связь, с другой стороны, представляет собой протокол, который использует 8 PIN-кодов ДАННЫХ для одновременной передачи одного байта за раз. Порты принтера обычно являются параллельными портами.

Зависит от ОС:

Способ отправки данных из программы через один из этих портов зависит от вашей операционной системы.

В Linux это проще, чем в Windows.

Для Windows это немного сложнее, потому что Windows накладывает ограничения на доступ к портам в пользовательском режиме (то есть с помощью пользовательских программ).

Для параллельного порта в Windows:

Однако для Windows я успешно отключил светодиоды от параллельного порта, используя io.dll предоставлено здесь на Geek Hideout. Пакет io.dll содержит заголовочный файл.dll и.h, документирующий функции, которые может использовать ваша C-программа.

Для последовательного порта в Linux:

Посмотрите код из этого ответа и этого Serial HOWTO (для Linux)

Другие вопросы по тегам