Exemplo n.º 1
0
        public override void Initialize(Dictionary <string, object> settings)
        {
            string pluginNamespace = GetContainerNamespace();
            //load types specific to this host into TypeContainer
            TagConfigDatabase tagConfigDatabase = TagConfigDatabase.Instance;

            tagConfigDatabase.Load(ConfigUtility.ReadFile(settings.GetValueOrNull("OpcTagConfigFile") as string));
            TagStateManager tagStateManager = new TagStateManager(tagConfigDatabase);

            settings["TagStateManager"]   = tagStateManager;
            settings["TagConfigDatabase"] = tagConfigDatabase;

            //configure receiver
            TypeContainer            tc           = TypeContainer.Instance;
            IProcessor               opcReceiver  = tc.GetInstance <IReceiver>(pluginNamespace) as IProcessor;
            IConverter <object, Tag> opcConverter = tc.GetInstance <IConverter <object, Tag> >(pluginNamespace);

            settings["Logger"]          = tc.GetInstance <ILogger>();
            settings["OpcTagConverter"] = opcConverter;
            if (opcReceiver != null)
            {
                this.AddReceiver("OpcReceiver", opcReceiver);
            }

            //configure IotHub Sender: need "IotHubConfigFile", "TagStateManager", "TagToIotHubMessageConverter" in settings
            settings["TagToIotHubMessageConverter"] = tc.GetInstance <IConverter <Tag, object> >(pluginNamespace);
            IProcessor iotHubSender = tc.GetInstance <ISender>(pluginNamespace) as IProcessor;

            if (iotHubSender != null)
            {
                this.AddSender("IotHubSender", iotHubSender);
            }

            base.Initialize(settings);
        }