Exemplo n.º 1
0
        // 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);
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
0
        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);
        }
Exemplo n.º 5
0
        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();
            }
        }
Exemplo n.º 6
0
        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);
        }
Exemplo n.º 7
0
        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);
        }
Exemplo n.º 8
0
        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);
        }