public double OBU1_GetVehicleCurrentSpeed(string vehID, [FromBody] string address) { if (string.IsNullOrEmpty(address)) { address = "http://127.0.0.1:8080/TRAAS_WS"; //default address } TraasReference.ServiceImplClient client = new TraasReference.ServiceImplClient(); client.Endpoint.Address = new EndpointAddress(address); try { client.Open(); if (isVehicleActive(address, vehID)) { double vehicleSpeed = client.Vehicle_getSpeed(vehID); return(vehicleSpeed); } throw new FaultException("Vehicle with that ID is not in simulation."); } catch (FaultException e) { client.Abort(); throw new FaultException(e.Message); } catch (Exception e) { throw new FaultException(e.InnerException.ToString()); } finally { client.Close(); } }
public void Obu1_PostAverageSpeed(string vehID, [FromBody] string address) { MySqlConnection conn = new MySqlConnection(connStr); List <double> seznam = new List <double>(); try { conn.Open(); if (string.IsNullOrEmpty(address)) { address = "http://127.0.0.1:8080/TRAAS_WS"; //default address } TraasReference.ServiceImplClient client = new TraasReference.ServiceImplClient(); client.Endpoint.Address = new EndpointAddress(address); try { client.Open(); int counter = 0; while (counter < 5) { if (isVehicleActive(address, vehID)) { seznam.Add(client.Vehicle_getSpeed(vehID)); } Thread.Sleep(3000); counter++; } } catch (FaultException e) { client.Abort(); throw new FaultException(e.Message); } catch (Exception e) { throw new FaultException(e.InnerException.ToString()); } finally { client.Close(); } if (seznam.Count > 0) { double sum = 0; double average; foreach (double d in seznam) { sum += d; } average = sum / seznam.Count; MySqlCommand command = new MySqlCommand("INSERT INTO averagespeed (veh_id, average_speed, address) VALUES (@Parname1, @Parname2, @Parname3)", conn); command.Parameters.Add("@Parname1", MySqlDbType.String).Value = vehID; command.Parameters.Add("@Parname2", MySqlDbType.Double).Value = average; command.Parameters.Add("@Parname3", MySqlDbType.String).Value = address; command.ExecuteNonQuery(); } } catch (Exception ex) { Console.WriteLine(ex.ToString()); } finally { conn.Close(); } }