我有一个名为“myDPS”的Azure 设备配置服务设置,并且以下IoT集线器已链接。
目前没有注册列表。以下用于注册设备的c#代码
private const string RegistrationId = "TestRegID";
private const string OptionalDeviceId = "Device1";
private const ProvisioningStatus OptionalProvisioningStatus = ProvisioningStatus.Enabled;
private const string SampleTpmEndorsementKey = "***"// Key generated using TPM Simulator
static async Task SetRegistrationDataAsync()
{
Console.WriteLine("Starting SetRegistrationData");
Attestation attestation = new TpmAttestation(SampleTpmEndorsementKey);
IndividualEnrollment individualEnrollment = new
IndividualEnrollment(RegistrationId, attestation);
individualEnrollment.DeviceId = OptionalDeviceId;
individualEnrollment.ProvisioningStatus = OptionalProvisioningStatus;
Console.WriteLine("\nAdding new individualEnrollment...");
var serviceClient = ProvisioningServiceClient.CreateFromConnectionString(ServiceConnectionString);
IndividualEnrollment individualEnrollmentResult =
await serviceClient.CreateOrUpdateIndividualEnrollmentAsync(individualEnrollment).ConfigureAwait(false);
Console.WriteLine("\nIndividualEnrollment created with success.");
Console.WriteLine(individualEnrollmentResult);
}
以上代码成功将设备注册到DPS,但状态显示为未分配
问题#1 - 注册状态未分配,有时会显示FAILED 状态:失败 错误代码:404201
问题#2 一旦上述问题得到解决,那么我想有一些配置,我可以指定哪个设备应映射到哪个IoT,以便设备可以自动决定它的目标IoT集线器。
示例:
Device1-> IoTHub-Dev-Asia
Device2-> IoTHub-DEV-亚
Device3-> IoTHub-DEV-欧
我认为通过注册列表进行静态配置可以帮助但不确定如何使用它?
答案 0 :(得分:2)
三种支持的分配策略决定了如何将设备分配给IoT中心:
如果您需要分配设备,则应该只使用一次ProvisioningDeviceClient.RegisterAsync()
API调用。您可以参考sample。在示例中,您需要将RegistrationId替换为您之前创建的注册ID。