2008-10-14 41 views
9

Tôi đang làm việc trên một dự án tự động hóa robot và tôi đã chạy vào một khối đường. Để điều khiển robot, người ta cần kết nối không dây thông qua telnet và gửi lệnh thông qua giao thức tcp/ip. (ví dụ: Lệnh 'Mabc' di chuyển nó về phía trước dựa trên tốc độ bánh xe bên trái (a), tốc độ bánh xe bên phải (b) và thời gian (c)). Những gì tôi đang cố gắng làm là làm một số tính toán trong một chương trình C và sau đó gửi một tin nhắn cho robot dựa trên giá trị của phép tính.Sử dụng telnet trong Chương trình C

Làm cách nào để gửi lệnh qua giao thức tcp/ip trong chương trình C?

Cảm ơn!

Erik

Trả lời

16

Bạn đang tìm kiếm ổ cắm. This is a comprehensive guide to socket programming in C. Telnet cũng là một giao thức được xác định rõ ràng, mặc dù tôi không biết liệu rô-bốt này có sử dụng telnet hay không (đó là phí xử lý thêm cho giao thức không có nhiều lợi ích cho chương trình điều khiển rô bốt). Telnet được chi tiết chi tiết bởi RFC 854

+2

Chúng thường không triển khai giao thức telnet đầy đủ, chỉ cần gửi lệnh ascii ngắn tới cổng 23. –

6

Expect sẽ cho phép bạn tương tác với các chương trình bên ngoài, nhưng tôi không biết cổng C mong đợi. Nếu không, bạn sẽ tìm thấy một thư viện telnet trong C hoặc viết của riêng bạn bằng cách sử dụng lập trình socket.

0

tôi sẽ là:

  • viết một số kịch bản shell đơn giản có chứa các interractions telnet viết như ở đây tài liệu.
  • sử dụng tệp .telnetrc trong thư mục chính của bạn để kiểm soát các khía cạnh của phiên telnet của bạn, ví dụ: crmod
  • gọi tập lệnh bằng cách sử dụng cuộc gọi hệ thống.

Bằng cách này, thời gian quay vòng của bạn để thay đổi phiền nhiễu với rô bốt sẽ không liên quan đến việc phải biên dịch lại chương trình của bạn mọi lúc.

BTW Điều này nghe có vẻ thú vị.

HTH.

cổ vũ,

Rob

2

Expect được thiết kế để thực hiện chính xác này - giữ cuộc nói chuyện với các chương trình tương tác. Nó được viết bằng Tcl, mở rộng trình thông dịch Tcl bằng nhiều lệnh khác nhau. Tcl rất dễ mở rộng; nó được thiết kế để trở thành một ngôn ngữ kịch bản được nhúng ngay từ từ đi. C API chính sử dụng các cấu trúc theo kiểu argv để chuyển các tham số tới các lệnh Tcl và rất dễ sử dụng. Hướng dẫn tốt nhất cho API C là Ousterhout's original book và tôi mất một phiên lab trong hai giờ để có được trình thông dịch Tcl nhúng đầu tiên của tôi và chạy.

Là một phần thưởng, bạn cũng nhận được bộ xen kẽ nội bộ Tcl tích hợp, mà bạn có thể sử dụng để thêm khả năng viết kịch bản vào ứng dụng của mình. Có thể bạn sẽ thấy rằng một chút về nó có thể được thực hiện trong Tcl nếu bạn cảm thấy bị nghiêng, vì vậy nó có thể giúp bạn tiết kiệm thời gian tổng thể.

4

Tôi sẽ sử dụng libcurl: http://curl.haxx.se/libcurl/. Nó sẽ làm những gì bạn muốn, và xử lý tất cả các telnet goo mà bạn thực sự không muốn xử lý.

Các vấn đề liên quan