Exemplo n.º 1
0
 private async Task GeoReverseCodeGpsData(List <TLGpsDataEvent> gpsRessult)
 {
     foreach (var gpSdata in gpsRessult)
     {
         gpSdata.Address = await _reverseGeoCodingService.ReverseGoecode(gpSdata.Lat, gpSdata.Long);
     }
 }
Exemplo n.º 2
0
        private static async void ThreadProc(object state)
        {
            string        imei     = string.Empty;
            var           client   = ((TcpClient)state);
            NetworkStream nwStream = ((TcpClient)state).GetStream();

            byte[] buffer = new byte[client.ReceiveBufferSize];

            try
            {
                var gpsResult = new List <CreateTeltonikaGps>();
                while (true)
                {
                    int    bytesRead    = nwStream.Read(buffer, 0, client.ReceiveBufferSize) - 2;
                    string dataReceived = Encoding.ASCII.GetString(buffer, 2, bytesRead);
                    if (imei == string.Empty)
                    {
                        imei = dataReceived;
                        Console.WriteLine("IMEI received : " + dataReceived);

                        Byte[] b = { 0x01 };
                        nwStream.Write(b, 0, 1);
                        var command = new CreateBoxCommand();
                        command.Imei = imei;
                        await _endpoint.Result.Send(command);
                    }
                    else
                    {
                        int dataNumber = Convert.ToInt32(buffer.Skip(9).Take(1).ToList()[0]);
                        var parser     = new DevicesParser();
                        gpsResult.AddRange(parser.Decode(new List <byte>(buffer), imei));
                        var bytes = Convert.ToByte(dataNumber);
                        await nwStream.WriteAsync(new byte[] { 0x00, 0x0, 0x0, bytes }, 0, 4);

                        client.Close();
                    }

                    if (gpsResult.Count <= 0)
                    {
                        continue;
                    }
                    foreach (var gpSdata in gpsResult)
                    {
                        gpSdata.Address = await _reverseGeoCodingService.ReverseGoecode(gpSdata.Lat, gpSdata.Long);

                        Console.WriteLine("IMEI: " + imei + " Date: " + gpSdata.Timestamp + " latitude : " + gpSdata.Lat +
                                          " Longitude:" + gpSdata.Long + " Speed: " + gpSdata.Speed + " Direction:" + "" +
                                          " address " + gpSdata.Address + " milage :" + gpSdata.Mileage);
                        await _bus.Publish(gpSdata);
                    }
                    break;
                }
            }
            catch (Exception)
            {
                // Console.WriteLine(e);
                client.Close();
                //throw;
            }

            //throw new NotImplementedException();
        }