/// <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"; }
/// <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)); }
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 }
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); }
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)); }
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 }
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 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 }
//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; }
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); }
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); }
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; }
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; }
public Result API_AntennaPortGetConfiguration ( byte r_Port, ref AntennaPortConfig r_Config ) { return LakeChabotReader.MANAGED_ACCESS.API_AntennaPortGetConfiguration(r_Port, ref r_Config); }