Esempio n. 1
0
        /// <summary>
        /// Load Authentication memory to insert and activate keys
        /// </summary>
        /// <param name="reader"></param>
        /// <param name="address"></param>
        /// <param name="selectedBank"></param>
        /// <param name="selectedTagRed"></param>
        /// <param name="readerModel"></param>
        public void LoadAuthenticateMemory(Reader reader, uint address, Gen2.Bank selectedBank, TagReadRecord selectedTagRed, string readerModel)
        {
            objReader    = reader;
            startAddress = address;
            model        = readerModel;

            spAuthenticate.IsEnabled              = true;
            rbFirstTagAuthenticateTb.IsEnabled    = true;
            rbSelectedTagAuthenticateTb.IsChecked = true;
            rbSelectedTagAuthenticateTb.IsEnabled = true;

            btnRead.Content       = "Refresh";
            selectedTagReadRecord = selectedTagRed;
            antenna       = selectedTagRed.Antenna;
            selectMemBank = selectedBank;
            //txtEPCData.Text = selectedTagRed.EPC;
            string[] stringData = selectedTagRed.Data.Split(' ');
            txtEpc.Text  = selectedTagRed.EPC;
            currentEPC   = txtEpc.Text;
            txtData.Text = string.Join("", stringData);
            Window       mainWindow = App.Current.MainWindow;
            ucTagResults tagResults = (ucTagResults)mainWindow.FindName("TagResults");

            switch (selectedBank)
            {
            case Gen2.Bank.EPC:
                if (tagResults.txtSelectedCell.Text == "Data")
                {
                    lblSelectFilter.Content = "Showing tag: EPC data at decimal address " + address.ToString() + "  = " + txtData.Text;
                }
                else
                {
                    lblSelectFilter.Content = "Showing tag: EPC ID = " + selectedTagRed.EPC;
                }
                break;

            case Gen2.Bank.TID:
                if (tagResults.txtSelectedCell.Text == "Data")
                {
                    lblSelectFilter.Content = "Showing tag: TID data at decimal address " + address.ToString() + " = " + txtData.Text;
                }
                else
                {
                    lblSelectFilter.Content = "Showing tag: EPC ID = " + selectedTagRed.EPC;
                }
                break;

            case Gen2.Bank.USER:
                if (tagResults.txtSelectedCell.Text == "Data")
                {
                    lblSelectFilter.Content = "Showing tag: User data at decimal address " + address.ToString() + " = " + txtData.Text;
                }
                else
                {
                    lblSelectFilter.Content = "Showing tag: EPC ID = " + selectedTagRed.EPC;
                }
                break;
            }
            PopulateAuthenticateData();
        }
        public void LoadUserMemory(Reader reader, uint address, Gen2.Bank selectedBank, TagReadRecord selectedTagRed, string readerModel)
        {
            objReader = reader;
            startAddress = address;
            model = readerModel;
            spUserMemory.IsEnabled = true;
            rbFirstTagUserMemTb.IsEnabled = true;
            rbSelectedTagUserMemTb.IsChecked = true;
            rbSelectedTagUserMemTb.IsEnabled = true;

            lblUserMemoryError.Content = "";
            lblErrorAddAsciiEdtr.Content = "";
            lblErrorAddHexEdtr.Content = "";
            
            btnRead.Content = "Refresh";
            selectedTagReadRecord = selectedTagRed;
            antenna = selectedTagRed.Antenna;
            selectMemBank = selectedBank;
            //txtEPCData.Text = selectedTagRed.EPC;
            string[] stringData = selectedTagRed.Data.Split(' ');
            txtEpc.Text = selectedTagRed.EPC;
            currentEPC = txtEpc.Text;
            txtData.Text = string.Join("", stringData);
            Window mainWindow = App.Current.MainWindow;
            ucTagResults tagResults = (ucTagResults)mainWindow.FindName("TagResults");
            switch (selectedBank)
            {
                case Gen2.Bank.EPC:
                    if (tagResults.txtSelectedCell.Text == "Data")
                    {
                        lblSelectFilter.Content = "Showing tag: EPC data at decimal address " + address.ToString() + "  = " + txtData.Text;
                    }
                    else
                    {
                        lblSelectFilter.Content = "Showing tag: EPC ID = " + selectedTagRed.EPC;
                    }
                    break;
                case Gen2.Bank.TID:
                    if (tagResults.txtSelectedCell.Text == "Data")
                    {
                        lblSelectFilter.Content = "Showing tag: TID data at decimal address " + address.ToString() + " = " + txtData.Text;
                    }
                    else
                    {
                        lblSelectFilter.Content = "Showing tag: EPC ID = " + selectedTagRed.EPC;
                    }
                    break;
                case Gen2.Bank.USER:
                    if (tagResults.txtSelectedCell.Text == "Data")
                    {
                        lblSelectFilter.Content = "Showing tag: User data at decimal address " + address.ToString() + " = " + txtData.Text;
                    }
                    else
                    {
                        lblSelectFilter.Content = "Showing tag: EPC ID = " + selectedTagRed.EPC;
                    }
                    break;
            }
            PopulateUserData();
        }
        public void Load(Reader reader,uint address, int length, Gen2.Bank selectedBank,TagReadRecord selectedTagRed)
        {
            InitializeComponent();
            objReader = reader;
            startAddress = address;
            dataLength = length;
            selectMemBank = selectedBank;

            spWriteEPC.IsEnabled = true;
            rbSelectedTag.IsChecked = true;
            rbSelectedTag.IsEnabled = true;
            
            string[] stringData = selectedTagRed.Data.Split(' ');
            txtEpc.Text = selectedTagRed.EPC;
            txtData.Text = string.Join("", stringData);
            Window mainWindow = App.Current.MainWindow;
            ucTagResults tagResults = (ucTagResults)mainWindow.FindName("TagResults");
            switch(selectedBank)
            {
                case Gen2.Bank.EPC:                    
                    if (tagResults.txtSelectedCell.Text == "Data")
                    {
                        lblSelectFilter.Content = "EPC Memory, Decimal Address = " + address.ToString() + " and Data = " + txtData.Text;
                    }
                    else
                    {
                        lblSelectFilter.Content = "EPC ID = " + selectedTagRed.EPC;
                    }
                    break;
                case Gen2.Bank.TID:
                    if (tagResults.txtSelectedCell.Text == "Data")
                    {
                        lblSelectFilter.Content = "TID Memory, Decimal Address = " + address.ToString() + " and Data = " + txtData.Text;
                    }
                    else
                    {
                        lblSelectFilter.Content = "EPC ID = " + selectedTagRed.EPC;
                    }
                    break;
                case Gen2.Bank.USER:
                    if (tagResults.txtSelectedCell.Text == "Data")
                    {
                        lblSelectFilter.Content = "User Memory, Decimal Address = " + address.ToString() + " and Data = " + txtData.Text;
                    }
                    else
                    {
                        lblSelectFilter.Content = "EPC ID = " + selectedTagRed.EPC;
                    }                    
                    break;
            }            
            txtCurrentEpc.Text = selectedTagRed.EPC;
            currentEpc = txtCurrentEpc.Text;
            antenna = selectedTagRed.Antenna;
        }
        private void dgTagResults_MouseRightButtonDown(object sender, MouseButtonEventArgs e)
        {
            ContextMenu ctMenu     = (ContextMenu)App.Current.MainWindow.FindName("ctMenu");
            Button      btnConnect = (Button)App.Current.MainWindow.FindName("btnConnect");

            try
            {
                if (e.RightButton == MouseButtonState.Pressed)
                {
                    // iteratively traverse the visual tree
                    DependencyObject dep = (DependencyObject)e.OriginalSource;
                    while ((dep != null) && !(dep is DataGridCell) && !(dep is DataGridColumnHeader))
                    {
                        dep = VisualTreeHelper.GetParent(dep);
                    }

                    if (btnConnect.Content != null)
                    {
                        if (btnConnect.Content.ToString() == "Connect" || btnConnect.IsEnabled == false)
                        {
                            ctMenu.Visibility = System.Windows.Visibility.Collapsed;
                            return;
                        }
                    }
                    else if (dep == null)
                    {
                        ctMenu.Visibility = System.Windows.Visibility.Collapsed;
                        return;
                    }

                    if (dep is DataGridCell)
                    {
                        DataGridCell cell = dep as DataGridCell;

                        // navigate further up the tree
                        while ((dep != null) && !(dep is DataGridRow))
                        {
                            dep = VisualTreeHelper.GetParent(dep);
                        }

                        DataGridRow row      = dep as DataGridRow;
                        DataGrid    dataGrid = ItemsControl.ItemsControlFromItemContainer(row) as DataGrid;

                        TagReadRecord tr = (TagReadRecord)row.Item;


                        if ((null != dataGrid.CurrentCell) && (tr.Protocol == TagProtocol.GEN2))
                        {
                            foreach (MenuItem item in ctMenu.Items)
                            {
                                item.IsEnabled = true;
                            }

                            if (dataGrid.CurrentCell.Column.Header.Equals("EPC") || (dataGrid.CurrentCell.Column.Header.Equals("Data")) ||
                                dataGrid.CurrentCell.Column.Header.Equals("EPC(ASCII)") || (dataGrid.CurrentCell.Column.Header.Equals("Data(ASCII)")) ||
                                dataGrid.CurrentCell.Column.Header.Equals("EPC(ReverseBase36)"))
                            {
                                Window mainWindow = App.Current.MainWindow;
                                if (dataGrid.CurrentCell.Column.Header.Equals("EPC") || dataGrid.CurrentCell.Column.Header.Equals("EPC(ASCII)") ||
                                    dataGrid.CurrentCell.Column.Header.Equals("EPC(ReverseBase36)"))
                                {
                                    txtSelectedCell.Text = "EPC";
                                }
                                else
                                {
                                    txtSelectedCell.Text = "Data";
                                }
                                Label lblhiddenembeddedReadvalueFrmMainWdw = (Label)mainWindow.FindName("lblhiddenembeddedReadvalue");
                                ctMenu.Focus();
                                if (lblhiddenembeddedReadvalueFrmMainWdw.Content.ToString() == "Reserved")
                                {
                                    ctMenu.Visibility = System.Windows.Visibility.Collapsed;
                                    Console.WriteLine("Current cell" + dataGrid.CurrentCell.Column.Header.ToString());
                                }
                                else
                                {
                                    ctMenu.Visibility = System.Windows.Visibility.Visible;
                                }
                            }
                            else
                            {
                                ctMenu.Visibility = System.Windows.Visibility.Collapsed;
                                //Console.WriteLine("Else case Current cell" + dataGrid.CurrentCell.Column.Header.ToString());
                            }
                            int index = dataGrid.ItemContainerGenerator.IndexFromContainer(row);
                        }
                        else if ((null != dataGrid.CurrentCell) && (tr.Protocol == TagProtocol.ATA))
                        {
                            foreach (MenuItem item in ctMenu.Items)
                            {
                                if (item.Header.ToString() != "Inspect Tag")
                                {
                                    item.IsEnabled = false;
                                }
                            }
                            ctMenu.Visibility = System.Windows.Visibility.Visible;
                        }
                        else
                        {
                            ctMenu.Visibility = System.Windows.Visibility.Collapsed;
                            //Console.WriteLine("Current Cell is not there" + dataGrid.CurrentCell.Column.Header.ToString());
                        }
                    }
                    else
                    {
                        ctMenu.Visibility = System.Windows.Visibility.Collapsed;
                        //Console.WriteLine("not on a data grid cell" );
                    }
                }
            }
            catch (Exception ex)
            {
                if (ex is NullReferenceException)
                {
                    ctMenu.Visibility = System.Windows.Visibility.Collapsed;
                }
                else
                {
                    MessageBox.Show(ex.Message.ToString(), "Error", MessageBoxButton.OK, MessageBoxImage.Error);
                }
            }
        }
Esempio n. 5
0
        public void Load(Reader reader, uint address, int length, Gen2.Bank selectedBank, TagReadRecord selectedTagRed)
        {
            InitializeComponent();
            objReader     = reader;
            startAddress  = address;
            dataLength    = length;
            selectMemBank = selectedBank;

            spWriteEPC.IsEnabled    = true;
            rbSelectedTag.IsChecked = true;
            rbSelectedTag.IsEnabled = true;

            string[] stringData = selectedTagRed.Data.Split(' ');
            txtEpc.Text  = selectedTagRed.EPC;
            txtData.Text = string.Join("", stringData);
            Window       mainWindow = App.Current.MainWindow;
            ucTagResults tagResults = (ucTagResults)mainWindow.FindName("TagResults");

            switch (selectedBank)
            {
            case Gen2.Bank.EPC:
                if (tagResults.txtSelectedCell.Text == "Data")
                {
                    lblSelectFilter.Content = "EPC Memory, Decimal Address = " + address.ToString() + " and Data = " + txtData.Text;
                }
                else
                {
                    lblSelectFilter.Content = "EPC ID = " + selectedTagRed.EPC;
                }
                break;

            case Gen2.Bank.TID:
                if (tagResults.txtSelectedCell.Text == "Data")
                {
                    lblSelectFilter.Content = "TID Memory, Decimal Address = " + address.ToString() + " and Data = " + txtData.Text;
                }
                else
                {
                    lblSelectFilter.Content = "EPC ID = " + selectedTagRed.EPC;
                }
                break;

            case Gen2.Bank.USER:
                if (tagResults.txtSelectedCell.Text == "Data")
                {
                    lblSelectFilter.Content = "User Memory, Decimal Address = " + address.ToString() + " and Data = " + txtData.Text;
                }
                else
                {
                    lblSelectFilter.Content = "EPC ID = " + selectedTagRed.EPC;
                }
                break;
            }
            txtCurrentEpc.Text = selectedTagRed.EPC;
            currentEpc         = txtCurrentEpc.Text;
            antenna            = selectedTagRed.Antenna;
        }