我有一个 RFID 扫描仪连接到连接到 iPad 应用程序的 RedPark 串行电缆。当人们扫描他们的 RFID 卡时,我会收到带有 -readBytesAvailable: 的回调。然而,有时它并没有在一个电话中给我整个 RFID。有时它会分两次发送。
如何确定我是否已收到所有内容?当我的代码获取第一个回调的数据并尝试使用它时,我收到一个错误,因为假设 RFID 是“123456789”,有时我会收到一个带有@“12”的调用,第二个带有@“3456789”的调用。所以我尝试处理@“12”并得到一个未找到用户的错误,然后我尝试处理@“3456789”并得到一个未找到用户的错误。
如何判断我是否已完成读取数据?RFID 的长度可能因供应商而异,所以我不能假设我需要读取一定数量的数字。
这是我用来通过 RedPark 从扫描仪接收数据的方法:
- (void) readBytesAvailable:(UInt32)length {
NSLog(@"readBytesAvailable: %lu", length);
UInt8 rxLoopBuff[LOOPBACK_TEST_LEN];
[self.rfidManager read:rxLoopBuff Length:length];
NSString *rfid = [[NSString alloc] initWithBytes:rxLoopBuff length:length encoding:NSUTF8StringEncoding];
NSLog(@"rfid=%@", rfid);
[self receivedScanOfRFID:rfid];
}