7 điểm bởi regentag 2025-02-25 | 5 bình luận | Chia sẻ qua WhatsApp

Vấn đề

  • Xung quanh chúng ta có nhiều thiết bị kết nối qua cổng serial (thường được gọi là cổng COM). Ví dụ như mô-đun GPS, IRDA, v.v.
  • Điều chúng ta muốn là kết nối thiết bị thực tế với một máy tính, rồi chạy ứng dụng trên thiết bị từ xa thông qua mạng
  • Vì ứng dụng chỉ có thể đọc dữ liệu từ cổng serial, nên phía client phải dùng cổng serial ảo
  • Vì vậy, những gì chúng ta cần là
    • Một máy chủ giao tiếp với thiết bị qua cổng serial vật lý và cung cấp dịch vụ qua mạng
    • Một client kết nối tới máy chủ
    • Cổng serial ảo

Giải pháp

  • Một trong các giải pháp là dùng telnet cùng với RFC2217 - Tùy chọn điều khiển cổng COM qua telnet
  • Cách này giải quyết trọn vẹn vấn đề nêu trên
  • Có khá nhiều phần mềm hỗ trợ chuyển tiếp cổng serial bằng Telnet+RFC2217 (cả máy chủ và client cho Windows và Linux)
  • Nếu cần, có thể ghép kênh cổng COM hoặc mã hóa dữ liệu truyền đi

Ví dụ áp dụng

Windows

  • Máy chủ được dựng bằng hub4com
  • Client sử dụng hub4com và driver cổng serial ảo com0com

Linux

  • Máy chủ được dựng bằng ser4net
  • Client dùng lệnh socat

5 bình luận

 
helloppfm 2025-02-25

Có thể phát triển và kiểm thử phần mềm giao tiếp nối tiếp mà không cần phần cứng riêng bằng cách kết nối 2 cổng nối tiếp bằng com0com.

 
halfenif 2025-02-25

Ở nhà vẫn còn một modem ngoài. Nhưng giờ không còn đường dây điện thoại nữa.

 
xguru 2025-02-25

Trước đây tôi từng làm phát triển CTI một thời gian dài nên đã kiếm mua một tổng đài cũ đã qua sử dụng và đặt ở văn phòng.
Tôi cũng mua cả board Dialogic trên eBay nữa haha
Giờ OpenAI Realtime API cũng đã ra mắt rồi, nên tôi định thử phát triển một phiên bản GeekNews nghe qua điện thoại.. mà ôi, nhiều việc quá nên cứ phải hoãn mãi.

 
xguru 2025-02-25

Đã lâu lắm rồi mới lại nghe đến từ cổng COM luôn ấy haha
Dạo này cũng có nhiều người không dùng cả máy tính để bàn nữa nên có khi còn chẳng biết luôn ấy chứ

 
regentag 2025-02-25

Tương tự, USB cũng có thể được truy cập qua mạng.