Створення віртуального послідовного порту


11

Я намагаюся створити пару віртуальних послідовних портів на своєму mac. Це досить легко зробити з багатьма умовно-безкоштовними програмами на ПК. Я подумав, що буде якась убер-потужна команда оболонки, щоб зробити це в одному рядку, але я не можу його знайти.

Я хочу надіслати дані NMEA в один порт, і Google Земля прочитає дані з іншого.

Якісь поради?

EDIT

Коментар пана Даніеля /dev/ptypxздавався цікавим - я можу витягнути його із /dev/ttypxпросто чудового терміналу.
Але Google Earth, здається, читає Cu. deviceName замість / ttypx розробників ..

конкретно (Old Pro):

При спробі імпортувати поточне місце за допомогою GPS (або потоку NMEA, прокладеного через наш віртуальний послідовний порт), ми переходимо: Інструменти> GPS> Реальний час, щоб потрапити на екран імпорту.
Вибравши опцію NMEA та включивши відстеження в режимі реального часу, він шукає підключені пристрої та, здається, переглядає:

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

Навіть якщо наш послідовний порт ttypx працює нормально, він не шукає його.
Я хотів би отримати дані з цього пристрою в Google Планета Земля.


1
+1, як я також хотів би це зробити для розробки пристроїв. Також можуть бути ServerFault, SuperUser або StackOverflow.
Макс Рід

Чи розглядали ви замість цього Google Latitude ? Якщо це не прийнятно, надайте докладнішу інформацію про те, що робить Google Earth.
Старий Про

Ви успішно контролювали Google Планета Земля за допомогою підробленої позиції, наданої через порт NMEA? Мені було б цікаво, як це працює.
Макс N

1
@MaxN - Ні. Я здався :(
DefenestrationДень

Це близько (AppleScript): laclefyoshi.blogspot.com/2011/01/…
Max N

Відповіді:


9

Google має надзвичайно корисний інструмент для розробників Arduino, і він дуже добре імітує серійні порти на OS X для тестування. Працює лише до 10.6

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

(раніше доступний на веб-сайті http://code.google.com/p/macosxvirtualserialport/ )

Чи може це вам допомогти?


2
Вибачте за те, що я скасував це і відредагував - я, скоріше, ви отримаєте заслугу за те, що ви побачили дивовижне програмне забезпечення для віртуальної послідовності порту Google. Ви, звичайно, можете видалити його ще раз, і я залишу його в спокої, якщо це ваше вподобання.
bmike

2
Цей сайт code.google.com для macosxvirtualserialport тепер повертає помилку 404.
hotpaw2

1
Проект Google, схоже, зараз доступний у Github: github.com/clokey/PublicCode/tree/master/…, він працює лише до 10.7, хоча
Max N

5

Я думаю, що ти шукаєш псевдотермінал, як зазначено в Text-Terminal-HOWTO , схоже, вбудований Mac OS X, /devі схоже, що це може робити те, що ти хочеш робити, наприклад, дві програми разом спілкуються через " віртуальний "послідовний порт.

Псевдотермінали - це пари пристроїв, таких як / dev / ptyp3 та / dev / ttyp3. Не існує жодного фізичного пристрою, безпосередньо пов'язаного з будь-яким з них, навіть немає з'єднувача послідовного порту. Але якщо програма обробляє ttyp3 так, як це був послідовний порт, те, що читається і записується на цей порт, з’являється на іншому члені пари ptyp3, який інша програма використовує для читання і запису. Таким чином, дві програми розмовляють між собою за допомогою цього методу, а одна програма на ttyp3 думає, що вона спілкується з послідовним портом. Це щось на зразок "труби" між цими двома.

Крім того, екранна програма моя також корисна для вас.


1

Тут є кілька кутів вашого запитання:

  • Ви просто хочете перетворити треки NMEA тощо в те, що Google Земля може прочитати (і відобразити)? GPSBabel - це інструмент вибору для подібних речей.
  • Ви хочете приєднати свій GPS та прочитати його вміст через послідовний порт? Маки не мають послідовних портів, для підключення послідовних пристроїв через USB вам знадобиться щось на зразок Keyspan USA-19HS .
  • Ви хочете створити віртуальні серійні пристрої з цікавості? Це, безумовно, можливо, але поза моїми знаннями ...

1
Варіант 3. У мене є дані NMEA (в режимі реального часу) і хочу відобразити їх у режимі реального часу. Google Планета Земля читає з послідовного порту, тому мені просто потрібно розібратися, як налаштувати порти та з'єднати їх з одним із них.
ДефенестраціяДень

Звідки беруться дані NMEA? GPSBabel здатний діяти як в режимі реального часу перетворювача, див gpsbabel.org/htmldoc-1.4.2/tracking.html
nohillside

Він передається з iPhone. Мені не потрібно перетворення в що-небудь (зокрема, kml), мені просто потрібен віртуальний послідовний порт, щоб вкинути дані nmea і витягнути їх з іншого кінця в Google Earth.
DefenestrationDay

Кожного разу, коли мені доводиться користуватися моїм « Кейспаном», я просто посміхаюся вухом до вуха. Особливо на моєму новому 11-дюймовому ефірі - так багато нового та старого працюють разом ;-)
bmike

0

Незрозуміло, що ви можете підробити вбудований послідовний порт виявлення, але я б почав із названої труби (mkfifo) /dev/cu.fake.ttypxі маю деякі дані, які можна прочитати, коли ви вмикаєте реальний час.

Моя копія Google Планета Земля, здається, запитує кожне потенційне джерело для того, щоб продовжувати робити нічого, окрім сканування, оскільки я не надаю даних NMEA.

Звичайно, вам знадобиться невеликий сценарій [shell | perl | python], щоб прочитати /dev/ttypxі записати у свій "підроблений" файл fifo.


-1

Існує інструмент Windows під назвою GooPs http://goopstechnologies.com/?page_id=12, який вирішує деякі подібні завдання.

Ви також можете зробити позначку, яка зчитує координати з файлу та оновлює кожну секунду.

/programming/7249565/how-to-properly-update-google-earth-kml-using-networklinkcontrol-and-the-java-ap


Як це вирішує проблему, описану у питанні?
nohillside

-1

Я використовував псевдотермінал Posix для створення віртуальної комунікації в програмі OSX C. Ви можете шукати функцію бібліотеки posix_openpt ().

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.