Esempio n. 1
0
        public RFTest(RFID_Explorer.mainForm r_form, LakeChabotReader rm_reader)
        {
            InitializeComponent();

            m_mainForm = r_form;
            m_reader   = rm_reader;

            //Initial value
            ckboxErrorKeepRunning.Checked = m_mainForm.bErrorKeepRunning;


            //Read Data from module
            m_reader.API_TestGetAntennaPortConfiguration(ref m_btPhysicalPort, ref m_usPowerLevel);
            m_reader.API_TestGetFrequencyConfiguration(ref m_btChannelFlag, ref m_uiExactFrequecny);
            m_reader.API_TestGetRandomDataPulseTime(ref m_uiPulseOnTime, ref m_uiPulseOffTime);


            //regionComboBox
            try
            {
                m_macRegion = m_reader.RegulatoryRegion;
            }
            catch (rfidReaderException exp)
            {
                cmbBoxRegion.Text = exp.Message;
            }
            cmbBoxRegion.Items.Add(m_macRegion);
            cmbBoxRegion.SelectedIndex = 0;


            //Frequency
            switch (m_macRegion)
            {
            case MacRegion.US:
                foreach (ENUM_RF_US item in Enum.GetValues(typeof(ENUM_RF_US)))
                {
                    cmbBoxFreq.Items.Add(String.Format("{0:000.000}", (float)item / 1000));
                }
                break;

            case MacRegion.EU:
                foreach (ENUM_RF_EU item in Enum.GetValues(typeof(ENUM_RF_EU)))
                {
                    cmbBoxFreq.Items.Add(String.Format("{0:000.000}", (float)item / 1000));
                }
                break;

            case MacRegion.JP:
                foreach (ENUM_RF_JP item in Enum.GetValues(typeof(ENUM_RF_JP)))
                {
                    cmbBoxFreq.Items.Add(String.Format("{0:000.000}", (float)item / 1000));
                }
                break;

            case MacRegion.EU2:
                foreach (ENUM_RF_EU2 item in Enum.GetValues(typeof(ENUM_RF_EU2)))
                {
                    cmbBoxFreq.Items.Add(String.Format("{0:000.000}", (float)item / 1000));
                }
                break;

            case MacRegion.TW:
                foreach (ENUM_RF_TW item in Enum.GetValues(typeof(ENUM_RF_TW)))
                {
                    cmbBoxFreq.Items.Add(String.Format("{0:000.000}", (float)item / 1000));
                }
                break;

            case MacRegion.CN:
                foreach (ENUM_RF_CN item in Enum.GetValues(typeof(ENUM_RF_CN)))
                {
                    cmbBoxFreq.Items.Add(String.Format("{0:000.000}", (float)item / 1000));
                }
                break;

            case MacRegion.KR:
                foreach (ENUM_RF_KR item in Enum.GetValues(typeof(ENUM_RF_KR)))
                {
                    cmbBoxFreq.Items.Add(String.Format("{0:000.000}", (float)item / 1000));
                }
                break;

            case MacRegion.AU:
                foreach (ENUM_RF_AU item in Enum.GetValues(typeof(ENUM_RF_AU)))
                {
                    cmbBoxFreq.Items.Add(String.Format("{0:000.000}", (float)item / 1000));
                }
                break;

            case MacRegion.BR:
                foreach (ENUM_RF_BR item in Enum.GetValues(typeof(ENUM_RF_BR)))
                {
                    cmbBoxFreq.Items.Add(String.Format("{0:000.000}", (float)item / 1000));
                }
                break;

            case MacRegion.HK:
                foreach (ENUM_RF_HK item in Enum.GetValues(typeof(ENUM_RF_HK)))
                {
                    cmbBoxFreq.Items.Add(String.Format("{0:000.000}", (float)item / 1000));
                }
                break;

            case MacRegion.MY:
                foreach (ENUM_RF_MY item in Enum.GetValues(typeof(ENUM_RF_MY)))
                {
                    cmbBoxFreq.Items.Add(String.Format("{0:000.000}", (float)item / 1000));
                }
                break;

            case MacRegion.SG:
                foreach (ENUM_RF_SG item in Enum.GetValues(typeof(ENUM_RF_SG)))
                {
                    cmbBoxFreq.Items.Add(String.Format("{0:000.000}", (float)item / 1000));
                }
                break;

            case MacRegion.TH:
                foreach (ENUM_RF_TH item in Enum.GetValues(typeof(ENUM_RF_TH)))
                {
                    cmbBoxFreq.Items.Add(String.Format("{0:000.000}", (float)item / 1000));
                }
                break;

            case MacRegion.IL:
                foreach (ENUM_RF_IL item in Enum.GetValues(typeof(ENUM_RF_IL)))
                {
                    cmbBoxFreq.Items.Add(String.Format("{0:000.000}", (float)item / 1000));
                }
                break;

            case MacRegion.RU:
                foreach (ENUM_RF_RU item in Enum.GetValues(typeof(ENUM_RF_RU)))
                {
                    cmbBoxFreq.Items.Add(String.Format("{0:000.000}", (float)item / 1000));
                }
                break;

            case MacRegion.IN:
                foreach (ENUM_RF_IN item in Enum.GetValues(typeof(ENUM_RF_IN)))
                {
                    cmbBoxFreq.Items.Add(String.Format("{0:000.000}", (float)item / 1000));
                }
                break;

            case MacRegion.SA:
                foreach (ENUM_RF_SA item in Enum.GetValues(typeof(ENUM_RF_SA)))
                {
                    cmbBoxFreq.Items.Add(String.Format("{0:000.000}", (float)item / 1000));
                }
                break;

            case MacRegion.JO:
                foreach (ENUM_RF_JO item in Enum.GetValues(typeof(ENUM_RF_JO)))
                {
                    cmbBoxFreq.Items.Add(String.Format("{0:000.000}", (float)item / 1000));
                }
                break;

            case MacRegion.MX:
                foreach (ENUM_RF_MX item in Enum.GetValues(typeof(ENUM_RF_MX)))
                {
                    cmbBoxFreq.Items.Add(String.Format("{0:000.000}", (float)item / 1000));
                }
                break;

            //clark 2011.9.13
            case MacRegion.CUSTOMER:
                //Set cmbBoxFreq's type to Non-ReadOnly.
                cmbBoxFreq.DropDownStyle = ComboBoxStyle.DropDown;
                cmbBoxFreq.Items.Add("000.000");

                string strCustomerRegion = "";
                Result result            = m_reader.API_MacGetCustomerRegion(ref strCustomerRegion);

                cmbBoxRegion.Items.Clear();
                switch (result)
                {
                case Result.OK:
                    //Show customer config name
                    cmbBoxRegion.Items.Add(strCustomerRegion);
                    break;

                case Result.NOT_SUPPORTED:
                    cmbBoxRegion.Items.Add("Not support customer");
                    btnRfOn.Enabled      = false;
                    btnRfOff.Enabled     = false;
                    btnRF.Enabled        = false; //btnRF Combine
                    btnInventory.Enabled = false;
                    btnPulse.Enabled     = false;
                    btnClear.Enabled     = false;
                    break;


                case Result.FAILURE:
                default:
                    cmbBoxRegion.Items.Add("Get customer fail");
                    btnRfOn.Enabled      = false;
                    btnRfOff.Enabled     = false;
                    btnRF.Enabled        = false; //btnRF Combine
                    btnInventory.Enabled = false;
                    btnPulse.Enabled     = false;
                    btnClear.Enabled     = false;
                    break;
                }
                cmbBoxRegion.SelectedIndex = 0;
                break;

            case MacRegion.UNKNOWN:
            default:
                cmbBoxFreq.Items.Add(MacRegion.UNKNOWN);
                btnRfOn.Enabled      = false;
                btnRfOff.Enabled     = false;
                btnRF.Enabled        = false;//btnRF Combine
                btnInventory.Enabled = false;
                btnPulse.Enabled     = false;
                btnClear.Enabled     = false;
                break;
            }
            cmbBoxFreq.SelectedIndex = 0;



            //RF Channel Radio Button
            if (m_btChannelFlag == 0)
            {
                rdoBtnMultiChannel.Checked = true;
            }
            else
            {
                rdoBtnSingleChannel.Checked = true;
            }



            //Port Radio Button
            if (AddAntPort() == false)
            {
                cmbBoxFreq.Items.Add(MacRegion.UNKNOWN);
                btnRfOn.Enabled      = false;
                btnRfOff.Enabled     = false;
                btnRF.Enabled        = false;//btnRF Combine
                btnInventory.Enabled = false;
                btnPulse.Enabled     = false;
                cmbAntPort.Items.Add(ENUM_ANT_PORT.UNKNOWN);

                cmbAntPort.SelectedIndex = cmbAntPort.Items.IndexOf(ENUM_ANT_PORT.UNKNOWN);
                return;
            }



            //Pulse Time
            numPulseOnTime.Maximum  = PULSE_TIME_MAX / 1000;
            numPulseOnTime.Minimum  = PULSE_TIME_MIN / 1000;
            numPulseOffTime.Maximum = PULSE_TIME_MAX / 1000;
            numPulseOffTime.Minimum = PULSE_TIME_MIN / 1000;
            numPulseOnTime.Value    = (m_uiPulseOnTime > 0)  ? m_uiPulseOnTime / 1000  : numPulseOnTime.Minimum;   //us to ms
            numPulseOffTime.Value   = (m_uiPulseOffTime > 0) ? m_uiPulseOffTime / 1000 : numPulseOffTime.Minimum;  //us to ms


            //Set Event
            m_mainForm.CurrentContextChanged += new EventHandler(CurrentContextChanged);
            m_mainForm.BindAllFunctionControlers(FunctionStateChanged, true);
        }
Esempio n. 2
0
        public ConfigureSettingsControl(LakeChabotReader reader)
        {
            if (reader == null)
            {
                throw new ArgumentNullException("reader", "Null reader passed to ConfigureGeneral CTOR()");
            }

            if (reader.Mode != rfidReader.OperationMode.BoundToReader)
            {
                throw new ArgumentOutOfRangeException("reader", "Unbound reader passed to ConfigureGeneral()");
            }

            InitializeComponent( );

            this.reader = reader;

            _timer          = new Timer( );
            _timer.Interval = 5000;
            _timer.Tick    += new EventHandler(timer_Tick);

            string startupPowerState      = Properties.Settings.Default.startupPowerState;
            string startupOpMode          = Properties.Settings.Default.startupOperationalMode;
            int    startupAlgorithmNumber = Properties.Settings.Default.startupInventoryAlgorithm;

            rfid.Constants.Result result = rfid.Constants.Result.OK;


            //Interface radiobutton=============================================================
            UInt32 oemData = 0;

            rfid.Constants.Result status = reader.MacReadOemData((ushort)enumOEM_ADDR.HOST_IF_SEL,
                                                                 ref oemData);

            if (oemData == (uint)enumPORT.ENUM_PORT_USB)
            {
                rBtn_USB.Checked  = true;
                rBtn_UART.Checked = false;
            }
            else
            {
                rBtn_USB.Checked  = false;
                rBtn_UART.Checked = true;
            }


            // regionComboBox=============================================================
            ENUM_REGION_RESULT enumMatch = ENUM_REGION_RESULT.FAIL;

            this.macRegion = new Source_MacRegion();
            result         = macRegion.load(LakeChabotReader.MANAGED_ACCESS, this.reader.ReaderHandle);


            do
            {
                if (rfid.Constants.Result.OK != result)
                {
                    enumMatch = ENUM_REGION_RESULT.FAIL;
                    break;
                }


                UInt32 shift = 1;

                foreach (rfid.Constants.MacRegion item in Enum.GetValues(typeof(rfid.Constants.MacRegion)))
                {
                    do
                    {
                        if ((this.macRegion.MacRegionSupport & shift) <= 0)
                        {
                            break;
                        }

                        //Add support region to regionComboBox.
                        if (item == rfid.Constants.MacRegion.CUSTOMER)//Customer region uses string.
                        {
                            result = reader.API_MacGetCustomerRegion(ref strCustomerRegion);

                            switch (result)
                            {
                            case rfid.Constants.Result.OK:
                                regionComboBox.Items.Add(strCustomerRegion);

                                if (item == this.macRegion.MacRegion)
                                {
                                    enumMatch = ENUM_REGION_RESULT.CUSTOMER_OK;
                                }
                                break;

                            case rfid.Constants.Result.NOT_SUPPORTED:
                                //Only hide the option.
                                if (item == this.macRegion.MacRegion)
                                {
                                    enumMatch = ENUM_REGION_RESULT.CUSTOMER_NON_SUPPORTED;
                                }
                                break;

                            case rfid.Constants.Result.FAILURE:
                            default:
                                enumMatch = ENUM_REGION_RESULT.CUSTOMER_FAIL;
                                break;
                            }
                        }
                        else
                        {
                            //Other region uses enum.
                            regionComboBox.Items.Add(item);

                            //Check match region between support and current region setting.
                            if (item == this.macRegion.MacRegion)
                            {
                                enumMatch = ENUM_REGION_RESULT.OK;
                            }
                        }
                    }while(false);

                    shift <<= 0x01;
                }
            }while(false);

            switch (enumMatch)
            {
            case ENUM_REGION_RESULT.OK:
                regionComboBox.SelectedIndex = regionComboBox.Items.IndexOf(this.macRegion.MacRegion);
                break;

            case ENUM_REGION_RESULT.FAIL:
                RegionError("Read region unsuccessfully");
                break;

            case ENUM_REGION_RESULT.CUSTOMER_OK:
                //Customer region uses string.
                regionComboBox.SelectedIndex = regionComboBox.Items.IndexOf(strCustomerRegion);
                break;

            case ENUM_REGION_RESULT.CUSTOMER_NON_SUPPORTED:
                RegionError("Not support customer region");
                break;

            case ENUM_REGION_RESULT.CUSTOMER_FAIL:
                RegionError("Get customer region fail");
                break;

            case ENUM_REGION_RESULT.NOT_MATCH:
                RegionError("Region deosn't match \"RegionSupport\".");
                break;
            }



            // profileComboBox=============================================================
            this.profileList = new Source_LinkProfileList(LakeChabotReader.MANAGED_ACCESS,
                                                          this.reader.ReaderHandle);

            this.profileList.load( );

            int count = 0;

            foreach (Source_LinkProfile linkProfile in profileList)
            {
                profileComboBox.Items.Add(count + " : " + linkProfile.ToString( ));

                ++count;
            }

            profileComboBox.SelectedIndex = ( int )profileList.getActiveProfileIndex( );

            this.profileComboBox.SelectedIndexChanged += new System.EventHandler(this.profileComboBox_SelectedIndexChanged);



            // Currently out of sync with 'new' model ~ no explicit read done
            // here or source provided ~ done via reader call...
            foreach (rfid.Constants.SingulationAlgorithm item in Enum.GetValues(typeof(rfid.Constants.SingulationAlgorithm)))
            {
                algorithmComboBox.Items.Add(item);
            }
            algorithmComboBox.Items.Remove(rfid.Constants.SingulationAlgorithm.UNKNOWN);

            // skipping err checking on these shortcut methods...

            Source_QueryParms queryParms = new Source_QueryParms( );

            queryParms.load(LakeChabotReader.MANAGED_ACCESS, reader.ReaderHandle);

            algorithmComboBox.SelectedIndex = algorithmComboBox.Items.IndexOf
                                              (
                queryParms.SingulationAlgorithm
                                              );

            algorithmComboBox.SelectedIndexChanged += new System.EventHandler(this.algorithmComboBox_SelectedIndexChanged);
        }
        private void LoadRegion()
        {
            string             strCustomerRegion = "";
            ValueObject        CurrentRegion     = new ValueObject();
            ENUM_REGION_RESULT enumMatch         = ENUM_REGION_RESULT.FAIL;

            rfid.Constants.Result result = rfid.Constants.Result.OK;

            this.macRegion = new Source_MacRegion();
            result         = macRegion.load(LakeChabotReader.MANAGED_ACCESS, this.reader.ReaderHandle);


            do
            {
                if (rfid.Constants.Result.OK != result)
                {
                    enumMatch = ENUM_REGION_RESULT.FAIL;
                    break;
                }


                //Push Data to list
                UInt32 shift = 1;
                foreach (rfid.Constants.MacRegion item in Enum.GetValues(typeof(rfid.Constants.MacRegion)))
                {
                    ValueObject vo = new ValueObject();

                    do
                    {
                        if ((this.macRegion.MacRegionSupport & shift) <= 0)
                        {
                            break;
                        }

                        //Add support region to regionComboBox.
                        if (item == rfid.Constants.MacRegion.CUSTOMER)//Customer region uses string.
                        {
                            result = reader.API_MacGetCustomerRegion(ref strCustomerRegion);

                            switch (result)
                            {
                            case rfid.Constants.Result.OK:
                                vo.Name  = strCustomerRegion.ToString();
                                vo.Value = Enum.Format(typeof(rfid.Constants.MacRegion), item, "d");
                                m_list.Add(vo);

                                if (item == this.macRegion.MacRegion)
                                {
                                    CurrentRegion = vo;
                                    enumMatch     = ENUM_REGION_RESULT.OK;
                                }
                                break;

                            case rfid.Constants.Result.NOT_SUPPORTED:
                                if (item == this.macRegion.MacRegion)
                                {
                                    enumMatch = ENUM_REGION_RESULT.CUSTOMER_NON_SUPPORTED;
                                }
                                break;

                            case rfid.Constants.Result.FAILURE:
                            default:
                                enumMatch = ENUM_REGION_RESULT.CUSTOMER_FAIL;
                                break;
                            }
                        }
                        else
                        {
                            //Other region uses enum.
                            vo.Name  = item.ToString();
                            vo.Value = Enum.Format(typeof(rfid.Constants.MacRegion), item, "d");
                            m_list.Add(vo);

                            //Check match region between support and current region setting.
                            if (item == this.macRegion.MacRegion)
                            {
                                CurrentRegion = vo;
                                enumMatch     = ENUM_REGION_RESULT.OK;
                            }
                        }
                    }while(false);

                    shift <<= 0x01;
                }
            }while(false);


            switch (enumMatch)
            {
            case ENUM_REGION_RESULT.OK:
                //Binding data
                regionComboBox.DataSource    = m_list;
                regionComboBox.DisplayMember = "Name";
                regionComboBox.ValueMember   = "Value";

                regionComboBox.SelectedIndex = regionComboBox.Items.IndexOf(CurrentRegion);
                break;

            case ENUM_REGION_RESULT.FAIL:
                RegionError("Read region unsuccessfully");
                break;

            case ENUM_REGION_RESULT.CUSTOMER_NON_SUPPORTED:
                RegionError("Not support customer region");
                break;

            case ENUM_REGION_RESULT.CUSTOMER_FAIL:
                RegionError("Get customer region unsuccessfully");
                break;

            case ENUM_REGION_RESULT.NOT_MATCH:
                RegionError("Region deosn't match \"RegionSupport\".");
                break;
            }
        }