我使用蓝牙打印机荣达 RPP200-B 和 cordova 插件 Bluetooth-serial 在移动设备上打印。
在 android 设备上一切正常,但在 iOS 设备上打印速度非常慢且被切碎,尤其是图像打印速度非常非常慢。我尝试更改插件写入功能的本机objective-c实现,但没有带来预期的结果。
这是我在 BLE.m 中最后一次实现 write 函数。数据作为一个批量发送到插件,并拆分为数据包并在 BT 源上发送。
static const int MAX_BUF_LENGTH = 128;
-(void) write:(NSData *)d
{
NSInteger data_len = d.length;
NSData *buffer;
int i = 0;
// split data into packets
for(; i < data_len; i+=MAX_BUF_LENGTH)
{
NSInteger remainLength = data_len-i;
NSInteger bufLen = ((remainLength)>MAX_BUF_LENGTH) ? MAX_BUF_LENGTH:remainLength;
buffer = [d subdataWithRange:NSMakeRange(i, bufLen)];
// write packet on BT
[self writeValue:serialServiceUUID characteristicUUID:writeCharacteristicUUID p:activePeripheral data:buffer];
}
}
我还尝试发送到插件拆分数据包并使用函数的默认实现,但情况更糟。这是默认实现。
-(void) write:(NSData *)d {
[self writeValue:serialServiceUUID characteristicUUID:writeCharacteristicUUID p:activePeripheral data:d];
}
你知道有什么可以帮助的吗?谢谢。