Как я могу отправить шестнадцатеричные данные через последовательный порт в пользовательский инструмент, используя 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)