1007 Commits

Author SHA1 Message Date
Ian McEwen
d57186d1e4 protobufs: v2.4.0 2024-08-21 19:07:35 -07:00
Ian McEwen
40d03a6ea1 mess with more stuff to try to make powermon optional 2024-08-11 10:19:38 -07:00
Ian McEwen
6757f5cdb5 slog depends on powermon, so move it within the optional block as well 2024-08-11 10:16:22 -07:00
Ian McEwen
72de803195 Attempt to make powermon stuff optional, hopefully allowing pypi release 2024-08-11 10:08:40 -07:00
Ian McEwen
5366ddf770 Add/update some types to be at least as backwards-compatible as we can be 2024-08-08 09:43:43 -07:00
Ian McEwen
fd4282b401 Merge pull request #636 from geeksville/pr-powermon2
final powermon / power analysis reporting changes
2024-08-08 09:36:16 -07:00
Ian McEwen
e84a3cb468 appease pylint 2024-08-04 12:26:20 -07:00
Ian McEwen
2ae18c1903 Clarify documentation of position options slightly 2024-08-04 12:22:57 -07:00
Kevin Hester
8096d10276 Do code coverage testing on analysis (using stored device data) 2024-08-01 10:07:48 -07:00
Kevin Hester
bf71e09091 get test coverage on powermon and slog stuff 2024-07-31 15:46:37 -07:00
Kevin Hester
4906f79be5 fix linter warnings (and alas: reformat __main__.py)
main.py's only real change is
        log_set: Optional[LogSet] = None  # type: ignore[annotation-unchecked]
Everything else is the automated reformatting to match our trunk formatting
rules.
2024-07-31 15:19:16 -07:00
Kevin Hester
a4715171e4 Add basic arg parsing to the meshtastic analysis stuff 2024-07-31 14:41:47 -07:00
Kevin Hester
c8eb202c15 cleanup and document analysis stuff 2024-07-31 13:40:29 -07:00
Kevin Hester
ea0c7abc3d Merge remote-tracking branch 'root/master' into pr-powermon2
# Conflicts:
#	meshtastic/mesh_interface.py
2024-07-23 16:57:08 -07:00
Kevin Hester
66f83835d9 use bootstrap for layout 2024-07-11 16:56:01 -07:00
Kevin Hester
39e03dbad8 add beginnings of analysis viewer (and fix poetry extras usage for tunnel) 2024-07-11 16:39:05 -07:00
Kevin Hester
4dbf9b94e9 do a new power measurement every 2ms(ish) 2024-07-11 12:27:16 -07:00
Kevin Hester
b464e90368 make ppk2 power meter threadsafe 2024-07-11 12:19:16 -07:00
Kevin Hester
3c76e19c33 poll for power readings much more rapidly - traces now look great 2024-07-11 11:49:12 -07:00
Kevin Hester
7e007e7e24 make ArrowWriter thread safe 2024-07-11 11:48:53 -07:00
Ian McEwen
fd9b691b74 Include uptime_seconds in sendTelemetry and print upon response 2024-07-10 17:29:42 -07:00
Kevin Hester
628a4cb9be Always use IDENTICAL timestamps so the power and slog reports can match 2024-07-10 16:44:56 -07:00
Kevin Hester
d0db5cae13 Store much higher (time) res power readings any time we've just fetched
new readings.  This allows for better plotting/analysis but still keeping
runtime polling low.
2024-07-10 16:44:27 -07:00
Kevin Hester
043530afca fix linter warnings 2024-07-08 09:17:52 -07:00
Kevin Hester
eb45c16f89 Merge remote-tracking branch 'root/master' into pr-powermon2
# Conflicts:
#	meshtastic/mesh_interface.py
2024-07-08 08:53:45 -07:00
Ian McEwen
865bb6a497 Remove python 3.8 warning. protobufs: v2.3.15 (brought in by merge) 2024-07-07 21:00:26 -07:00
Ian McEwen
c04943308a Merge pull request #607 from geeksville/pr-powermon
PowerMon/StructuredLogging support
2024-07-07 20:56:28 -07:00
Ian McEwen
ec4e521001 Add a warning about this being the last version supporting python 3.8 2024-07-07 20:49:38 -07:00
Ian McEwen
19d7e914bc Merge pull request #629 from ppicazo/trace_route_hop_fix
Fix for hopLimit param on sendTraceRoute not being respected
2024-07-07 20:43:22 -07:00
Paul Picazo
64bb668251 Fix line too long 2024-07-07 20:30:19 -07:00
Kevin Hester
8c63f4dec6 always write using correct schema for the file 2024-07-07 15:17:26 -07:00
Kevin Hester
9297732806 fix possible race with thread shutdown. somehow receiveThread can be null 2024-07-07 15:17:09 -07:00
Kevin Hester
a6c3e5cba8 properly parse all structured log messages 2024-07-07 14:58:30 -07:00
Kevin Hester
d35423a816 strip \n if it was incorrectly added by the device
+        # Devices should _not_ be including a newline at the end of each log-line str (especially when
+        # encapsulated as a LogRecord).  But to cope with old device loads, we check for that and fix it here:
+        if line.endswith("\n"):
+            line = line[:-1]

Also: auto reformatting per our trunk formatting rules.
2024-07-07 14:57:44 -07:00
Kevin Hester
84b4188211 Gracefully cope with exceptions during power-stress test 2024-07-07 14:07:27 -07:00
Kevin Hester
72e0f2a92b Don't silently ingnore malformed protobufs (the \0 in the device side
was at fault)
2024-07-07 13:47:02 -07:00
Kevin Hester
ecbda74bd6 make PPK2 power supply monitor work in supply-mode 2024-07-06 16:41:33 -07:00
Kevin Hester
fb191092fb gracefully shutdown when BLE device connect fails 2024-07-06 16:27:20 -07:00
Kevin Hester
1e447cb52a also store raw log messages in the slog file. 2024-07-06 15:26:15 -07:00
Kevin Hester
462d9a83df Automatically extract and store all known structured-logs 2024-07-06 15:07:13 -07:00
Kevin Hester
4c02114b75 fix null pointer if closing an interface which was already shutting down 2024-07-06 13:43:19 -07:00
Kevin Hester
42e069455e transition through power stress states and capture data
meshtastic-py3.12kevinh@kdesktop:~/development/meshtastic/meshtastic-python$  cd /home/kevinh/development/meshtastic/meshtastic-python ; /usr/bin/env /home/kevinh/.cache/pypoetry/virtualenvs/meshtastic-l6tP90xw-py3.12/bin/python /home/kevinh/.vscode/extensions/ms-python.debugpy-2024.6.0-linux-x64/bundled/libs/debugpy/adapter/../../debugpy/launcher 52521 -- -m meshtastic --slog --power-ppk2-meter --power-stress --power-voltage 3.3
INFO file:ppk2.py __init__ line:52 Connected to Power Profiler Kit II (PPK2)
INFO file:__main__.py create_power_meter line:1022 Setting power supply to 3.3 volts
Connected to radio
INFO file:slog.py __init__ line:183 Writing slogs to /home/kevinh/.local/share/meshtastic/slogs/20240706-123803
INFO file:stress.py syncPowerStress line:68 Sending power stress command PRINT_INFO
INFO file:stress.py run line:105 Running power stress test 48 for 5.0 seconds
INFO file:stress.py syncPowerStress line:68 Sending power stress command LED_ON
INFO file:stress.py run line:105 Running power stress test 80 for 5.0 seconds
INFO file:stress.py syncPowerStress line:68 Sending power stress command BT_OFF
INFO file:stress.py run line:105 Running power stress test 81 for 5.0 seconds
INFO file:stress.py syncPowerStress line:68 Sending power stress command BT_ON
INFO file:stress.py run line:105 Running power stress test 34 for 5.0 seconds
INFO file:stress.py syncPowerStress line:68 Sending power stress command CPU_FULLON
INFO file:stress.py run line:105 Running power stress test 32 for 5.0 seconds
INFO file:stress.py syncPowerStress line:68 Sending power stress command CPU_IDLE
INFO file:stress.py run line:105 Running power stress test 33 for 5.0 seconds
INFO file:stress.py syncPowerStress line:68 Sending power stress command CPU_DEEPSLEEP
INFO file:stress.py run line:108 Power stress test complete.
INFO file:slog.py close line:201 Closing slogs in /home/kevinh/.local/share/meshtastic/slogs/20240706-123803
WARNING file:arrow.py close line:67 Discarding empty file: /home/kevinh/.local/share/meshtastic/slogs/20240706-123803/slog.arrow
INFO file:arrow.py close line:70 Compressing log data into /home/kevinh/.local/share/meshtastic/slogs/20240706-123803/power.feather
meshtastic-py3.12kevinh@kdesktop:~/development/meshtastic/meshtastic-python$
2024-07-06 12:43:34 -07:00
Ian McEwen
15b03b704c Correctly detect LocalConfig vs. LocalModuleConfig, again. fixes #630 2024-07-03 20:35:58 -07:00
Kevin Hester
63327986b4 fix incorrect Vid - thanks @ianmcorvidae for notixing.
0x04b4 is cypress semi but commonly used in Chinese oscopes (like mine).
So it was supposed to be a blacklist not a whitelist!
2024-07-03 20:11:59 -07:00
Kevin Hester
5695ec7102 change --slog to use nargs 2024-07-03 11:00:42 -07:00
Kevin Hester
ae2ef78560 fix linter warnings
(note: the linter test for min/max is buggy so disabled)
2024-07-03 09:57:24 -07:00
Kevin Hester
2f5a736e1f Merge remote-tracking branch 'root/master' into pr-powermon
# Conflicts:
#	meshtastic/ble_interface.py
#	meshtastic/protobuf/mesh_pb2.py
#	meshtastic/protobuf/powermon_pb2.py
#	meshtastic/protobuf/powermon_pb2.pyi
2024-07-03 09:22:45 -07:00
Paul Picazo
775108b47b Hop limit param on sendTraceRoute fix 2024-07-02 10:09:58 -07:00
Ian McEwen
a14cc4f573 Update heartbeat interval to a fixed 300 seconds 2024-07-02 09:58:45 -07:00
Ian McEwen
dc5f59260f protobufs: v2.3.14 2024-07-02 09:52:47 -07:00