Ejemplo n.º 1
0
        private CompositeDeviceClient(CompositeDeviceConfiguration.Device device,
                                      IotHubDeviceCredentials upstreamDeviceCredentials,
                                      MqttBrokerCredentials downstreamClientCredentials,
                                      Messaging.MessageHandler upstreamToDownstream,
                                      Messaging.MessageHandler downstreamToUpstream,
                                      IClock clock,
                                      ILoggerFactory loggerFactory)
        {
            this.logger = loggerFactory.CreateLogger <CompositeDeviceClient>();//provider.GetRequiredService<ILogger<CompositeDeviceClient>>();
            this.device = device;
            this.upstreamClientCredentials   = upstreamDeviceCredentials;
            this.downstreamClientCredentials = downstreamClientCredentials;
            this.clock = clock;
            UpstreamConnectionStatus   = CompositeDeviceClientStatus.Disconnected;
            DownstreamConnectionStatus = CompositeDeviceClientStatus.Disconnected;
            upstreamMessageHandler     = upstreamToDownstream;
            downstreamMessageHandler   = downstreamToUpstream;


            this.TwinStateLifecycle = new TwinStateLifecycle(clock, null);

            // create lookups for topics
            AddTopicsToDictionary(device.LocalDeviceMqttPublications.CloudToDevice, cloudToDevicePublishingTopics);
            AddTopicsToDictionary(device.LocalDeviceMqttPublications.DirectMethods, directMethodPublishingTopics);
            AddTopicsToDictionary(device.LocalDeviceMqttPublications.Twin, twinPublishingTopics);
            AddTopicsToDictionary(device.LocalDeviceMqttSubscriptions.DeviceToCloudTopics, deviceToCloudSubscriptions);
            AddTopicsToDictionary(device.LocalDeviceMqttSubscriptions.TwinRequestTopics, twiRequestSubscriptions);

            mqttClient    = new MqttDeviceClient(this, downstreamToUpstream, loggerFactory.CreateLogger <MqttDeviceClient>());
            iotEdgeClient = new IotEdgeDeviceClient(this, upstreamToDownstream, loggerFactory.CreateLogger <IotEdgeDeviceClient>());
        }
Ejemplo n.º 2
0
        public static MqttBrokerCredentials GetMqttDeviceCredentials(CompositeDeviceConfiguration.Device device)
        {
            var m = new MqttBrokerCredentials {
                BrokerAddress         = device.MqttBrokerAddress,
                BrokerPort            = device.MqttBrokerPort,
                ClientId              = device.LocalDeviceId,
                Password              = device.MqttPassword,
                UserName              = device.MqttUserName,
                CACertificateFile     = device.MqttCACertificateFile,
                ClientCertificateFile = device.MqttClientCertificateFile,
                ClientKeyFile         = device.MqttClientKeyFile
            };

            return(m);
        }