示例#1
0
        public async Task <Response <Device> > AddDeviceAsync(Device device)
        {
            Microsoft.Azure.Devices.Device requestDevice;
            try
            {
                //Console.WriteLine("New device:");

                requestDevice = new Microsoft.Azure.Devices.Device(device.Id);

                requestDevice = await registryManager.AddDeviceAsync(requestDevice);

                return(new Response <Device>()
                {
                    Success = true,
                    ResponseObject = device
                });
            }
            catch (DeviceAlreadyExistsException ex)
            {
                List <AzureException> exception = new List <AzureException>()
                {
                    new AzureException()
                    {
                        Exception = ex, Message = ex.Message
                    }
                };
                return(new Response <Device>()
                {
                    Success = true,
                    ResponseObject = device,
                    Exceptions = exception.ToArray()
                });
            }
        }
示例#2
0
        private static async Task AddDevicesAsync()
        {
            kRegistryManager      = AZD.RegistryManager.CreateFromConnectionString(kIoTHubConnectionString);
            kDeviceConnectionList = new List <DeviceClient>();

            for (int idx = 0; idx < kTotalDevices; ++idx)
            {
                var deviceIdString = $"dev{idx}";
                try
                {
                    var device = await kRegistryManager.AddDeviceAsync(new AZD.Device(deviceIdString));

                    var connString = device.Authentication.SymmetricKey.PrimaryKey;
                    connString = string.Format(kDeviceConnectionString, deviceIdString, connString);

                    Console.WriteLine(connString);

                    kDeviceConnectionList.Add(DeviceClient.CreateFromConnectionString(connString));
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                }
            }
        }
        public async Task <AzureDevices.Device> RegisterDevice(Device device)
        {
            AzureDevices.Device azureDevice;
            try
            {
                azureDevice = await _registryManager.AddDeviceAsync(new AzureDevices.Device(device.DeviceId));
            }
            catch (DeviceAlreadyExistsException)
            {
                azureDevice = await _registryManager.GetDeviceAsync(device.DeviceId);
            }

            return(azureDevice);
        }
        public Response <Device> AddDeviceAsync(Device device)
        {
            Microsoft.Azure.Devices.Device requestDevice;
            try
            {
                //Console.WriteLine("New device:");

                requestDevice = new Microsoft.Azure.Devices.Device(device.Name);
                Task task = Task.Run(() =>
                {
                    requestDevice = registryManager.AddDeviceAsync(requestDevice).Result;
                });
                task.Wait();
                device.Name = requestDevice.Id;
                return(new Response <Device>()
                {
                    Success = true,
                    ResponseObject = device
                });
            }
            catch (DeviceAlreadyExistsException ex)
            {
                List <AzureException> exception = new List <AzureException>()
                {
                    new AzureException()
                    {
                        Exception = ex, Message = ex.Message
                    }
                };
                return(new Response <Device>()
                {
                    Success = true,
                    ResponseObject = device,
                    Exceptions = exception.ToArray()
                });
            }
        }
示例#5
0
        static async Task<string> selfRegisterAndSetConnString(string DeviceId)
        {
            Task<string> deviceConnString = null;
            try
            {
                registryManager = RegistryManager.CreateFromConnectionString(iotHubConnString);
                Device newDevice = new Device(DeviceId);

                await registryManager.AddDeviceAsync(newDevice);
                newDevice = await registryManager.GetDeviceAsync(DeviceId);
                newDevice.Authentication.SymmetricKey.PrimaryKey = CryptoKeyGenerator.GenerateKey(32);
                newDevice.Authentication.SymmetricKey.SecondaryKey = CryptoKeyGenerator.GenerateKey(32);
                newDevice = await registryManager.UpdateDeviceAsync(newDevice);

                string deviceInfo = String.Format("ID={0}\nPrimaryKey={1}\nSecondaryKey={2}", newDevice.Id, newDevice.Authentication.SymmetricKey.PrimaryKey, newDevice.Authentication.SymmetricKey.SecondaryKey);
                deviceConnString = Task.FromResult(string.Format("HostName={0};DeviceId={1};SharedAccessKey={2}", iotHubName, newDevice.Id, newDevice.Authentication.SymmetricKey.PrimaryKey));

            }
            catch (Exception ex)
            {
                Console.WriteLine("An error occured creating device:{0}", ex.ToString());
            }
            return deviceConnString.Result;
        }