protected override void PerformMainLoopService() { base.PerformMainLoopService(); if (configAccessAdapter.IsUpdateNeeded) { configAccessAdapter.Update(); privateState.Config.IDSize = configAccessAdapter.ValueSet.IDSize; privateState.Config.IDStartOffset = configAccessAdapter.ValueSet.IDStartOffset; privateState.Config.Mode = configAccessAdapter.ValueSet.Mode; privateState.UpdateCounterPostfix(); PublishPrivateState(); } if (counterIsEnabledIVA.IsUpdateNeeded || tagIsPresentIVA.IsUpdateNeeded) { privateState.CounterIsEnabled = counterIsEnabledIVA.Update().VC.GetValue <bool>(false); privateState.TagIsPresent = tagIsPresentIVA.Update().VC.GetValue <bool>(false); PublishPrivateState(); } if (isOnlineIVA.IsUpdateNeeded) { if (isOnlineIVA.Update().VC.GetValue <bool>(false)) { PerformGoOnlineAction(false); } else { PerformGoOfflineAction(); } } }
private void InitializePrivateState() { privateState = new TagRWSimEngineState() { Config = new TagRWSimEngineConfig(CurrentConfig), ContentByteArray = (byte[])CurrentConfig.InitialPageContentsByteArray.Clone(), Count = CurrentConfig.InitialCounterValue, TagIsPresent = true, }; stateIVA = IVI.GetValueAccessor("{0}.State".CheckedFormat(PartID)); tagIsPresentIVA = IVI.GetValueAccessor("{0}.TagIsPresent".CheckedFormat(PartID)).Set(privateState.TagIsPresent); counterIsEnabledIVA = IVI.GetValueAccessor("{0}.CounterIsEnabled".CheckedFormat(PartID)).Set(true); isOnlineIVA = IVI.GetValueAccessor("{0}.IsOnline".CheckedFormat(PartID)).Set(true); privateState.UpdateCounterPostfix(); PublishPrivateState(); }