make gps optional. Portduino almost works in sim!

This commit is contained in:
geeksville 2020-09-06 14:45:43 -07:00
parent 97ab07e05c
commit 2a067e7f6b
3 changed files with 9 additions and 5 deletions

View File

@ -251,6 +251,6 @@ lib_deps =
[env:linux] [env:linux]
platform = https://github.com/geeksville/platform-portduino.git platform = https://github.com/geeksville/platform-portduino.git
src_filter = ${env.src_filter} -<esp32/> -<nimble/> -<nrf52/> src_filter = ${env.src_filter} -<esp32/> -<nimble/> -<nrf52/>
build_flags = ${arduino_base.build_flags} build_flags = ${arduino_base.build_flags} -O0
framework = arduino framework = arduino
board = linux_x86_64 board = linux_x86_64

View File

@ -268,7 +268,10 @@ void setup()
gps = new NEMAGPS(); gps = new NEMAGPS();
gps->setup(); gps->setup();
#endif #endif
if (gps)
gpsStatus->observe(&gps->newStatus); gpsStatus->observe(&gps->newStatus);
else
DEBUG_MSG("Warning: No GPS found - running without GPS\n");
nodeStatus->observe(&nodeDB.newStatus); nodeStatus->observe(&nodeDB.newStatus);
service.init(); service.init();
@ -362,6 +365,7 @@ void loop()
{ {
uint32_t msecstosleep = 1000 * 30; // How long can we sleep before we again need to service the main loop? uint32_t msecstosleep = 1000 * 30; // How long can we sleep before we again need to service the main loop?
if (gps)
gps->loop(); // FIXME, remove from main, instead block on read gps->loop(); // FIXME, remove from main, instead block on read
router.loop(); router.loop();
powerFSM.run_machine(); powerFSM.run_machine();

View File

@ -67,7 +67,7 @@ void MeshService::init()
sendOwnerPeriod.setup(); sendOwnerPeriod.setup();
nodeDB.init(); nodeDB.init();
assert(gps); if (gps)
gpsObserver.observe(&gps->newStatus); gpsObserver.observe(&gps->newStatus);
packetReceivedObserver.observe(&router.notifyPacketReceived); packetReceivedObserver.observe(&router.notifyPacketReceived);
} }