Commit Graph
64 Commits
Author SHA1 Message Date
geeksville e40524baf0 begin moving comms glue from the old crufty BLE code to the new cleaner PhoneAPI class 2020-04-22 14:55:36 -07:00
geeksville 2fe145aed9 debugging goo 2020-04-17 18:48:37 -07:00
geeksville 62286fff52 0.4.1 release 2020-04-17 13:05:16 -07:00
geeksville 65406eaa08 mesh flooding seems to work pretty well! 2020-04-17 12:41:01 -07:00
geeksville ea24394110 add first cut of mesh naive flooding 2020-04-17 11:52:20 -07:00
geeksville f108c576a7 massive WIP updates to create a clean Router abstraction for mesh 2020-04-17 09:48:54 -07:00
geeksville 6eb74415ab protobuf changes as part of getting ready for mesh again 2020-04-16 17:32:36 -07:00
geeksville 0a6af936ed Get build (kinda, not really) running on a NRF52
Lots of NO_ESP32 to remove later...
2020-04-14 20:22:27 -07:00
geeksville 5c379c4a98 missing newline 2020-04-14 11:44:35 -07:00
geeksville 4757b6807e lots of changes:
* preflightSleep, notifySleep, notifyDeepSleep now allow arbitrary
drivers/devices/software to register for sleep notification.
* Use the proceeding to clean up MeshRadio - now the mesh radio is more
like an independent driver that doesn't care so much about other systems
* clean up MeshService so that it can work with zero MeshRadios added.
This is a prelude to supporting boards with multiple interfaces (wifi,
extra LORA radios etc) and allows development/testing in sim with a bare
ESP32 board
* Remove remaining ESP32 dependencies from the bare simulation target
this allows running on anything that implements the arduino API
2020-04-14 11:40:49 -07:00
geeksville 640cb3bf7f allow observers to return an error code to abort further processing
Will allow me to use observers to generalize the various hooks
that need to run to preflight sleep entry.
2020-04-10 12:40:44 -07:00
geeksville 6ad451eb5f move bluetooth code into something that is architecture specific...
because the ESP32 implementation will be different from NRF52
to make this possible I needed to decouple knowlege about bluetooth from
our mesh service.  Instead mesh service now uses the Obserable pattern
to let any interested consumer get notified of important mesh changes
(currently that is only bluetooth, but really we should do the same
thing for decoupling the GUI 'app' from the mesh service)

@girtsf would you mind reviewing my Observer changes? I haven't written
C++ code in a long time ;-)
2020-04-10 12:18:48 -07:00
geeksville 13ac686c96 minor doc cleanups 2020-04-05 13:58:38 -07:00
geeksville 7dabad1b70 don't let phones send down fatally invalid RadioConfig records
and if a phone did in the past, fixup the garbage we saved in flash
2020-03-30 16:10:11 -07:00
geeksville a0c97825e8 always use gps.isConnected to check for GPS, it is the only thing
guaranteed to be fresh and accurate
2020-03-27 12:32:18 -07:00
geeksville 12e67d3b30 add some debug output 2020-03-25 13:35:49 -07:00
geeksville 50d724780a make user presses ask other nodes for their latest status
see related bug
https://github.com/meshtastic/Meshtastic-esp32/issues/59
2020-03-25 13:09:12 -07:00
geeksville 32ac5ac9ae reformat everything
using @girtsf clang-format prefs settings.  This should allow us to turn
on auto format in our editors without causing spurious file changes.
2020-03-18 19:15:51 -07:00
geeksville 534691f0c2 Merge remote-tracking branch 'root/master'
# Conflicts:
#	src/main.cpp
#	src/screen.cpp
#	src/screen.h
2020-03-18 18:44:12 -07:00
geeksville c8b95f7691 oops - I broke compass display with my gps changes and didn't notice till
testing with two gps equipped devices.  fixed.
2020-03-18 18:34:22 -07:00
Girts Folkmanis daf8594b99 Screen cleanups and refactoring
Work towards separating out how Screen interacts with other stuff.
* `Screen` should now be thread-safe. All commands to it are put in a
  queue and handled in `doTask` from the `loop()` task.
* Break dependency from `BluetoothUtil` to `Screen` by changing the
  pairing request into a callback.
* All accesses to screen now happen through the class.
* Fix `drawRows` so that the text scrolls along with frame animations.
* Remove example code that wasn't used.
2020-03-18 18:11:35 -07:00
geeksville 5e55695862 fix build warning 2020-03-18 14:51:54 -07:00
geeksville ca8a25f585 Merge remote-tracking branch 'root/master' 2020-03-16 09:03:21 -07:00
Girts Folkmanis 7a4a1af332 TypedQueue: make functions return bools instead of BaseType_t
Minor cleanup to hide away some FreeRTOS bits.

Note: I believe src/CustomRF95.cpp:62 had a bug where it had the
condition inverted.
2020-03-15 19:29:04 -07:00
geeksville 74f7b7b622 print extra info the next time this error occurs 2020-03-15 16:57:21 -07:00
geeksville 4999da0824 Merge branch 'dev' into gps-sleep-mode
# Conflicts:
#	docs/software/TODO.md
#	platformio.ini
2020-03-13 18:48:38 -07:00
Kevin Hester 375804c9e4 (needs testing) fixed the following during a plane flight
* Have state machine properly enter deep sleep based on loss of mesh and phone comms.
* Default to enter deep sleep if no LORA received for two hours (indicates user has probably left the mesh).

Signed-off-by: Kevin Hester <kevinh@geeksville.com>
2020-03-03 13:31:44 -08:00
geeksville 877e312833 allow TBEAMs to provide approx GPS time to Heltec devices 2020-02-26 09:00:53 -08:00
geeksville 6eba792537 WIP - changing to a ublox aware GPS lib so I can put it in sleep 2020-02-22 19:08:16 -08:00
geeksville 045529d91f begin cleanup of sleep code for new state machine 2020-02-21 17:01:26 -08:00
geeksville 5f3e8b5309 unify periodic timers 2020-02-21 08:41:36 -08:00
geeksville b9438357b6 add support for network ping testing 2020-02-19 18:51:17 -08:00
geeksville bf347aad91 show users walking heading on the screen 2020-02-19 15:29:18 -08:00
geeksville f5a2596acf fix time scaling 2020-02-19 11:35:34 -08:00
geeksville cd4cd6fe56 progress on keeping gps off more 2020-02-19 10:53:09 -08:00
geeksville 67e0f5c184 use RTC time for my timestamp (works across deep sleep) 2020-02-19 07:58:51 -08:00
geeksville ae023a57e8 don't assert fail if the txfifo is full, just drop the packet 2020-02-18 20:17:11 -08:00
geeksville acce254685 Change RF95 to deliver packets straight from ISR and no polling for anything 2020-02-18 20:06:01 -08:00
geeksville 9481d9e95b loopback test support 2020-02-17 17:47:01 -08:00
geeksville f34c29a323 experiment with axp192 power management 2020-02-16 16:03:16 -08:00
geeksville 59aaffa3e5 show real received text messages in the gui 2020-02-12 19:58:44 -08:00
geeksville 53cc8f9da3 set rx_time in packets 2020-02-12 14:18:43 -08:00
geeksville e79c49d100 send network pings when the user does something with their device 2020-02-12 14:07:06 -08:00
geeksville 5aaae9c4fe we now use 13 different channel numbers 2020-02-11 12:05:46 -08:00
geeksville 9897e24453 fix reported alitude to be in meters 2020-02-10 16:44:43 -08:00
geeksville fb5b4af5be send user messages every 5 mins 2020-02-08 16:18:02 -08:00
geeksville 422e213d2a dynamic nodenum assignment now works 2020-02-08 12:42:54 -08:00
geeksville c6103ac5ef more rigorlessly pick our memory pool size 2020-02-08 10:00:15 -08:00
geeksville b2b832c608 nasty rxbuffer underfill bug fixed 2020-02-08 09:39:26 -08:00
geeksville 0c0d4025f1 use press to cycle between screens 2020-02-07 17:48:12 -08:00