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