Merge pull request from spees/master

refactored memtemp so it actually works
This commit is contained in:
evilsocket 2019-10-20 14:17:55 +02:00 committed by GitHub
commit a3a4854427
2 changed files with 36 additions and 52 deletions
pwnagotchi
defaults.yml
plugins/default

@ -70,8 +70,9 @@ main:
netmask: 24 netmask: 24
interval: 1 # check every x minutes for device interval: 1 # check every x minutes for device
share_internet: false share_internet: false
memtemp: # Display memory usage and cpu temperature on screen memtemp: # Display memory usage, cpu load and cpu temperature on screen
enabled: false enabled: false
orientation: horizontal # horizontal/vertical
# monitor interface to use # monitor interface to use
iface: mon0 iface: mon0
# command to run to bring the mon interface up in case it's not up already # command to run to bring the mon interface up in case it's not up already

@ -1,6 +1,6 @@
# tempmem shows memory infos and cpu temperature # memtemp shows memory infos and cpu temperature
# #
# totalmem usedmem freemem cputemp # mem usage, cpu load, cpu temp
# #
############################################################### ###############################################################
# #
@ -10,71 +10,54 @@
# - removed the label so we wont waste screen space # - removed the label so we wont waste screen space
# - Updated version to 1.0.1 # - Updated version to 1.0.1
# #
# 20-10-2019 by spees <speeskonijn@gmail.com>
# - Refactored to use the already existing functions
# - Now only shows memory usage in percentage
# - Added CPU load
# - Added horizontal and vertical orientation
#
############################################################### ###############################################################
__author__ = 'https://github.com/xenDE' __author__ = 'https://github.com/xenDE'
__version__ = '1.0.1' __version__ = '1.0.1'
__name__ = 'memtemp' __name__ = 'memtemp'
__license__ = 'GPL3' __license__ = 'GPL3'
__description__ = 'A plugin that will add a memory and temperature indicator' __description__ = 'A plugin that will display memory/cpu usage and temperature'
import struct
from pwnagotchi.ui.components import LabeledValue from pwnagotchi.ui.components import LabeledValue
from pwnagotchi.ui.view import BLACK from pwnagotchi.ui.view import BLACK
import pwnagotchi.ui.fonts as fonts import pwnagotchi.ui.fonts as fonts
import pwnagotchi
import subprocess
import logging
import time OPTIONS = dict()
class MEMTEMP:
# set the minimum seconds before refresh the values
refresh_wait = 30
refresh_ts_last = time.time() - refresh_wait
def __init__(self):
# only import when the module is loaded and enabled
import os
def get_temp(self):
try:
temp = os.popen('/opt/vc/bin/vcgencmd measure_temp').readlines()[0].split('=')[1].replace("\n", '').replace("'","")
return 't:' + temp
except:
return 't:-'
# cpu:37.4C
def get_mem_info(self):
try:
# includes RAM + Swap Memory:
# total, used, free = map(int, os.popen('free -t -m').readlines()[-1].split()[1:])
# without Swap, only real memory:
total, used, free = map(int, os.popen('free -t -m').readlines()[-3].split()[1:4])
return "\nT:"+str(total)+"M U:"+str(used)+"M\nF:"+str(free)+"M"
except:
return "\nT:- U:-\nF:- "
# tm:532 um:82 fm:353
memtemp = None
def on_loaded(): def on_loaded():
global memtemp logging.info("memtemp plugin loaded.")
memtemp = MEMTEMP()
def mem_usage():
return int(pwnagotchi.mem_usage() * 100)
def cpu_load():
return int(pwnagotchi.cpu_load() * 100)
def on_ui_setup(ui): def on_ui_setup(ui):
ui.add_element('memtemp', LabeledValue(color=BLACK, label='', value='\nT:- U:-\nF:- -', position=(ui.width() / 2 + 17, ui.height() / 2), if OPTIONS['orientation'] == "horizontal":
label_font=fonts.Bold, text_font=fonts.Medium)) ui.add_element('memtemp', LabeledValue(color=BLACK, label='', value='mem cpu temp\n - - -', position=(ui.width() / 2 + 30, ui.height() /2 + 15),
label_font=fonts.Small, text_font=fonts.Small))
elif OPTIONS['orientation'] == "vertical":
ui.add_element('memtemp', LabeledValue(color=BLACK, label='', value=' mem:-\n cpu:-\ntemp:-', position=(ui.width() / 2 + 55, ui.height() /2),
label_font=fonts.Small, text_font=fonts.Small))
def on_ui_update(ui): def on_ui_update(ui):
if time.time() > memtemp.refresh_ts_last + memtemp.refresh_wait: if OPTIONS['orientation'] == "horizontal":
ui.set('memtemp', "%s %s" % (memtemp.get_mem_info(), memtemp.get_temp())) ui.set('memtemp', " mem cpu temp\n %s%% %s%% %sc" % (mem_usage(), cpu_load(), pwnagotchi.temperature()))
memtemp.refresh_ts_last = time.time()
elif OPTIONS['orientation'] == "vertical":
ui.set('memtemp', " mem:%s%%\n cpu:%s%%\ntemp:%sc" % (mem_usage(), cpu_load(), pwnagotchi.temperature()))