13 votes

Création d'un port série virtuel

J'essaie de créer une paire de ports série virtuels sur mon Mac. C'est assez facile à faire avec de nombreux programmes shareware sur un PC. Je pensais qu'il y aurait une commande shell super puissante pour faire cela en une seule ligne, mais je ne la trouve pas.

Je veux envoyer des données NMEA sur un port et faire en sorte que Google Earth lise les données sur l'autre port.

Des conseils ?

EDIT

MrDaniel's /dev/ptypx commentaire semblait intéressant - je peux l'extraire de /dev/ttypx très bien dans le terminal.
Mais Google earth semble lire cu. nom du dispositif au lieu de la /ttypx deveices

spécifiquement (Vieux Pro) :

Lorsque nous essayons d'importer la position actuelle à l'aide d'un GPS (ou d'un flux NMEA acheminé par notre port série virtuel), nous allons : Outils > GPS > Temps réel pour arriver à l'écran d'importation.
Après avoir sélectionné l'option NMEA, et activé le suivi en temps réel, il recherche les appareils connectés, et semble regarder :

  • usb :
  • /dev/cu.Bluetooth-PDA-Sync
  • /dev/cu.Bluetooth-Modem
  • /dev/cu.iPhone-WirelessAP

Même si notre port série ttypx fonctionne bien, il ne le cherche pas.
J'aimerais transférer les données de cet appareil dans Google Earth.

11voto

TeHypno Points 9

Google propose un outil extrêmement utile pour les développeurs Arduino et il simule très bien les ports série sur OS X à des fins de test. Il ne fonctionne que jusqu'à 10.6

https://github.com/clokey/PublicCode/tree/master/MacOSXVirtualSerialPort

(précédemment disponible auprès de http://code.google.com/p/macosxvirtualserialport/ )

Cela pourrait-il vous aider ?

5voto

MrDaniel Points 12472

Je pense que ce que vous cherchez est un Pseudo Terminal, comme indiqué dans Text-Terminal-HOWTO . Il semble que Mac OS X a intégré dans /dev et il semble que cela puisse faire ce que vous voulez faire, par exemple, deux programmes parlant ensemble via un port série "virtuel".

Les pseudo-terminaux sont des paires de périphériques tels que /dev/ptyp3 et /dev/ttyp3. Il n'y a pas de périphérique physique directement associé à l'un ou l'autre, pas même un connecteur de port série. Mais si un programme traite ttyp3 comme s'il s'agissait d'un port série, ce qui est lu et écrit sur ce port apparaît sur l'autre membre de la paire ptyp3 qu'un autre programme utilise pour lire et écrire. Ainsi, deux programmes communiquent entre eux via cette méthode et un programme sur ttyp3 pense qu'il parle à un port série. C'est un peu comme un "tuyau" entre ces deux tty.

En outre, le écran peut également vous être utile.

1voto

nohillside Points 82672

Il y a plusieurs angles à votre question ici :

  • Voulez-vous simplement convertir les traces NMEA, etc. en quelque chose que Google Earth peut lire (et afficher) ? GPSBabel est l'outil de choix pour ce genre de choses.
  • Vous voulez attacher votre GPS et lire son contenu via un port série ? Les Macs n'ont pas de port série, vous aurez besoin de quelque chose comme Keyspan USA-19HS pour connecter des périphériques série via USB.
  • Par curiosité, voulez-vous créer des périphériques série virtuels ? C'est définitivement possible mais au-delà de mes connaissances...

0voto

Oskar Points 1242

Il n'est pas certain que vous puissiez fausser la détection du port série intégré, mais je commencerais par un tuyau nommé (mkfifo) dans /dev/cu.fake.ttypx et avoir des données prêtes à être lues lorsque vous activerez le temps réel.

Ma copie de Google Earth semble interroger chaque source potentielle dans l'ordre et continue à ne rien faire d'autre que de scanner puisque aucune donnée NMEA ne m'est fournie.

Vous aurez bien sûr besoin d'un petit [shell|perl|Python] script pour lire les données de la base. /dev/ttypx et écrire dans votre "faux" fichier fifo.

-1voto

Tom Dowad Points 1

J'ai utilisé un pseudo-terminal Posix pour créer un port de communication virtuel dans un programme C OSX. Vous pouvez rechercher la fonction de la bibliothèque posix_openpt().

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X