/// <summary> /// 不带AFI的Inventory-scan。 /// 新询查命令:在运行询查命令前,读写器会自动运行“Close RF”和“Open RF”。 /// 这样,处于感应场内的符合协议的所有电子标签均能响应,读写器会把在 /// InventoryScanTime溢出前得到的UID全部返回。 /// 继续询查命令:读写器不会对感应场进行操作,只有新进入感应场的电子标签或 /// 前面的询查命令没有得到UID的电子标签才会响应,读写器会把在 /// InventoryScanTime溢出前得到的UID返回 /// </summary> /// <param name="mode">0x06:新询查命令,0x02:继续询查命令</param> /// <returns></returns> protected byte[] CreateInventoryScanWithoutAFIFrame(InventoryScanWithoutAFIMode mode) { FrameBase frame = new FrameBase(0x05, Com_adr); byte[] db = frame.DataBlock; db[2] = I15693Cmd.Inventory; db[3] = (byte)mode; frame.PushCRC(); return(db); }
/// <summary> /// 不带AFI的Inventory-scan。 /// 新询查命令:在运行询查命令前,读写器会自动运行“Close RF”和“Open RF”。 /// 这样,处于感应场内的符合协议的所有电子标签均能响应,读写器会把在 /// InventoryScanTime溢出前得到的UID全部返回。 /// 继续询查命令:读写器不会对感应场进行操作,只有新进入感应场的电子标签或 /// 前面的询查命令没有得到UID的电子标签才会响应,读写器会把在 /// InventoryScanTime溢出前得到的UID返回 /// </summary> /// <param name="mode">0x06:新询查命令,0x02:继续询查命令</param> /// <returns></returns> public async Task <InventoryScanInfo> InventoryScanWithoutAFIAsync(InventoryScanWithoutAFIMode mode) { byte[] frame = CreateInventoryScanWithoutAFIFrame(mode); CommunicationReturnInfo cri = await com.SendAsync(frame); if (cri.ReturnValue != ReturnMessage.Success) { InventoryScanInfo isi = new InventoryScanInfo(); isi.SendByte = frame; isi.ReturnValue = cri.ReturnValue; isi.ExceptionMessage = cri.ExceptionMessage; return(isi); } InventoryScanInfo info = HandleInventoryScanFrame(cri.RecvByte); info.SendByte = frame; return(info); }