コード例 #1
0
ファイル: Program.cs プロジェクト: dkataskin/bstrkr
        private static void ListVehicles(IBus13RouteDataService service)
        {
            var routes   = service.GetRoutesAsync().Result;
            var vehicles = service.GetVehicleLocationsAsync(routes, GeoRect.EarthWide, 0).Result;

            foreach (var update in vehicles.Updates)
            {
                Console.WriteLine(
                    "id:{0} type:{1} route:{2}",
                    update.Vehicle.Id,
                    update.Vehicle.Type,
                    update.Vehicle.RouteInfo.RouteNumber);
            }
        }
コード例 #2
0
ファイル: Program.cs プロジェクト: dkataskin/bstrkr
        private static void Trace(IBus13RouteDataService service, string vehicleId, IVehicleTraceOutputWriter outputWriter)
        {
            Console.WriteLine("Retrieving routes...");
            var routes = service.GetRoutesAsync().Result;

            Console.WriteLine("{0} routes found...", routes.Count());

            Console.WriteLine("Tracing {0}...", vehicleId);
            _traceTask = Task.Factory.StartNew(() =>
            {
                var lastUpdate = DateTime.MinValue;
                var timestamp  = 0;
                while (true)
                {
                    ClearLine();
                    Console.Write("retrieving vehicle locations...");
                    var response = service.GetVehicleLocationsAsync(routes, GeoRect.EarthWide, timestamp).Result;

                    var update = response.Updates.FirstOrDefault(x => x.Vehicle.Id.Equals(vehicleId));
                    if (update != null)
                    {
                        lastUpdate = DateTime.Now;

                        ClearLine();
                        Console.WriteLine(
                            "id:{0}, lat:{1}, lng:{2}, upd: {3}, rcvd:{4}",
                            vehicleId,
                            update.Vehicle.Location.Position.Latitude,
                            update.Vehicle.Location.Position.Longitude,
                            update.LastUpdate.ToString("u"),
                            lastUpdate.ToString("u"));

                        outputWriter.Write(update);
                    }

                    timestamp = response.Timestamp;

                    ClearLine();
                    Console.Write("waiting 10s...");
                    Task.Delay(System.TimeSpan.FromSeconds(10)).Wait();
                }
            }).ConfigureAwait(false);
        }