//批量注册设备,最多一次创建1000台设备,指定设备名称 public void TestBatchRegisterDeviceWithNames() { DefaultAcsClient acsClient = Demo.IotClient.GetClient(); String productKey = "<productKey>"; BatchCheckDeviceNamesRequest request1 = new BatchCheckDeviceNamesRequest(); request1.ProductKey = productKey; List <string> DeviceNames = new List <string>(); for (int i = 100; i < 150; i += 1) { DeviceNames.Add("device_0821_" + i); } request1.DeviceNames = DeviceNames; //Step1 创建申请单,返回applyId BatchCheckDeviceNamesResponse response1 = acsClient.GetAcsResponse(request1); Console.WriteLine("Batch Check: " + response1.Success); if (!(bool)response1.Success) { Console.WriteLine(response1.Code + ", " + response1.ErrorMessage); } long applyId = (long)response1.Data.ApplyId; Console.WriteLine("ApplyId: " + applyId); String Status = "FAILED"; while (true) { //Step2 轮询申请单的检查进度,如果检查正常通过,则可以量产设备 QueryBatchRegisterDeviceStatusRequest request2 = new QueryBatchRegisterDeviceStatusRequest(); request2.ApplyId = applyId; request2.ProductKey = productKey; QueryBatchRegisterDeviceStatusResponse response2 = acsClient.GetAcsResponse(request2); if (!(bool)response2.Success) { Console.WriteLine(response2.Code + ", " + response2.ErrorMessage); break; } QueryBatchRegisterDeviceStatusResponse.QueryBatchRegisterDeviceStatus_Data data = response2.Data; Status = data.Status; Console.WriteLine("Query Status: " + response2.Success + ", " + Status); if ("CHECK_SUCCESS".Equals(Status)) { break; } else { if ("CHECK_FAILED".Equals(Status)) { List <string> InvalidDevicenameList = response2.Data.InvalidList; for (int j = 0; j < InvalidDevicenameList.Count; j += 1) { String deviceName = InvalidDevicenameList[j]; Console.WriteLine("Invalid DeviceName: " + deviceName); } break; } else { Thread.Sleep(1000); } } } if ("CHECK_SUCCESS".Equals(Status)) { //Step3 开始量产设备,量产设备是异步过程,全部待生产设备完成生产需要一段时间 BatchRegisterDeviceWithApplyIdRequest request3 = new BatchRegisterDeviceWithApplyIdRequest(); request3.ProductKey = productKey; request3.ApplyId = applyId; BatchRegisterDeviceWithApplyIdResponse response3 = acsClient.GetAcsResponse(request3); Console.WriteLine("Batch Register With ApplyId Request: " + response3.Success); if (!(bool)response3.Success) { Console.WriteLine(response3.Code + ", " + response3.ErrorMessage); } } while (true) { //轮询申请单的检查进度,如果申请单是创建完成状态,则表明全部设备已经生产完毕 QueryBatchRegisterDeviceStatusRequest request2 = new QueryBatchRegisterDeviceStatusRequest(); request2.ApplyId = applyId; request2.ProductKey = productKey; QueryBatchRegisterDeviceStatusResponse response2 = acsClient.GetAcsResponse(request2); if (!(bool)response2.Success) { Console.WriteLine(response2.Code + ", " + response2.ErrorMessage); break; } QueryBatchRegisterDeviceStatusResponse.QueryBatchRegisterDeviceStatus_Data data = response2.Data; Status = data.Status; Console.WriteLine("Query Status: " + response2.Success + ", " + Status); if ("CREATE_SUCCESS".Equals(Status)) { break; } else { Thread.Sleep(1000); } } //Step5 根据ApplyId,获取这一批次量产的全部设备 QueryPageByApplyIdRequest request4 = new QueryPageByApplyIdRequest(); request4.ApplyId = applyId; request4.CurrentPage = 1; request4.PageSize = 10; QueryPageByApplyIdResponse response4 = acsClient.GetAcsResponse(request4); Console.WriteLine("Query With ApplyId: " + response4.Success); if (!(bool)response4.Success) { Console.WriteLine(response4.Code + ", " + response4.ErrorMessage); } Console.WriteLine("Page: " + response4.Page); Console.WriteLine("PageSize: " + response4.PageSize); Console.WriteLine("PageCount: " + response4.PageCount); Console.WriteLine("Total: " + response4.Total); }
public static QueryBatchRegisterDeviceStatusResponse Unmarshall(UnmarshallerContext context) { QueryBatchRegisterDeviceStatusResponse queryBatchRegisterDeviceStatusResponse = new QueryBatchRegisterDeviceStatusResponse(); queryBatchRegisterDeviceStatusResponse.HttpResponse = context.HttpResponse; queryBatchRegisterDeviceStatusResponse.RequestId = context.StringValue("QueryBatchRegisterDeviceStatus.RequestId"); queryBatchRegisterDeviceStatusResponse.Success = context.BooleanValue("QueryBatchRegisterDeviceStatus.Success"); queryBatchRegisterDeviceStatusResponse.Code = context.StringValue("QueryBatchRegisterDeviceStatus.Code"); queryBatchRegisterDeviceStatusResponse.ErrorMessage = context.StringValue("QueryBatchRegisterDeviceStatus.ErrorMessage"); QueryBatchRegisterDeviceStatusResponse.QueryBatchRegisterDeviceStatus_Data data = new QueryBatchRegisterDeviceStatusResponse.QueryBatchRegisterDeviceStatus_Data(); data.Status = context.StringValue("QueryBatchRegisterDeviceStatus.Data.Status"); List <string> data_validList = new List <string>(); for (int i = 0; i < context.Length("QueryBatchRegisterDeviceStatus.Data.ValidList.Length"); i++) { data_validList.Add(context.StringValue("QueryBatchRegisterDeviceStatus.Data.ValidList[" + i + "]")); } data.ValidList = data_validList; List <string> data_invalidList = new List <string>(); for (int i = 0; i < context.Length("QueryBatchRegisterDeviceStatus.Data.InvalidList.Length"); i++) { data_invalidList.Add(context.StringValue("QueryBatchRegisterDeviceStatus.Data.InvalidList[" + i + "]")); } data.InvalidList = data_invalidList; queryBatchRegisterDeviceStatusResponse.Data = data; return(queryBatchRegisterDeviceStatusResponse); }
//批量注册设备,最多一次创建1000台设备,设备名称随机生成 public void TestBatchRegisterDevice() { DefaultAcsClient acsClient = Demo.IotClient.GetClient(); String productKey = "<productKey>"; BatchRegisterDeviceRequest request1 = new BatchRegisterDeviceRequest(); request1.ProductKey = productKey; request1.Count = 10; //Step1 创建申请单,返回applyId BatchRegisterDeviceResponse response1 = acsClient.GetAcsResponse(request1); Console.WriteLine("Batch Register: " + response1.Success); if (!(bool)response1.Success) { Console.WriteLine(response1.Code + ", " + response1.ErrorMessage); } long applyId = (long)response1.Data.ApplyId; Console.WriteLine("ApplyId: " + applyId); String Status = "CHECK_FAILED"; while (true) { //轮询申请单的检查进度,如果检查正常通过,则可以量产设备 QueryBatchRegisterDeviceStatusRequest request2 = new QueryBatchRegisterDeviceStatusRequest(); request2.ApplyId = applyId; request2.ProductKey = productKey; QueryBatchRegisterDeviceStatusResponse response2 = acsClient.GetAcsResponse(request2); if (!(bool)response2.Success) { Console.WriteLine(response2.Code + ", " + response2.ErrorMessage); break; } QueryBatchRegisterDeviceStatusResponse.QueryBatchRegisterDeviceStatus_Data data = response2.Data; Status = data.Status; Console.WriteLine("Query Status: " + response2.Success + ", " + Status); if ("CREATE_SUCCESS".Equals(Status)) { break; } else { Thread.Sleep(1000); } } if ("CREATE_SUCCESS".Equals(Status)) { QueryPageByApplyIdRequest request3 = new QueryPageByApplyIdRequest(); request3.ApplyId = applyId; request3.CurrentPage = 1; request3.PageSize = 10; QueryPageByApplyIdResponse response3 = acsClient.GetAcsResponse(request3); Console.WriteLine("Query With ApplyId: " + response3.Success); if (!(bool)response3.Success) { Console.WriteLine(response3.Code + ", " + response3.ErrorMessage); } Console.WriteLine("Page: " + response3.Page); Console.WriteLine("PageSize: " + response3.PageSize); Console.WriteLine("PageCount: " + response3.PageCount); Console.WriteLine("Total: " + response3.Total); } }
public static QueryBatchRegisterDeviceStatusResponse Unmarshall(UnmarshallerContext context) { QueryBatchRegisterDeviceStatusResponse queryBatchRegisterDeviceStatusResponse = new QueryBatchRegisterDeviceStatusResponse(); queryBatchRegisterDeviceStatusResponse.HttpResponse = context.HttpResponse; queryBatchRegisterDeviceStatusResponse.RequestId = context.StringValue("QueryBatchRegisterDeviceStatus.RequestId"); queryBatchRegisterDeviceStatusResponse.Success = context.BooleanValue("QueryBatchRegisterDeviceStatus.Success"); queryBatchRegisterDeviceStatusResponse.Code = context.StringValue("QueryBatchRegisterDeviceStatus.Code"); queryBatchRegisterDeviceStatusResponse.ErrorMessage = context.StringValue("QueryBatchRegisterDeviceStatus.ErrorMessage"); QueryBatchRegisterDeviceStatusResponse.QueryBatchRegisterDeviceStatus_Data data = new QueryBatchRegisterDeviceStatusResponse.QueryBatchRegisterDeviceStatus_Data(); data.Status = context.StringValue("QueryBatchRegisterDeviceStatus.Data.Status"); List <Dictionary <string, string> > data_validList = new List <Dictionary <string, string> >(); for (int i = 0; i < context.Length("QueryBatchRegisterDeviceStatus.Data.ValidList.Length"); i++) { Dictionary <string, string> tmp = new Dictionary <string, string>() { }; foreach (var _item in context.ResponseDictionary) { string prefix = "QueryBatchRegisterDeviceStatus.Data.ValidList[" + i + "]."; if (_item.Key.IndexOf(prefix) == 0) { tmp.Add(_item.Key.Substring(prefix.Length), _item.Value); } } if (tmp.Count > 0) { data_validList.Add(tmp); } } data.ValidList = data_validList; List <Dictionary <string, string> > data_invalidList = new List <Dictionary <string, string> >(); for (int i = 0; i < context.Length("QueryBatchRegisterDeviceStatus.Data.InvalidList.Length"); i++) { Dictionary <string, string> tmp = new Dictionary <string, string>() { }; foreach (var _item in context.ResponseDictionary) { string prefix = "QueryBatchRegisterDeviceStatus.Data.InvalidList[" + i + "]."; if (_item.Key.IndexOf(prefix) == 0) { tmp.Add(_item.Key.Substring(prefix.Length), _item.Value); } } if (tmp.Count > 0) { data_invalidList.Add(tmp); } } data.InvalidList = data_invalidList; queryBatchRegisterDeviceStatusResponse.Data = data; return(queryBatchRegisterDeviceStatusResponse); }