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); }
protected void PublishPrivateState() { ITagRWSimEngineState pubObj = new TagRWSimEngineState(privateState) as ITagRWSimEngineState; stateIVA.Set(pubObj); publicStateNotifier.Object = pubObj; }
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"); } } }
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); }
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); }
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); }
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); }
protected void PublishPrivateState() { publicStateNotifier.Object = privateState; statePublisherIVA.Set(privateState); }