Tạo một cổng nối tiếp ảo


11

Tôi đang cố gắng tạo một cặp cổng nối tiếp ảo trên máy Mac của mình. Điều này khá dễ thực hiện với nhiều chương trình chia sẻ trên PC. Tôi đoán rằng sẽ có một số lệnh shell mạnh mẽ để thực hiện điều này trong một dòng, nhưng tôi không thể tìm thấy nó.

Tôi muốn gửi dữ liệu NMEA vào một cổng và để Google Earth đọc dữ liệu từ cổng kia.

Bất cứ lời khuyên?

BIÊN TẬP

Nhận /dev/ptypxxét của MrDaniel có vẻ thú vị - tôi có thể rút nó ra khỏi /dev/ttypxthiết bị đầu cuối tốt.
Nhưng Google Earth dường như đang đọc cu. deviceName thay vì / ttypx deveices ..

cụ thể (Old Pro):

Khi cố gắng nhập vị trí hiện tại bằng GPS (hoặc luồng NMEA được dẫn qua cổng nối tiếp ảo của chúng tôi), chúng tôi đi: Công cụ> GPS> Thời gian thực để đến màn hình nhập.
Sau khi chọn tùy chọn NMEA và bật theo dõi thời gian thực, nó tìm kiếm các thiết bị được kết nối và dường như xem xét:

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

Ngay cả với cổng nối tiếp ttypx của chúng tôi vẫn hoạt động tốt, nó cũng không tìm kiếm nó.
Tôi muốn lấy dữ liệu từ thiết bị đó vào Google Earth.


1
+1, vì tôi cũng muốn làm điều này để phát triển thiết bị. Cũng có thể là ServerFault, SuperUser hoặc StackOverflow.
Max Ried

Bạn đã cân nhắc sử dụng Google Latitude thay thế chưa? Nếu điều đó không được chấp nhận, thì vui lòng cung cấp thêm chi tiết về những gì Google Earth đang làm.
Old Pro

Bạn đã thành công trong việc kiểm soát Google Earth thông qua vị trí giả được cung cấp qua cổng NMEA chưa? Tôi sẽ quan tâm đến cách thức hoạt động của nó.
Tối đa

1
@MaxN - Không. Tôi đã từ bỏ :(
DefenestrationDay 14/05/2016

Điều này rất gần (AppleScript): laclefyoshi.blogspot.com/2011/01/ Khăn
Max N

Câu trả lời:


9

Google có một công cụ cực kỳ hữu ích cho các nhà phát triển Arduino và nó mô phỏng các cổng nối tiếp rất tốt trên OS X cho mục đích thử nghiệm. Nó chỉ hoạt động cho đến 10.6

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

(trước đây có sẵn từ http://code.google.com.vn/p/macosxvirtualserialport/ )

Điều này có thể giúp bạn?


2
Tha thứ cho việc tôi xóa bỏ điều này và chỉnh sửa nó - Tôi muốn bạn nhận được tín dụng vì đã đưa phần mềm cổng nối tiếp ảo tuyệt vời của google ra ánh sáng. Tất nhiên bạn có thể xóa nó một lần nữa và tôi sẽ để nó một mình nếu đó là sở thích của bạn.
bmike

2
Trang web code.google.com cho macosxvirtualserialport hiện trả về lỗi 404.
hotpaw2

1
Dự án Google dường như đã có sẵn trên Github ngay bây giờ: github.com/clokey/PublicCode/tree/master/, nó chỉ hoạt động cho đến 10.7 mặc dù
Max N

5

Tôi nghĩ thứ bạn đang tìm kiếm là Pseudo Terminal như được ghi chú trong Text-Terminal-HOWTO , có vẻ như Mac OS X đã tích hợp sẵn /devvà có vẻ như điều này có thể làm những gì bạn muốn làm, ví dụ như hai chương trình nói chuyện với nhau thông qua một " cổng nối tiếp ảo.

Thiết bị đầu cuối giả là cặp thiết bị như / dev / ptyp3 và / dev / ttyp3. Không có thiết bị vật lý nào được liên kết trực tiếp với một trong số chúng, thậm chí không có đầu nối cổng nối tiếp. Nhưng nếu một chương trình coi ttyp3 giống như một cổng nối tiếp, những gì được đọc và ghi vào cổng đó sẽ xuất hiện trên thành viên khác của cặp ptyp3 mà một chương trình khác sử dụng để đọc và ghi vào. Do đó, hai chương trình nói chuyện với nhau thông qua phương thức này và một chương trình trên ttyp3 nghĩ rằng nó đang nói chuyện với một cổng nối tiếp. Nó giống như một "đường ống" giữa hai tty này.

Ngoài ra, chương trình màn hình của tôi cũng hữu ích cho bạn.


1

Có một số góc cho câu hỏi của bạn ở đây:

  • Bạn có muốn chuyển đổi các bản nhạc NMEA, vv thành thứ gì đó mà Google Earth có thể đọc (và hiển thị) không? GPSBabel là công cụ được lựa chọn cho những thứ này.
  • Bạn có muốn gắn GPS và đọc nội dung của nó qua cổng nối tiếp không? Máy Mac không có cổng nối tiếp, bạn sẽ cần một cái gì đó như Keyspan USA-19HS để kết nối các thiết bị nối tiếp qua USB.
  • Bạn có muốn tạo các thiết bị nối tiếp ảo ra khỏi sự tò mò? Điều đó chắc chắn có thể nhưng ngoài sự hiểu biết của tôi ...

1
Tùy chọn 3. Tôi có dữ liệu NMEA (trong thời gian thực) và muốn hiển thị nó trong thời gian thực. Google Earth đọc từ một cổng nối tiếp, vì vậy tôi chỉ cần tìm ra cách thiết lập các cổng và đặt nó vào một trong số chúng.
DefenestrationDay

Dữ liệu NMEA đến từ đâu? GPSBabel có thể hoạt động như một công cụ chuyển đổi thời gian thực, xem gpsbabel.org/htmldoc-1.4.2/tracking.html
nohillside

Nó được truyền phát từ iPhone. Tôi không cần chuyển đổi thành bất cứ thứ gì (đặc biệt là kml), tôi chỉ cần một cổng nối tiếp ảo để ném dữ liệu bước sóng vào và hút nó ra khỏi đầu kia của Google Earth.
DefenestrationDay

Mỗi lần sử dụng Keyspan của tôi, tôi chỉ cười toe toét. Đặc biệt trên Air 11 inch mới của tôi - rất nhiều mới và cũ hoạt động cùng nhau ;-)
bmike

0

Không rõ bạn có thể giả mạo phát hiện cổng nối tiếp tích hợp nhưng tôi sẽ bắt đầu với một ống có tên (mkfifo) /dev/cu.fake.ttypxvà có một số dữ liệu sẵn sàng để đọc khi bạn bật thời gian thực.

Bản sao Google Earth của tôi dường như thăm dò từng nguồn tiềm năng theo thứ tự và tiếp tục không làm gì ngoài việc quét vì tôi không có dữ liệu NMEA nào được cung cấp.

Tất nhiên bạn sẽ cần một tập lệnh [shell | perl | python] nhỏ để đọc /dev/ttypxvà ghi vào tập tin fifo "giả" của bạn.



-1

Tôi đã sử dụng giả hành Posix để tạo cổng comm ảo vào chương trình OSX C. Bạn có thể tìm kiếm hàm thư viện posix_openpt ().

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.