public String getData() { stream = device.Stream("hasFallen"); string a = ""; response = stream.Values(new ATTM2X.Classes.StreamValuesFilter { start = M2XClient.DateTimeToString(DateTime.UtcNow.AddMinutes(-3)) }, M2XStreamValuesFormat.Json).Result; var data = response.Json <StreamValues>(); if (DateTime.Compare(limit, Convert.ToDateTime(data.end)) < 0) { if (data.values.Length != 0) { TimeSpan span = (Convert.ToDateTime(data.values[0].timestamp) - lastFall); if (span.Seconds > 30) { a = data.values[0].value; if (a == "fall") { lastFall = Convert.ToDateTime(data.values[0].timestamp); } System.Console.WriteLine("FALLLL---------------------------------/////////"); } } } else { a = ""; } limit = Convert.ToDateTime(data.end); return(a); }
public void DeviceAPITest() { // device response = m2x.DeviceTags().Result; Assert.IsNotNull(m2x.LastResponse); Assert.AreEqual(HttpStatusCode.OK, response.Status, response.Raw); Assert.IsTrue(response.Success); Assert.IsFalse(response.Error); Assert.IsNotNull(response.Raw); response = m2x.DeviceCatalog(new DeviceListParams { page = 1, limit = 10, sort = M2XDeviceSortOrder.Name, dir = M2XSortDirection.Asc }).Result; Assert.AreEqual(HttpStatusCode.OK, response.Status, response.Raw); var deviceList = response.Json <DeviceList>(); Assert.IsNotNull(deviceList.devices); Assert.IsTrue(deviceList.devices.Length > 0); DeviceDetails deviceDetails = deviceList.devices.FirstOrDefault(d => d.location != null && d.location.latitude.HasValue && d.location.longitude.HasValue); Assert.IsNotNull(deviceDetails); response = m2x.DeviceCatalogSearch(null, new DeviceSearchBodyParamsBase { location = new LocationFilter { within_circle = new WithinCircleFilter { center = new LocationPointParams { latitude = deviceDetails.location.latitude.Value, longitude = deviceDetails.location.longitude.Value, }, radius = new RadiusParams { km = 10 }, }, }, }).Result; Assert.AreEqual(HttpStatusCode.OK, response.Status, response.Raw); deviceList = response.Json <DeviceList>(); Assert.IsNotNull(deviceList.devices); // TODO: Assert.IsTrue(deviceList.devices.Length > 0); response = m2x.CreateDevice(new DeviceParams { name = "TestDevice-" + this.TestId, visibility = M2XVisibility.Private, }).Result; Assert.AreEqual(HttpStatusCode.Created, response.Status, response.Raw); deviceDetails = response.Json <DeviceDetails>(); Assert.IsNotNull(deviceDetails.id); this.device = m2x.Device(deviceDetails.id); Assert.AreEqual(M2XVisibility.Private, deviceDetails.visibility); Thread.Sleep(1000); response = device.Details().Result; Assert.AreEqual(HttpStatusCode.OK, response.Status, response.Raw); deviceDetails = response.Json <DeviceDetails>(); Assert.AreEqual(M2XStatus.Enabled, deviceDetails.status); response = device.Update(new DeviceParams { name = "TestDevice-" + this.TestId, visibility = M2XVisibility.Private, description = "test", }).Result; Assert.AreEqual(HttpStatusCode.NoContent, response.Status, response.Raw); response = device.Details().Result; Assert.AreEqual(HttpStatusCode.OK, response.Status, response.Raw); deviceDetails = response.Json <DeviceDetails>(); Assert.AreEqual("test", deviceDetails.description); response = device.UpdateLocation(new LocationParams { name = "Test Location", latitude = 12, longitude = -34, }).Result; Assert.AreEqual(HttpStatusCode.Accepted, response.Status, response.Raw); Thread.Sleep(2000); response = device.Location().Result; Assert.AreEqual(HttpStatusCode.OK, response.Status, response.Raw); var location = response.Json <LocationDetails>(); Assert.AreEqual("Test Location", location.name); response = m2x.Devices(new { visibility = M2XVisibility.Private }).Result; Assert.AreEqual(HttpStatusCode.OK, response.Status, response.Raw); deviceList = response.Json <DeviceList>(); Assert.IsNotNull(deviceList.devices); Assert.IsTrue(deviceList.devices.Length > 0); response = m2x.SearchDevices(new DeviceSearchParams { visibility = M2XVisibility.Private }, new DeviceSearchBodyParamsBase { location = new LocationFilter { within_circle = new WithinCircleFilter { center = new LocationPointParams { latitude = location.latitude.Value, longitude = location.longitude.Value, }, radius = new RadiusParams { km = 10 }, }, }, }).Result; Assert.AreEqual(HttpStatusCode.OK, response.Status, response.Raw); deviceList = response.Json <DeviceList>(); Assert.IsNotNull(deviceList.devices); Assert.IsTrue(deviceList.devices.Length > 0); response = device.Log().Result; Assert.AreEqual(HttpStatusCode.OK, response.Status, response.Raw); var requestList = response.Json <RequestList>(); Assert.IsNotNull(requestList.requests); Assert.IsTrue(requestList.requests.Length > 0); // stream this.stream = device.Stream("testdevicestream"); response = stream.Update(new StreamParams { type = M2XStreamType.Numeric, unit = new StreamUnit { label = "points", symbol = "pt" }, }).Result; Assert.AreEqual(HttpStatusCode.Created, response.Status, response.Raw); Thread.Sleep(1000); response = device.Streams().Result; Assert.AreEqual(HttpStatusCode.OK, response.Status, response.Raw); var streamList = response.Json <StreamList>(); Assert.IsNotNull(streamList.streams); Assert.AreEqual(1, streamList.streams.Length); Assert.AreEqual(stream.StreamName, streamList.streams[0].name); response = stream.UpdateValue(new StreamValue { value = "10" }).Result; Assert.AreEqual(HttpStatusCode.Accepted, response.Status, response.Raw); Thread.Sleep(1000); response = stream.Details().Result; Assert.AreEqual(HttpStatusCode.OK, response.Status, response.Raw); var streamDetails = response.Json <StreamDetails>(); Assert.AreEqual("10", streamDetails.value); response = stream.Values(new StreamValuesFilter { start = M2XClient.DateTimeToString(this.UtcNow.AddHours(-1)) }, M2XStreamValuesFormat.Json).Result; Assert.AreEqual(HttpStatusCode.OK, response.Status, response.Raw); var streamValues = response.Json <StreamValues>(); Assert.IsNotNull(streamValues.values); Assert.AreEqual(1, streamValues.values.Length); response = stream.UpdateValue(new StreamValue { value = "20" }).Result; Assert.AreEqual(HttpStatusCode.Accepted, response.Status, response.Raw); Thread.Sleep(1500); response = stream.Sampling(new StreamSamplingParams { type = M2XSamplingType.Sum, interval = 100 }).Result; Assert.AreEqual(HttpStatusCode.OK, response.Status, response.Raw); streamValues = response.Json <StreamValues>(); Assert.IsNotNull(streamValues.values); Assert.AreEqual(1, streamValues.values.Length); Assert.AreEqual("30.0", streamValues.values[0].value); response = stream.Stats().Result; Assert.AreEqual(HttpStatusCode.OK, response.Status, response.Raw); var streamStats = response.Json <StreamStatsInfo>(); Assert.IsNotNull(streamStats.stats); Assert.AreEqual(2, streamStats.stats.count); Assert.AreEqual(15.0, streamStats.stats.avg); string from = M2XClient.DateTimeToString(this.UtcNow.AddMinutes(-2)); string end = M2XClient.DateTimeToString(this.UtcNow.AddMinutes(-1)); response = stream.PostValues(new StreamValues { values = new StreamValue[] { new StreamValue { timestamp = from, value = "1", }, new StreamValue { timestamp = end, value = "2", }, } }).Result; Assert.AreEqual(HttpStatusCode.Accepted, response.Status, response.Raw); response = stream.DeleteValues(new DeleteValuesParams { from = from, end = end }).Result; Assert.AreEqual(HttpStatusCode.NoContent, response.Status, response.Raw); // values response = device.PostUpdate(new TestDeviceValue { timestamp = M2XClient.DateTimeToString(this.UtcNow.AddMinutes(-3)), values = new TestDeviceStreamValue { testdevicestream = 3 }, }).Result; Assert.AreEqual(HttpStatusCode.Accepted, response.Status, response.Raw); response = device.PostUpdates(new TestDeviceValues { values = new TestDeviceStreamValues { testdevicestream = new StreamValue[] { new StreamValue { timestamp = from, value = "1", }, new StreamValue { timestamp = end, value = "2", }, }, }, }).Result; Assert.AreEqual(HttpStatusCode.Accepted, response.Status, response.Raw); Thread.Sleep(1000); response = device.Values(new DeviceValuesFilter { streams = "testdevicestream" }).Result; Assert.AreEqual(HttpStatusCode.OK, response.Status, response.Raw); var values = response.Json <DeviceValueList <TestDeviceValue> >(); Assert.IsNotNull(values); Assert.IsNotNull(values.values); Assert.IsTrue(values.values.Length >= 3); int count = values.values.Length; response = device.SearchValues(new DeviceValuesSearchParams <TestDeviceConditions> { start = values.values.Min(v => v.timestamp), end = values.values.Max(v => v.timestamp), streams = new string[] { "testdevicestream" }, conditions = new TestDeviceConditions { testdevicestream = new ValueCondition { gt = 1 } }, }).Result; Assert.AreEqual(HttpStatusCode.OK, response.Status, response.Raw); values = response.Json <DeviceValueList <TestDeviceValue> >(); Assert.IsNotNull(values); Assert.IsNotNull(values.values); Assert.IsTrue(values.values.Length > 0); Assert.IsTrue(values.values.Length < count); }