You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							49 lines
						
					
					
						
							1.1 KiB
						
					
					
				
			
		
		
	
	
							49 lines
						
					
					
						
							1.1 KiB
						
					
					
				#!/usr/bin/env python3
 | 
						|
import numpy as np
 | 
						|
 | 
						|
from cereal.messaging import SubMaster
 | 
						|
 | 
						|
def cputime_total(ct):
 | 
						|
    return ct.user + ct.nice + ct.system + ct.idle + ct.iowait + ct.irq + ct.softirq
 | 
						|
 | 
						|
 | 
						|
def cputime_busy(ct):
 | 
						|
    return ct.user + ct.nice + ct.system + ct.irq + ct.softirq
 | 
						|
 | 
						|
 | 
						|
 | 
						|
sm = SubMaster(['thermal', 'procLog'])
 | 
						|
 | 
						|
last_temp = 0.0
 | 
						|
total_times = [0., 0., 0., 0.]
 | 
						|
busy_times = [0., 0., 0.0, 0.]
 | 
						|
 | 
						|
 | 
						|
while True:
 | 
						|
  sm.update()
 | 
						|
 | 
						|
  if sm.updated['thermal']:
 | 
						|
    t = sm['thermal']
 | 
						|
    last_temp = np.mean([t.cpu0, t.cpu1, t.cpu2, t.cpu3]) / 10.
 | 
						|
 | 
						|
  if sm.updated['procLog']:
 | 
						|
    m = sm['procLog']
 | 
						|
 | 
						|
    cores = [0., 0., 0., 0.]
 | 
						|
    total_times_new = [0., 0., 0., 0.]
 | 
						|
    busy_times_new = [0., 0., 0.0, 0.]
 | 
						|
 | 
						|
    for c in m.cpuTimes:
 | 
						|
      n = c.cpuNum
 | 
						|
      total_times_new[n] = cputime_total(c)
 | 
						|
      busy_times_new[n] = cputime_busy(c)
 | 
						|
 | 
						|
    for n in range(4):
 | 
						|
      t_busy = busy_times_new[n] - busy_times[n]
 | 
						|
      t_total = total_times_new[n] - total_times[n]
 | 
						|
      cores[n] = t_busy / t_total
 | 
						|
 | 
						|
    total_times = total_times_new[:]
 | 
						|
    busy_times = busy_times_new[:]
 | 
						|
 | 
						|
    print("CPU %.2f%% - Temp %.2f" % (100. * np.mean(cores), last_temp ))
 | 
						|
 |