Membuat port serial virtual

11

Saya mencoba membuat sepasang port serial virtual pada mac saya. Ini cukup mudah dilakukan dengan banyak program shareware pada PC. Saya pikir akan ada beberapa perintah shell yang sangat kuat untuk melakukan ini dalam satu baris, tetapi saya tidak dapat menemukannya.

Saya ingin mengirim data NMEA ke satu port, dan minta Google earth membaca data dari port lainnya.

Ada tips?

EDIT

Komentar MrDaniel /dev/ptypxtampaknya menarik - saya bisa menariknya dengan /dev/ttypxbaik di terminal.
Tapi Google earth sepertinya membaca cu. deviceName alih-alih dari / ttypx deveices ..

khusus (Pro Lama):

Saat mencoba mengimpor lokasi saat ini menggunakan GPS (atau aliran NMEA yang disalurkan melalui port serial virtual kami), kami buka: Alat> GPS> Realtime untuk sampai ke layar impor.
Setelah memilih opsi NMEA, dan mengaktifkan pelacakan realtime, ia mencari perangkat yang terhubung, dan tampaknya melihat:

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

Bahkan dengan port serial ttypx kami yang beroperasi ok, ia tidak mencarinya.
Saya ingin mendapatkan data dari perangkat itu ke Google Earth.

DefenestrationDay
sumber
1
+1, karena saya juga ingin melakukan ini untuk pengembangan perangkat. Mungkin juga ServerFault, SuperUser atau StackOverflow.
Max Ried
Sudahkah Anda mempertimbangkan untuk menggunakan Google Latitude ? Jika itu tidak dapat diterima, maka berikan detail lebih lanjut tentang apa yang dilakukan Google Earth.
Old Pro
Apakah Anda berhasil mengendalikan Google Earth melalui posisi palsu yang disediakan melalui port NMEA? Saya tertarik dengan cara kerjanya.
Maks N
1
@ MaxN - Tidak. Saya menyerah :(
DefenestrationDay
Ini dekat (AppleScript): laclefyoshi.blogspot.com/2011/01/...
Max N

Jawaban:

9

Google memiliki alat yang sangat berguna untuk pengembang Arduino dan mensimulasikan port serial dengan sangat baik pada OS X untuk tujuan pengujian. Ini hanya bekerja sampai 10.6

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

(sebelumnya tersedia dari http://code.google.com/p/macosxvirtualserialport/ )

Mungkinkah ini membantu Anda?

Raúl Pedroche
sumber
2
Maafkan saya membatalkan penghapusan ini dan mengeditnya - Saya lebih suka Anda mendapat kredit untuk membawa perangkat lunak port serial virtual mengagumkan Google ke cahaya. Anda tentu saja dapat menghapusnya lagi dan saya akan membiarkannya jika itu yang Anda inginkan.
bmike
2
Situs code.google.com itu untuk macosxvirtualserialport sekarang menghasilkan kesalahan 404.
hotpaw2
1
Proyek Google tampaknya sudah tersedia di Github sekarang: github.com/clokey/PublicCode/tree/master/... hanya bekerja hingga 10,7
Max N
5

Saya pikir apa yang Anda cari adalah Pseudo Terminal seperti yang tercantum dalam Text-Terminal-HOWTO , sepertinya Mac OS X telah tertanam di /devdalamnya dan sepertinya ini dapat melakukan apa yang ingin Anda lakukan misalnya dua program berbicara bersama melalui " port serial "" virtual.

Terminal pseudo adalah pasangan perangkat seperti / dev / ptyp3 dan / dev / ttyp3. Tidak ada perangkat fisik yang terkait langsung dengan keduanya, bahkan tidak ada konektor port serial. Tetapi jika sebuah program memperlakukan ttyp3 seperti itu adalah port serial, apa yang dibaca dan ditulis ke port tersebut muncul pada anggota lain dari pasangan ptyp3 yang digunakan program lain untuk membaca dan menulis. Jadi dua program berbicara satu sama lain melalui metode ini dan satu program di ttyp3 berpikir itu berbicara ke port serial. Itu seperti "pipa" di antara kedua tty ini.

Selain itu, program layar saya juga bermanfaat bagi Anda.

MrDaniel
sumber
1

Ada beberapa sudut untuk pertanyaan Anda di sini:

  • Apakah Anda hanya ingin mengonversi trek NMEA, dll. Menjadi sesuatu yang Google Earth dapat baca (dan tampilkan)? GPSBabel adalah alat pilihan untuk hal-hal semacam ini.
  • Apakah Anda ingin melampirkan GPS Anda dan membaca kontennya melalui port serial? Mac tidak memiliki port serial, Anda akan memerlukan sesuatu seperti Keyspan USA-19HS untuk menghubungkan perangkat serial melalui USB.
  • Apakah Anda ingin membuat perangkat serial virtual karena penasaran? Itu sangat mungkin tetapi di luar pengetahuan saya ...
nohillside
sumber
1
Opsi 3. Saya memiliki data NMEA (dalam waktu nyata), dan ingin menampilkannya dalam waktu nyata. Google Earth membaca dari port serial, jadi saya hanya perlu mencari cara mengatur port, dan memasukkannya ke salah satu dari mereka.
DefenestrationDay
Dari mana data NMEA berasal? GPSBabel dapat bertindak sebagai konverter waktu nyata, lihat gpsbabel.org/htmldoc-1.4.2/tracking.html
nohillside
Itu mengalir dari iPhone. Saya tidak perlu konversi menjadi apa pun (terutama kml), saya hanya perlu port serial virtual untuk memasukkan data nmea ke dalamnya, dan menyedotnya ke ujung lain oleh Google Earth.
DefenestrationDay
Setiap kali saya menggunakan Keyspan, saya hanya menyeringai. Terutama di Air 11 inci baru saya - begitu banyak yang baru dan lama bekerja bersama ;-)
bmike
0

Tidak jelas Anda dapat memalsukan deteksi port serial bawaan tetapi saya akan mulai dengan pipa bernama (mkfifo) di /dev/cu.fake.ttypxdan memiliki beberapa data yang siap dibaca ketika Anda mengaktifkan realtime.

Salinan Google Earth saya muncul untuk mensurvei setiap sumber potensial secara berurutan dan terus melakukan apa pun selain memindai karena saya tidak memiliki data NMEA yang disediakan.

Anda tentu saja memerlukan skrip [shell | perl | python] kecil untuk membaca /dev/ttypxdan menulis ke file fifo "palsu" Anda.

bmike
sumber
-1

Saya telah menggunakan pseudoterminal Posix untuk membuat port comm virtual ke dalam program OSX C. Anda mungkin mencari fungsi perpustakaan posix_openpt ().

Tom Dowad
sumber