2013-01-24 30 views
5

Tôi đang lập kế hoạch giao thức truyền thông được sử dụng giữa thiết bị Android và cảm biến tùy chỉnh sử dụng mô-đun Bluetooth thương mại. Tôi sẽ sử dụng hồ sơ SPP được cho là "cung cấp một luồng dữ liệu đáng tin cậy đơn giản cho người dùng, tương tự như TCP."Bluetooth Android RFCOMM/SPP xử lý lỗi gợi ý

Tôi không quen thuộc với công nghệ Bluetooth và có một số câu hỏi về cách thiết kế giao thức như vậy.

Trước hết, tôi không phải lo lắng nếu tôi phải lo lắng dữ liệu bị hỏng đang được truyền hay không. Ngăn xếp protocoll bên dưới có đảm bảo cho tôi rằng các byte tôi đọc từ các số điện thoại Android của InputStream giống với UART nhận được ở phía cảm biến không? Tôi có phải định nghĩa các gói dữ liệu của riêng mình được bảo vệ bằng CRC hay các công cụ hoặc nó có quá tải không?

Nó không rõ ràng với tôi từ tài liệu Android Bluetooth những gì xảy ra trong ứng dụng của tôi nếu tín hiệu yếu và bị mất trong một thời gian. Tôi có nhận được IOException cùng một lúc hay nền tảng cung cấp cho tôi một số xử lý lỗi và khôi phục lỗi ẩn có thể làm cho việc ngừng hoạt động ngắn như vậy vô hình đối với tôi không?

Cảm ơn lời khuyên nào.

Trả lời

10

Bạn không cần phải lo lắng về tham nhũng dữ liệu qua SPP, Bluetooth cung cấp 2 cấp độ của CRC, một ở baseband và sau đó một ở cấp L2CAP, Cả hai đều có cơ chế truyền lại cho bất kỳ tham nhũng được phát hiện - do đó ứng dụng sẽ nhận được các gói tin chỉ tốt .

Giới thiệu câu hỏi thứ hai - Có trên luồng Ổ cắm mà bạn kết nối với bạn sẽ nhận IOExceptions nếu kết nối Bluetooth bên dưới bị ngắt kết nối, Android không thể xử lý tự động khôi phục - thường ứng dụng cần phát hiện lý do ngắt kết nối và thử lại kết nối nếu có. Vì vậy, nếu bạn muốn tiếp tục trao đổi dữ liệu từ điểm bạn nhận/gửi thành công lần cuối thì ứng dụng của bạn sẽ duy trì một số loại số thứ tự và giao thức ánh sáng để đạt được sơ yếu lý lịch. Tùy chọn khác chỉ đơn giản là bắt đầu từ việc trao đổi dữ liệu khi kết nối lại (vì vậy nó phụ thuộc vào việc sử dụng của bạn)

+0

Cảm ơn bạn rất nhiều, câu trả lời này rất rõ ràng và bao gồm tất cả những gì tôi muốn biết. – jabal

+0

Bạn được chào đón –