我使用蓝牙打印机Rongta RPP200-B和cordova插件蓝牙系列在移动设备上打印。
在Android设备上可以正常使用,但在iOS设备上打印速度非常慢且切碎,尤其是图像打印速度非常慢。我试图改变插件写入函数的本机objective-c实现,但它没有带来预期的结果。
这是我在BLE.m中写入函数的最后一次实现。数据作为一个批量发送到插件,并且分组到数据包并在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];
}
你知道什么可以提供帮助吗?感谢。