refactored so it actually works
Signed-off-by: spees <speeskonijn@gmail.com>
This commit is contained in:
parent
2d7b6b54fe
commit
f52687642e
@ -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,80 @@
|
|||||||
# - 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 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():
|
||||||
|
out = subprocess.getoutput("free -m")
|
||||||
|
for line in out.split("\n"):
|
||||||
|
line = line.strip()
|
||||||
|
if line.startswith("Mem:"):
|
||||||
|
parts = list(map(int, line.split()[1:]))
|
||||||
|
tot = parts[0]
|
||||||
|
used = parts[1]
|
||||||
|
free = parts[2]
|
||||||
|
return int((used / tot) * 100)
|
||||||
|
|
||||||
|
return 0
|
||||||
|
|
||||||
|
|
||||||
|
def cpu_load():
|
||||||
|
with open('/proc/stat', 'rt') as fp:
|
||||||
|
for line in fp:
|
||||||
|
line = line.strip()
|
||||||
|
if line.startswith('cpu '):
|
||||||
|
parts = list(map(int, line.split()[1:]))
|
||||||
|
user_n = parts[0]
|
||||||
|
sys_n = parts[2]
|
||||||
|
idle_n = parts[3]
|
||||||
|
tot = user_n + sys_n + idle_n
|
||||||
|
return int(((user_n + sys_n) / tot) * 100)
|
||||||
|
return 0
|
||||||
|
|
||||||
|
|
||||||
|
def temperature(celsius=True):
|
||||||
|
with open('/sys/class/thermal/thermal_zone0/temp', 'rt') as fp:
|
||||||
|
temp = int(fp.read().strip())
|
||||||
|
c = int(temp / 1000)
|
||||||
|
return c if celsius else ((c * (9 / 5)) + 32)
|
||||||
|
|
||||||
|
|
||||||
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(), 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(), temperature()))
|
||||||
|
Loading…
x
Reference in New Issue
Block a user