public object Create(object p) { try { DadoColetado r = (context.DadoColetado.Add((DadoColetado)p)).Entity; context.SaveChanges(); Program.connection.StartAsync().ContinueWith(task => { if (task.IsFaulted) { Console.WriteLine("There was an error opening the connection:{0}", task.Exception.GetBaseException()); } else { string valorLido = ((DadoColetado)p).ValorLido.ToString() + DateTime.Now.Second; string medidor = ((DadoColetado)p).Hwid; string tipoMedida = ((Grandeza) new GrandezaRepository(new LPTContext()).Read(((DadoColetado)p).TipoDeGrandeza)).Descricao; Program.connection.InvokeAsync <string>("SendMessage", medidor, tipoMedida, valorLido).ContinueWith(task1 => { if (task1.IsFaulted) { Console.WriteLine("There was an error calling send: {0}", task1.Exception.GetBaseException()); } }); } }).Wait(); Program.connection.StopAsync(); return(r); } catch (Exception ex) { Console.WriteLine(ex.Message); return(null); } }
public IActionResult Update(int IdDadoColetado, [FromBody] DadoColetado newObject) { try { var c = repositorio.Update(IdDadoColetado, newObject); return(this.Ok(c)); } catch (Exception ex) { Console.WriteLine(ex.Message); return(BadRequest()); } }
public IActionResult Create([FromBody] DadoColetado t) { try { var c = repositorio.Create(t); Console.WriteLine("ok "); return(this.Ok(c)); } catch (Exception) { Console.WriteLine("erro"); return(BadRequest()); } }
public IActionResult Create([FromBody] DadoColetado t) { try { t.Experimento = Program.experimentoAtivo; // Os dados sao recebidos e o idExperimento é "settado" com base no experimento ativo var c = repositorio.Create(t); Console.WriteLine("ok "); return(this.Ok(c)); } catch (Exception) { Console.WriteLine("erro"); return(BadRequest()); } }
public object Read(int idDadoColetado) { try { DadoColetado r = (from p in context.DadoColetado where p.IdDadoColetado == idDadoColetado select p).FirstOrDefault <DadoColetado>(); return(r); } catch (Exception ex) { Console.WriteLine(ex.Message); return(null); } }
public object Update(int idDadoColetado, object newObject) { try { DadoColetado r = (from p in context.DadoColetado where p.IdDadoColetado == idDadoColetado select p).FirstOrDefault <DadoColetado>(); foreach (var att in ((DadoColetado)newObject).GetType().GetProperties()) { if (!att.Name.Equals("idDadoColetado")) { r.GetType().GetProperty(att.Name).SetValue(r, att.GetValue(newObject)); } } context.Entry(r).State = Microsoft.EntityFrameworkCore.EntityState.Modified; context.SaveChanges(); return(r); } catch (Exception ex) { Console.WriteLine(ex.Message); return(null); } }
private static void EnviaDados() { while (true) { //simula a leitura dos dados a cada 1000 milisegundos Thread.Sleep(1000); switch (((SensorSettings)sensorSettingsRepo.Read()).State) { //verifica o estado de operacao do medidor case 0: //offline - standby { //System.Console.Clear(); break; } case 1: //on - enviando dados ao servidor de dados { var temp = new DadoColetado(); temp.Experimento = 0; temp.ColetadoEm = DateTime.Now; temp.Hwid = ((SensorSettings)sensorSettingsRepo.Read()).HWID; var valorReal = 0.0; /* * converte o valor lido em valor real, assumindo que seja um polinomio A*x + B*x^2 + C*x^3 etc etc * OS coeficientes sao os elementos da lista CalibrationParameters, os expoentes sao os indices dos elementos na lista e o X é * a variavel ValorLido. * * caso polinomios nao sejam a melhor aproximacao, uma nova abordagem deve ser feita e implementada aqui! */ foreach (var coef in sensorSettings.CalibrationParameters) { int idx = sensorSettings.CalibrationParameters.ToList().IndexOf(coef); double pot = Math.Pow(Int32.Parse(DadoLido), idx); valorReal += coef * pot; } // fim da funcao que converte valorlido em valor real temp.ValorLido = valorReal; temp.IdDadoColetado = 0; temp.TipoDeGrandeza = ((SensorSettings)sensorSettingsRepo.Read()).OperationType; client.Headers["Content-type"] = "application/json"; MemoryStream ms = new MemoryStream(); DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(DadoColetado)); ser.WriteObject(ms, temp); byte[] data = client.UploadData( ((SensorSettings)sensorSettingsRepo.Read()).ServersIP + "/LPT/AcquiredData", "POST", ms.ToArray() ); ms = new MemoryStream(data); DadoColetado returned = ser.ReadObject(ms) as DadoColetado; System.Console.WriteLine(returned.Experimento + " -- " + temp.Experimento); System.Console.WriteLine("Enviando " + ((SensorSettings)sensorSettingsRepo.Read()).OperationType + ":" + DadoLido); break; } case 2: //calibrate - enviando dados raw para o servidor de dados afim de realizar a calibracao do medidor { var temp = new DadoColetado(); temp.Experimento = 0; temp.ColetadoEm = DateTime.Now; temp.Hwid = ((SensorSettings)sensorSettingsRepo.Read()).HWID; temp.ValorLido = Int32.Parse(DadoLido); temp.IdDadoColetado = 0; temp.TipoDeGrandeza = ((SensorSettings)sensorSettingsRepo.Read()).OperationType; client.Headers["Content-type"] = "application/json"; MemoryStream ms = new MemoryStream(); DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(DadoColetado)); ser.WriteObject(ms, temp); byte[] data = client.UploadData( ((SensorSettings)sensorSettingsRepo.Read()).ServersIP + "/LPT/AcquiredData", "POST", ms.ToArray() ); ms = new MemoryStream(data); DadoColetado returned = ser.ReadObject(ms) as DadoColetado; System.Console.WriteLine(returned.Experimento + " -- " + temp.Experimento); System.Console.WriteLine("Enviando " + ((SensorSettings)sensorSettingsRepo.Read()).OperationType + ":" + DadoLido); break; } } } }