Ejemplo n.º 1
0
        //┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
        //  start access operation
        //┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
        internal void StartAccess()
        {
            byte   MemBank = bankIDlist[comboBox_bank.SelectedIndex];
            UInt32 offset  = Convert.ToUInt32(textBox_offset.Text);
            UInt32 length  = Convert.ToUInt32(textBox_length.Text);
            UInt32 pwdACCESS;

            button_access.Text = "STOP";

            if (false == UtilClass.HEX32(out pwdACCESS, textBox_accesspassword.Text))
            {
                AccessEnd();
                MessageBox.Show("Wrong Access Password!!");
                return;
            }

            MainForm.SetupOperationParameter();

            // read access
            if (radioButton_read.Checked)
            {
                MainForm.RFIDAPI.UHFAPI_ReadTag(MemBank, offset, length, pwdACCESS, MainForm.SetControlParam, false);
            }

            // write access
            else if (radioButton_write.Checked)
            {
                ushort[] szWriteData;
                if (true == UtilClass.HEXSTR(out szWriteData, textBox_write.Text))
                {
                    MainForm.RFIDAPI.UHFAPI_WriteTag(MemBank, offset, length, ref szWriteData, pwdACCESS, MainForm.SetControlParam, false);
                }
                else
                {
                    AccessEnd();
                }
            }
        }
Ejemplo n.º 2
0
        //┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
        //  start access operation
        //┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
        internal void StartAccess()
        {
            button_access.Text = "STOP";

            // lock operation
            if (radioButton_lock.Checked)
            {
                UInt32 pwdACCESS;
                ushort lock_enable = 0;
                ushort lock_mask   = 0;

                int mark;
                int index = (int)comboBox_bank.SelectedIndex;

                if (false == UtilClass.HEX32(out pwdACCESS, textBox_accesspassword.Text))
                {
                    AccessEnd();
                    MessageBox.Show("Wrong Access Password!!");
                    return;
                }

                // set kill password field
                if (index == 0)
                {
                    mark = (int)comboBox_lockop.SelectedIndex;
                }
                else
                {
                    mark = 0;
                }

                lock_enable |= SWAPLSB2(mark > 0 ? mark - 1 : 0);
                lock_mask   |= (ushort)(mark > 0 ? 3 : 0);

                lock_enable <<= 2;
                lock_mask   <<= 2;

                // set access password field
                if (index == 1)
                {
                    mark = (int)comboBox_lockop.SelectedItem;
                }
                else
                {
                    mark = 0;
                }

                lock_enable |= SWAPLSB2(mark > 0 ? mark - 1 : 0);
                lock_mask   |= (ushort)(mark > 0 ? 3 : 0);

                lock_enable <<= 2;
                lock_mask   <<= 2;

                // set EPC memory field
                if (index == 2)
                {
                    mark = (int)comboBox_lockop.SelectedItem;
                }
                else
                {
                    mark = 0;
                }

                lock_enable |= SWAPLSB2(mark > 0 ? mark - 1 : 0);
                lock_mask   |= (ushort)(mark > 0 ? 3 : 0);

                lock_enable <<= 2;
                lock_mask   <<= 2;

                // TID memory field
                if (index == 3)
                {
                    mark = (int)comboBox_lockop.SelectedItem;
                }
                else
                {
                    mark = 0;
                }

                lock_enable |= SWAPLSB2(mark > 0 ? mark - 1 : 0);
                lock_mask   |= (ushort)(mark > 0 ? 3 : 0);

                lock_enable <<= 2;
                lock_mask   <<= 2;

                // USER memory field
                if (index == 4)
                {
                    mark = (int)comboBox_lockop.SelectedItem;
                }
                else
                {
                    mark = 0;
                }

                lock_enable |= SWAPLSB2(mark > 0 ? mark - 1 : 0);
                lock_mask   |= (ushort)(mark > 0 ? 3 : 0);

                MainForm.RFIDAPI.UHFAPI_LockSetTag((UHFAPI_NET.UHFAPI_NET.typeLockMasks)lock_mask, (UHFAPI_NET.UHFAPI_NET.typeLockMasks)lock_enable, pwdACCESS, MainForm.SetControlParam, false);
            }

            else if (radioButton_kill.Checked)
            {
                UInt32 pwdACCESS;
                UInt32 pwdKILL;

                if (false == UtilClass.HEX32(out pwdACCESS, textBox_accesspassword.Text))
                {
                    AccessEnd();
                    MessageBox.Show("Wrong Access Password!!");
                    return;
                }

                if (false == UtilClass.HEX32(out pwdKILL, textBox_killpassword.Text))
                {
                    AccessEnd();
                    MessageBox.Show("Wrong Access Password!!");
                    return;
                }

                System.Windows.Forms.MessageBoxButtons button = System.Windows.Forms.MessageBoxButtons.YesNo;
                System.Windows.Forms.MessageBoxIcon    icon   = System.Windows.Forms.MessageBoxIcon.Warning;
                System.Windows.Forms.DialogResult      rts    = System.Windows.Forms.MessageBox.Show("If you click on this YES, the kill tag will run..", "", button, icon);

                switch (rts)
                {
                case System.Windows.Forms.DialogResult.Yes:
                {
                    MainForm.SetupOperationParameter();

                    MainForm.RFIDAPI.UHFAPI_KillTag(pwdKILL, pwdACCESS, MainForm.SetControlParam, false);
                }
                break;

                case System.Windows.Forms.DialogResult.No:
                {
                    AccessEnd();
                }
                break;
                }
            }
        }
Ejemplo n.º 3
0
        //┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
        //  Save the option parameters
        //┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
        private void MaskForm_FormClosing(object sender, FormClosingEventArgs e)
        {
            // checked mask mode.
            if (radioButton_epcmask.Checked)
            {
                MainForm.rfidhost_param.mask_mode = (int)MainForm.MASK_MODE.EPC_MASK_MODE;

                if (textBox_epcdata.Text.Length != 0)
                {
                    MainForm.rfidhost_param.mskID_len = (uint)textBox_epcdata.Text.Length;

                    if (true == UtilClass.BitCount(out MainForm.rfidhost_param.mask_bits, textBox_epcdata.Text))
                    {
                        MainForm.rfidhost_param.mask_offset = 2 * 16;
                        MainForm.rfidhost_param.mask_bank   = (byte)MainForm.TAG_MEMORY_BANK.EPC;

                        unsafe
                        {
                            byte[] tagid = new byte[256];

                            UtilClass.HexStrToByteArray(out tagid, textBox_epcdata.Text);

                            fixed(byte *s = tagid, t = MainForm.rfidhost_param.mskpattern)
                            {
                                for (int i = 0; i < tagid.Length; i++)
                                {
                                    *(t + i) = *(s + i);
                                }
                            }
                        }

                        // restore tag id
                        unsafe
                        {
                            byte[] ID = new byte[256];

                            ID = UtilClass.StrToByteArray(textBox_epcdata.Text);

                            fixed(byte *s = ID, t = MainForm.rfidhost_param.mskID)
                            {
                                for (int i = 0; i < MainForm.rfidhost_param.mskID_len; i++)
                                {
                                    *(t + i) = *(s + i);
                                }
                            }
                        }
                    }
                    else
                    {
                        MainForm.rfidhost_param.mask_bits   = 0;
                        MainForm.rfidhost_param.mask_offset = 0;
                        MessageBox.Show("Wrong Tag EPC data");
                    }
                }
                else
                {
                    MainForm.rfidhost_param.mask_bits   = 0;
                    MainForm.rfidhost_param.mask_offset = 0;
                    MessageBox.Show("Nothing is Tag ID Value");
                }
            }
            else if (radioButton_multimode.Checked)
            {
                MainForm.rfidhost_param.mask_mode = (int)MainForm.MASK_MODE.MULTI_MASK_MODE;

                // bank
                switch (comboBox_bank.SelectedIndex)
                {
                case (int)MainForm.TAG_MEMORY_BANK.EPC:
                    MainForm.rfidhost_param.mask_bank = (byte)MainForm.TAG_MEMORY_BANK.EPC;
                    break;

                case (int)MainForm.TAG_MEMORY_BANK.RESERVED:
                    MainForm.rfidhost_param.mask_bank = (byte)MainForm.TAG_MEMORY_BANK.RESERVED;
                    break;

                case (int)MainForm.TAG_MEMORY_BANK.TID:
                    MainForm.rfidhost_param.mask_bank = (byte)MainForm.TAG_MEMORY_BANK.TID;
                    break;

                case (int)MainForm.TAG_MEMORY_BANK.USER:
                    MainForm.rfidhost_param.mask_bank = (byte)MainForm.TAG_MEMORY_BANK.USER;
                    break;
                }


                // offset
                if (textBox_offset.Text.Length != 0)
                {
                    uint offset;

                    if (true == UtilClass.HEX32(out offset, textBox_offset.Text))
                    {
                        MainForm.rfidhost_param.mask_offset = offset;
                    }
                }

                // bit count
                if (textBox_length.Text.Length != 0)
                {
                    uint len;

                    if (true == UtilClass.HEX32(out len, textBox_length.Text))
                    {
                        MainForm.rfidhost_param.mask_bits = len;
                    }
                }

                // tag mask data
                if (textBox_maskdata.Text.Length != 0)
                {
                    uint len;

                    if (true == UtilClass.BitCount(out len, textBox_maskdata.Text))
                    {
                        unsafe
                        {
                            byte[] tagid = new byte[256];

                            UtilClass.HexStrToByteArray(out tagid, textBox_maskdata.Text);

                            fixed(byte *s = tagid, t = MainForm.rfidhost_param.mskpattern)
                            {
                                for (int i = 0; i < tagid.Length; i++)
                                {
                                    *(t + i) = *(s + i);
                                }
                            }
                        }

                        // restore tag id
                        unsafe
                        {
                            byte[] ID = new byte[256];

                            ID = UtilClass.StrToByteArray(textBox_epcdata.Text);

                            fixed(byte *s = ID, t = MainForm.rfidhost_param.mskID)
                            {
                                for (int i = 0; i < MainForm.rfidhost_param.mskID_len; i++)
                                {
                                    *(t + i) = *(s + i);
                                }
                            }
                        }
                    }
                    else
                    {
                        MainForm.rfidhost_param.mask_bits   = 0;
                        MainForm.rfidhost_param.mask_offset = 0;
                        MessageBox.Show("Wrong Tag EPC data");
                    }
                }
                else
                {
                    MainForm.rfidhost_param.mask_bits   = 0;
                    MainForm.rfidhost_param.mask_offset = 0;
                    MessageBox.Show("Nothing is Tag ID Value");
                }
            }
        }