public static BatchGetDeviceStateResponse Unmarshall(UnmarshallerContext context) { BatchGetDeviceStateResponse batchGetDeviceStateResponse = new BatchGetDeviceStateResponse(); batchGetDeviceStateResponse.HttpResponse = context.HttpResponse; batchGetDeviceStateResponse.RequestId = context.StringValue("BatchGetDeviceState.RequestId"); batchGetDeviceStateResponse.Success = context.BooleanValue("BatchGetDeviceState.Success"); batchGetDeviceStateResponse.ErrorMessage = context.StringValue("BatchGetDeviceState.ErrorMessage"); List <BatchGetDeviceStateResponse.DeviceStatus> deviceStatusList = new List <BatchGetDeviceStateResponse.DeviceStatus>(); for (int i = 0; i < context.Length("BatchGetDeviceState.DeviceStatusList.Length"); i++) { BatchGetDeviceStateResponse.DeviceStatus deviceStatus = new BatchGetDeviceStateResponse.DeviceStatus(); deviceStatus.DeviceId = context.StringValue("BatchGetDeviceState.DeviceStatusList[" + i + "].DeviceId"); deviceStatus.DeviceName = context.StringValue("BatchGetDeviceState.DeviceStatusList[" + i + "].DeviceName"); deviceStatus.Status = context.StringValue("BatchGetDeviceState.DeviceStatusList[" + i + "].Status"); deviceStatus.AsAddress = context.StringValue("BatchGetDeviceState.DeviceStatusList[" + i + "].AsAddress"); deviceStatusList.Add(deviceStatus); } batchGetDeviceStateResponse.DeviceStatusList = deviceStatusList; return(batchGetDeviceStateResponse); }
//获取设备的在线状态,ONLINE|OFFLINE|UNACTIVE|DISABLE public void TestBatchGetDeviceState() { DefaultAcsClient acsClient = Demo.IotClient.GetClient(); BatchGetDeviceStateRequest request = new BatchGetDeviceStateRequest(); request.ProductKey = "<productKey>"; List <string> deviceNames = new List <string>(); deviceNames.Add("device0820"); deviceNames.Add("device0821"); deviceNames.Add("device0822"); request.DeviceNames = deviceNames; BatchGetDeviceStateResponse response = acsClient.GetAcsResponse(request); Console.WriteLine(response.Success); Console.WriteLine(response.Code + ", " + response.ErrorMessage); List <BatchGetDeviceStateResponse.BatchGetDeviceState_DeviceStatus> statusList = response.DeviceStatusList; for (int i = 0; i < statusList.Count; i += 1) { BatchGetDeviceStateResponse.BatchGetDeviceState_DeviceStatus deviceStatus = statusList[i]; Console.WriteLine(deviceStatus.DeviceName + ", " + deviceStatus.IotId + ", " + deviceStatus.Status); } }
public static BatchGetDeviceStateResponse Unmarshall(UnmarshallerContext _ctx) { BatchGetDeviceStateResponse batchGetDeviceStateResponse = new BatchGetDeviceStateResponse(); batchGetDeviceStateResponse.HttpResponse = _ctx.HttpResponse; batchGetDeviceStateResponse.RequestId = _ctx.StringValue("BatchGetDeviceState.RequestId"); batchGetDeviceStateResponse.Success = _ctx.BooleanValue("BatchGetDeviceState.Success"); batchGetDeviceStateResponse.Code = _ctx.StringValue("BatchGetDeviceState.Code"); batchGetDeviceStateResponse.ErrorMessage = _ctx.StringValue("BatchGetDeviceState.ErrorMessage"); List <BatchGetDeviceStateResponse.BatchGetDeviceState_DeviceStatus> batchGetDeviceStateResponse_deviceStatusList = new List <BatchGetDeviceStateResponse.BatchGetDeviceState_DeviceStatus>(); for (int i = 0; i < _ctx.Length("BatchGetDeviceState.DeviceStatusList.Length"); i++) { BatchGetDeviceStateResponse.BatchGetDeviceState_DeviceStatus deviceStatus = new BatchGetDeviceStateResponse.BatchGetDeviceState_DeviceStatus(); deviceStatus.DeviceId = _ctx.StringValue("BatchGetDeviceState.DeviceStatusList[" + i + "].DeviceId"); deviceStatus.DeviceName = _ctx.StringValue("BatchGetDeviceState.DeviceStatusList[" + i + "].DeviceName"); deviceStatus.Status = _ctx.StringValue("BatchGetDeviceState.DeviceStatusList[" + i + "].Status"); deviceStatus.AsAddress = _ctx.StringValue("BatchGetDeviceState.DeviceStatusList[" + i + "].AsAddress"); deviceStatus.LastOnlineTime = _ctx.StringValue("BatchGetDeviceState.DeviceStatusList[" + i + "].LastOnlineTime"); deviceStatus.IotId = _ctx.StringValue("BatchGetDeviceState.DeviceStatusList[" + i + "].IotId"); batchGetDeviceStateResponse_deviceStatusList.Add(deviceStatus); } batchGetDeviceStateResponse.DeviceStatusList = batchGetDeviceStateResponse_deviceStatusList; return(batchGetDeviceStateResponse); }
/// <summary> /// 查询设备是否在线 /// </summary> /// <param name="product_key">产品Key</param> /// <param name="lstDevicesName">要查询的设备名称列表</param> /// <returns></returns> public static bool IsOnline(string product_key, List <string> lstDevicesName) { IClientProfile clientProfile = DefaultProfile.GetProfile(Config.regionId, Config.accessKeyId, Config.accessKeySecret); DefaultAcsClient client = new DefaultAcsClient(clientProfile); BatchGetDeviceStateRequest request = new BatchGetDeviceStateRequest(); request.ProductKey = product_key; request.DeviceNames = lstDevicesName; BatchGetDeviceStateResponse response = null; try { response = client.GetAcsResponse(request); } catch (ClientException err) { throw err; } if (response != null) { List <BatchGetDeviceStateResponse.DeviceStatus> lstDeviceStatus = response.DeviceStatusList; if (lstDeviceStatus.Count > 0 && lstDeviceStatus[0].Status == "ONLINE") { return(true); } Console.WriteLine("Response requestId:" + response.RequestId + " isSuccess:" + response.Success + " Error:" + response.ErrorMessage); } return(false); }
//获取一批设备的状态信息,包括状态、最后上线时间、登录IP private static void TestBatchGetDeviceStatus() { IClientProfile clientProfile = DefaultProfile.GetProfile("<your-region-id>", "<your-access-key-id>", "<your-access-key-secret>"); DefaultAcsClient client = new DefaultAcsClient(clientProfile); BatchGetDeviceStateRequest request = new BatchGetDeviceStateRequest(); request.ProductKey = "<productKey>"; List <String> DeviceNames = new List <string>(); DeviceNames.Add("<deviceName1>"); DeviceNames.Add("<deviceName2>"); DeviceNames.Add("<deviceName3>"); DeviceNames.Add("<deviceName4>"); DeviceNames.Add("<deviceName...>"); request.DeviceNames = DeviceNames; try { BatchGetDeviceStateResponse response = client.GetAcsResponse(request); Console.WriteLine(response.Success); Console.WriteLine(response.ErrorMessage); List <BatchGetDeviceStateResponse.BatchGetDeviceState_DeviceStatus> DeviceStatusList = response.DeviceStatusList; foreach (BatchGetDeviceStateResponse.BatchGetDeviceState_DeviceStatus DeviceStatus in DeviceStatusList) { Console.WriteLine(DeviceStatus.DeviceName + ", " + DeviceStatus.Status + ", " + DeviceStatus.LastOnlineTime); } } catch (ServerException e) { Console.WriteLine(e.ErrorCode); Console.WriteLine(e.ErrorMessage); } catch (ClientException e) { Console.WriteLine(e.ErrorCode); Console.WriteLine(e.ErrorMessage); } Console.ReadKey(); }