public UicProject LoadProject(UicConfiguartion uicConfiguartion) { var sgetProject = _projectCloudWebApiWrapper.LoadProjectConfiguration(_configuration, uicConfiguartion.ProjectKey); var uicproject = _projectTranslator.Translate(sgetProject); return(uicproject); }
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); }
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()); }
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(); }
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)); } }