Example #1
0
        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();
            }
        }
Example #2
0
        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();
            }
        }