Tôi đang phát triển một ứng dụng sử dụng khung Corebluetooth,corebluetooth Đọc RSSI lỗi: Thao tác đã bị hủy
và kết nối với thiết bị BLE để nhận giá trị RSSI.
tôi đặt một chức năng để đọc RSSI periodly, mã hẹn giờ dưới
NSTimer *timer;
timer = [NSTimer scheduledTimerWithTimeInterval:1.2f target:self selector:@selector(detectRSSI) userInfo:nil repeats:YES];
và mã detectRSSI dưới
- (void)detectRSSI
{
[self.peripheral readRSSI];
}
Vì vậy, câu hỏi là,
thức hoạt động của chức năng tốt, nhưng khi tôi đặt khoảng thời gian ít hơn 1,2 giây,
p eripheralDidUpdateRSSI sẽ báo cáo ngẫu nhiên thông báo lỗi như sau:
The operation was cancelled.
Và điều đó sẽ không xảy ra nếu tỷ lệ lớn hơn 1,2 giây.
Có ai có ý tưởng nào đọc giá trị RSSI thường xuyên hơn (0,5 giây trở xuống) không?
Có thể thử thay thế: ngoại vi.RSSI –
RSSI không thay đổi nếu tôi chỉ gọi [ngoại vi RSSI] hoặc ngoại vi.RSSI. Giá trị sẽ được cập nhật sau khi gọi [readRSSI ngoại vi] .Tôi đã tìm thấy câu trả lời rằng giới hạn tần suất đọc được xác định bởi phần sụn. – momoyo
Nếu bạn sử dụng BLE, hãy sử dụng 'didRangeBeacons:'. Thiết bị sẽ chỉ quét quá nhiều lần mỗi giây. – random