2012-07-07 59 views
5

Tôi đang cố thiết lập kết nối nối tiếp giữa PC (Linux 32bit) và thiết bị phần cứng qua Bluetooth.Giao tiếp Bluetooth với Mono C#

Tôi đã thử nghiệm hệ thống bằng cách sử dụng cutecom. Nó hoạt động. Baud 115200, /dev/rfcomm0 vv ...

Bây giờ tôi đang cố gắng tạo phần mềm ứng dụng khách với Mono để có thể triển khai giao thức truyền thông. Tôi đã thử nghiệm đối tượng SerialPort:

SerialPort mySerial; 
    mySerial = new SerialPort("/dev/rfcomm0", 115200); 
    mySerial.Open(); 
    mySerial.ReadTimeout = 1000; 

Nó không hoạt động. Tôi đã thử nghiệm hệ thống thông qua kết nối nối tiếp có dây, trên /dev/ttyACM0 và đã hoạt động. Vì vậy, tôi không nghĩ rằng đây là cách.

Tôi đã cố gắng sử dụng FileStreamStreamReader nhưng ném một số Exception.IO: WIN32 IO returned 997.

Cách sử dụng kết nối nối tiếp với thiết bị Bluetooth với Mono C#?

+0

Phiên bản mono nào? – IanNorton

+0

Làm thế nào nó không hoạt động? Bạn đã gọi mySerial.Read(); Bạn đã thử mySerial.DataReceived + = new (etc) chưa. – Neil

+0

Khi làm việc với truyền thông nối tiếp như là một vấn đề của thực hành tốt nó có giá trị thiết lập giá trị stop-bit và chẵn lẻ cho một số giá trị mặc định được thiết lập. Và luôn bắt đầu với giá trị tốc độ truyền thấp và tăng tốc độ khi bạn chắc chắn mọi thứ đang hoạt động. Ví dụ ở đây là một điểm khởi đầu tốt, http://msdn.microsoft.com/en-us/library/system.io.ports.serialport.aspx – Phill

Trả lời

0

Tính đến bluez 5, dbus is the preferred method tương tác với bluez vs interop. Có một loạt các bài viết về chủ đề này here, về cơ bản nó liên quan đến việc kết nối với dbus và làm như sau.

  • Đăng ký một đại lý Ghép
  • Kết nối thiết bị
  • Đăng ký một hồ sơ cá nhân nối tiếp/rfcomm
  • tín hiệu thiết bị mà bạn muốn kết nối và chờ đợi cho các kết nối trên đối tượng cá nhân của bạn
  • Mở một stream từ đối tượng mô tả tệp được trả về.

Khi bạn có luồng, bạn có thể thực hiện tất cả các thao tác đọc/ghi thông thường trên luồng giống như khi bạn mở nó dưới dạng cổng nối tiếp.

+0

Việc triển khai BlueZ DBus hoạt động với proxy, tạo thành sự trừu tượng cốt lõi cho bất kỳ thứ gì liên quan đến Bluetooth: thiết bị ngoại vi, bộ điều khiển bluetooth (adapter), đặc điểm GATT nếu bạn đang sử dụng LE, v.v. Các đối tượng DBus xuất bản một giao diện với các phương thức và thuộc tính cần được sử dụng. Tôi không biết ý định của OP là gì với hồ sơ serial/rfcomm, nhưng việc viết có thể được quản lý theo một cách khác bằng cách sử dụng DBus. – Zimano

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