예제 #1
0
        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();
                }
            }
        }
예제 #2
0
        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();
        }