private void btn_read_Click(object sender, EventArgs e)
        {
            ClearLog();
            if (Program.ReaderCE.MyState != ReaderOperationMode.Idle)
                return;
            if (rb_read.Checked)
            {
                //Do reader config
                Program.ReaderCE.RdrOpParms.RunBasicReadParms.Singulation = SingulationAlgorithm.FIXEDQ;
                Program.ReaderCE.RdrOpParms.RunBasicReadParms.SingulationParms = Reader.HighLevelInterface.CreateFixedQParms(0, 5, 0, 0); ;
                Program.ReaderCE.RdrOpParms.RunBasicReadParms.TagGroup = Reader.HighLevelInterface.CreateTagGroup(Selected.ON, Session.S0, SessionTarget.A);
                Program.ReaderCE.RdrOpParms.RunBasicReadParms.SelectCriteria = Reader.HighLevelInterface.CreateSelectCriteria(32, 96, MemoryBank.EPC, Action.ASLINVA_DSLINVB, Target.SELECTED, false, HexEncoding.GetBytes(TargetEPC));

                Program.ReaderCE.RdrOpParms.RunBasicReadParms.Flags = Reader.Constants.ReaderFlag.SELECT;
                Program.ReaderCE.RdrOpParms.RunBasicReadParms.TargetOffset = (ushort)nb_offset.Value;
                Program.ReaderCE.RdrOpParms.RunBasicReadParms.TargetCount = (ushort)nb_count.Value;
                Program.ReaderCE.RdrOpParms.RunBasicReadParms.TargetMemoryBank = (MemoryBank)cb_memBank.SelectedIndex;
                Program.ReaderCE.RdrOpParms.TargetAccessPassword = 0x0;
                Program.ReaderCE.RdrOpParms.Operation = Operation.Read;
                Program.ReaderCE.RunCycle = 1;
                Program.ReaderCE.Setup(Operation.Read);
                Program.ReaderCE.Start();
            }
            else
            {
                using (WriteInputForm input = new WriteInputForm())
                {
                    input.DataLength = 1;
                    input.EnableOffset = true;
                    input.EnableCount = true;
                    if (input.ShowDialog() == DialogResult.OK)
                    {
                        //Do reader config
                        //If start from PC+EPC then use zero offset otherwise use 16
                        Program.ReaderCE.RdrOpParms.RunBasicWriteParms.Singulation = SingulationAlgorithm.FIXEDQ;
                        Program.ReaderCE.RdrOpParms.RunBasicWriteParms.SingulationParms = Reader.HighLevelInterface.CreateFixedQParms(0, 5, 0, 0); ;
                        Program.ReaderCE.RdrOpParms.RunBasicWriteParms.TagGroup = Reader.HighLevelInterface.CreateTagGroup(Selected.ON, Session.S0, SessionTarget.A);
                        Program.ReaderCE.RdrOpParms.RunBasicWriteParms.SelectCriteria = Reader.HighLevelInterface.CreateSelectCriteria(32, 96, MemoryBank.EPC, Action.ASLINVA_DSLINVB, Target.SELECTED, false, HexEncoding.GetBytes(TargetEPC));
                        Program.ReaderCE.RdrOpParms.RunBasicWriteParms.Flags = ReaderFlag.SELECT;
                        Program.ReaderCE.RdrOpParms.RunBasicWriteParms.TargetCount = input.Count;
                        Program.ReaderCE.RdrOpParms.RunBasicWriteParms.TargetOffset = input.Offset;
                        Program.ReaderCE.RdrOpParms.RunBasicWriteParms.Buffer = HexEncoding.GetUshort(input.Data);
                        Program.ReaderCE.RdrOpParms.RunBasicWriteParms.TargetMemoryBank = (MemoryBank)cb_memBank.SelectedIndex;
                        Program.ReaderCE.RdrOpParms.RunBasicWriteParms.Verify = 1;
                        Program.ReaderCE.RdrOpParms.RunBasicWriteParms.VerifyRetryCount = 7;
                        Program.ReaderCE.RdrOpParms.TargetAccessPassword = input.PWD;
                        Program.ReaderCE.RdrOpParms.Operation = Operation.Write;
                        Program.ReaderCE.RunCycle = 1;
                        Program.ReaderCE.Setup(Operation.Write);
                        Program.ReaderCE.Start();
                    }
                }
            }
        }
 private void btn_readepc_Click(object sender, EventArgs e)
 {
     ClearLog();
     if (Program.ReaderCE.MyState != ReaderOperationMode.Idle)
         return;
     if (rb_read.Checked)
     {
         Program.ReaderCE.RdrOpParms.TargetAccessPassword = 0x0;
         Program.ReaderCE.RdrOpParms.TargetEPC = TargetEPC;
         Program.ReaderCE.RdrOpParms.Operation = Operation.ReadEPC;
         Program.ReaderCE.Start();
     }
     else
     {
         using (WriteInputForm input = new WriteInputForm())
         {
             CurState = State.WriteEPC;
             input.DataLength = (uint)TargetEPC.Length >> 2; // 96 bit
             input.EnableOffset = false;
             input.EnableCount = false;
             if (input.ShowDialog() == DialogResult.OK)
             {
                 //Do something
                 Program.ReaderCE.RdrOpParms.TargetEPC = TargetEPC;
                 Program.ReaderCE.RdrOpParms.TargetAccessPassword = input.PWD;
                 Program.ReaderCE.RdrOpParms.RunWriteEPCParms.BitNum = TargetEPC.Length == 24 ? EPCBitNumber.e96Bit : EPCBitNumber.e240Bit;
                 Program.ReaderCE.RdrOpParms.RunWriteEPCParms.pData = input.Data;
                 Program.ReaderCE.RdrOpParms.WriteRetryCount = input.RetryCnt;
                 Program.ReaderCE.RdrOpParms.Operation = Operation.WriteEPC;
                 Program.ReaderCE.Start();
             }
         }
     }
 }
 private void btn_readuser_Click(object sender, EventArgs e)
 {
     ClearLog();
     if (Program.ReaderCE.MyState != ReaderOperationMode.Idle)
         return;
     if (rb_read.Checked)
     {
         Program.ReaderCE.RdrOpParms.TargetAccessPassword = 0x0;
         Program.ReaderCE.RdrOpParms.TargetEPC = TargetEPC;
         Program.ReaderCE.RdrOpParms.RunReadUserParms.Offset = (ushort)nb_offset.Value;
         Program.ReaderCE.RdrOpParms.RunReadUserParms.Count = (ushort)nb_count.Value;
         Program.ReaderCE.RdrOpParms.Operation = Operation.ReadUser;
         Program.ReaderCE.Start();
     }
     else
     {
         using (WriteInputForm input = new WriteInputForm())
         {
             CurState = State.Other;
             input.DataLength = 0;
             input.EnableOffset = true;
             input.EnableCount = true;
             if (input.ShowDialog() == DialogResult.OK)
             {
                 //Do something
                 Program.ReaderCE.RdrOpParms.TargetEPC = TargetEPC;
                 Program.ReaderCE.RdrOpParms.TargetAccessPassword = input.PWD;
                 Program.ReaderCE.RdrOpParms.RunWriteUserParms.Offset = input.Offset;
                 Program.ReaderCE.RdrOpParms.RunWriteUserParms.Count = (uint)input.Count;
                 Program.ReaderCE.RdrOpParms.RunWriteUserParms.pData = HexEncoding.GetUshort(input.Data);
                 Program.ReaderCE.RdrOpParms.WriteRetryCount = input.RetryCnt;
                 Program.ReaderCE.RdrOpParms.Operation = Operation.WriteUser;
                 Program.ReaderCE.Start();
             }
         }
     }
 }
        private void btn_readpc_Click(object sender, EventArgs e)
        {
            ClearLog();
            if (Program.ReaderCE.MyState != ReaderOperationMode.Idle)
                return;
            if (rb_read.Checked)
            {
                Program.ReaderCE.RdrOpParms.TargetAccessPassword = 0x0;
                Program.ReaderCE.RdrOpParms.TargetEPC = TargetEPC;
                Program.ReaderCE.RdrOpParms.Operation = Operation.ReadPC;
                Program.ReaderCE.Start();
            }
            else
            {
                using (WriteInputForm input = new WriteInputForm())
                {
                    CurState = State.Other;
                    input.DataLength = 1;
                    input.EnableOffset = false;
                    input.EnableCount = false;
                    if (input.ShowDialog() == DialogResult.OK)
                    {
                        //Do something
                        Program.ReaderCE.RdrOpParms.TargetEPC = TargetEPC;
                        Program.ReaderCE.RdrOpParms.TargetAccessPassword = input.PWD;
                        Program.ReaderCE.RdrOpParms.RunWritePCParms.pData = ushort.Parse(input.Data, System.Globalization.NumberStyles.HexNumber);
                        Program.ReaderCE.RdrOpParms.WriteRetryCount = input.RetryCnt;
                        Program.ReaderCE.RdrOpParms.Operation = Operation.WritePC;
                        Program.ReaderCE.Start();
                    }
                }
            }

        }