12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- """
- Created on 13-04-2013
- @author: citan
- """
- import os
- from pimonitor.PM import PM
- class PMUtils(object):
- """
- classdocs
- """
- # Return CPU temperature as a character string
- @classmethod
- def get_cpu_temperature(cls):
- res = os.popen('vcgencmd measure_temp').readline()
- return res.replace("temp=", "").replace("'C\n", "")
- # Return RAM information (unit=kb) in a list
- # Index 0: total RAM
- # Index 1: used RAM
- # Index 2: free RAM
- @classmethod
- def get_ram_info(cls):
- p = os.popen('free')
- i = 0
- while 1:
- i += 1
- line = p.readline()
- if i == 2:
- return line.split()[1:4]
- # Return % of CPU used by user as a character string
- @classmethod
- def get_cpu_use(cls):
- return str(os.popen("top -n1 | awk '/Cpu\(s\):/ {print $2}'").readline().strip())
- # Return information about disk space as a list (unit included)
- # Index 0: total disk space
- # Index 1: used disk space
- # Index 2: remaining disk space
- # Index 3: percentage of disk used
- @classmethod
- def get_disk_space(cls):
- p = os.popen("df -h /")
- i = 0
- while 1:
- i += 1
- line = p.readline()
- if i == 2:
- return line.split()[1:5]
- @classmethod
- def log_os_stats(cls):
- try:
- cpu_temp = PMUtils.get_cpu_temperature()
- if len(cpu_temp) > 0:
- PM.log("CPU temp: " + cpu_temp)
- ram_stats = PMUtils.get_ram_info()
- if len(ram_stats) == 3:
- ram_free = round(int(ram_stats[2]) / 1000, 1)
- PM.log("RAM free: " + str(ram_free))
- cpu_usage = PMUtils.get_cpu_use()
- if len(cpu_usage) > 0:
- PM.log("CPU usage: " + str(cpu_usage))
- except IOError:
- pass
|