private void computeStatus(IList <DataItem> list) { int freq = 20; for (int i = 0; i < list.Count; i = i + freq) { string result = GetActivityForRange(list, i, i + freq); StatusData sd = new StatusData(); sd.Id = statusResult.Count.ToString(); sd.Status = result; statusResult.Add(sd); Console.WriteLine("+--- Computed status: " + result); } }
public void AddData(EventData ed) { Console.WriteLine("+-- Aggiungo evento: " + ed); String deviceId = (String)ed.SystemProperties["iothub-connection-device-id"].ToString(); Console.WriteLine("+-- DeviceId " + deviceId); if (deviceId != null) { Console.WriteLine("+-- DeviceId not null"); Object currentList = null; if (!mainDictionary.ContainsKey(deviceId)) { Console.WriteLine("+-- creo la lista"); if (deviceId.Equals(sensor)) { currentList = new List <DataItem>(); mainDictionary.Add(deviceId, currentList); } else if (deviceId.Equals(edgeSensor)) { currentList = new List <string>(); mainDictionary.Add(deviceId, currentList); } } else { currentList = mainDictionary[deviceId]; } DataItem lastDataItem = null; if (deviceId.Equals(sensor)) { List <DataItem> curr = (List <DataItem>)currentList; if (curr.Count > 0) { lastDataItem = curr[curr.Count - 1]; } IList <DataItem> newValues = GenerateDataItem(ed); foreach (var item in newValues) { double Magnitude = Math.Sqrt(item.X * item.X + item.Y * item.Y + item.Z * item.Z); item.Magnitude = Magnitude; if (lastDataItem != null) { item.Delta = Magnitude - lastDataItem.Magnitude; } curr.Add(item); if (curr.Count > 200) { curr.RemoveAt(0); } } computeStatus(newValues); } if (deviceId.Equals(edgeSensor)) { List <string> allItems = (List <string>)currentList; List <string> newItems = JsonConvert.DeserializeObject <List <string> >(Encoding.UTF8.GetString(ed.Body.Array)); allItems.AddRange(newItems); int i = statusResultEdge.Count; foreach (var item in newItems) { StatusData sd = new StatusData(); sd.Id = i.ToString(); sd.Status = item; statusResultEdge.Add(sd); i++; } Console.WriteLine("+-- added: " + Encoding.UTF8.GetString(ed.Body.Array)); } } Console.WriteLine("+-- AddData end"); }