public void init(ReaderCapabilities readerCapabilities) { //Antenna Configuration this.Hopping = false; this.HopTableID = 0; this.HoppingStep = 0; this.ChannelIndex = 1; this.TagInventoryStateAware = false; this.ModeIndex = 1000; this.Tari = 0; this.SelectedSession = "Session 0"; this.SelectedSessionIndex = 1; this.TagPopulation = 32; this.TagTransitTime = 0; this.SelectedSearchMode = "Dual_Target"; this.FixedFrequencyMode = "Disabled"; this.FixedChannelList = UInt16Array.FromString(""); this.FrequencyHopList = UInt16Array.FromString(""); this.ReducedPowerFrequencyMode = false; this.ReducedPowerChannelList = UInt16Array.FromString(string.Empty); this.LowDutyCycleMode = false; this.EmptyFieldTimeout = 2000; this.FieldPingInterval = 250; this.MaxNumberOfAntennaSupported = readerCapabilities.MaxNumberOfAntennaSupported; this.AntennaID = new ushort[readerCapabilities.MaxNumberOfAntennaSupported]; this.AntennaConnected = new bool[readerCapabilities.MaxNumberOfAntennaSupported]; this.SelectedReceiverSensitivity = new short[readerCapabilities.MaxNumberOfAntennaSupported]; this.SelectedReceiverSensitivityIndex = new ushort[readerCapabilities.MaxNumberOfAntennaSupported]; this.SelectedTransmiterPower = new double[readerCapabilities.MaxNumberOfAntennaSupported]; this.SelectedTransmiterPowerIndex = new ushort[readerCapabilities.MaxNumberOfAntennaSupported]; for (int i = 0; i < readerCapabilities.MaxNumberOfAntennaSupported; i++) { this.AntennaID[i] = (ushort)(i + 1); if (i == 0) { this.AntennaConnected[i] = true; } else { this.AntennaConnected[i] = false; } this.SelectedReceiverSensitivity[i] = -70; this.SelectedReceiverSensitivityIndex[i] = readerCapabilities.ReceiveSensitivityDic[-70]; this.SelectedTransmiterPower[i] = 30; this.SelectedTransmiterPowerIndex[i] = readerCapabilities.TransmiterPowerDic[30]; } }
private static void AddWriteAccessCommand(MSG_ADD_ACCESSSPEC msg, string data) { //define access spec msg.AccessSpec.AccessCommand.AccessCommandOpSpec = new UNION_AccessCommandOpSpec(); PARAM_C1G2Write wr = new PARAM_C1G2Write(); wr.AccessPassword = 0; wr.MB = new TwoBits(1); wr.OpSpecID = 111; wr.WordPointer = 2; //Data to be written. ex: "EEEE11112222333344445555" wr.WriteData = UInt16Array.FromString(data); msg.AccessSpec.AccessCommand.AccessCommandOpSpec.Add(wr); }
public RFIDReaderParameter() { //------Initialize capabilities------ // Predefine mode indentifier and official name by ImpinJ_Octane_LLRP.pdf RFIDReaderParameter.ReaderCapabilities.PreDefinedModeTable = new Dictionary <string, ushort>(); RFIDReaderParameter.ReaderCapabilities.PreDefinedModeTable.Add("Max Throughput", 0); //Not supported on R220 RFIDReaderParameter.ReaderCapabilities.PreDefinedModeTable.Add("Hybrid Mode (M=2)", 1); //Also called High throughput (M=2), Not supported on R220 RFIDReaderParameter.ReaderCapabilities.PreDefinedModeTable.Add("Dense Reader (M=4)", 2); RFIDReaderParameter.ReaderCapabilities.PreDefinedModeTable.Add("Dense Reader (M=8)", 3); RFIDReaderParameter.ReaderCapabilities.PreDefinedModeTable.Add("Max Miller(M=4)", 4); //Also called High throughput (M=4), Not supported by regions that support mode 5.ETSI, China, India, Japan, Korea, and South Africa, Not supported on R220 RFIDReaderParameter.ReaderCapabilities.PreDefinedModeTable.Add("Dense Reader 2 (M=4)", 5); //Faster forward link than mode 2 Only available with regions: ETSI, China, India, Japan, Korea, and South Africa. RFIDReaderParameter.ReaderCapabilities.PreDefinedModeTable.Add("AutoSet", 1000); RFIDReaderParameter.ReaderCapabilities.PreDefinedModeTable.Add("AutoSet Static", 1002); //Not supported on R220 RFIDReaderParameter.ReaderCapabilities.PreDefinedModeTable.Add("AutoSet Static Fast", 1003); //Not supported on R220 RFIDReaderParameter.ReaderCapabilities.PreDefinedModeTable.Add("AutoSet Static DRM", 1004); //Not supported on R220 RFIDReaderParameter.ReaderCapabilities.Sessions = new Dictionary <string, ushort>(); RFIDReaderParameter.ReaderCapabilities.Sessions.Add("Session 0", 1); RFIDReaderParameter.ReaderCapabilities.Sessions.Add("Session 1", 2); RFIDReaderParameter.ReaderCapabilities.Sessions.Add("Session 2", 3); RFIDReaderParameter.ReaderCapabilities.Sessions.Add("Session 3", 4); //------Initialize capabilities------ //------Set Default value------ RFIDReaderParameter.Reset = true; RFIDReaderParameter.IsConnected = false; RFIDReaderParameter.ReadMode = "Maunal"; RFIDReaderParameter.Duration = 90000; RFIDReaderParameter.Mask = String.Empty; RFIDReaderParameter.ExtraMask = String.Empty; //Antenna Configuration RFIDReaderParameter.AntennaConfiguration.Hopping = false; RFIDReaderParameter.AntennaConfiguration.HopTableID = 0; RFIDReaderParameter.AntennaConfiguration.HoppingStep = 0; RFIDReaderParameter.AntennaConfiguration.ChannelIndex = 1; RFIDReaderParameter.AntennaConfiguration.TagInventoryStateAware = false; RFIDReaderParameter.AntennaConfiguration.ModeIndex = 1000; RFIDReaderParameter.AntennaConfiguration.Tari = 0; RFIDReaderParameter.AntennaConfiguration.SelectedSession = "Session 0"; RFIDReaderParameter.AntennaConfiguration.SelectedSessionIndex = 1; RFIDReaderParameter.AntennaConfiguration.TagPopulation = 32; RFIDReaderParameter.AntennaConfiguration.TagTransitTime = 0; RFIDReaderParameter.AntennaConfiguration.SelectedSearchMode = "Dual_Target"; RFIDReaderParameter.AntennaConfiguration.FixedFrequencyMode = "Disabled"; RFIDReaderParameter.AntennaConfiguration.FixedChannelList = UInt16Array.FromString(""); RFIDReaderParameter.AntennaConfiguration.FrequencyHopList = UInt16Array.FromString(""); RFIDReaderParameter.AntennaConfiguration.ReducedPowerFrequencyMode = false; RFIDReaderParameter.AntennaConfiguration.ReducedPowerChannelList = UInt16Array.FromString(string.Empty); RFIDReaderParameter.AntennaConfiguration.LowDutyCycleMode = false; RFIDReaderParameter.AntennaConfiguration.EmptyFieldTimeout = 2000; RFIDReaderParameter.AntennaConfiguration.FieldPingInterval = 250; RFIDReaderParameter.AntennaConfiguration.AntennaID = new ushort[RFIDReaderParameter.AntennaConfiguration.MaxNumberOfAntennaSupported]; RFIDReaderParameter.AntennaConfiguration.AntennaConnected = new bool[RFIDReaderParameter.AntennaConfiguration.MaxNumberOfAntennaSupported]; RFIDReaderParameter.AntennaConfiguration.SelectedReceiverSensitivity = new short[RFIDReaderParameter.AntennaConfiguration.MaxNumberOfAntennaSupported]; RFIDReaderParameter.AntennaConfiguration.SelectedReceiverSensitivityIndex = new ushort[RFIDReaderParameter.AntennaConfiguration.MaxNumberOfAntennaSupported]; RFIDReaderParameter.AntennaConfiguration.SelectedTransmiterPower = new double[RFIDReaderParameter.AntennaConfiguration.MaxNumberOfAntennaSupported]; RFIDReaderParameter.AntennaConfiguration.SelectedTransmiterPowerIndex = new ushort[RFIDReaderParameter.AntennaConfiguration.MaxNumberOfAntennaSupported]; for (int i = 0; i < RFIDReaderParameter.AntennaConfiguration.MaxNumberOfAntennaSupported; i++) { RFIDReaderParameter.AntennaConfiguration.AntennaID[i] = (ushort)(i + 1); if (i == 0) { RFIDReaderParameter.AntennaConfiguration.AntennaConnected[i] = true; } else { RFIDReaderParameter.AntennaConfiguration.AntennaConnected[i] = false; } RFIDReaderParameter.AntennaConfiguration.SelectedReceiverSensitivity[i] = -70; RFIDReaderParameter.AntennaConfiguration.SelectedReceiverSensitivityIndex[i] = RFIDReaderParameter.ReaderCapabilities.ReceiveSensitivityDic[-70]; RFIDReaderParameter.AntennaConfiguration.SelectedTransmiterPower[i] = 30; RFIDReaderParameter.AntennaConfiguration.SelectedTransmiterPowerIndex[i] = RFIDReaderParameter.ReaderCapabilities.TransmiterPowerDic[30]; } RFIDReaderParameter.ROReportSpec.SelectedROReportTrigger = "Upon_N_Tags_Or_End_Of_ROSpec"; RFIDReaderParameter.ROReportSpec.ROReportTriggerN = 1; RFIDReaderParameter.ROReportSpec.EnableROSpecID = false; RFIDReaderParameter.ROReportSpec.EnableSpecIndex = false; RFIDReaderParameter.ROReportSpec.EnableInventoryParameterSPecID = false; RFIDReaderParameter.ROReportSpec.EnableAntennaID = true; RFIDReaderParameter.ROReportSpec.EnableChannelIndex = true; RFIDReaderParameter.ROReportSpec.EnablePeakRSSI = true; RFIDReaderParameter.ROReportSpec.EnableFirstSeenTimestamp = true; RFIDReaderParameter.ROReportSpec.EnableLastSeenTimestamp = false; RFIDReaderParameter.ROReportSpec.EnableTagSeenCount = true; RFIDReaderParameter.ROReportSpec.EnableAccessSpecID = false; RFIDReaderParameter.ROReportSpec.EnableCRC = false; RFIDReaderParameter.ROReportSpec.EnablePCbits = false; RFIDReaderParameter.ROReportSpec.ImpinJEnableSerializedTID = false; RFIDReaderParameter.ROReportSpec.ImpinJEnableRFPhaseAngle = true; RFIDReaderParameter.ROReportSpec.ImpinJEnablePeakRSSI = true; RFIDReaderParameter.ROReportSpec.ImpinJEnableGPSCoordinates = false; RFIDReaderParameter.ROReportSpec.ImpinJEnableOptimizedRead = false; RFIDReaderParameter.ROReportSpec.ImpinJEnableRFDopplerFrequency = true; //------Set Default value------ }
private void ADD_ACCESSSPEC() { MSG_ADD_ACCESSSPEC msg = new MSG_ADD_ACCESSSPEC(); msg.AccessSpec = new PARAM_AccessSpec(); msg.AccessSpec.AccessSpecID = 1001; msg.AccessSpec.AntennaID = 1; msg.AccessSpec.ProtocolID = ENUM_AirProtocols.EPCGlobalClass1Gen2; msg.AccessSpec.CurrentState = ENUM_AccessSpecState.Disabled; msg.AccessSpec.ROSpecID = 123; //define trigger msg.AccessSpec.AccessSpecStopTrigger = new PARAM_AccessSpecStopTrigger(); msg.AccessSpec.AccessSpecStopTrigger.AccessSpecStopTrigger = ENUM_AccessSpecStopTriggerType.Null; msg.AccessSpec.AccessSpecStopTrigger.OperationCountValue = 3; //define access command //define air protocol spec msg.AccessSpec.AccessCommand = new PARAM_AccessCommand(); msg.AccessSpec.AccessCommand.AirProtocolTagSpec = new UNION_AirProtocolTagSpec(); PARAM_C1G2TagSpec tagSpec = new PARAM_C1G2TagSpec(); tagSpec.C1G2TargetTag = new PARAM_C1G2TargetTag[1]; tagSpec.C1G2TargetTag[0] = new PARAM_C1G2TargetTag(); tagSpec.C1G2TargetTag[0].Match = true; //change to "true" if you want to the following parameters take effect. tagSpec.C1G2TargetTag[0].MB = new TwoBits(1); tagSpec.C1G2TargetTag[0].Pointer = 0x20; tagSpec.C1G2TargetTag[0].TagData = LLRPBitArray.FromString("6666"); tagSpec.C1G2TargetTag[0].TagMask = LLRPBitArray.FromBinString("1111111111111111"); msg.AccessSpec.AccessCommand.AirProtocolTagSpec.Add(tagSpec); //define access spec msg.AccessSpec.AccessCommand.AccessCommandOpSpec = new UNION_AccessCommandOpSpec(); PARAM_C1G2Write wr = new PARAM_C1G2Write(); wr.AccessPassword = 0; wr.MB = new TwoBits(1); wr.OpSpecID = 111; wr.WordPointer = 2; //Data to be written. wr.WriteData = UInt16Array.FromString("EEEE11112222333344445555"); msg.AccessSpec.AccessCommand.AccessCommandOpSpec.Add(wr); msg.AccessSpec.AccessReportSpec = new PARAM_AccessReportSpec(); msg.AccessSpec.AccessReportSpec.AccessReportTrigger = ENUM_AccessReportTriggerType.End_Of_AccessSpec; MSG_ADD_ACCESSSPEC_RESPONSE rsp = reader.ADD_ACCESSSPEC(msg, out msg_err, 12000); if (rsp != null) { textBox2.Text = rsp.ToString(); } else if (msg_err != null) { textBox2.Text = msg_err.ToString(); } else { textBox2.Text = "Command time out!"; } }
/// <summary> /// Before starting inventorying, get parameters from ReaderSettingsFrom and Save them in the RFIDReaderParameter /// </summary> /// <returns>if sending successfully, return true; otherwise, return false</returns> public bool SendConfigToRFIDReaderPara() { //------Basic Settings------ RFIDReaderParameter.Reset = cbResetToFactoryDefault.Checked; // Read Mode if (rbtnManualReadMode.Checked) { RFIDReaderParameter.ReadMode = "Manual"; } else { RFIDReaderParameter.ReadMode = "Timer"; if (tbxDuration.Text.Trim() == String.Empty) { MessageBox.Show("Please input duration for timer mode", "Reader Settings Error"); return(false); } else if (Convert.ToUInt32(tbxDuration.Text) == 0) { MessageBox.Show("Duration for timer mode should be larger than 0", "Reader Settings Error"); return(false); } else { RFIDReaderParameter.Duration = Convert.ToUInt32(tbxDuration.Text); } } // Frequency Information RFIDReaderParameter.antennaConfiguration.FixedFrequencyMode = cbFreqMode.Text; if (RFIDReaderParameter.antennaConfiguration.FixedFrequencyMode != "Disabled") { RFIDReaderParameter.antennaConfiguration.Hopping = true; RFIDReaderParameter.antennaConfiguration.HoppingStep = Convert.ToUInt16(nudHop.Value); RFIDReaderParameter.antennaConfiguration.FixedChannelList = new UInt16Array(); UInt16Array channelList = new UInt16Array(); if (clbFreqSet.CheckedIndices.Count < 2) { MessageBox.Show("Must choose at least 2 frequencies", "Reader Settings Error"); return(false); } else { for (int i = 0; i < clbFreqSet.CheckedIndices.Count; i++) { channelList.Add((ushort)(clbFreqSet.CheckedIndices[i] + 1)); } if (RFIDReaderParameter.antennaConfiguration.HoppingStep <= 0) { MessageBox.Show("HoppingStep must be larger than 0", "Reader Settings Error"); return(false); } else if (RFIDReaderParameter.antennaConfiguration.HoppingStep >= channelList.Count) { MessageBox.Show("HoppingStep must be smaller than Chosen List", "Reader Settings Error"); return(false); } else { int len = channelList.Count; RFIDReaderParameter.antennaConfiguration.FixedChannelList.Add(channelList[0]); for (int i = 1; i < len; i++) { int nextIndex = (0 + i * RFIDReaderParameter.antennaConfiguration.HoppingStep) % len; if (nextIndex == 0) { break; } RFIDReaderParameter.antennaConfiguration.FixedChannelList.Add(channelList[nextIndex]); } } } } else { RFIDReaderParameter.antennaConfiguration.Hopping = false; RFIDReaderParameter.antennaConfiguration.HoppingStep = 0; if (clbFreqSet.CheckedIndices.Count < 1) { MessageBox.Show("Please choose one frequency!"); return(false); } else if (clbFreqSet.CheckedIndices.Count > 1) { MessageBox.Show("Can only choose one frequency!"); return(false); } else { RFIDReaderParameter.antennaConfiguration.ChannelIndex = (ushort)(clbFreqSet.CheckedIndices[0] + 1); } } // Tag Filter RFIDReaderParameter.antennaConfiguration.mask = this.includeTextBox.Text; // RFIDReaderParameter.antennaConfiguration.extraMask = this.excludeTextBox.Text; //------Basic Settings------ //------Antenna Settings------ RFIDReaderParameter.antennaConfiguration.TagInventoryStateAware = Convert.ToBoolean(cbTagInventoryStateAware.Text); // C1G2 RF Control RFIDReaderParameter.antennaConfiguration.ModeIndex = RFIDReaderParameter.readerCapabilities.PreDefinedModeTable[cbModeIndex.Text]; if (tbxTari.Text.Trim() == String.Empty) { MessageBox.Show("Please Input Tari!", "Reader Settings Error"); return(false); } else { RFIDReaderParameter.antennaConfiguration.Tari = Convert.ToUInt16(tbxTari.Text); } // C1G2 Singulation Control RFIDReaderParameter.antennaConfiguration.SelectedSession = cbSession.Text; RFIDReaderParameter.antennaConfiguration.SelectedSessionIndex = RFIDReaderParameter.readerCapabilities.Sessions[cbSession.Text]; if (tbxTagPopulation.Text.Trim() == String.Empty) { MessageBox.Show("Please Input Tag Population!", "Reader Settings Error"); return(false); } else { RFIDReaderParameter.antennaConfiguration.TagPopulation = Convert.ToUInt16(tbxTagPopulation.Text); } if (tbxTagTransitTime.Text.Trim() == String.Empty) { MessageBox.Show("Please Input Tag Transit Time!", "Reader Settings Error"); return(false); } else { RFIDReaderParameter.antennaConfiguration.TagTransitTime = Convert.ToUInt16(tbxTagTransitTime.Text); } //ImpinJ RFIDReaderParameter.antennaConfiguration.SelectedSearchMode = cbImpiJSearchMode.Text; RFIDReaderParameter.antennaConfiguration.ReducedPowerFrequencyMode = cbImpinjReducedPowerFrequencyMode.Checked; if (cbImpinjReducedPowerFrequencyMode.Checked) { if (tbxReducedChannelList.Text.Trim() == String.Empty) { MessageBox.Show("Please Input Channel List!"); return(false); } else { string[] strs = tbxReducedChannelList.Text.Trim().Split(','); UInt16Array channels = new UInt16Array(); for (int i = 0; i < strs.Length; i++) { channels.Add(Convert.ToUInt16(strs[i])); } RFIDReaderParameter.antennaConfiguration.ReducedPowerChannelList = channels; } } else { RFIDReaderParameter.antennaConfiguration.ReducedPowerChannelList = UInt16Array.FromString(String.Empty); } RFIDReaderParameter.antennaConfiguration.LowDutyCycleMode = cbImpinjLowDutyCycleMode.Checked; if (cbImpinjLowDutyCycleMode.Checked) { if (tbxEmptyFieldTimeout.Text.Trim() == String.Empty) { MessageBox.Show("Please Input Empty Field Timeout!"); return(false); } else { RFIDReaderParameter.antennaConfiguration.EmptyFieldTimeout = Convert.ToUInt16(tbxEmptyFieldTimeout.Text); } if (tbxFieldPingInterval.Text.Trim() == String.Empty) { MessageBox.Show("Please Input Field Ping Interval!"); return(false); } else { RFIDReaderParameter.antennaConfiguration.FieldPingInterval = Convert.ToUInt16(tbxFieldPingInterval.Text); } } else { RFIDReaderParameter.antennaConfiguration.EmptyFieldTimeout = 0; RFIDReaderParameter.antennaConfiguration.FieldPingInterval = 0; } // Antenna Independent Settings if (!cbAntenna1.Checked && !cbAntenna2.Checked && !cbAntenna3.Checked && !cbAntenna4.Checked) { MessageBox.Show("Please choose at least one Antenna!"); return(false); } else { CheckBox[] checkboxs = new CheckBox[] { cbAntenna1, cbAntenna2, cbAntenna3, cbAntenna4 }; ComboBox[] comboboxReces = new ComboBox[] { cbReceiverSensitivity1, cbReceiverSensitivity2, cbReceiverSensitivity3, cbReceiverSensitivity4 }; ComboBox[] comboboxTrans = new ComboBox[] { cbTransmiterPower1, cbTransmiterPower2, cbTransmiterPower3, cbTransmiterPower4 }; SetAntennaIndependentSettings(checkboxs, comboboxReces, comboboxTrans); } //------Antenna Confiuration------ //-----Reader Operation Report Sepc------- RFIDReaderParameter.rOReportSpec.SelectedROReportTrigger = cbROReportTrigger.Text; RFIDReaderParameter.rOReportSpec.ROReportTriggerN = Convert.ToUInt16(nudN.Value); // Tag Report Content Selector RFIDReaderParameter.rOReportSpec.EnableROSpecID = cbEnableROSpecID.Checked; RFIDReaderParameter.rOReportSpec.EnableSpecIndex = cbEnableSpecIndex.Checked; RFIDReaderParameter.rOReportSpec.EnableInventoryParameterSPecID = cbEnableInventoryParameterSpecID.Checked; RFIDReaderParameter.rOReportSpec.EnableAntennaID = cbEnableAntennaID.Checked; RFIDReaderParameter.rOReportSpec.EnableChannelIndex = cbEnableChannelIndex.Checked; RFIDReaderParameter.rOReportSpec.EnablePeakRSSI = cbEnablePeakRSSI.Checked; RFIDReaderParameter.rOReportSpec.EnableFirstSeenTimestamp = cbEnableFirstSeenTimestamp.Checked; RFIDReaderParameter.rOReportSpec.EnableLastSeenTimestamp = cbEnableLastSeenTimestamp.Checked; RFIDReaderParameter.rOReportSpec.EnableTagSeenCount = cbEnableTagSeenCount.Checked; RFIDReaderParameter.rOReportSpec.EnableAccessSpecID = cbEnableAccessSpecID.Checked; RFIDReaderParameter.rOReportSpec.EnableCRC = cbEnableCRC.Checked; RFIDReaderParameter.rOReportSpec.EnablePCbits = cbEnablePCBits.Checked; // ImpinJ Tag Report Content Selector RFIDReaderParameter.rOReportSpec.ImpinJEnableSerializedTID = cbImpinjEnableSerializedTID.Checked; RFIDReaderParameter.rOReportSpec.ImpinJEnableRFPhaseAngle = cbImpinjEnableRFPhaseAngle.Checked; RFIDReaderParameter.rOReportSpec.ImpinJEnablePeakRSSI = cbImpinjEnablePeakRSSI.Checked; RFIDReaderParameter.rOReportSpec.ImpinJEnableGPSCoordinates = cbImpinjEnableGPSCoordinates.Checked; RFIDReaderParameter.rOReportSpec.ImpinJEnableOptimizedRead = cbImpinjEnableOptimizedRead.Checked; RFIDReaderParameter.rOReportSpec.ImpinJEnableRFDopplerFrequency = cbImpinjEnableRFDopplerFrequency.Checked; //-----Reader Operation Report Sepc------- return(true); }
/// <summary> /// Send Configurations to Mainfrom through RFIDReaderParameter /// </summary> public void SendConfigToMainForm() { //Get parameterd from MoreSettings form //------Antenna Confiuration------ RFIDReaderParameter.AntennaConfiguration.TagInventoryStateAware = Convert.ToBoolean(cbTagInventoryStateAware.Text); RFIDReaderParameter.AntennaConfiguration.ModeIndex = RFIDReaderParameter.ReaderCapabilities.PreDefinedModeTable[cbModeIndex.Text]; RFIDReaderParameter.AntennaConfiguration.Tari = Convert.ToUInt16(tbxTari.Text); RFIDReaderParameter.AntennaConfiguration.SelectedSession = cbSession.Text; RFIDReaderParameter.AntennaConfiguration.SelectedSessionIndex = RFIDReaderParameter.ReaderCapabilities.Sessions[cbSession.Text]; RFIDReaderParameter.AntennaConfiguration.TagPopulation = Convert.ToUInt16(tbxTagPopulation.Text); RFIDReaderParameter.AntennaConfiguration.TagTransitTime = Convert.ToUInt16(tbxTagTransitTime.Text); RFIDReaderParameter.AntennaConfiguration.SelectedSearchMode = cbImpiJSearchMode.Text; RFIDReaderParameter.AntennaConfiguration.ReducedPowerFrequencyMode = cbImpinjReducedPowerFrequencyMode.Checked; if (cbImpinjReducedPowerFrequencyMode.Checked) { string[] strs = tbxReducedChannelList.Text.Trim().Split(','); UInt16Array channels = new UInt16Array(); for (int i = 0; i < strs.Length; i++) { channels.Add(Convert.ToUInt16(strs[i])); } RFIDReaderParameter.AntennaConfiguration.ReducedPowerChannelList = channels; } else { RFIDReaderParameter.AntennaConfiguration.ReducedPowerChannelList = UInt16Array.FromString(String.Empty); } RFIDReaderParameter.AntennaConfiguration.LowDutyCycleMode = cbImpinjLowDutyCycleMode.Checked; if (cbImpinjLowDutyCycleMode.Checked) { RFIDReaderParameter.AntennaConfiguration.EmptyFieldTimeout = Convert.ToUInt16(tbxEmptyFieldTimeout.Text); RFIDReaderParameter.AntennaConfiguration.FieldPingInterval = Convert.ToUInt16(tbxFieldPingInterval.Text); } else { RFIDReaderParameter.AntennaConfiguration.EmptyFieldTimeout = 0; RFIDReaderParameter.AntennaConfiguration.FieldPingInterval = 0; } CheckBox[] checkboxs = new CheckBox[] { cbAntenna1, cbAntenna2, cbAntenna3, cbAntenna4 }; ComboBox[] comboboxReces = new ComboBox[] { cbReceiverSensitivity1, cbReceiverSensitivity2, cbReceiverSensitivity3, cbReceiverSensitivity4 }; ComboBox[] comboboxTrans = new ComboBox[] { cbTransmiterPower1, cbTransmiterPower2, cbTransmiterPower3, cbTransmiterPower4 }; SetAntennaIndependentSettings(checkboxs, comboboxReces, comboboxTrans); //------Antenna Confiuration------ //-----Reader Operation Report Sepc------- RFIDReaderParameter.ROReportSpec.SelectedROReportTrigger = cbROReportTrigger.Text; RFIDReaderParameter.ROReportSpec.ROReportTriggerN = Convert.ToUInt16(nudN.Value); RFIDReaderParameter.ROReportSpec.EnableROSpecID = cbEnableROSpecID.Checked; RFIDReaderParameter.ROReportSpec.EnableSpecIndex = cbEnableSpecIndex.Checked; RFIDReaderParameter.ROReportSpec.EnableInventoryParameterSPecID = cbEnableInventoryParameterSpecID.Checked; RFIDReaderParameter.ROReportSpec.EnableAntennaID = cbEnableAntennaID.Checked; RFIDReaderParameter.ROReportSpec.EnableChannelIndex = cbEnableChannelIndex.Checked; RFIDReaderParameter.ROReportSpec.EnablePeakRSSI = cbEnablePeakRSSI.Checked; RFIDReaderParameter.ROReportSpec.EnableFirstSeenTimestamp = cbEnableFirstSeenTimestamp.Checked; RFIDReaderParameter.ROReportSpec.EnableLastSeenTimestamp = cbEnableLastSeenTimestamp.Checked; RFIDReaderParameter.ROReportSpec.EnableTagSeenCount = cbEnableTagSeenCount.Checked; RFIDReaderParameter.ROReportSpec.EnableAccessSpecID = cbEnableAccessSpecID.Checked; RFIDReaderParameter.ROReportSpec.EnableCRC = cbEnableCRC.Checked; RFIDReaderParameter.ROReportSpec.EnablePCbits = cbEnablePCBits.Checked; RFIDReaderParameter.ROReportSpec.ImpinJEnableSerializedTID = cbImpinjEnableSerializedTID.Checked; RFIDReaderParameter.ROReportSpec.ImpinJEnableRFPhaseAngle = cbImpinjEnableRFPhaseAngle.Checked; RFIDReaderParameter.ROReportSpec.ImpinJEnablePeakRSSI = cbImpinjEnablePeakRSSI.Checked; RFIDReaderParameter.ROReportSpec.ImpinJEnableGPSCoordinates = cbImpinjEnableGPSCoordinates.Checked; RFIDReaderParameter.ROReportSpec.ImpinJEnableOptimizedRead = cbImpinjEnableOptimizedRead.Checked; RFIDReaderParameter.ROReportSpec.ImpinJEnableRFDopplerFrequency = cbImpinjEnableRFDopplerFrequency.Checked; //-----Reader Operation Report Sepc------- }