// ReSharper disable once InconsistentNaming private void Tag18K6CQT(int radioHandle) { var program = new Rfiddler(options); QTParms qtParms = new QTParms(); logger.Information($"Starting basic QT test, limiting of {options.PacketCount} MAC packets"); qtParms.common.tagStopCount = 0; qtParms.common.callback = program.PacketCallback; qtParms.common.context = IntPtr.Zero; qtParms.common.callbackCode = IntPtr.Zero; qtParms.optCmdType = OptType.OPT_READ; ReadCmdParms readCmdParms = new ReadCmdParms(); readCmdParms.bank = MemoryBank.EPC; readCmdParms.offset = 2; readCmdParms.count = 6; qtParms.accessParms = readCmdParms; qtParms.qtCmdParms.qtMemoryMap = QTMemMapType.PRIVATE; qtParms.qtCmdParms.qtPersistence = QTPersistenceType.PERMANENT; qtParms.qtCmdParms.qtReadWrite = QTCtrlType.READ; qtParms.qtCmdParms.qtShortRange = QTShortRangeType.DISABLE; qtParms.accessPassword = 0x0; var result = link.Tag18K6CQT(radioHandle, qtParms, 0); logger.Information("link.Tag18K6CQT => {Result}", result); }
private void Tag18K6CLock(int radioHandle) { var program = new Rfiddler(options); // LOCK check - do not want to accidentally have tags locked unexpectedly... if (!program.enableTagLock) { return; } LockParms lockParms = new LockParms(); lockParms.common.tagStopCount = 0; lockParms.common.callback = program.PacketCallback; lockParms.common.context = IntPtr.Zero; lockParms.common.callbackCode = IntPtr.Zero; lockParms.lockCmdParms.permissions.killPasswordPermissions = PasswordPermission.NO_CHANGE; lockParms.lockCmdParms.permissions.accessPasswordPermissions = PasswordPermission.NO_CHANGE; lockParms.lockCmdParms.permissions.epcMemoryBankPermissions = MemoryPermission.NO_CHANGE; lockParms.lockCmdParms.permissions.tidMemoryBankPermissions = MemoryPermission.NO_CHANGE; lockParms.lockCmdParms.permissions.userMemoryBankPermissions = MemoryPermission.NO_CHANGE; lockParms.accessPassword = 0x0; var result = link.Tag18K6CLock(radioHandle, lockParms, 0); logger.Information("link.Tag18K6CLock => {Result}", result); }
private void RadioTurnCarrierWaveOnRandom(int radioHandle) { var program = new Rfiddler(options); RandomCwParms randomCwParms = new RandomCwParms(); // Enable Tx Random Data status packet by setting bits 7 and 0 in HST_CMNDIAGS (0x201) UInt32 hstCmnDiags = 0; var result = link.MacReadRegister(radioHandle, 0x0201, ref hstCmnDiags); logger.Information("link.MacReadRegister => {Result}", result); hstCmnDiags |= 0x81; result = link.MacWriteRegister(radioHandle, 0x0201, hstCmnDiags); logger.Information("link.MacWriteRegister => {Result}", result); logger.Information("Starting random cw test:"); logger.Information($"Limiting to {options.PacketCount} MAC packets"); #if TEST_NULL_RANDOM_CW_CALLBACK randomCwParms.callback = null; randomCwParms.context = (IntPtr)null; randomCwParms.callbackCode = (IntPtr)null; #else randomCwParms.callback = program.PacketCallback; randomCwParms.context = IntPtr.Zero; randomCwParms.callbackCode = IntPtr.Zero; #endif randomCwParms.duration = 10000; result = link.RadioTurnCarrierWaveOnRandom(radioHandle, randomCwParms); logger.Information("link.RadioTurnCarrierWaveOnRandom => {Result}", result); }
private void Tag18K6CInventory(int radioHandle) { logger.Information($"Starting basic inventory test, limiting of {options.PacketCount} MAC packets"); Rfiddler program = new Rfiddler(options); InventoryParms inventoryParms = new InventoryParms(); inventoryParms.common = new CommonParms(); inventoryParms.common.tagStopCount = 0; inventoryParms.common.callback = program.PacketCallback; inventoryParms.common.context = IntPtr.Zero; inventoryParms.common.callbackCode = IntPtr.Zero; var result = link.Tag18K6CInventory(radioHandle, inventoryParms, enableSelectCriteria | enablePostSingulationMatch); logger.Information("link.Tag18K6CInventory => {Result}", result); }
static int Main(string[] args) { try { Log.Logger = new LoggerConfiguration() .WriteTo.Console() .WriteTo.Seq("http://*****:*****@Options}", options); using (var fiddler = new Rfiddler(options)) { fiddler.Start(); } } else { Log.Information(options.GetUsage()); } return(0); } catch (Exception ex) { Log.Error(ex, "Error doing RFID stuff"); return(-1); } finally { Log.CloseAndFlush(); } }
private void Tag18K6CRead(int radioHandle) { Rfiddler program = new Rfiddler(options); ReadParms readParms = new ReadParms(); logger.Information($"Starting basic read test, limiting of {options.PacketCount} MAC packets"); readParms.common.tagStopCount = 0; readParms.common.callback = program.PacketCallback; readParms.common.context = IntPtr.Zero; readParms.common.callbackCode = IntPtr.Zero; readParms.readCmdParms.bank = MemoryBank.EPC; readParms.readCmdParms.offset = 2; readParms.readCmdParms.count = 6; readParms.accessPassword = 0x0; var result = link.Tag18K6CRead(radioHandle, readParms, 0); logger.Information("link.Tag18K6CRead => {Result}", result); }
private void Tag18K6CBlockErase(int radioHandle) { var program = new Rfiddler(options); BlockEraseParms blockEraseParms = new BlockEraseParms(); logger.Information($"Starting basic block erase test, limiting of {options.PacketCount} MAC packets"); blockEraseParms.common.tagStopCount = 0; blockEraseParms.common.callback = program.PacketCallback; blockEraseParms.common.context = IntPtr.Zero; blockEraseParms.common.callbackCode = IntPtr.Zero; blockEraseParms.blockEraseCmdParms.bank = MemoryBank.RESERVED; blockEraseParms.blockEraseCmdParms.offset = 0; blockEraseParms.blockEraseCmdParms.count = 4; blockEraseParms.accessPassword = 0x0; var result = link.Tag18K6CBlockErase(radioHandle, blockEraseParms, 0); logger.Information("link.Tag18K6CBlockErase => {Result}", result); }
private void Tag18K6CKill(int radioHandle) { var program = new Rfiddler(options); // KILL check - do not want to accidentally have tags killed unexpectedly... if (!program.enableTagKill) { return; } KillParms killParms = new KillParms(); killParms.common.tagStopCount = 0; killParms.common.callback = program.PacketCallback; killParms.common.context = IntPtr.Zero; killParms.common.callbackCode = IntPtr.Zero; killParms.accessPassword = 0x0; killParms.killCmdParms.killPassword = 0x0; var result = link.Tag18K6CKill(radioHandle, killParms, 0); logger.Information("link.Tag18K6CKill => {Result}", result); }