Esempio n. 1
0
        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];
            }
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        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------
        }
Esempio n. 4
0
        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!";
            }
        }
Esempio n. 5
0
        /// <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);
        }
Esempio n. 6
0
        /// <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-------
        }