Comment envoyer une séquence de commandes à un port série en bash?
Dans Linux, j'ai besoin d'envoyer une séquence de commandes à un port série sur, par exemple,/dev/ttyS0
, qui n'a plus à attendre un OK
réponse avant la prochaine commande est envoyée. Je pourrais imaginer faire quelque chose comme
echo 'AT' > /dev/ttyS0
echo 'ATS0=0' > dev/ttyS0
...
mais ce n'est pas d'évaluer la réponse de l'appareil sur le port.
Est-il un très moyen simple de automatiser dans un script bash, probablement avec l'aide de socat
et/ou microcom
mais pas d'outils qui ne peuvent pas trouvé sur le plus simple système linux.
Comment faire simple? La plupart des Linux peut avoir n'importe quel nombre d'outils est installé très facilement.
Je ne peux vraiment pas dire à coup sûr. Nom de moi un outil de travail et je peux vous dire que si je suis en mesure de l'utiliser.
Je ne peux vraiment pas dire à coup sûr. Nom de moi un outil de travail et je peux vous dire que si je suis en mesure de l'utiliser.
OriginalL'auteur Alex | 2013-02-14
Vous devez vous connecter pour publier un commentaire.
Si vous installez le paquet PPP, vous pouvez utiliser le
chat
programme qui vient avec elle. Ou vous pouvez utiliserkermit
. Ou lacu
programme qui vient avec uucp. Mais le faire avec de la pure shell est plus délicat. Vous pourriez être en mesure d'utiliser les lire et les fonctions printf, avec stdio redirigé vers le port.quelques extrait de:
Devrait vous obtenir a commencé.
sudo bash -c "chat -v -f chat.txt < /dev/ttyS0 > /dev/ttyS0"
avec l'détaillé de l'action et le fichier constitué de'' AT OK AT OK
, mais n'a obtenu aucune sortie à tous. Est-ce de travailler ou pas? Je n'ai superviser quelque chose?Vous ne verrez rien normalement, mais il semble que vous vous pouvez utiliser le
-sv
options pour le voir connecté sur la sortie stderr. Le-v
par lui-même les logs syslog. BTW, vous pouvez également utiliser laexpect
outil.Je suis en train de faire la même chose, mais sur mobile android. cette réponse m'aider? si oui, qu'est-ce que paquet ppp et qui puis-je l'installer.
OriginalL'auteur Keith
Ici est un très moyen simple de automatiser dans un script bash:
à l'aide de la atinout programme qui est écrit spécifiquement avec cette fonctionnalité que son seul but. La sortie ci-dessus est en supposant que
ATE1
; sans l'écho de la réponse du modem sera"\r\n\r\nOK\r\n\r\nOK\r\n"
.Dans l'exemple ci-dessus, atinout enverra la première commande
AT
(correctement la résiliation de la ligne de commande avec\r
), attendre jusqu'à ce qu'il reçoit un Résultat Final de Code (par exemple,OK
) et d'abord, puis poursuivre le traitement de la commande suivante.Vous pouvez donner entrée à partir d'un fichier en spécifiant que, au lieu de la première
-
, et si vous voulez capturer la sortie de donner un nom de fichier au lieu de la dernière-
. Vous pouvez utiliser ici doc au lieu de regroupées écho des commandes si vous le souhaitez.OriginalL'auteur hlovdal
Pour montrer les messages depuis:
ou toutes les autres commandes de modem de type
who
pour trouver le numéro de terminal puis exécutez:Alors les messages de la commande s'affichera sur votre terminal.
OriginalL'auteur len
Vous avez une erreur :
signifie affichage AU fichier qui n'existe pas je pense.
Au lieu de cela, essayez de le faire :
Qui utilise shell ici-doc
OriginalL'auteur Gilles Quenot