Exemplo n.º 1
0
        protected override string PerformGoOnlineAction(bool andInitialize)
        {
            if (andInitialize)
            {
                InitializePrivateState();
            }

            SetBaseState(UseState.Online, "Has been set online" + (andInitialize ? " and Initialized" : ""), true);
            isOnlineIVA.Set(true);

            return(String.Empty);
        }
Exemplo n.º 2
0
        protected void PublishPrivateState()
        {
            ITagRWSimEngineState pubObj = new TagRWSimEngineState(privateState) as ITagRWSimEngineState;

            stateIVA.Set(pubObj);
            publicStateNotifier.Object = pubObj;
        }
Exemplo n.º 3
0
        void ServiceResetActivity()
        {
            using (var eeLog = new Logging.EnterExitTrace(Log))
            {
                // clear the enable auto load and enable auto unload values

                if (enableAutoLoadIVA.Update().VC.GetValue <bool>(false))
                {
                    enableAutoLoadIVA.Set(false);
                }

                if (enableAutoUnloadIVA.Update().VC.GetValue <bool>(false))
                {
                    enableAutoUnloadIVA.Set(false);
                }

                IValueAccessor a2pPinsStateIVA = SelectedActiveToPassivePinsStateIVA;
                IValueAccessor p2aPinsStateIVA = SelectedPassiveToActivePinsStateIVA;

                IActiveToPassivePinsState a2pPinsState = new ActiveToPassivePinsState(a2pPinsStateIVA.Update().VC);
                IPassiveToActivePinsState p2aPinsState = new PassiveToActivePinsState(p2aPinsStateIVA.Update().VC);

                if (!a2pPinsState.IsIdle)
                {
                    lastSetA2PPins           = new ActiveToPassivePinsState();
                    lastSetA2PPins.IFaceName = PartID;
                    lastSetA2PPins.XferILock = true;
                    a2pPinsStateIVA.Set(lastSetA2PPins as IActiveToPassivePinsState);
                }

                if (config.GetConfigKeyAccessOnce("E84Sim.ResetForcesESandHO").GetValue <bool>(false) && !p2aPinsState.IsSelectable)
                {
                    p2aPinsStateIVA.Set(new PassiveToActivePinsState(p2aPinsState)
                    {
                        ES = true, HO_AVBL = true
                    } as IPassiveToActivePinsState);
                }

                Spin(TimeSpan.FromSeconds(0.5));

                a2pPinsState = new ActiveToPassivePinsState(a2pPinsStateIVA.Update().VC);
                p2aPinsState = new PassiveToActivePinsState(p2aPinsStateIVA.Update().VC);

                if (!p2aPinsState.IsSelectable)
                {
                    SetCurrentActivity(ActivitySelect.WaitForPinsReady, Utils.Fcns.CheckedFormat("Reset complete with E84 P->A pins not selectable [{0}]", p2aPinsState));
                }
                else if (!a2pPinsState.IsIdle)
                {
                    SetCurrentActivity(ActivitySelect.WaitForPinsReady, Utils.Fcns.CheckedFormat("Reset complete with E84 A->P pins not idle [{0}]", a2pPinsState));
                }
                else
                {
                    SetCurrentActivity(ActivitySelect.Ready, "Reset complete and Ready for select");
                }
            }
        }
Exemplo n.º 4
0
        public void SetValue(object target, object value, object[] indexes)
        {
            if (indexes != null && indexes.Length > 0)
            {
                throw new NotSupportedException();
            }

            if (_accessor == null)
            {
                Init();
            }

            _accessor.Set(target, value);
        }
Exemplo n.º 5
0
        private SyncItem AddSyncItemAndPerformInitialPropagation(IValueAccessor iva, IConfigKeyAccess cka, string ivaLookupName, string ivaFromCkaMappedName, string ckaFromIvaMappedName, string ckaLookupKeyName)
        {
            SyncItem syncItem = new SyncItem()
            {
                iva = iva, icka = cka, ivaLookupName = ivaLookupName, ivaFromCkaMappedName = ivaFromCkaMappedName, ckaFromIvaMappedName = ckaFromIvaMappedName, ckaLookupKeyName = ckaLookupKeyName
            };

            syncItemList.Add(syncItem);
            syncItemArray = null;
            ivaArray      = null;

            // add syncItem to both maps using both original names and found names, in case target is using name mapping and has applied it to this name.
            ivaNameToSyncItemDictionary[ivaLookupName]          = syncItem;
            ivaNameToSyncItemDictionary[iva.Name]               = syncItem;
            configKeyNameToSyncItemDictionary[ckaLookupKeyName] = syncItem;
            configKeyNameToSyncItemDictionary[cka.Key]          = syncItem;

            ivaArray = null;

            if (cka.HasValue)
            {
                ValueContainer vc = cka.VC;
                if (!iva.VC.IsEqualTo(vc))
                {
                    ValueTraceEmitter.Emit("Propagating initial cka '{0}' to iva '{1}'", cka, iva);
                    iva.Set(vc);
                }
                else
                {
                    ValueTraceEmitter.Emit("Initial cka '{0}' matches initial iva '{1}'", cka, iva);
                }
            }
            else if (iva.HasValueBeenSet)
            {
                ValueContainer vc = iva.VC;
                ValueTraceEmitter.Emit("Propagating initial iva '{0}' to cka '{1}'", iva, cka);
                cka.SetValue(vc, "{0}: Propagating initial value from iva '{1}'".CheckedFormat(PartID, iva));
            }

            syncItem.UpdateCopyInSet(ReferenceSet);

            return(syncItem);
        }
Exemplo n.º 6
0
        protected override string PerformGoOfflineAction()
        {
            SetBaseState(UseState.Offline, "GoOffline Action has been performed", true);

            SetCurrentActivity(ActivitySelect.Offline, "Performing GoOffline Action");

            nextActivitySelect       = ActivitySelect.None;
            lastSetA2PPins           = new ActiveToPassivePinsState();
            lastSetA2PPins.IFaceName = PartID;
            lastSetA2PPins.XferILock = true;
            ohtActiveToPassivePinsStateIVA.Set(lastSetA2PPins as IActiveToPassivePinsState);
            agvActiveToPassivePinsStateIVA.Set(lastSetA2PPins as IActiveToPassivePinsState);

            privateState = new E084ActiveTransferSimEngineState()
            {
                StateStr = "Offline"
            };

            PublishPrivateState();

            return(String.Empty);
        }
Exemplo n.º 7
0
        private SyncItem AddSyncItemAndPerformInitialPropagation(IValueAccessor iva1, IValueAccessor iva2, string iva1LookupName, string iva1FromIVA2MappedName, string iva2FromIVA1MappedName, string iva2LookupName)
        {
            SyncItem syncItem = new SyncItem()
            {
                iva1 = iva1, iva2 = iva2, iva1LookupName = iva1LookupName, iva1FromIVA2MappedName = iva1FromIVA2MappedName, iva2FromIVA1MappedName = iva2FromIVA1MappedName, iva2LookupName = iva2LookupName
            };

            syncItemList.Add(syncItem);
            syncItemArray   = null;
            iva1Array       = null;
            iva1ArrayLength = 0;

            // add syncItem to both maps using both original names and found names, in case target is using name mapping and has applied it to this name.
            iva1NameToSyncItemDictionary[iva1LookupName] = syncItem;
            iva1NameToSyncItemDictionary[iva1.Name]      = syncItem;
            iva2NameToSyncItemDictionary[iva2LookupName] = syncItem;
            iva2NameToSyncItemDictionary[iva2.Name]      = syncItem;

            iva1Array       = null;
            iva2Array       = null;
            iva1ArrayLength = 0;
            iva2ArrayLength = 0;

            if (iva1.HasValueBeenSet)
            {
                ValueContainer vc = iva1.VC;
                ValueTraceEmitter.Emit("Propagating initial iva1 '{0}' to iva2 '{1}'", iva1, iva2);
                iva2.Set(vc);
            }
            else if (iva2.HasValueBeenSet)
            {
                ValueContainer vc = iva2.VC;
                ValueTraceEmitter.Emit("Propagating initial iva2 '{0}' to iva1 '{1}'", iva2, iva1);
                iva1.Set(vc);
            }

            return(syncItem);
        }
Exemplo n.º 8
0
 protected void PublishPrivateState()
 {
     publicStateNotifier.Object = privateState;
     statePublisherIVA.Set(privateState);
 }