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");
        }
Example #2
0
        /// <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;
        }
Example #3
0
 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();
 }
Example #4
0
        /// <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;
        }