-
Notifications
You must be signed in to change notification settings - Fork 899
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* Turn off vscode cmake prompt - we don't use cmake on meshtastic * Add rak4631_dap variant for debugging with NanoDAP debug probe device. * The rak device can also run freertos (which is underneath nrf52 arduino) * Add semihosting support for nrf52840 devices Initial platformio.ini file only supports rak4630 Default to non TCP for the semihosting log output for now... Fixes #4135 * powermon WIP (for #4136 ) * oops - mean't to mark the _dbg variant as an 'extra' board. * powermon wip * Make serial port on wio-sdk-wm1110 board work By disabling the (inaccessible) adafruit USB * Instrument (radiolib only for now) lora for powermon per #4136 * powermon gps support #4136 * Add CPU deep and light sleep powermon states #4136 * Change the board/swversion bootstring so it is a new "structured" log msg. * powermon wip * add example script for getting esp S3 debugging working Not yet used but I didn't want these nasty tricks to get lost yet. * Add PowerMon reporting for screen and bluetooth pwr. * make power.powermon_enables config setting work. * update to latest protobufs * fix bogus shellcheck warning * make powermon optional (but default enabled because tiny and no runtime impact) * tell vscode, if formatting, use whatever our trunk formatter wants without this flag if the user has set some other formatter (clang) in their user level settings, it will be looking in the wrong directory for the clang options (we want the options in .trunk/clang) Note: formatOnSave is true in master, which means a bunch of our older files are non compliant and if you edit them it will generate lots of formatting related diffs. I guess I'll start letting that happen with my future commits ;-). * add PowerStress module * nrf52 arduino is built upon freertos, so let platformio debug it * don't accidentally try to Segger ICE if we are using another ICE * clean up RedirectablePrint::log so it doesn't have three very different implementations inline. * remove NoopPrint - it is no longer needed * when talking to API clients via serial, don't turn off log msgs instead encapsuate them * fix the build - would loop forever if there were no files to send * don't use Segger code if not talking to a Segger debugger * when encapsulating logs, make sure the strings always has nul terminators * nrf52 soft device will watchdog if you use ICE while BT on... so have debugger disable bluetooth. * Important to not print debug messages while writing to the toPhone scratch buffer * don't include newlines if encapsulating log records as protobufs * update to latest protobufs (needed for powermon goo) * PowerStress WIP * fix linter warning
- Loading branch information
1 parent
8785adf
commit 8bca3e1
Showing
18 changed files
with
306 additions
and
23 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
# shellcheck shell=bash | ||
# (this minor script is actually shell agnostic, and is intended to be sourced rather than run in a subshell) | ||
|
||
# This is a little script you can source if you want to make ESP debugging work on a modern (24.04) ubuntu machine | ||
# It assumes you have built and installed python 2.7 from source with: | ||
# ./configure --enable-optimizations --enable-shared --enable-unicode=ucs4 | ||
# sudo make clean | ||
# make | ||
# sudo make altinstall | ||
|
||
export LD_LIBRARY_PATH=$HOME/packages/python-2.7.18/ | ||
export PYTHON_HOME=/usr/local/lib/python2.7/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
#include "PowerMon.h" | ||
#include "NodeDB.h" | ||
|
||
// Use the 'live' config flag to figure out if we should be showing this message | ||
static bool is_power_enabled(uint64_t m) | ||
{ | ||
return (m & config.power.powermon_enables) ? true : false; | ||
} | ||
|
||
void PowerMon::setState(_meshtastic_PowerMon_State state, const char *reason) | ||
{ | ||
#ifdef USE_POWERMON | ||
auto oldstates = states; | ||
states |= state; | ||
if (oldstates != states && is_power_enabled(state)) { | ||
emitLog(reason); | ||
} | ||
#endif | ||
} | ||
|
||
void PowerMon::clearState(_meshtastic_PowerMon_State state, const char *reason) | ||
{ | ||
#ifdef USE_POWERMON | ||
auto oldstates = states; | ||
states &= ~state; | ||
if (oldstates != states && is_power_enabled(state)) { | ||
emitLog(reason); | ||
} | ||
#endif | ||
} | ||
|
||
void PowerMon::emitLog(const char *reason) | ||
{ | ||
#ifdef USE_POWERMON | ||
// The nrf52 printf doesn't understand 64 bit ints, so if we ever reach that point this function will need to change. | ||
LOG_INFO("S:PM:0x%08lx,%s\n", (uint32_t)states, reason); | ||
#endif | ||
} | ||
|
||
PowerMon *powerMon; | ||
|
||
void powerMonInit() | ||
{ | ||
powerMon = new PowerMon(); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,34 @@ | ||
#pragma once | ||
#include "configuration.h" | ||
|
||
#include "meshtastic/powermon.pb.h" | ||
|
||
#ifndef MESHTASTIC_EXCLUDE_POWERMON | ||
#define USE_POWERMON // FIXME turn this only for certain builds | ||
#endif | ||
|
||
/** | ||
* The singleton class for monitoring power consumption of device | ||
* subsystems/modes. | ||
* | ||
* For more information see the PowerMon docs. | ||
*/ | ||
class PowerMon | ||
{ | ||
uint64_t states = 0UL; | ||
|
||
public: | ||
PowerMon() {} | ||
|
||
// Mark entry/exit of a power consuming state | ||
void setState(_meshtastic_PowerMon_State state, const char *reason = ""); | ||
void clearState(_meshtastic_PowerMon_State state, const char *reason = ""); | ||
|
||
private: | ||
// Emit the coded log message | ||
void emitLog(const char *reason); | ||
}; | ||
|
||
extern PowerMon *powerMon; | ||
|
||
void powerMonInit(); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.