コード例 #1
0
        private void TagSelectedDYNQ()
        {
            try
            {
                _tagSelectedParms = (Structures.TagSelectedParms)m_rdr_opt_parms.TagSelected.Clone();

                UInt32 value = 0;

                MacReadRegister(MACREGISTER.HST_TAGACC_DESC_CFG, ref value);
                value |= 0x0001U; // Enable Verify after write
                MacWriteRegister(MACREGISTER.HST_TAGACC_DESC_CFG, value);

                MacReadRegister(MACREGISTER.HST_QUERY_CFG, ref value);
                value &= ~0x0200U; // Enable Ucode Parallel encoding
                MacWriteRegister(MACREGISTER.HST_QUERY_CFG, value);

                SetOperationMode(CSLibrary.Constants.RadioOperationMode.NONCONTINUOUS);
                SetTagGroup(CSLibrary.Constants.Selected.ASSERTED, CSLibrary.Constants.Session.S0, CSLibrary.Constants.SessionTarget.A);
                {
                    CSLibrary.Structures.DynamicQParms param = new CSLibrary.Structures.DynamicQParms();

                    param.startQValue  = m_rdr_opt_parms.TagSelected.Qvalue;
                    param.toggleTarget = (uint)((m_rdr_opt_parms.TagSelected.flags & CSLibrary.Constants.SelectMaskFlags.ENABLE_TOGGLE) == CSLibrary.Constants.SelectMaskFlags.ENABLE_TOGGLE ? 1 : 0);
                    param.retryCount   = 0x05;

                    SetSingulationAlgorithmParms(CSLibrary.Constants.SingulationAlgorithm.DYNAMICQ, param);
                }

                CSLibrary.Structures.SelectCriterion[] sel = new CSLibrary.Structures.SelectCriterion[1];
                sel[0]        = new CSLibrary.Structures.SelectCriterion();
                sel[0].action = new CSLibrary.Structures.SelectAction(CSLibrary.Constants.Target.SELECTED,
                                                                      (m_rdr_opt_parms.TagSelected.flags & CSLibrary.Constants.SelectMaskFlags.ENABLE_NON_MATCH) == CSLibrary.Constants.SelectMaskFlags.ENABLE_NON_MATCH ?
                                                                      CSLibrary.Constants.Action.DSLINVB_ASLINVA : CSLibrary.Constants.Action.ASLINVA_DSLINVB, 0);


                if (m_rdr_opt_parms.TagSelected.bank == CSLibrary.Constants.MemoryBank.EPC)
                {
                    sel[0].mask = new CSLibrary.Structures.SelectMask(
                        m_rdr_opt_parms.TagSelected.bank,
                        (uint)((m_rdr_opt_parms.TagSelected.flags & CSLibrary.Constants.SelectMaskFlags.ENABLE_PC_MASK) == CSLibrary.Constants.SelectMaskFlags.ENABLE_PC_MASK ? 16 : 32 + m_rdr_opt_parms.TagSelected.epcMaskOffset),
                        m_rdr_opt_parms.TagSelected.epcMaskLength,
                        m_rdr_opt_parms.TagSelected.epcMask.ToBytes());
                }
                else
                {
                    sel[0].mask = new CSLibrary.Structures.SelectMask(
                        m_rdr_opt_parms.TagSelected.bank,
                        m_rdr_opt_parms.TagSelected.MaskOffset,
                        m_rdr_opt_parms.TagSelected.MaskLength,
                        m_rdr_opt_parms.TagSelected.Mask);
                }
                if ((m_Result = SetSelectCriteria(sel)) != CSLibrary.Constants.Result.OK)
                {
                    //goto EXIT;
                }
            }
            catch (System.Exception ex)
            {
#if DEBUG
                //CSLibrary.Diagnostics.CoreDebug.Logger.ErrorException("HighLevelInterface.TagSelected()", ex);
#endif
                m_Result = CSLibrary.Constants.Result.SYSTEM_CATCH_EXCEPTION;
            }
        }
コード例 #2
0
        public CONFIG()
        {
            int port = 16;

            RFID_TagPopulation = 30;
            RFID_TagDelayTime  = 0;

            RFID_AntennaEnable = new bool[port];
            RFID_Antenna_Power = new uint[port];
            RFID_Antenna_Dwell = new uint[port];
            for (uint cnt = 0; cnt < port; cnt++)
            {
                RFID_Antenna_Power[cnt] = 300;

                if (cnt == 0)
                {
                    RFID_AntennaEnable[0] = true;
                    if (port == 1)
                    {
                        RFID_Antenna_Dwell[0] = 0;
                    }
                    else
                    {
                        RFID_Antenna_Dwell[0] = 2000;
                    }
                }
                else
                {
                    RFID_AntennaEnable[cnt] = false;
                    RFID_Antenna_Dwell[cnt] = 2000;
                }
            }

            RFID_OperationMode = CSLibrary.Constants.RadioOperationMode.CONTINUOUS;
            RFID_TagGroup      = new CSLibrary.Structures.TagGroup(CSLibrary.Constants.Selected.ALL, CSLibrary.Constants.Session.S0, CSLibrary.Constants.SessionTarget.A);
            RFID_Algorithm     = CSLibrary.Constants.SingulationAlgorithm.DYNAMICQ;
            RFID_Profile       = 1;

            RFID_DynamicQParms                     = new CSLibrary.Structures.DynamicQParms();
            RFID_DynamicQParms.minQValue           = 0;
            RFID_DynamicQParms.startQValue         = 6;
            RFID_DynamicQParms.maxQValue           = 15;
            RFID_DynamicQParms.toggleTarget        = 1;
            RFID_DynamicQParms.thresholdMultiplier = 4;
            RFID_DynamicQParms.retryCount          = 0;

            RFID_FixedQParms                   = new CSLibrary.Structures.FixedQParms();
            RFID_FixedQParms.qValue            = 6;
            RFID_FixedQParms.retryCount        = 0;
            RFID_FixedQParms.toggleTarget      = 1;
            RFID_FixedQParms.repeatUntilNoTags = 0;

            RFID_MBI_MultiBank1Enable = false;
            RFID_MBI_MultiBank2Enable = false;
            RFID_MBI_MultiBank1       = CSLibrary.Constants.MemoryBank.TID;
            RFID_MBI_MultiBank1Offset = 0;
            RFID_MBI_MultiBank1Count  = 2;
            RFID_MBI_MultiBank2       = CSLibrary.Constants.MemoryBank.USER;
            RFID_MBI_MultiBank2Offset = 0;
            RFID_MBI_MultiBank2Count  = 2;

            RFID_InventoryAlertSound = true;
            RFID_QOverride           = false;
            RFID_DBm = true;

            RFID_SavetoFile    = false;
            RFID_SavetoCloud   = true;
            RFID_CloudProtocol = 0;
            RFID_IPAddress     = "";

            RFID_Vibration       = false;
            RFID_VibrationTag    = false;  // false = New, true = All
            RFID_VibrationWindow = 2;      // 2 seconds
            RFID_VibrationTime   = 300;    // 500 ms

            RFID_BatteryPollingTime = 300; // 300s


            for (int cnt = 0; cnt < RFID_Shortcut.Length; cnt++)
            {
                MAINMENUSHORTCUT item = new MAINMENUSHORTCUT();

                switch (cnt)
                {
                case 0:
                    item.Function    = MAINMENUSHORTCUT.FUNCTION.INVENTORY;
                    item.DurationMin = 0;
                    item.DurationMax = 500;
                    break;

                case 1:
                    item.Function    = MAINMENUSHORTCUT.FUNCTION.BARCODE;
                    item.DurationMin = 500;
                    item.DurationMax = 10000;
                    break;
                }

                RFID_Shortcut[cnt] = item;
            }
        }