/// <summary>
        /// Copy from Antenna
        /// </summary>
        /// <param name="from"></param>
        public void Copy(Antenna from)
        {
            this.port = from.Port;

            this.antennaStatus = (from.antennaStatus);
            this.antennaConfig = (from.antennaConfig);
        }
        Result AntennaPortSetConfiguration(uint port, AntennaPortConfig antenna)
        {
            UInt32 registerValue = 0;

            // First, tell the MAC which antenna descriptors we'll be reading and
            // verify that it was a valid selector
            MacWriteRegister(MACREGISTER.HST_ANT_DESC_SEL, port);

            /*
             * MacReadRegister(MACREGISTER.MAC_ERROR, ref registerValue);
             *
             * if (registerValue == HOSTIF_ERR_SELECTORBNDS)
             * {
             *  MacClearError();
             *  return Result.INVALID_PARAMETER;
             * }
             */

            // Write the antenna dwell, RF power, inventory cycle count, and sense
            // resistor threshold registers
            MacWriteRegister(MACREGISTER.HST_ANT_DESC_DWELL, antenna.dwellTime);

            MacWriteRegister(MACREGISTER.HST_ANT_DESC_RFPOWER, antenna.powerLevel);

            MacWriteRegister(MACREGISTER.HST_ANT_DESC_INV_CNT, antenna.numberInventoryCycles);

            return(Result.OK);
        }
 private void btn_apply_Click(object sender, EventArgs e)
 {
     status.Text = "Applying Configuration";
     AntennaPortConfig antCfg = new AntennaPortConfig();
     if (Program.ReaderXP.GetAntennaPortConfiguration((uint)state.SelectedIndex, ref antCfg) != Result.OK)
     {
         status.Text = "Apply config Failed";
         return;
     }
     antCfg.dwellTime = (uint)dwellTime.Value;
     antCfg.numberInventoryCycles = (uint)inventoryCycles.Value;
     antCfg.powerLevel = (uint)powerLevel.Value;
     antCfg.antennaSenseThreshold = (uint)senseThreshold.Value;
     if (Program.ReaderXP.SetAntennaPortState((uint)state.SelectedIndex,
         (AntennaPortState)cb_enable.SelectedItem) != Result.OK)
     {
         status.Text = "Apply config Failed";
         return;
     }
     if (Program.ReaderXP.SetAntennaPortConfiguration((uint)state.SelectedIndex, antCfg) != Result.OK)
     {
         status.Text = "Apply config Failed";
         return;
     }
     status.Text = "Applied Sucessfully";
 }
        private void btn_apply_Click(object sender, EventArgs e)
        {
            status.Text = "Applying Configuration";
            AntennaPortConfig antCfg = new AntennaPortConfig();

            if (Program.ReaderXP.GetAntennaPortConfiguration((uint)state.SelectedIndex, ref antCfg) != Result.OK)
            {
                status.Text = "Apply config Failed";
                return;
            }
            antCfg.dwellTime             = (uint)dwellTime.Value;
            antCfg.numberInventoryCycles = (uint)inventoryCycles.Value;
            antCfg.powerLevel            = (uint)powerLevel.Value;
            antCfg.antennaSenseThreshold = (uint)senseThreshold.Value;
            if (Program.ReaderXP.SetAntennaPortState((uint)state.SelectedIndex,
                                                     (AntennaPortState)cb_enable.SelectedItem) != Result.OK)
            {
                status.Text = "Apply config Failed";
                return;
            }
            if (Program.ReaderXP.SetAntennaPortConfiguration((uint)state.SelectedIndex, antCfg) != Result.OK)
            {
                status.Text = "Apply config Failed";
                return;
            }
            status.Text = "Applied Sucessfully";
        }
        /// <summary>
        /// Allows an application to configure several parameters for a single
        /// logical antenna port e.g.,  dwell time, power level, and number
        /// of inventory cycles.  Even if the logical antenna port is disabled,
        /// an application is allowed to set these configuration parameters.
        /// Setting configuration parameters does not cause a logical antenna
        /// port to be automatically enabled; the application must still enable
        /// the logical antenna port via RFID_AntennaPortSetState.  The
        /// antenna-port configuration cannot be set while a radio module is
        /// executing a tag-protocol operation.
        /// NOTE:  Since RFID_AntennaPortSetConfiguration sets all of the
        /// configuration parameters that are present in the
        /// RFID_ANTENNA_PORT_CONFIG structure, if an application wishes to
        /// leave some parameters unchanged, the application should first call
        /// RFID_AntennaPortGetConfiguration to retrieve the current
        /// settings, update the values in the structure that are to be
        /// changed, and then call RFID_AntennaPortSetConfiguration.
        /// </summary>
        /// <param name="antenna">A structure that contains the
        /// antenna-port configuration parameters.  This
        /// parameter must not be NULL.  In version 1.1,
        /// the physicalRxPort and physicalTxPort
        /// fields must be the same. </param>
        /// <returns></returns>
        public Result SetAntennaPortConfiguration(AntennaPortConfig antenna)
        {
            if (antenna == null)
            {
                return(Result.INVALID_PARAMETER);
            }

            return(m_Result = AntennaPortSetConfiguration(0, antenna));
        }
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="port"></param>
 public AntennaConfig
 (
     UInt32 port
 )
     :
     base()
 {
     this.port = port;
     this.antennaPortConfig = new AntennaPortConfig();
 }
        private Result SetAntennaPortConfiguration(uint virtual_port, uint physical_port)
        {
            AntennaPortConfig antenna = new AntennaPortConfig();

            if ((m_Result = AntennaPortGetConfiguration(virtual_port, antenna)) != Result.OK)
            {
                return(m_Result);
            }

            return(m_Result = AntennaPortSetConfiguration(virtual_port, antenna));
        }
Example #8
0
        private void btnOpen_Click(object sender, EventArgs e)
        {
            #region codes ========================================
            Result nRet = Result.FAILURE;

            if (!m_bOpen)
            {
                nRet = R1000Reader.RFIDOpen(0);
                if (nRet != Result.OK)
                {
                    ErrorMessage(nRet, 0, String.Empty);
                    return;
                }

                //set anntena parameter for best Inventory
                AntennaPortConfig pConfig = new AntennaPortConfig();
                R1000Reader.RFIDGetAntennaPortConfiguration(0, ref pConfig);
                //pConfig.powerLevel = 280;
                //pConfig.dwellTime = 300;
                //pConfig.numberInventoryCycles = 8192;
                //R1000Reader.RFIDSetAntennaPortConfiguration(0, ref pConfig);

                //For speed up block write below settings are necessary.
                //FIXEDQ_PARMS FixedParms = new FIXEDQ_PARMS();
                //FixedParms.qValue = 0;
                //FixedParms.retryCount = 0;
                //FixedParms.toggleTarget = 0;
                //FixedParms.repeatUntilNoTags = 0;

                //SINGULATION_ALGORITHM_PARMS AlgParms = (SINGULATION_ALGORITHM_PARMS)FixedParms;

                //R1000Reader.RFIDSingulationAlgorithmParameters(SingulationAlgorithm.FIXEDQ, ref AlgParms, true);

                //SingulationAlgorithm nAlgorithm = SingulationAlgorithm.FIXEDQ;
                //R1000Reader.RFIDSingulationAlgorithm(ref nAlgorithm, true);

                btnOpen.Text = "Close";
                m_bOpen      = true;

                ErrorMessage(0, 0, "Ready");
            }//end if (!m_bOpen)
            else
            {
                R1000Reader.RFIDClose(0);
                btnOpen.Text = "Open";
                m_bOpen      = false;
                ErrorMessage(0, 0, "Close");
            }
            #endregion //end codes
        }
Example #9
0
        private bool AddAntPort()
        {
            Byte btPhysicalPort      = 0;
            AntennaPortConfig config = new AntennaPortConfig();

            //Get Logic port 0
            if (m_reader.API_AntennaPortGetConfiguration(0, ref config) != Result.OK)
            {
                return(false);
            }

            m_btPhysicalPort = config.physicalPort;
            m_usPowerLevel   = config.powerLevel;


            //set numPowerLevel value
            numPowerLevel.Value = (m_usPowerLevel > numPowerLevel.Maximum) ?
                                  numPowerLevel.Maximum : m_usPowerLevel;

            //Detect Port
            foreach
            (
                ENUM_ANT_PORT port in Enum.GetValues(typeof(ENUM_ANT_PORT))
            )
            {
                config.physicalPort = (byte)port;

                //Set all port to check which is supported.
                if (m_reader.API_AntennaPortSetConfiguration(0, config) == Result.OK)
                {
                    cmbAntPort.Items.Add((byte)port);
                }


                if (m_btPhysicalPort == (byte)port)
                {
                    cmbAntPort.SelectedIndex = cmbAntPort.Items.IndexOf((byte)port);
                }
            }

            //Restore Port Setting
            config.physicalPort = btPhysicalPort;
            if (m_reader.API_AntennaPortSetConfiguration(0, config) != Result.OK)
            {
                return(false);
            }

            return(true);
        }
Example #10
0
        private void AntennaPortGetConfiguration(int radioHandle)
        {
            AntennaPortConfig antennaPortConfig = new AntennaPortConfig();

            var result = link.AntennaPortGetConfiguration(radioHandle, 0, antennaPortConfig);

            logger.Information("link.AntennaPortGetConfig => {Result}", result);
            logger.Information("\tRadioHandle used              : " + radioHandle);
            logger.Information("\tLength found                  : " + antennaPortConfig.length);
            logger.Information("\tPowerLevel found              : " + antennaPortConfig.powerLevel);
            logger.Information("\tDwellTime found               : " + antennaPortConfig.dwellTime);
            logger.Information("\tNumberInventoryCycles found   : " + antennaPortConfig.numberInventoryCycles);
            logger.Information("\tphysicalRxPort found          : " + antennaPortConfig.physicalRxPort);
            logger.Information("\tPhysicalTxPort found          : " + antennaPortConfig.physicalTxPort);
            logger.Information("\tSense Threshold( glob ) found : " + antennaPortConfig.antennaSenseThreshold);
        }
        /// <summary>
        /// Allows an application to configure several parameters for a single
        /// logical antenna port e.g.,  dwell time, power level, and number
        /// of inventory cycles.  Even if the logical antenna port is disabled,
        /// an application is allowed to set these configuration parameters.
        /// Setting configuration parameters does not cause a logical antenna
        /// port to be automatically enabled; the application must still enable
        /// the logical antenna port via RFID_AntennaPortSetState.  The
        /// antenna-port configuration cannot be set while a radio module is
        /// executing a tag-protocol operation.
        /// NOTE:  Since RFID_AntennaPortSetConfiguration sets all of the
        /// configuration parameters that are present in the
        /// RFID_ANTENNA_PORT_CONFIG structure, if an application wishes to
        /// leave some parameters unchanged, the application should first call
        /// RFID_AntennaPortGetConfiguration to retrieve the current
        /// settings, update the values in the structure that are to be
        /// changed, and then call RFID_AntennaPortSetConfiguration.
        /// </summary>
        /// <param name="port">antenna-port</param>
        /// <param name="antenna">A structure that contains the
        /// antenna-port configuration parameters.  This
        /// parameter must not be NULL.  In version 1.1,
        /// the physicalRxPort and physicalTxPort
        /// fields must be the same. </param>
        /// <returns></returns>
        public Result SetAntennaPortConfiguration(uint port, AntennaPortConfig antenna)
        {
            if (antenna == null)
            {
                return(Result.INVALID_PARAMETER);
            }

            if (antenna.powerLevel > GetSoftwareMaxPowerLevel(m_save_region_code))
            {
                return(m_Result = Result.INVALID_PARAMETER);
            }

            m_AntennaList[(int)port].AntennaConfig = antenna;

            return(m_Result = AntennaPortSetConfiguration(port, antenna));
        }
Example #12
0
        private void btnRefresh_Click(object sender, EventArgs e)
        {
            #region codes ========================================
            if (m_bOpen)
            {
                //Response Mode
                ResponseMode responseMode = ResponseMode.UNKNOWN;
                R1000Reader.RFIDGetResponseMode(ref responseMode);
                if (responseMode == ResponseMode.COMPACT)
                {
                    cmbResponseMode.SelectedIndex = 0;
                }
                else
                {
                    cmbResponseMode.SelectedIndex = 1;
                }

                //Operation Mode
                RadioOperationMode operationMode = RadioOperationMode.UNKNOWN;
                operationMode = R1000Reader.RFIDGetOperationMode();
                if (operationMode == RadioOperationMode.CONTINUOUS)
                {
                    cmbOperationMode.SelectedIndex = 0;
                    m_bContinue = true;
                }
                else
                {
                    cmbOperationMode.SelectedIndex = 1;
                    m_bContinue = false;
                }

                //tag stop count
                numTagStopCount.Value = R1000Reader.RFIDGetStopCount();

                AntennaPortConfig antPortConfig = new AntennaPortConfig();
                R1000Reader.RFIDGetAntennaPortConfiguration(0, ref antPortConfig);
                txtdwelltime.Text   = antPortConfig.dwellTime.ToString();
                txtInvRounds.Text   = antPortConfig.numberInventoryCycles.ToString();
                traPowerLevel.Value = (int)antPortConfig.powerLevel / 10;
                lbldBm.Text         = traPowerLevel.Value.ToString() + "dBm";

                ErrorMessage(0, 0, "Config Refreshed");
            }
            #endregion //end codes
        }
Example #13
0
        private void AntennaPortSetConfiguration(int radioHandle, uint dwellTime, uint powerLevel)
        {
            if (powerLevel > 330)
            {
                throw new ArgumentOutOfRangeException(nameof(powerLevel), "Maximum allowed is 330");
            }

            AntennaPortConfig antennaPortConfig = new AntennaPortConfig();

            link.AntennaPortGetConfiguration(radioHandle, 0, antennaPortConfig);

            antennaPortConfig.dwellTime = dwellTime;

            // The power level for the logical antenna port’s physical transmit antenna, specified in 1/10th dBm
            // Default is 300 (30 dBm), absolute maximum is 330 (33 dBm)
            antennaPortConfig.powerLevel = powerLevel;

            Result result = link.AntennaPortSetConfiguration(radioHandle, 0, antennaPortConfig);

            logger.Information("link.AntennaPortSetConfiguration => {Result}", result);
        }
 private void state_SelectedIndexChanged(object sender, EventArgs e)
 {
     AntennaPortStatus ant = new AntennaPortStatus();
     AntennaPortConfig antCfg = new AntennaPortConfig();
     if (state.SelectedIndex >= 0)
     {
         if (Program.ReaderXP.GetAntennaPortStatus((uint)state.SelectedIndex, ref ant) == Result.OK)
         {
             cb_enable.SelectedItem = ant.state;
         }
         if (Program.ReaderXP.GetAntennaPortConfiguration((uint)state.SelectedIndex, ref antCfg) == Result.OK)
         {
             txPhysicalPort.Text = antCfg.physicalTxPort.ToString();
             rxPhysicalPort.Text = antCfg.physicalRxPort.ToString();
             dwellTime.Value = antCfg.dwellTime;
             inventoryCycles.Value = antCfg.numberInventoryCycles;
             powerLevel.Value = antCfg.powerLevel;
             senseThreshold.Value = antCfg.antennaSenseThreshold;
         }
     }
 }
        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="port"></param>
        /// <param name="state"></param>
        /// <param name="powerLevel"></param>
        /// <param name="dwellTime"></param>
        /// <param name="numberInventoryCycles"></param>
        /// <param name="antennaSenseThreshold"></param>
        public Antenna
        (
            UInt32 port,
            AntennaPortState state,
            UInt32 powerLevel,
            UInt32 dwellTime,
            UInt32 numberInventoryCycles,

            Boolean easAlarm,
            Boolean enableLocalInv,
            SingulationAlgorithm invAlgo,
            UInt32 startQ,
            Boolean enableLocalProfile,
            UInt32 linkProfile,
            Boolean enableLocalFreq,
            UInt32 freqChannel,

            UInt32 antennaSenseThreshold
        )
            :
            base()
        {
            this.port          = port;
            this.antennaStatus = new AntennaPortStatus();
            this.antennaConfig = new AntennaPortConfig();

            this.State                 = state;
            this.EnableLocalFreq       = enableLocalFreq;
            this.EASAlarm              = easAlarm;
            this.EnableLocalInv        = enableLocalInv;
            this.EnableLocalProfile    = enableLocalProfile;
            this.InventoryAlgorithm    = invAlgo;
            this.StartQ                = startQ;
            this.LinkProfile           = linkProfile;
            this.FreqChannel           = freqChannel;
            this.PowerLevel            = powerLevel;
            this.DwellTime             = dwellTime;
            this.NumberInventoryCycles = numberInventoryCycles;
            this.AntennaSenseThreshold = antennaSenseThreshold;
        }
        private void state_SelectedIndexChanged(object sender, EventArgs e)
        {
            AntennaPortStatus ant    = new AntennaPortStatus();
            AntennaPortConfig antCfg = new AntennaPortConfig();

            if (state.SelectedIndex >= 0)
            {
                if (Program.ReaderXP.GetAntennaPortStatus((uint)state.SelectedIndex, ref ant) == Result.OK)
                {
                    cb_enable.SelectedItem = ant.state;
                }
                if (Program.ReaderXP.GetAntennaPortConfiguration((uint)state.SelectedIndex, ref antCfg) == Result.OK)
                {
                    txPhysicalPort.Text   = antCfg.physicalTxPort.ToString();
                    rxPhysicalPort.Text   = antCfg.physicalRxPort.ToString();
                    dwellTime.Value       = antCfg.dwellTime;
                    inventoryCycles.Value = antCfg.numberInventoryCycles;
                    powerLevel.Value      = antCfg.powerLevel;
                    senseThreshold.Value  = antCfg.antennaSenseThreshold;
                }
            }
        }
Example #17
0
        private void btnSet_Click(object sender, EventArgs e)
        {
            #region codes ========================================
            Result nRet = Result.FAILURE;

            AntennaPortConfig antPortConfig = new AntennaPortConfig();
            nRet = R1000Reader.RFIDGetAntennaPortConfiguration(0, ref antPortConfig);
            if (nRet != Result.OK)
            {
                ErrorMessage(0, 0, "Get Antenna Config Failure");
                return;
            }

            antPortConfig.dwellTime             = Convert.ToUInt32(txtdwelltime.Text);
            antPortConfig.numberInventoryCycles = Convert.ToUInt32(txtInvRounds.Text);
            antPortConfig.physicalRxPort        = 3;
            antPortConfig.physicalTxPort        = 3;
            antPortConfig.powerLevel            = (UInt32)traPowerLevel.Value * 10;

            nRet = R1000Reader.RFIDSetAntennaPortState(0, AntennaPortState.ENABLED);
            if (nRet != Result.OK)
            {
                ErrorMessage(0, 0, "Set Antenna Port State Failure");
                return;
            }

            nRet = R1000Reader.RFIDSetAntennaPortConfiguration(0, ref antPortConfig);
            if (nRet != Result.OK)
            {
                ErrorMessage(0, 0, "Set Antenna Config Failure");
            }
            else
            {
                ErrorMessage(0, 0, "Set Config OK");
            }
            #endregion //end codes
        }
Example #18
0
        //Set Logic-Antenna Port and Test-Antenna Port
        private bool SetPort()
        {
            if (m_reader == null || m_mainForm == null)
                return false;

            AntennaPortConfig config = new AntennaPortConfig();
            AntennaPortState  State  = AntennaPortState.DISABLED;

            //Close Logic antenna port 1~15. Only use Logic antenna port 0
            for (byte Port = 1; Port <= Source_Antenna.LOGICAL_MAXIMUM; Port++)
            {
                if (Result.OK != m_reader.API_AntennaPortSetState(Port, State))
                {
                    ShowErrMsg("Set logic antenna port State unsuccessfully!");
                    return false;
                }
            }

            GetPortValue();
            if (Result.OK != m_reader.API_TestSetAntennaPortConfiguration(m_btPhysicalPort, m_usPowerLevel))
                return false;

            //Get Logic Port 0
            if (m_reader.API_AntennaPortGetConfiguration(0, ref config) != Result.OK)
            {
                ShowErrMsg("Get antenna port0 unsuccessfully!");
                return false;
            }

            config.powerLevel   = m_usPowerLevel;
            config.physicalPort = m_btPhysicalPort;

            //Set Logic Port 0
            if (m_reader.API_AntennaPortSetConfiguration(0, config) != Result.OK)
            {
                ShowErrMsg("Set antenna port0 unsuccessfully!");
                return false;
            }

            return true;
        }
Example #19
0
        private bool SetConfig()
        {
            if (m_reader == null || m_mainForm == null)
            {
                return(false);
            }


            //Set Frequency Configuration
            m_btChannelFlag = (rdoBtnMultiChannel.Checked == true) ? (byte)0 : (byte)1;

            //Get value from cmbBoxFreq
            try
            {
                m_uiExactFrequecny = (uint)(Convert.ToDouble(cmbBoxFreq.Text) * 1000);
            }
            catch (Exception exception)
            {
                ShowErrMsg("Please enter valid value!");
                return(false);
            }
            //m_uiExactFrequecny = (uint)(Convert.ToDouble(cmbBoxFreq.Text) * 1000);
            if (Result.OK != m_reader.API_TestSetFrequencyConfiguration(m_btChannelFlag, m_uiExactFrequecny))
            {
                ShowErrMsg("Set channel and frequecny unsuccessfully!");
                return(false);
            }



            //Set Logic-Antenna Port and Test-Antenna Port
            {
                AntennaPortConfig config = new AntennaPortConfig();
                AntennaPortState  State  = AntennaPortState.DISABLED;

                for (byte Port = 0; Port <= Source_Antenna.LOGICAL_MAXIMUM; Port++)
                {
                    if (Result.OK != m_reader.API_AntennaPortGetConfiguration(Port, ref config))
                    {
                        ShowErrMsg("Get logic antenna port State unsuccessfully!");
                        return(false);
                    }
                }

                /*
                 * //Close Logic antenna port 1~15. Only use Logic antenna port 0
                 * for (byte Port = 1; Port <= Source_Antenna.LOGICAL_MAXIMUM; Port++)
                 * {
                 *  if (Result.OK != m_reader.API_AntennaPortSetState(Port, State))
                 *  {
                 *      ShowErrMsg("Set logic antenna port State unsuccessfully!");
                 *       return false;
                 *  }
                 * }
                 */


                //Set Test Antenna Port
                m_usPowerLevel   = (UInt16)numPowerLevel.Value;
                m_btPhysicalPort = (byte)cmbAntPort.SelectedItem;
                if (Result.OK != m_reader.API_TestSetAntennaPortConfiguration(m_btPhysicalPort, m_usPowerLevel))
                {
                    return(false);
                }

                //Get Logic Port 0
                if (m_reader.API_AntennaPortGetConfiguration(0, ref config) != Result.OK)
                {
                    ShowErrMsg("Get antenna port0 unsuccessfully!");
                    return(false);
                }

                config.powerLevel   = m_usPowerLevel;
                config.physicalPort = m_btPhysicalPort;

                //Set Logic Port 0
                if (m_reader.API_AntennaPortSetConfiguration(0, config) != Result.OK)
                {
                    ShowErrMsg("Set antenna port0 unsuccessfully!");
                    return(false);
                }
            }


            //Set Pulse Time
            m_uiPulseOnTime  = (UInt16)(numPulseOnTime.Value * 1000);     //ms to us
            m_uiPulseOffTime = (UInt16)(numPulseOffTime.Value * 1000);
            if (Result.OK != m_reader.API_TestSetRandomDataPulseTime(m_uiPulseOnTime, m_uiPulseOffTime))
            {
                ShowErrMsg("Set pulse time unsuccessfully!");
                return(false);
            }

            return(true);
        }
Example #20
0
 public static extern Result RFID_AntennaPortGetConfiguration
 (
     [In]      Int32 handle,
     [In]      UInt32 port,
     [In, Out] AntennaPortConfig config
 );
        } // Radio::SetAntennaPortState

        /// <summary>
        /// Allows an application to retrieve a single logical antenna port's
        /// configuration parameters  e.g., dwell time, power level, and
        /// number of inventory cycles.  Even if the logical antenna port is
        /// disabled, an application is allowed to retrieve these configuration
        /// parameters.  Retrieving configuration parameters does not cause a
        /// logical antenna port to be automatically enabled; the application
        /// must still enable the logical antenna port via
        /// RFID_AntennaPortSetState.  The antenna-port configuration
        /// cannot be retrieved while a radio module is executing a tag-
        /// protocol operation.
        /// </summary>
        /// <param name="antenna">A structure that upon return will
        /// contain the antenna-port configuration
        /// parameters. </param>
        /// <returns>
        /// </returns>
        public Result GetAntennaPortConfiguration(ref AntennaPortConfig antenna)
        {
            AntennaPortGetConfiguration(0, antenna);

            return(Result.OK);
        }
        /// <summary>
        /// Allows an application to retrieve a single logical antenna port's
        /// configuration parameters  e.g., dwell time, power level, and
        /// number of inventory cycles.  Even if the logical antenna port is
        /// disabled, an application is allowed to retrieve these configuration
        /// parameters.  Retrieving configuration parameters does not cause a
        /// logical antenna port to be automatically enabled; the application
        /// must still enable the logical antenna port via
        /// RFID_AntennaPortSetState.  The antenna-port configuration
        /// cannot be retrieved while a radio module is executing a tag-
        /// protocol operation.
        /// </summary>
        /// <param name="port">antenna-port</param>
        /// <param name="antenna">A structure that upon return will
        /// contain the antenna-port configuration
        /// parameters. </param>
        /// <returns>
        /// </returns>
        public Result GetAntennaPortConfiguration(uint port, ref AntennaPortConfig antenna)
        {
            AntennaPortGetConfiguration(port, antenna);

            return(Result.OK);
        }
Example #23
0
        private bool AddAntPort()
        {
            Byte              btPhysicalPort = 0;
            AntennaPortConfig config         = new AntennaPortConfig();

            //Get Logic port 0
            if( m_reader.API_AntennaPortGetConfiguration(0 , ref config) != Result.OK )
                return false;

            m_btPhysicalPort = config.physicalPort;
            m_usPowerLevel   = config.powerLevel;

            //set numPowerLevel value
            numPowerLevel.Value = (m_usPowerLevel > numPowerLevel.Maximum) ?
                                        numPowerLevel.Maximum : m_usPowerLevel;

            //Detect Port
            foreach
            (
                ENUM_ANT_PORT port in Enum.GetValues(typeof(ENUM_ANT_PORT) )
            )
            {
                config.physicalPort = (byte)port;

                //Set all port to check which is supported.
                if (m_reader.API_AntennaPortSetConfiguration(0, config) == Result.OK)
                {
                    cmbAntPort.Items.Add( (byte)port );
                }

                if( m_btPhysicalPort == (byte)port)
                    cmbAntPort.SelectedIndex = cmbAntPort.Items.IndexOf( (byte)port );
            }

            //Restore Port Setting
            config.physicalPort = btPhysicalPort;
            if( m_reader.API_AntennaPortSetConfiguration(0 , config) != Result.OK )
                return false;

            return true;
        }
Example #24
0
        private bool SetConfig()
        {
            if (m_reader == null || m_mainForm == null)
                return false;

            //Set Frequency Configuration
            m_btChannelFlag    = (rdoBtnMultiChannel.Checked == true) ? (byte)0 : (byte)1;

            //Get value from cmbBoxFreq
            try
            {
                m_uiExactFrequecny = (uint)(Convert.ToDouble(cmbBoxFreq.Text) * 1000);
            }
            catch(Exception exception)
            {
                ShowErrMsg("Please enter valid value!");
                return false;
            }
            //m_uiExactFrequecny = (uint)(Convert.ToDouble(cmbBoxFreq.Text) * 1000);
            if (Result.OK != m_reader.API_TestSetFrequencyConfiguration(m_btChannelFlag, m_uiExactFrequecny))
            {
                ShowErrMsg("Set channel and frequecny unsuccessfully!");
                return false;
            }

            //Set Logic-Antenna Port and Test-Antenna Port
            {
                AntennaPortConfig config = new AntennaPortConfig();
                AntennaPortState  State  = AntennaPortState.DISABLED;

                for (byte Port = 0; Port <= Source_Antenna.LOGICAL_MAXIMUM; Port++)
                {
                    if (Result.OK != m_reader.API_AntennaPortGetConfiguration(Port, ref config))
                    {
                        ShowErrMsg("Get logic antenna port State unsuccessfully!");
                        return false;
                    }
                }

                /*
                //Close Logic antenna port 1~15. Only use Logic antenna port 0
                for (byte Port = 1; Port <= Source_Antenna.LOGICAL_MAXIMUM; Port++)
                {
                    if (Result.OK != m_reader.API_AntennaPortSetState(Port, State))
                    {
                        ShowErrMsg("Set logic antenna port State unsuccessfully!");
                         return false;
                    }
                }
                 */

                //Set Test Antenna Port
                m_usPowerLevel   = (UInt16)numPowerLevel.Value;
                m_btPhysicalPort = (byte)cmbAntPort.SelectedItem;
                if (Result.OK != m_reader.API_TestSetAntennaPortConfiguration(m_btPhysicalPort, m_usPowerLevel))
                    return false;

                //Get Logic Port 0
                if (m_reader.API_AntennaPortGetConfiguration(0, ref config) != Result.OK)
                {
                    ShowErrMsg("Get antenna port0 unsuccessfully!");
                    return false;
                }

                config.powerLevel   = m_usPowerLevel;
                config.physicalPort = m_btPhysicalPort;

                //Set Logic Port 0
                if (m_reader.API_AntennaPortSetConfiguration(0, config) != Result.OK)
                {
                    ShowErrMsg("Set antenna port0 unsuccessfully!");
                    return false;
                }
            }

            //Set Pulse Time
            m_uiPulseOnTime  = (UInt16)(numPulseOnTime.Value * 1000);     //ms to us
            m_uiPulseOffTime = (UInt16)(numPulseOffTime.Value * 1000);
            if (Result.OK != m_reader.API_TestSetRandomDataPulseTime(m_uiPulseOnTime, m_uiPulseOffTime))
            {
                ShowErrMsg("Set pulse time unsuccessfully!");
                return false;
            }

            return true;
        }
Example #25
0
 public Result API_AntennaPortGetConfiguration
 (
         byte              r_Port,
     ref AntennaPortConfig r_Config
 )
 {
    return LakeChabotReader.MANAGED_ACCESS.API_AntennaPortGetConfiguration(r_Port, ref r_Config);
 }