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; } }
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; } }