/// <summary> /// 添加设备 /// </summary> /// <param name="device_id"></param> /// <param name="result"></param> public void AddDevice(string device_id, INetworkResult result) { // client.Authenticator = new HttpBasicAuthenticator(username, password); var request = new RestRequest("devices/{device_id}", Method.GET); request.AddUrlSegment("device_id", device_id); // replaces matching token in request.Resource // add parameters for all properties on an object //request.AddObject(object); // or just whitelisted properties //request.AddObject(object, "PersonId", "Name", ...); // easily add HTTP Headers request.AddHeader("api-key", "VtaeS4yK3Fk6xiOljgw69lYcH9k="); IRestResponse response = client.Execute(request); var content = response.Content; // raw content as string if (response.ResponseStatus == ResponseStatus.Completed) { Device device = JsonHelper.DeserializeJsonToObject <Device>(content); if (device.error.Equals("succ")) { DeviceDataDao.Instance.Insert(device.data); RemarksDao.Instance.Insert(device.data); GetLatestPoint(device.data, result); } else { result.OnFailure(device.error); } } else { result.OnFailure("获取设备信息失败"); } }
/// <summary> /// 获取绘制图表的数据点 /// </summary> /// <param name="deviceData"></param> /// <param name="result"></param> public void GetDataPoints(ItemPoint deviceData, INetworkResult result, string datastream_id, string limit, string start, string end, string cursor, string duration) { // client.Authenticator = new HttpBasicAuthenticator(username, password); var request = new RestRequest("devices/{device_id}/datapoints", Method.GET); request.AddUrlSegment("device_id", deviceData.deviceId); // replaces matching token in request.Resource // add parameters for all properties on an object //request.AddObject(object); // or just whitelisted properties //request.AddObject(object, "PersonId", "Name", ...); // easily add HTTP Headers request.AddHeader("api-key", "VtaeS4yK3Fk6xiOljgw69lYcH9k="); if (!string.IsNullOrEmpty(datastream_id)) { request.AddParameter("datastream_id", datastream_id); } if (!string.IsNullOrEmpty(limit)) { request.AddParameter("limit", limit); } if (!string.IsNullOrEmpty(start)) { request.AddParameter("start", start); } if (!string.IsNullOrEmpty(end)) { request.AddParameter("end", end); } if (!string.IsNullOrEmpty(cursor)) { request.AddParameter("cursor", cursor); } if (!string.IsNullOrEmpty(duration)) { request.AddParameter("duration", duration); } IRestResponse response = client.Execute(request); var content = response.Content; // raw content as string if (response.ResponseStatus == ResponseStatus.Completed) { AppPoint point = JsonHelper.DeserializeJsonToObject <AppPoint>(content); if (point.error.Equals("succ")) { ItemPoint item = new ItemPoint { deviceId = deviceData.deviceId, title = deviceData.title }; StringBuilder builder = new StringBuilder(); foreach (DataStreams dataStream in point.data.datastreams) { RemarksID remarksID = RemarksDao.Instance.GetDeviceDataById(item.deviceId + dataStream.id); foreach (DataPoints dataPoints in dataStream.datapoints) { dataPoints.at = dataPoints.at.Substring(0, dataPoints.at.Length - 4); } if (dataStream.id.Equals("P") || dataStream.id.Equals("T") || dataStream.id.Equals("H")) { //只获取最新的一个点在列表里显示 bool m = false; foreach (DataPoints dataPoints in dataStream.datapoints) { if (m) { break; } if (remarksID == null || string.IsNullOrEmpty(remarksID.remarks)) { builder.Append(dataStream.id + "=" + dataPoints.value); } else { builder.Append(remarksID.remarks + "=" + dataPoints.value); } foreach (DeviceDataStreams stream in deviceData.deviceDatastreams) { if (dataStream.id.Equals(stream.id)) { builder.Append(stream.unit + " "); m = true; break; } } } } } item.dataStreamsList = point.data.datastreams; item.deviceDatastreams = deviceData.deviceDatastreams; item.dataStrams = builder.ToString(); result.OnSuccess(item); } else { result.OnFailure(point.error); } } else { result.OnFailure("获取" + deviceData.title + "的数据失败"); } }