// 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);
        }
Example #2
0
            public void AccessThreadProc()
            {
                rfid.Constants.Result result = rfid.Constants.Result.NOT_INITIALIZED;

                byte flags = 0;

                StartEvent.WaitOne();

                switch (_tagAccessData.type)
                {
                    case TagAccessType.Read:
                        {
                            ReadParms parameters = new ReadParms();
                            BuildParams_ReadCmd(ref parameters.readCmdParms, ref parameters.accessPassword);
                            parameters.common.callback = new rfid.CallbackDelegate(this._reader.MyCallback);

                            //clark 2011.4.25 Set tag access flag to inventory structure
                            parameters.common.strcTagFlag.RetryCount    = _tagAccessData.strcTagFlag.RetryCount;
                            parameters.common.strcTagFlag.PostMatchFlag = _tagAccessData.strcTagFlag.PostMatchFlag;
                            parameters.common.strcTagFlag.SelectOpsFlag = _tagAccessData.strcTagFlag.SelectOpsFlag;
                            parameters.common.OpMode                    = RadioOperationMode.NONCONTINUOUS;
                           
                            result = LakeChabotReader.MANAGED_ACCESS.API_l8K6CTagRead(parameters, flags);
                        }
                        break;
                    //Add LargeRead
                    case TagAccessType.LargeRead:
                        {
                            ReadParms parameters = new ReadParms();
                            BuildParams_ReadCmd(ref parameters.readCmdParms, ref parameters.accessPassword);
                            parameters.common.callback = new rfid.CallbackDelegate(this._reader.MyCallback);

                            //clark 2011.4.25 Set tag access flag to inventory structure
                            parameters.common.strcTagFlag.RetryCount = _tagAccessData.strcTagFlag.RetryCount;
                            parameters.common.strcTagFlag.PostMatchFlag = _tagAccessData.strcTagFlag.PostMatchFlag;
                            parameters.common.strcTagFlag.SelectOpsFlag = _tagAccessData.strcTagFlag.SelectOpsFlag;
                            parameters.common.OpMode = RadioOperationMode.NONCONTINUOUS;
                            parameters.readCmdParms.count = (byte)(_tagAccessReadSet.ReadWords);//籠筁count
                            //parameters.readCmdParms.offset = 0;
                            //□add loop
                            for (int ccnt = 0; ccnt < (_tagAccessReadSet.TotalReadWords /_tagAccessReadSet.ReadWords); ccnt++) // TotalReadWords/ReadWords
                            {
                                UInt16 choff = (UInt16)(_tagAccessReadSet.ReadWords);// readwords
                                result = LakeChabotReader.MANAGED_ACCESS.API_l8K6CTagRead(parameters, flags);
                                parameters.readCmdParms.offset = (UInt16)(parameters.readCmdParms.offset + choff);
                                if (Stop) break;
                            }
                            //◆add loop  
                            //result = LakeChabotReader.MANAGED_ACCESS.API_l8K6CTagRead(parameters, flags);
                        }
                        break;
                    case TagAccessType.Write:
                        {
                            WriteParms parameters = new WriteParms();
                            WriteSequentialParms writeParameters = new WriteSequentialParms();
                            BuildParams_WriteCmd(ref writeParameters, ref parameters.accessPassword);
                            parameters.writeParms = writeParameters;
                            parameters.writeType = WriteType.SEQUENTIAL;
                            parameters.common.callback = new rfid.CallbackDelegate(this._reader.MyCallback);

                            //clark 2011.4.25 Set tag access flag to inventory structure
                            parameters.common.strcTagFlag.RetryCount    = _tagAccessData.strcTagFlag.RetryCount;
                            parameters.common.strcTagFlag.PostMatchFlag = _tagAccessData.strcTagFlag.PostMatchFlag;
                            parameters.common.strcTagFlag.SelectOpsFlag = _tagAccessData.strcTagFlag.SelectOpsFlag;
                            parameters.common.OpMode                    = RadioOperationMode.NONCONTINUOUS;

                            result = LakeChabotReader.MANAGED_ACCESS.API_l8K6CTagWrite(parameters, flags);
                        }
                        break;
                    case TagAccessType.BlockWrite:
                        {
                            BlockWriteParms parameters = new BlockWriteParms();
                            BuildParams_BlockWriteCmd(ref parameters.blockWriteCmdParms, ref parameters.accessPassword);
                            parameters.common.callback = new rfid.CallbackDelegate(this._reader.MyCallback);

                            //clark 2011.4.25 Set tag access flag to inventory structure
                            parameters.common.strcTagFlag.RetryCount    = _tagAccessData.strcTagFlag.RetryCount;
                            parameters.common.strcTagFlag.PostMatchFlag = _tagAccessData.strcTagFlag.PostMatchFlag;
                            parameters.common.strcTagFlag.SelectOpsFlag = _tagAccessData.strcTagFlag.SelectOpsFlag;
                            parameters.common.OpMode                    = RadioOperationMode.NONCONTINUOUS;
                            
                            result = LakeChabotReader.MANAGED_ACCESS.API_l8K6CTagBlockWrite(parameters, flags);
                        }
                        break;
                    case TagAccessType.BlockErase:
                        {
                            BlockEraseParms parameters = new BlockEraseParms();
                            BuildParams_BlockEraseCmd(ref parameters.blockEraseCmdParms, ref parameters.accessPassword);
                            parameters.common.callback = new rfid.CallbackDelegate(this._reader.MyCallback);

                            //clark 2011.4.25 Set tag access flag to inventory structure
                            parameters.common.strcTagFlag.RetryCount    = _tagAccessData.strcTagFlag.RetryCount;
                            parameters.common.strcTagFlag.PostMatchFlag = _tagAccessData.strcTagFlag.PostMatchFlag;
                            parameters.common.strcTagFlag.SelectOpsFlag = _tagAccessData.strcTagFlag.SelectOpsFlag;
                            parameters.common.OpMode                    = RadioOperationMode.NONCONTINUOUS;
                            
                            result = LakeChabotReader.MANAGED_ACCESS.API_l8K6CTagBlockErase(parameters, flags);
                        }
                        break;
                    case TagAccessType.Lock:
                        {
                            LockParms parameters = new LockParms();
                            BuildParams_LockCmd(ref parameters.lockCmdParms, ref parameters.accessPassword);
                            parameters.common.callback = new rfid.CallbackDelegate(this._reader.MyCallback);

                            //clark 2011.4.25 Set tag access flag to inventory structure
                            parameters.common.strcTagFlag.RetryCount    = _tagAccessData.strcTagFlag.RetryCount;
                            parameters.common.strcTagFlag.PostMatchFlag = _tagAccessData.strcTagFlag.PostMatchFlag;
                            parameters.common.strcTagFlag.SelectOpsFlag = _tagAccessData.strcTagFlag.SelectOpsFlag;
                            parameters.common.OpMode                    = RadioOperationMode.NONCONTINUOUS;
                            
                            result = LakeChabotReader.MANAGED_ACCESS.API_l8K6CTagLock(parameters, flags);
                        }
                        break;
                    case TagAccessType.Kill:
                        {
                            KillParms parameters = new KillParms();
                            BuildParams_KillCmd(ref parameters.killCmdParms, ref parameters.accessPassword);
                            parameters.common.callback = new rfid.CallbackDelegate(this._reader.MyCallback);

                            //clark 2011.4.25 Set tag access flag to inventory structure
                            parameters.common.strcTagFlag.RetryCount    = _tagAccessData.strcTagFlag.RetryCount;
                            parameters.common.strcTagFlag.PostMatchFlag = _tagAccessData.strcTagFlag.PostMatchFlag;
                            parameters.common.strcTagFlag.SelectOpsFlag = _tagAccessData.strcTagFlag.SelectOpsFlag;
                            parameters.common.OpMode                    = RadioOperationMode.NONCONTINUOUS;
                           
                            result = LakeChabotReader.MANAGED_ACCESS.API_l8K6CTagKill(parameters, flags);
                        }
                        break;
                    case TagAccessType.QT_None:
                    case TagAccessType.QT_Read:
                    case TagAccessType.QT_Write:
                        {
                            QTParms parameters = new QTParms();
                            BuildParams_QT(ref parameters, ref parameters.accessPassword);
                            parameters.common.callback = new rfid.CallbackDelegate(this._reader.MyCallback);

                            //clark 2011.4.25 Set tag access flag to inventory structure
                            parameters.common.strcTagFlag.RetryCount    = _tagAccessData.strcTagFlag.RetryCount;
                            parameters.common.strcTagFlag.PostMatchFlag = _tagAccessData.strcTagFlag.PostMatchFlag;
                            parameters.common.strcTagFlag.SelectOpsFlag = _tagAccessData.strcTagFlag.SelectOpsFlag;
                            parameters.common.OpMode                    = RadioOperationMode.NONCONTINUOUS;

                            result = LakeChabotReader.MANAGED_ACCESS.API_l8K6CTagQT(parameters, flags);
                        }
                        break;
                    default:
                        System.Diagnostics.Debug.Assert(false, "Tag Acces Type");
                        break;
                }
            }
Example #3
0
            private void BuildParams_QT(ref QTParms parameters, ref UInt32 accessPassword)
            {
                parameters = new QTParms();

                switch (_tagAccessData.type)
                {
                    case TagAccessType.QT_Read:
                        ReadCmdParms readParameters = new ReadCmdParms();
                        BuildParams_ReadCmd(ref readParameters, ref parameters.accessPassword);
                        parameters.accessParms = readParameters;
                        parameters.optCmdType = OptType.OPT_READ;
                        break;
                    case TagAccessType.QT_Write:
                        WriteSequentialParms writeParameters = new WriteSequentialParms();
                        BuildParams_WriteCmd(ref writeParameters, ref parameters.accessPassword);
                        parameters.accessParms = writeParameters;
                        parameters.optCmdType = OptType.OPT_WRITE_TYPE_SEQUENTIAL;
                        break;
                    case TagAccessType.QT_None:
                        parameters.optCmdType = OptType.OPT_NONE;
                        break;
                    default:
                        System.Diagnostics.Debug.Assert(false, "Tag Acces Type"); 
                        break;
                }

                parameters.qtCmdParms.qtReadWrite   = _tagAccessData.qtReadWrite;
                parameters.qtCmdParms.qtPersistence = _tagAccessData.qtPersistence;
                parameters.qtCmdParms.qtShortRange  = _tagAccessData.qtShortRange;
                parameters.qtCmdParms.qtMemoryMap   = _tagAccessData.qtMemoryMap;

                accessPassword = _tagAccessData.accessPassword;
            }