我们正在编写应用程序以从蓝牙 2.1+ EDR MFI 注册的外部设备读取数据。每次读取时,我们假设要读取大约 1300 字节的数据,因为需要下载一个块。以下代码片段用于 readStream
# define EAD_INPUT_BUFFER_SIZE 512
uint8_t buf[EAD_INPUT_BUFFER_SIZE];
while ([[_session inputStream] hasBytesAvailable])
{
NSInteger bytesRead = [[_session inputStream] read:buf maxLength:EAD_INPUT_BUFFER_SIZE];
for (int i = 0 ; i < bytesRead ; i++)
{
[frame appendString:[NSString stringWithFormat:@"%x ",buf[i]]];
}
}
但流无法一次读取一个块(1300 字节)。它以 3-4 个块读取数据。每个块需要 600-700 毫秒。我想读取 100 个块(每个块包含 1300 个字节)。我有以下三个问题
- 如何将下载时间从 600 毫秒减少到 100-200 毫秒?
- 如何同时读取全块数据?
- 它与iOS中的操作系统/电源管理相关吗?
我做错什么了吗?,请帮助解决这个问题。