protected E099TagRWSimEngine(string partID, IValuesInterconnection ivi) : base(partID, initialSettings: SimpleActivePartBaseSettings.DefaultVersion2.Build(partBaseIVI: ivi)) { ActionLoggingConfig = Modular.Action.ActionLoggingConfig.Info_Error_Trace_Trace; // redefine the log levels for actions IVI = ivi ?? Values.Instance; //This part is a simulated primary part PrivateBaseState = new BaseState(true, true) { ConnState = ConnState.NotApplicable }; TagRWSimEngineConfig defaultConfig = new TagRWSimEngineConfig() { ReaderType = ReaderType.TIRIS, Mode = E099TagRWSimEngineMode.IDOnly }; configAccessAdapter = new ConfigValueSetAdapter <TagRWSimEngineConfig>() { ValueSet = defaultConfig, SetupIssueEmitter = Log.Error, UpdateIssueEmitter = Log.Error, ValueNoteEmitter = Log.Debug }.Setup(PartID + "."); configAccessAdapter.UpdateNotificationList.AddItem(threadWakeupNotifier); AddExplicitDisposeAction(() => configAccessAdapter.UpdateNotificationList.RemoveItem(threadWakeupNotifier)); InitializePrivateState(); PublishBaseState("Constructor.Complete"); }
/// <summary> /// Copy constructor. /// </summary> public ScanEnginePartConfig(ScanEnginePartConfig other) { Name = other.Name; IConfig = other.IConfig ?? Config.Instance; IValuesInterconnection fallbackIVI = other.PartBaseIVI ?? other.PlugInsIVI ?? Values.Instance; PartBaseIVI = other.PartBaseIVI ?? fallbackIVI; PlugInsIVI = other.PlugInsIVI ?? fallbackIVI; Installed = other.Installed; NominalRateInHz = other.NominalRateInHz; _pluginsToAddList = other._pluginsToAddList; // no need to clone: it is already readonly. _pluginsToAddSet = other._pluginsToAddSet; }
public override void Setup(string scanEnginePartName, IConfig pluginsIConfig, IValuesInterconnection pluginsIVI) { configAdapter.Setup(pluginsIConfig, "{0}.{1}.".CheckedFormat(scanEnginePartName, Name), scanEnginePartName, Name); inputAdapter.Setup(pluginsIVI, "{0}.".CheckedFormat(Name), scanEnginePartName, Name).Set(); outputAdapter.Setup(pluginsIVI, "{0}.".CheckedFormat(Name), scanEnginePartName, Name).Set(); }
/// <summary>Constructor allows the caller to give the IValuesInterconnection instance to use.</summary> public WPFValueInterconnectAdapter(IValuesInterconnection valuesInterconnectionInstanceToUse, MosaicLib.Logging.IMesgEmitter issueEmitter = null) { IssueEmitter = issueEmitter ?? MosaicLib.Logging.NullMesgEmitter.Instance; ivi = valuesInterconnectionInstanceToUse; }