2012-07-13 20 views
9

Tôi đang tìm thư viện C++ có thể kết nối và giao tiếp với các thiết bị cổng nối tiếp. Tôi cần một cái có thể được sử dụng trên windows và linux. Tôi đã tìm thấy "serialib" đã được nhưng điều này không có tính năng cho liệt kê các cổng có sẵn.Có một nền tảng chéo c + + cổng nối tiếp thư viện có thể liệt kê các cổng?

Vì vậy, tôi cần thư viện nền tảng "điều tra cổng" hoặc toàn bộ thư viện cổng nối tiếp hoàn toàn mới.

Có ai biết điều tốt nhất không?

Xin cảm ơn, Dan.

+0

Bạn đang cố giải quyết vấn đề sai. Những ngày mà bạn có thể cắm cáp nối tiếp vào đầu nối có gắn nhãn rõ ràng ở mặt sau của máy sẽ dài hơn. Bạn có thể nhận được một danh sách các cổng có sẵn với một cuộc gọi bản địa nhưng điều đó vẫn không cho bạn biết cổng nào thực sự được kết nối với thiết bị. Người dùng sẽ phải tìm ra điều này. Cung cấp cho anh ta một tệp cấu hình cho phép anh ta nhập tên cổng. Bây giờ nó không quan trọng nữa định dạng cụ thể cho tên cổng được sử dụng. –

+3

Việc phải viết tên cổng trong tệp cấu hình là một sự bất tiện. Tôi đã thấy các ứng dụng nền tảng chéo liệt kê các cổng có thể sử dụng/được kết nối và cung cấp danh sách cho người dùng. Đây là những gì tôi muốn. (một ví dụ tốt là Arduino IDE, điều này được viết bằng java tuy nhiên.) – DanJAB

+0

Bạn tìm thấy một thư viện đa nền tảng cho Arduino? Tất nhiên nó là một sự bất tiện cho người dùng. Các cổng nối tiếp có từ những năm bảy mươi, phần cứng cũ bốn mươi tuổi không hỗ trợ cắm và cầu nguyện. Sai lầm ở đây là dựa vào tiêu chuẩn phần cứng cũ bốn mươi tuổi. Và có, có lẽ không phải lỗi của bạn, một số nhà cung cấp phần cứng đã chọn con đường dễ dàng. Tìm một nhà cung cấp khác. –

Trả lời

2

Dự án QextSerialPort là thư viện cổng nối tiếp đa nền tảng bao gồm điều tra cổng. Here là ví dụ của họ về việc thực hiện một liệt kê đơn giản của tất cả các cổng nối tiếp.

+1

Cảm ơn bạn đã đề xuất, tôi không chắc đây là những gì tôi đang tìm kiếm vì tôi không sử dụng Qt. – DanJAB

+1

Đủ công bằng, nhưng hãy nhớ rằng bạn không cần sử dụng bất kỳ tiện ích GUI nào của Qt. Thư viện QtCore (tất cả những gì cần thiết để sử dụng QextSerialPort) chỉ phụ thuộc vào Glib và PCRE. – wjl

+0

Tôi đã gặp lỗi khi cố gắng tích hợp QextSerialPort vào ví dụ: Eclipse thay vì QtCreator – user3085931

7

http://wjwwood.io/serial/

https://github.com/wjwwood/serial

Đây là một nền tảng thư viện cổng nối tiếp, đó là MIT cấp phép và không có người phụ thuộc bên ngoài để chạy.

+1

Cảm ơn vì điều đó, trông giống như những thứ tôi đã làm. Tôi đã bắt đầu sử dụng một ở đây mặc dù: http://www.teuniz.net/RS-232/ và điều đó làm việc tốt cho tôi. – DanJAB

+0

Giới thiệu về [http://www.teuniz.net/RS-232](http://www.teuniz.net/RS-232):
_ "Nó sử dụng tính năng thăm dò để nhận các ký tự từ cổng nối tiếp. dựa trên sự kiện không được hỗ trợ. "_
Bất kỳ tùy chọn nào khác không có các hạn chế nói trên? –

+0

Thật không may là thư viện là khá bất cẩn về phân bổ bộ nhớ, rò rỉ, ném ngoại lệ, khóa và như xa như tôi có thể nhìn thấy không hỗ trợ IO không đồng bộ. – Trass3r

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