public void Initialize(string serialId, UicProject project, List <EmbeddedDriverModule> edms)
        {
            WebApiRequestExecutor       webApiRequestExecutor  = new WebApiRequestExecutor();
            M2mgoUserTokenWebApiWrapper userTokenWebApiWrapper = new M2mgoUserTokenWebApiWrapper(_serializer, webApiRequestExecutor, _loggerFactory.GetLoggerFor(typeof(M2mgoUserTokenWebApiWrapper)));
            var m2MgoGatewayProjectWebApiWrapper     = new M2mgoGatewayProjectWebApiWrapper(_serializer, _loggerFactory, webApiRequestExecutor, userTokenWebApiWrapper);
            M2MgoProjectTranslator projectTranslator = new M2MgoProjectTranslator();
            var gatewayService = new GatewayService(m2MgoGatewayProjectWebApiWrapper, _loggerFactory.GetLoggerFor(typeof(GatewayService)), _serializer, projectTranslator);

            M2mgoGetwayProjectDto gatewayProject = gatewayService.RegisterProject(_configuration, serialId, project);

            M2mgoDeviceWebApiWrapper        apiWrapper          = new M2mgoDeviceWebApiWrapper(_serializer, webApiRequestExecutor, _loggerFactory.GetLoggerFor(typeof(M2mgoDeviceWebApiWrapper)), userTokenWebApiWrapper);
            M2mgoGatewayBlueprintTranslator blueprintTranslator = new M2mgoGatewayBlueprintTranslator(projectTranslator);

            _m2MgoProjectBlueprintTranslator = new M2MgoProjectBlueprintTranslator(project, edms);
            var blueprintService = new BlueprintService(apiWrapper, _loggerFactory.GetLoggerFor(typeof(BlueprintService)), blueprintTranslator, _m2MgoProjectBlueprintTranslator, projectTranslator, m2MgoGatewayProjectWebApiWrapper);

            _applianceBlueprints = blueprintService.SynchronizeWithCloud(_configuration, serialId, project, gatewayProject);

            _projectDataTopic      = new DataTopic(_applianceBlueprints.ProjectBlueprint.Identifier.ID, serialId);
            _projectAttributeTopic = new AttributeTopic(_applianceBlueprints.ProjectBlueprint.Identifier.ID, serialId);
            _gatewayDataTopic      = new DataTopic(_applianceBlueprints.GatewayBlueprint.Identifier.ID, serialId);
        }
Exemplo n.º 2
0
        internal void Connect(M2mgoMqttParams param, M2MgoProjectBlueprintTranslator m2MgoProjectBlueprintTranslator, Action <Command> handler)
        {
            if (param == null)
            {
                throw new ArgumentNullException(nameof(param));
            }
            if (m2MgoProjectBlueprintTranslator == null)
            {
                throw new ArgumentNullException(nameof(m2MgoProjectBlueprintTranslator));
            }
            _m2MgoProjectBlueprintTranslator = m2MgoProjectBlueprintTranslator;

            _handler    = handler;
            _mqttClient = new MqttClient(param.BrokerUrl, param.BrokerPort, !param.DeactivateSecureChannel, MqttSslProtocols.TLSv1_1, userCertificateSelectionCallback, userCertificateValidationCallback);

            _mqttClient.MqttMsgPublishReceived += MqttClientOnMqttMsgPublishReceived;
            _mqttClient.MqttMsgPublished       += MqttClientOnMqttMsgPublished;
            //_mqttClient.ProtocolVersion = MqttProtocolVersion.Version_3_1;

            _logger.Information("Trying to connect to broker: " + param.BrokerUrl);
            _mqttConnectionWatchdog.Connect(_mqttClient);
        }