From 90efdac30d4455255a8271fbc39d49290336190c Mon Sep 17 00:00:00 2001 From: Swann Perarnau Date: Wed, 30 Aug 2017 17:34:30 -0500 Subject: [PATCH] [refactor] Use actual sensor info in control loop This patch is the last link between coolr and the daemon. We now create a dictionary of machine information inside the sensor manager, and give this dictionary back to the daemon. The daemon can then use the real data for control. We still need to receive the target power from somewhere, and that will come later. --- nrm/daemon.py | 8 ++++---- nrm/sensor.py | 10 ++++------ 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/nrm/daemon.py b/nrm/daemon.py index 0d95f77..6fb4fc3 100644 --- a/nrm/daemon.py +++ b/nrm/daemon.py @@ -97,11 +97,11 @@ class Daemon(object): application.state) def do_sensor(self): - self.sensor_state = self.sensor.do_update() - self.logger.info("current state: %r" % self.sensor_state) + self.machine_info = self.sensor.do_update() + self.logger.info("current state: %r" % self.machine_info) def do_control(self): - total_power = self.sensor_state['total_power'] + total_power = self.machine_info['energy']['power']['total'] self.target = random.randrange(0, 34) self.logger.info("target measure: " + str(self.target)) @@ -142,7 +142,7 @@ class Daemon(object): # create sensor manager and make first measurement self.sensor = sensor.SensorManager() self.sensor.start() - self.sensor_state = self.sensor.do_update() + self.machine_info = self.sensor.do_update() # setup periodic sensor updates self.sensor_cb = ioloop.PeriodicCallback(self.do_sensor, 1000) diff --git a/nrm/sensor.py b/nrm/sensor.py index 6d5ff3d..b9ab72d 100644 --- a/nrm/sensor.py +++ b/nrm/sensor.py @@ -6,7 +6,6 @@ This module should be the only one interfacing with coolr. """ from __future__ import print_function -import random import coolr import coolr.clr_rapl import coolr.clr_hwmon @@ -31,8 +30,7 @@ class SensorManager: self.rapl.stop_energy_counter() def do_update(self): - rapl_data = self.rapl.sample(accflag=True) - print(repr(rapl_data)) - hwmon_data = self.coretemp.sample() - print(repr(hwmon_data)) - return {'total_power': random.randrange(0, 34)} + machine_info = dict() + machine_info['energy'] = self.rapl.sample(accflag=True) + machine_info['temperature'] = self.coretemp.sample() + return machine_info -- 2.26.2