Creazione di una porta seriale virtuale

9

Sto cercando di creare un paio di porte seriali virtuali sul mio Mac. Questo è abbastanza facile da fare con molti programmi shareware su un PC. Ho pensato che ci sarebbe stato un comando di shell molto potente per farlo in una riga, ma non riesco a trovarlo.

Voglio inviare i dati NMEA in una porta e fare in modo che Google Earth legga i dati al di fuori dell'altro.

Qualche consiglio?

Modifica

Il commento su /dev/ptypx di MrDaniel è sembrato interessante - posso estrarlo da /dev/ttypx bene nel terminale.
Ma Google Earth sembra leggere cu. deviceName al posto delle / ttypx sviluppi ..

specificamente (Old Pro):

Quando proviamo ad importare la posizione corrente usando un GPS (o flusso NMEA collegato attraverso la nostra porta seriale virtuale), andiamo: Strumenti > GPS > Tempo reale per arrivare alla schermata di importazione.
Dopo aver selezionato l'opzione NMEA e attivato il monitoraggio in tempo reale, cerca i dispositivi connessi e sembra guardare:

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

Anche se la nostra porta seriale ttypx funziona bene, non la cerca.
Vorrei ottenere i dati da quel dispositivo su Google Earth.

    
posta DefenestrationDay 01.11.2011 - 11:42
fonte

6 risposte

7

Google ha uno strumento estremamente utile per gli sviluppatori di Arduino e simula molto bene le porte seriali su OS X a scopo di test. Funziona solo fino al 10.6

link

(precedentemente disponibile dal link )

Potrebbe aiutarti?

    
risposta data 04.06.2012 - 14:42
fonte
3

Penso che quello che stai cercando sia un terminale Pseudo come indicato in Terminale di testo -HOWTO , sembra che Mac OS X abbia incorporato in /dev e sembra che questo possa fare ciò che vuoi fare ad esempio due programmi che comunicano insieme tramite una porta seriale "virtuale".

Pseudo terminals are pairs of devices such as /dev/ptyp3 and /dev/ttyp3. There is no physical device directly associated with either of them, not even a serial port connector. But if a program treats ttyp3 like it was a serial port, what is read and written to that port appears on the other member of the pair ptyp3 which another program uses to read and write to. Thus two programs talk to each other via this method and one program on ttyp3 thinks it's talking to a serial port. It's something like a "pipe" between these two tty's.

In via opzionale, la schermata programma la mia utile anche a te.

    
risposta data 03.05.2012 - 23:25
fonte
1

Qui ci sono diversi angoli della tua domanda:

  • Vuoi solo convertire le tracce NMEA, ecc. in qualcosa che Google Earth può leggere (e visualizzare)? GPSBabel è lo strumento di scelta per questo tipo di cose.
  • Vuoi collegare il tuo GPS e leggere il suo contenuto tramite una porta seriale? I Mac non hanno porte seriali, avrete bisogno di qualcosa come Keyspan USA-19HS per collegare i dispositivi seriali tramite USB.
  • Vuoi creare dispositivi seriali virtuali per curiosità? Questo è definitivamente possibile ma al di là delle mie conoscenze ...
risposta data 01.11.2011 - 18:56
fonte
0

Non è chiaro che tu possa simulare il rilevamento della porta seriale integrato, ma inizierei con una named pipe (mkfifo ) in /dev/cu.fake.ttypx e alcuni dati pronti per essere letti quando attivi il realtime.

La mia copia di Google Earth sembra eseguire il polling di ogni potenziale fonte in ordine e continua a fare solo scansione dato che non ho dati NMEA forniti.

Ovviamente avrai bisogno di un piccolo script [shell | perl | python] per leggere da /dev/ttypx e scrivere sul tuo file "falso" fifo.

    
risposta data 05.06.2012 - 00:58
fonte
-1

C'è uno strumento di Windows chiamato GooPs link che gestisce alcune attività simili.

Puoi anche creare un segnaposto che legge le coordinate da un file e si aggiorna ogni secondo.

link

    
risposta data 16.05.2016 - 08:33
fonte
-1

Ho usato uno pseudoterminale Posix per creare una porta di comunicazione virtuale in un programma OSX C. È possibile cercare la funzione di libreria posix_openpt ().

    
risposta data 28.12.2016 - 19:36
fonte

Leggi altre domande sui tag