Tôi sẽ viết một chương trình trong C sẽ mở kết nối qua cổng nối tiếp và "nghe" các lệnh đến, sau đó nó sẽ thực hiện một số hành động và báo cáo lại trạng thái.Tôi làm cách nào để biết cổng nối tiếp nào được sử dụng trên Linux?
Kết nối sẽ qua RS232 (Cổng nối tiếp) và tôi đang cố gắng hiểu cách biết cổng nào sẽ mở.
Khi sử dụng cửa sổ, nếu tôi kết nối thiết bị nối tiếp USB của mình, tôi thấy "Cổng kết nối USB nối tiếp (COM4)" hiển thị trong trình quản lý thiết bị ... nhưng ở phía Linux tôi không xem bất kỳ thay đổi nào trong khu vực /sys/class/tty
hoặc /dev
, tôi thấy ttyS0
thông qua ttyS7
có mặt mọi lúc (tôi giả sử là S
là viết tắt của nối tiếp dựa trên what I've read).
Vậy làm cách nào để biết kết nối nào để kết nối?
EDIT
Trong khi tôi đang phát triển này trên một hộp OpenSUSE 12.1 (3.1 kernel), chương trình cuối cùng sẽ được chạy trên uClinux trên một bảng chạy một hạt nhân 2.4Linux, vì vậy tôi đang tìm các giải pháp C tinh khiết sẽ hoạt động trên các hạt cũ hơn
FYI: hệ thống tệp /sys
như đã lưu ý trong câu trả lời cho this post không tồn tại cho đến khi hạt nhân 2.6 và các ràng buộc của tôi buộc phải gắn vào những thứ có sẵn trong hạt nhân 2.4.
Rất có thể bộ điều hợp cổng nối tiếp USB của bạn sẽ hiển thị dưới dạng '/ dev/ttyUSB0 '. Ngoài ra kiểm tra [câu hỏi này] (http://stackoverflow.com/questions/2530096/) nếu bạn cần một cách để liệt kê các cổng nối tiếp. –
pyserial có thể được trợ giúp ở đây. – Prasanth
@PhilippeGauthier - Điều đó sẽ rất tiếc khi tôi không biết liệu người dùng có sử dụng cáp nối tiếp hay cáp nối tiếp nối tiếp hay không. : ( – Mike