У меня есть древний серийный спектрометр, который работает только на win9x. Я хочу перейти на систему Linux, но существующее программное обеспечение является частным и не будет работать. Я смог получить доступ к консоли внутри спектрометра. Консоль принимает символьные команды клавиатуры и отправляет вывод на последовательный порт.
в vb6 я могу записывать в com-порт значения char http://www.gtwiki.org/mwiki/?title=VB_Chr_Values , используя ComPort.Write (Chr (34))
Я заинтересован в использовании Qt для интерфейса, как я могу отправить что-то с тем же эффектом, что и ComPort.Write (Chr (34)), используя qt?
Вот пример с официального сайта Qt (C ++)
Если вы используете Visual Basic, вы можете предпочесть Gambas3
http://gambasdoc.org/help/comp/gb.net/serialport?v3
Gambas имеют схожий синтаксис Visual Basic (VB) и поддерживают Qt как набор инструментов GUI.
В Linux / BSD последовательный порт более доступен, чем windows. Таким образом, вы можете даже писать в него из оболочки / терминала или использовать системный вызов из большинства языков программирования.
Пример в оболочке с телефоном Android в качестве модема, это может помочь для отладки:
Чтение последовательного порта (должен быть root):
sudo su
cat /dev/ttyACM0
Поскольку вы можете прочитать только несколько строк по мере необходимости:
head -n2 /dev/ttyACM0
Написание серийного номера, Откройте другую вкладку терминала или окно:
sudo su
echo -e "AT" > /dev/ttyACM0
Показывает OK
в Окно чтения порта. Также вы можете отправлять шестнадцатеричные данные (используйте опцию -n, чтобы не отправлять новую строку в конце)
echo -e -n "\x41\x54\x0a" > /dev/ttyACM0
так же, как:
echo -e "\x41\x54" > /dev/ttyACM0
Оболочка будет отображать не отображаемый шестнадцатеричный код как маленький квадрат с его значением написано внутри него. Попробуйте это.
echo -e "\x13"