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>()); }
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); }