Example #1
0
        private void BuildEdmMap(EdmCapability edmCapability)
        {
            foreach (var definition in edmCapability.AttributeDefinitions)
            {
                _guidUicAttributeMap.Add(definition.Uri, definition);
                if (definition.Id == new Guid("(b68df3f9-4748-4c9d-9bda-567c87fab855)"))
                {
                    _guidUicAttributeMap.Add("Id", definition);
                }
            }

            foreach (var definition in edmCapability.DatapointDefinitions)
            {
                _guidUicDatapointMap.Add(definition.Uri, definition);
                if (definition.Id == new Guid("{83f02bea-c22b-46aa-b1c2-4ab8102d8a80}"))
                {
                    _guidUicDatapointMap.Add("bool_mock", definition);
                }
                else if (definition.Id == new Guid("{4087d40d-d4e2-42b1-89a4-9b9d18499a04}"))
                {
                    _guidUicDatapointMap.Add("int_mock", definition);
                }
                else if (definition.Id == new Guid("{a41fc3af-4f73-42bf-8290-43ed883edd8f}"))
                {
                    _guidUicDatapointMap.Add("double_mock", definition);
                }
                else if (definition.Id == new Guid("{fbd3e390-ffb7-455b-b0dc-695b13329eb6}"))
                {
                    _guidUicDatapointMap.Add("string_mock", definition);
                }
            }
        }
Example #2
0
        public EapiI2cEdm(ILoggerFactory loggerFactory)
        {
            Identifier       = new EapiI2cEdmIdentifier(GetType().FullName);
            _eapiInitializer = new EapiInitializer();
            _i2CDriver       = new I2cDriver(loggerFactory.GetLoggerFor(typeof(I2cDriver)), new EApiStatusCodes());

            _edmCapability = CreateEdmCapability();
        }
Example #3
0
        public void Initialize()
        {
            _eapiInitializer.Init();
            var gpioCapabilities = _gpioDriver.GetGpioCapabilities();

            _edmCapability = CreateEdmCapability();
            Test(gpioCapabilities);
        }
Example #4
0
        public EapiBoardInformationEdmCapabilityProvider(EmbeddedDriverModule edm)
        {
            _edm = edm;
            List <CommandDefinition>   commandDefinitions   = GetCommands();
            List <AttributeDefinition> attribtueDefinitions = GetAttributeDefinitions();
            List <DatapointDefinition> datapointDefinitions = GetDatapointDefinitions();

            EdmCapability = new EapiBoardInformationEdmCapability(_edm.Identifier, commandDefinitions.ToArray(), attribtueDefinitions.ToArray(), datapointDefinitions.ToArray());
        }
Example #5
0
        public Vcnl4010Edm(ILoggerFactory loggerFactory)
        {
            _loggerFactory = loggerFactory;
            Identifier     = new Vcnl4010Identifier();
            _edmCapability = CreateEdmCapability();


            _edmCapability = CreateEdmCapability();
        }
Example #6
0
        public RebootEdm(ILoggerFactory loggerFactory)
        {
            _logger = loggerFactory.GetLoggerFor(GetType());

            Identifier      = new RebootEdmIdentifier(GetType().FullName);
            _rebootCommnand = new SgetCommandDefinition(new Guid("{f54b990d-25f5-430d-8428-44ab74ed8509}"), UicUriBuilder.CommandFrom(this, "reboot"), "Reboot System", "reboot", UicDataType.String, "Reboots the system", null, null);
            CommandDefinition[] commandDefinitios =
            {
                _rebootCommnand
            };
            AttributeDefinition[] attribtueDefinitions = new AttributeDefinition[0];
            DatapointDefinition[] datapointDefinitions = new DatapointDefinition[0];
            _edmCapability = new RebootEdmEdmCapability(Identifier, commandDefinitios, attribtueDefinitions, datapointDefinitions);
        }
Example #7
0
        private void BuildEdmMap(EmbeddedDriverModule edm, EdmCapability edmCapability)
        {
            foreach (var definition in edmCapability.AttributeDefinitions)
            {
                _definitionEdmMap.Add(definition.Id, edm);
            }

            foreach (var definition in edmCapability.DatapointDefinitions)
            {
                _definitionEdmMap.Add(definition.Id, edm);
            }

            foreach (var definition in edmCapability.CommandDefinitions)
            {
                _definitionEdmMap.Add(definition.Id, edm);
            }
        }
Example #8
0
        public SgetEmbeddedDriverModuleAppliance Translate(EdmCapability edmCapability)
        {
            var cloudMapperIdentifier    = new CloudMapperIdentifier(new Guid("9D368ED2-075F-4348-831E-D2CEA97E881A"), "SgetUicProjectTranlator");
            var embeddedModuleIdentifier = new EmbeddedModuleIdentifier(edmCapability.Identifier.Id, edmCapability.Identifier.Uri);
            var interfaceIdentifier      = new EmbeddedHwInterfaceIdentifier(embeddedModuleIdentifier.Id, embeddedModuleIdentifier.Name);

            var attributes = Translate(edmCapability.AttributeDefinitions, interfaceIdentifier);
            var dataPoints = Translate(edmCapability.DatapointDefinitions, interfaceIdentifier);
            var commands   = Translate(edmCapability.CommandDefinitions, interfaceIdentifier, dataPoints);
            var embeddedModuleHwInterfaceCapability = new EmbeddedModuleHwInterfaceCapability(interfaceIdentifier, attributes, dataPoints, commands);
            var interfaces = new List <EmbeddedModuleHwInterfaceCapability> {
                embeddedModuleHwInterfaceCapability
            };

            var embeddedDriverModulCapabilitiy = new EmbeddedDriverModulCapabilitiy(embeddedModuleIdentifier, interfaces);

            return(new SgetEmbeddedDriverModuleAppliance(cloudMapperIdentifier, new [] { embeddedDriverModulCapabilitiy }));
        }
Example #9
0
        public void Initialize(EmbeddedDriverModule[] embeddedDriverModules)
        {
            _initializedEDMs = new List <EmbeddedDriverModule>();
            _logger.Information("Initialize");
            foreach (EmbeddedDriverModule edm in embeddedDriverModules)
            {
                try
                {
                    edm.Initialize();
                    EdmCapability edmCapability = edm.GetCapability();
                    BuildEdmMap(edm, edmCapability);
                    _initializedEDMs.Add(edm);
                }
                catch (Exception e)
                {
                    _logger.Error(e, $"Initializating of EDM {edm.Identifier.Uri} failed");
                }
            }

            _projectAgent.Initialize(_initializedEDMs.ToArray());

            if (_uicConfiguartion.IsEdmSnychronizationEnabled)
            {
                foreach (EmbeddedDriverModule edm in _initializedEDMs)
                {
                    _projectAgent.Synchronize(edm.GetCapability());
                }
            }



            UicProject project = LoadUicProject();

            SerialId = GernerateApplianceSerialKey(project);

            _communicationAgent.Initialize(SerialId, project, _initializedEDMs);
            _communicationAgent.Connect(CloudAgentCommandHandler);

            PushAttributeValues(project);

            StartDatapointMonitoring(project);
        }
Example #10
0
 private void BuildEdmMap(EdmCapability edmCapability)
 {
     foreach (var command in edmCapability.CommandDefinitions)
     {
         _guidUicCommandMap.Add(command.Id, command);
         if (command.RelatedDatapoint != null)
         {
             List <CommandDefinition> commandList;
             if (_guidUicSensorCommandMap.TryGetValue(command.RelatedDatapoint.Id, out commandList))
             {
                 commandList.Add(command);
             }
             else
             {
                 _guidUicSensorCommandMap.Add(command.RelatedDatapoint.Id, new List <CommandDefinition> {
                     command
                 });
             }
         }
     }
 }
Example #11
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));
            }
        }
Example #12
0
        public void Synchronize(EdmCapability edmCapability)
        {
            SgetEmbeddedDriverModuleAppliance appliance = _projectTranslator.Translate(edmCapability);

            _projectCloudWebApiWrapper.SynchronizeEmbeddedModuleFunctions(_configuration, appliance);
        }
Example #13
0
 public void Synchronize(EdmCapability edmCapability)
 {
 }
Example #14
0
 public EDMWrapper(UIC.Framework.Interfaces.Edm.EmbeddedDriverModule element)
 {
     identifier = element.Identifier;
     capability = element.GetCapability();
 }