1

我使用蓝牙打印机荣达 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];
}

你知道有什么可以帮助的吗?谢谢。

4

0 回答 0