J'ai un ancien spectromètre en série qui ne fonctionne que sur win9x. Je veux convertir sur un système Linux, mais le logiciel existant est propriétaire et ne fonctionnera pas. J'ai pu accéder à une console en interne sur le spectromètre. La console accepte les commandes de caractères du clavier et envoie la sortie au port série.
dans vb6 je peux écrire sur le port com avec des valeurs de caractères http://www.gtwiki.org/mwiki/?title=VB_Chr_Values en utilisant ComPort.Write (Chr (34))
Je suis intéressé par l’utilisation de Qt pour l’interface. Comment puis-je envoyer quelque chose dans le même sens que ComPort.Write (Chr (34)) en utilisant qt?
Voici un exemple du site officiel de Qt (C++)
Si Visual Basic est votre background, vous préférerez peut-être Gambas3
http://gambasdoc.org/help/comp/gb.net/serialport?v
Gambas a une syntaxe similaire à Visual Basic (VB) et prend en charge Qt en tant que kit d’interface graphique.
Sous Linux/BSD, le port série est plus accessible que Windows. Vous pouvez même y écrire depuis Shell/terminal ou utiliser l'appel système depuis la plupart des langages de programmation.
Exemple dans Shell avec un téléphone Android comme modem, il peut être utile de déboguer:
Lecture du port série (doit être root):
Sudo su
cat /dev/ttyACM0
Comme vous pouvez lire quelques lignes au besoin:
head -n2 /dev/ttyACM0
Écrire en série, ouvrir un autre onglet de terminal ou une fenêtre:
Sudo su
echo -e "AT" > /dev/ttyACM0
Il affiche OK
sur la fenêtre de lecture du port. Vous pouvez également envoyer des données hexadécimales (utilisez l'option -n pour éviter d'envoyer une nouvelle ligne à la fin).
echo -e -n "\x41\x54\x0a" > /dev/ttyACM0
pareil que:
echo -e "\x41\x54" > /dev/ttyACM0
Shell affichera l'hex non affiché sous forme de petit carré avec sa valeur écrite à l'intérieur. Essaye ça.
echo -e "\x13"