// 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); }
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; } }
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; }