|  |  |  | #include <QApplication>
 | 
					
						
							|  |  |  | #include <QCommandLineParser>
 | 
					
						
							|  |  |  | #include <QDebug>
 | 
					
						
							|  |  |  | #include <QThread>
 | 
					
						
							|  |  |  | #include <csignal>
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #include "selfdrive/ui/qt/util.h"
 | 
					
						
							|  |  |  | #include "selfdrive/ui/qt/maps/map_helpers.h"
 | 
					
						
							|  |  |  | #include "selfdrive/ui/navd/route_engine.h"
 | 
					
						
							|  |  |  | #include "selfdrive/ui/navd/map_renderer.h"
 | 
					
						
							|  |  |  | #include "selfdrive/hardware/hw.h"
 | 
					
						
							|  |  |  | #include "selfdrive/common/params.h"
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void sigHandler(int s) {
 | 
					
						
							|  |  |  |   qInfo() << "Shutting down";
 | 
					
						
							|  |  |  |   std::signal(s, SIG_DFL);
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   qApp->quit();
 | 
					
						
							|  |  |  | }
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | int main(int argc, char *argv[]) {
 | 
					
						
							|  |  |  |   qInstallMessageHandler(swagLogMessageHandler);
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   QApplication app(argc, argv);
 | 
					
						
							|  |  |  |   std::signal(SIGINT, sigHandler);
 | 
					
						
							|  |  |  |   std::signal(SIGTERM, sigHandler);
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   QCommandLineParser parser;
 | 
					
						
							|  |  |  |   parser.setApplicationDescription("Navigation server. Runs stand-alone, or using pre-computer route");
 | 
					
						
							|  |  |  |   parser.addHelpOption();
 | 
					
						
							|  |  |  |   parser.process(app);
 | 
					
						
							|  |  |  |   const QStringList args = parser.positionalArguments();
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   RouteEngine* route_engine = new RouteEngine();
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   if (Params().getBool("NavdRender")) {
 | 
					
						
							|  |  |  |     MapRenderer * m = new MapRenderer(get_mapbox_settings());
 | 
					
						
							|  |  |  |     QObject::connect(route_engine, &RouteEngine::positionUpdated, m, &MapRenderer::updatePosition);
 | 
					
						
							|  |  |  |     QObject::connect(route_engine, &RouteEngine::routeUpdated, m, &MapRenderer::updateRoute);
 | 
					
						
							|  |  |  |   }
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   return app.exec();
 | 
					
						
							|  |  |  | }
 |