Exemple #1
0
        static void Main(string[] args)
        {
            bool dataCorrupt = false;

            while (true)
            {
                try
                {
                    TcpListener serverSocket = new TcpListener(IPAddress.Any, 350);
                    TcpClient   clientSocket = default(TcpClient);
                    serverSocket.Stop();
                    serverSocket.Start();

                    Console.WriteLine(" >> Service beschikbaar.");
                    clientSocket = serverSocket.AcceptTcpClient();

                    Console.WriteLine(" >> Verbinding met cliënt aanvaarden.");

                    NetworkStream netwerkStream = clientSocket.GetStream();
                    byte[]        bytesIn       = new byte[clientSocket.ReceiveBufferSize];

                    netwerkStream.Read(bytesIn, 0, clientSocket.ReceiveBufferSize);

                    string clientData = Encoding.ASCII.GetString(bytesIn);

                    //string clientData = "@vochtigheid&temp&licht&CO2&51,392574&4,474912&010619 15164200&arthur$";
                    clientData = clientData.TrimStart('@');
                    clientData = clientData.Substring(0, clientData.IndexOf("$"));
                    string[] data = clientData.Split(new char[] { '&' });

                    foreach (string str in data)
                    {
                        if (str == null)
                        {
                            dataCorrupt = true;
                            break;
                        }
                    }

                    if (!dataCorrupt)
                    {
                        try
                        {
                            Console.WriteLine(" >> Data ontvangen van client: {0} {1} {2} {3} {4} {5} {6}", data[0], data[1], data[2], data[3], data[4], data[5], data[6]);
                            string vochtigheid  = data[0];
                            string temperatuur  = data[1];
                            string lichtsterkte = data[2];
                            string CO2          = data[3];
                            string breedtegraad = data[4].Replace('.', ',');
                            string lengtegraad  = data[5].Replace('.', ',');

                            if (data[6].Length >= 12)
                            {
                                data[6] = data[6].Insert(1, "-");
                                data[6] = data[6].Insert(4, "-");
                                data[6] = data[6].Insert(10, ":");
                                data[6] = data[6].Insert(13, ":");
                                data[6] = data[6].Insert(16, ":");
                            }
                            string time = data[6];
                            string user = data[7];

                            // START API QUERY
                            string query = string.Format("json?key=2dacfb3978c248c497fffefc37f76ca4&q={0}%2C+{1}&pretty=1&no_annotations=1", breedtegraad, lengtegraad);
                            string result;

                            Console.WriteLine(" >> Making API Call...");
                            Gemeente.GemeenteData gm = new Gemeente.GemeenteData();

                            using (var client = new HttpClient(new HttpClientHandler {
                                AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate
                            }))
                            {
                                client.BaseAddress = new Uri("https://api.opencagedata.com/geocode/v1/");
                                HttpResponseMessage response = client.GetAsync(query).Result;
                                response.EnsureSuccessStatusCode();
                                result = response.Content.ReadAsStringAsync().Result;
                            }
                            JsonConvert.PopulateObject(result, gm);
                            // END API QUERY

                            string gemeente = gm.results[0].components.postcode;
                            Console.WriteLine(">> Plaats: {0}", gemeente);

                            AddData(vochtigheid, temperatuur, lichtsterkte, CO2, breedtegraad, lengtegraad, time, user, gemeente);
                        }
                        catch (Exception)
                        {
                            //.WriteLine(error);
                        }
                    }
                    else
                    {
                        Console.WriteLine(">> Data corrupt: {0} {1} {2} {3} {4} {5} {6}", data[0], data[1], data[2], data[3], data[4], data[5], data[6]);
                    }

                    netwerkStream.Flush();

                    Console.WriteLine(" >> ");
                    clientSocket.Close();
                    serverSocket.Stop();
                }
                catch (Exception error)
                {
                    Console.WriteLine(error.Message);
                }
            }
        }
Exemple #2
0
    public void AddSD(string data)
    {
        string DataString  = data;
        bool   dataCorrupt = false;

        string[] DataArray;

        try
        {
            //split string from DATALOG.txt
            DataArray = DataString.Split(new char[] { '&' });

            for (int x = 0; x < DataArray.Length - 1; x++)
            {
                if (DataArray[x + 4] == "1000.000000" || DataArray[x + 5] == "1000.000000")
                {
                    dataCorrupt = true;
                }
                if (dataCorrupt == false)
                {
                    if (DataArray[x + 6].Length == 13)
                    {
                        DataArray[x + 6] = DataArray[x + 6].Insert(2, "-");
                        DataArray[x + 6] = DataArray[x + 6].Insert(5, "-");
                        DataArray[x + 6] = DataArray[x + 6].Insert(11, ":");
                        DataArray[x + 6] = DataArray[x + 6].Insert(14, ":");
                        DataArray[x + 6] = DataArray[x + 6].Insert(17, ":");
                    }
                    else if (DataArray[x + 6].Length == 14)
                    {
                        DataArray[x + 6] = DataArray[x + 6].Insert(1, "-");
                        DataArray[x + 6] = DataArray[x + 6].Insert(4, "-");
                        DataArray[x + 6] = DataArray[x + 6].Insert(10, ":");
                        DataArray[x + 6] = DataArray[x + 6].Insert(13, ":");
                        DataArray[x + 6] = DataArray[x + 6].Insert(16, ":");
                    }

                    DataArray[x + 4] = DataArray[x + 4].Replace('.', ',');
                    DataArray[x + 5] = DataArray[x + 5].Replace('.', ',');
                }

                string query = string.Format("json?key=2dacfb3978c248c497fffefc37f76ca4&q={0}%2C+{1}&pretty=1&no_annotations=1", DataArray[x + 4], DataArray[x + 5]);
                string result;

                Console.WriteLine("Making API Call...");
                Gemeente.GemeenteData gm = new Gemeente.GemeenteData();

                using (var client = new HttpClient(new HttpClientHandler {
                    AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate
                }))
                {
                    client.BaseAddress = new Uri("https://api.opencagedata.com/geocode/v1/");
                    HttpResponseMessage response = client.GetAsync(query).Result;
                    response.EnsureSuccessStatusCode();
                    result = response.Content.ReadAsStringAsync().Result;
                }
                JsonConvert.PopulateObject(result, gm);

                AddData(DataArray[x], DataArray[x + 1], DataArray[x + 2], DataArray[x + 3], DataArray[x + 4], DataArray[x + 5], DataArray[x + 6], DataArray[x + 7], gm.results[0].components.postcode);
                x = x + 7;
            }
        }
        catch (Exception error)
        {
            Console.WriteLine(error.ToString());
        }
    }