示例#1
0
        public UicProject LoadProject(UicConfiguartion uicConfiguartion)
        {
            var sgetProject = _projectCloudWebApiWrapper.LoadProjectConfiguration(_configuration, uicConfiguartion.ProjectKey);
            var uicproject  = _projectTranslator.Translate(sgetProject);

            return(uicproject);
        }
示例#2
0
        public UicProject LoadProject(UicConfiguartion uicConfiguartion)
        {
            _logger.Information("LoadProjectConfiguration for " + uicConfiguartion.ProjectKey);
            string         url     = String.Format("{0}/project-{1}.json", _configuration.AzureStorageConnectionString, uicConfiguartion.ProjectKey);
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);

            request.Method = "GET";
            string rawData     = ExecuteRequest(request, string.Empty, _logger);
            var    sgetProject = _serializer.Deserialize <SgetUicProject>(rawData);

            return(sgetProject);
        }
示例#3
0
        public SgetUniversalIotConnector(
            UicConfiguartion uicConfiguartion,
            CommunicationAgent communicationAgent,
            ProjectAgent projectAgent,
            ISerializer serializer,
            ILoggerFactory loggerFactory)
        {
            _uicConfiguartion   = uicConfiguartion;
            _communicationAgent = communicationAgent;
            _projectAgent       = projectAgent;
            _serializer         = serializer;
            _loggerFactory      = loggerFactory;

            _logger = _loggerFactory.GetLoggerFor(GetType());
        }
示例#4
0
        static void Main()
        {
            UniversalIotConnector uic = null;

            try {
                ILoggerFactory loggerFactory = new NlogLoggerFactory();
                _logger = loggerFactory.GetLoggerFor(typeof(Launcher));
                _logger.Information("Let's go");

                ISerializer serializer = new UicSerializer();

                UicConfiguartion            uicConfiguartion      = GetConfiguration(serializer);
                List <EmbeddedDriverModule> embeddedDriverModules = GetEdms(loggerFactory);
                CommunicationAgent          communicationAgent    = new HAWCommunicationAgent(serializer, loggerFactory);
                _logger.Information("Used HAW Communication Agent");


                ProjectAgent projectAgent = new M2mgoProjectAgent(serializer, loggerFactory);


                uic = new SgetUniversalIotConnector(uicConfiguartion, communicationAgent, projectAgent, serializer, loggerFactory);

                uic.Initialize(embeddedDriverModules.ToArray());

                _logger.Information("Enter to Dispose ....");
                Console.ReadLine();
            }
            catch (Exception e) {
                _logger.Error(e);
            }
            finally
            {
                if (uic != null)
                {
                    _logger.Information("Dipose uic ");
                    try {
                        uic.Dispose();
                    } catch (Exception e) {
                        _logger.Error(e);
                    }
                }
            }

            _logger.Information("Enter to end ....");
            Console.ReadLine();
        }
示例#5
0
        public void Startup()
        {
            _uicConfiguartion = uicConfiguartionProvider.GetUicConfiguartion();

            string serialId = "extract serial Id of the embedded device as asset identifier for the cloud applicaiton";

            foreach (EmbeddedDriverModule edm in _uicConfiguartion.EmbeddedDriverModulesToLoad)
            {
                edm.Initialize();
            }

            if (_uicConfiguartion.IsEdmSnychronizationEnabled)
            {
                foreach (EmbeddedDriverModule edm in _uicConfiguartion.EmbeddedDriverModulesToLoad)
                {
                    EdmCapability edmCapability = edm.GetCapability();
                    // Synchronize edm with edm and project cloud
                }
            }

            UicProject project = null;

            if (_uicConfiguartion.IsRemoteProjectLoadingEnabled)
            {
                //Url EdmSnychronizationUrl { get; }
                //Url RemoteProjectConfigurationUrl();

                //var projectConfigurationUrl = _uicConfiguartion.RemoteProjectConfigurationUrl();
                //project = LoadProjectFromRemote(projectConfigurationUrl);
            }
            else
            {
                var serializedProjectFilepath = _uicConfiguartion.AbsoluteProjectConfigurationFilePath;
                project = LoadProjectFromFile(serializedProjectFilepath);
            }

            _communicationAgent.Synchronize(serialId, project);
            _communicationAgent.Connect(CloudAgentCommandHandler);

            // read and publish
            foreach (var attribtueDefinition in project.Attributes)
            {
                EmbeddedDriverModule edm          = GetEdmFor(attribtueDefinition);
                AttributeValue       attibutValue = edm.GetValueFor(attribtueDefinition);
                _communicationAgent.Push(attibutValue);

                //Set Asynchronous EDM Calbbacks if necessary
                edm.SetAttributeCallback(attribtueDefinition, attributeValue => _communicationAgent.Push(attributeValue));
            }

            foreach (ProjectDatapointTask datapointTask in project.DatapointTasks)
            {
                EmbeddedDriverModule edm = GetEdmFor(datapointTask.Definition);

                //start Monitoring the DatapointTasks from the project
                StartDatapointMonitoring(datapointTask.Definition, datapointTask.PollIntervall,
                                         datapointTask.ReportingCondition, edm);

                //Set Asynchronous EDM Calbbacks if necessary
                edm.SetDatapointCallback(datapointTask, datapointValue => _communicationAgent.Push(datapointValue));
            }
        }