private void SendLevels() { List <Diga> dighe = Diga.ElencoDighe(); foreach (Diga diga in dighe) { router.SendMessage(diga.IDDiga, diga.LivelloArancio + "," + diga.LivelloRosso); gridDighe.Rows.Add(diga.IDDiga, diga.Nome, diga.Citta, diga.LivelloArancio, diga.LivelloRosso); } }
private void Timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e) { List <string> messages = router.ReadMessages().Split('\n').ToList(); List <Message> messaggiLetti = new List <Message>(); messages.ForEach(new Action <string>((line) => { Message message = Message.Parse(line); messaggiLetti.Add(message); })); router.DeleteAll(messaggiLetti); foreach (Message message in messaggiLetti) { Misurazione misurazione = new Misurazione(message.Number, Convert.ToInt32(message.Text), message.Date); Diga diga = new Diga(message.Number); diga.LoadData(); misurazione.Insert(); gridMisurazioni.Rows.Add(diga.Nome, misurazione.misurazione, misurazione.Data); if (misurazione.misurazione > diga.LivelloArancio || misurazione.misurazione > diga.LivelloRosso) { Allarme allarme = new Allarme(misurazione.IDMisurazione, misurazione.misurazione > diga.LivelloRosso); allarme.Insert(); gridAllarmi.Rows.Add(diga.Nome, misurazione.misurazione, misurazione.Data, misurazione.misurazione > diga.LivelloRosso); lastAlert = DateTime.Now; if (misurazione.misurazione > diga.LivelloRosso) // IF allarme rosso { ((System.Timers.Timer)sender).Interval = 10 * 60 * 1000; } else // SE allarme arancione { ((System.Timers.Timer)sender).Interval = 15 * 60 * 1000; } } if (lastAlert != null && (DateTime.Now - lastAlert).TotalMinutes > 45) // Se sono passati 45 minuti dall'ultimo allarme { ((System.Timers.Timer)sender).Interval = 30 * 60 * 1000; } } //if ((lastRead - DateTime.Now).TotalMinutes > 60) //{ // // BOH //} }
public static List <Diga> ElencoDighe() { List <Diga> dighe = new List <Diga>(); SqlConnection connection = Database.GetConnection(); SqlCommand command = connection.CreateCommand(); command.CommandText = "SELECT * FROM Dighe"; using (SqlDataReader reader = command.ExecuteReader()) { while (reader.Read()) { Diga diga = new Diga(reader[0].ToString()); diga.LivelloArancio = Convert.ToDouble(reader["LivelloArancio"]); diga.LivelloRosso = Convert.ToDouble(reader["LivelloRosso"]); dighe.Add(diga); } } return(dighe); }