13 votos

La creación de un puerto serie virtual

Estoy tratando de crear un par de puertos serie virtuales en mi Mac. Esto es bastante fácil de hacer con muchos programas shareware en un PC. Pensé que habría algún comando de shell superpoderoso para hacer esto en una línea, pero no lo encuentro.

Quiero enviar los datos de la NMEA a un puerto, y que Google Earth lea los datos del otro.

¿Algún consejo?

EDITAR

El Sr. Daniel /dev/ptypx comentario parecía ser interesante - puedo sacarlo de /dev/ttypx muy bien en la terminal.
Pero Google Earth parece estar leyendo cu. deviceName en lugar de la /ttypx deveices..

específicamente (Viejo Pro):

Al tratar de importar la ubicación actual usando un GPS (o un flujo NMEA canalizado a través de nuestro puerto serial virtual), vamos: Herramientas > GPS > Tiempo real para llegar a la pantalla de importación.
Después de seleccionar la opción NMEA, y habilitar el rastreo en tiempo real, busca los dispositivos conectados, y parece mirar:

  • usb:
  • /dev/cu.Bluetooth-PDA-Sync
  • /dev/cu.Módem Bluetooth
  • /dev/cu.iPhone-WirelessAP

Incluso con nuestro puerto serie ttypx funcionando bien, no lo busca.
Me gustaría llevar los datos de ese dispositivo a Google Earth.

1 votos

+1, ya que también me gustaría hacer esto para el desarrollo de dispositivos. También podría ser ServerFault, SuperUser o StackOverflow.

0 votos

¿Ha pensado en utilizar Google Latitude ¿en su lugar? Si eso no es aceptable, entonces por favor proporcione más detalles sobre lo que hace Google Earth.

0 votos

¿Has conseguido controlar Google Earth mediante una posición falsa proporcionada a través de un puerto NMEA? Me interesaría saber cómo funciona.

11voto

user23596 Puntos 176

Google tiene una herramienta extremadamente útil para los desarrolladores de Arduino y simula muy bien los puertos serie en OS X para fines de prueba. Sólo funciona hasta el 10.6

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

(anteriormente disponible en http://code.google.com/p/macosxvirtualserialport/ )

¿Podría esto ayudarte?

2 votos

Perdona que deshaga el borrado y lo edite, prefiero que te lleves el mérito de haber sacado a la luz el impresionante software de puerto serie virtual de google. Por supuesto, usted puede borrarlo de nuevo y lo dejaré solo si es su preferencia.

3 votos

El sitio code.google.com para macosxvirtualserialport ahora devuelve un error 404.

2 votos

El proyecto de Google parece estar disponible en Github ahora: github.com/clokey/PublicCode/tree/master/ aunque sólo funciona hasta 10.7

5voto

MrDaniel Puntos 8871

Creo que lo que está buscando es una pseudo terminal como se indica en Text-Terminal-HOWTO parece que Mac OS X tiene incorporado /dev y parece que esto puede hacer lo que quieras, por ejemplo, dos programas hablando juntos a través de un puerto serie "virtual".

Los pseudo terminales son pares de dispositivos como /dev/ptyp3 y /dev/ttyp3. No hay ningún dispositivo físico directamente asociado a ninguno de ellos, ni siquiera un conector de puerto serie. Pero si un programa trata a la ttyp3 como si fuera un puerto serie, lo que se lee y escribe en ese puerto aparece en el otro miembro del par ptyp3 que otro programa usa para leer y escribir. Por lo tanto, dos programas hablan entre sí a través de este método y un programa en ttyp3 piensa que está hablando con un puerto serie. Es algo así como un "tubo" entre estas dos tty's.

Además, el pantalla programa mi por útil para usted también.

1voto

Hay varios ángulos para su pregunta aquí:

  • ¿Quieres convertir las pistas de NMEA, etc. en algo que Google Earth pueda leer (y mostrar)? GPSBabel es la herramienta de elección para este tipo de cosas.
  • ¿Quieres conectar tu GPS y leer su contenido a través de un puerto serie? Los Macs no tienen puertos serie, necesitarás algo como Keyspan USA-19HS para conectar dispositivos en serie a través de USB.
  • ¿Quieres crear dispositivos de serie virtuales por curiosidad? Eso es definitivamente posible, pero más allá de mi conocimiento...

1 votos

Opción 3. Tengo los datos NMEA (en tiempo real), y quiero mostrarlos en tiempo real. Google Earth lee desde un puerto serie, así que sólo tengo que averiguar cómo configurar los puertos, y la tubería en uno de ellos.

0 votos

¿De dónde vienen los datos NMEA? GPSBabel es capaz de actuar como un convertidor en tiempo real, ver gpsbabel.org/htmldoc-1.4.2/tracking.html

0 votos

Se transmite desde un iPhone. No necesito la conversión en nada (en particular kml), sólo necesito un puerto serie virtual para lanzar los datos nmea en, y chupar hacia fuera el otro extremo por Google Earth.

0voto

Oskar Puntos 1242

No está claro que puedas falsificar la detección del puerto serie incorporado, pero yo empezaría con un llamado tubo (mkfifo) en /dev/cu.fake.ttypx y tener algunos datos listos para ser leídos cuando habilites el tiempo real.

Mi copia de Google Earth parece sondear cada fuente potencial en orden y no hace más que escanear, ya que no tengo datos de la NMEA.

Por supuesto, necesitarás un pequeño [shell|perl|Python] script para leer de /dev/ttypx y escribir en tu archivo "falso" de la fifo.

-1voto

filo891 Puntos 31

He utilizado un pseudoterminal Posix para crear un puerto de comunicaciones virtual en un programa C de OSX. Puedes buscar la función de la biblioteca posix_openpt().

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X