change sensor scaling algorithm for exponential scales

- scale values should be exponentials (10^x)
- implement adjust factor

depends on Iaf2d5e30df620212dd3c9e821d6462964520dc44

Change-Id: Id4e1dfad0def21f9f1d341d859c3b2c237dea080
Signed-off-by: Edward A. James <eajames@us.ibm.com>
diff --git a/obmc/sensors.py b/obmc/sensors.py
index fcb3ee6..e5c79ef 100644
--- a/obmc/sensors.py
+++ b/obmc/sensors.py
@@ -165,20 +165,28 @@
     def setByPoll(self, value):
         scale = self.properties[HwmonSensor.IFACE_NAME]['scale']
         offset = self.properties[HwmonSensor.IFACE_NAME]['offset']
+        try:
+            adjust = self.properties[HwmonSensor.IFACE_NAME]['adjust']
+            if adjust == 0:
+                adjust = 1
+        except:
+            adjust = 1
+
         if self.value_dirty:
             ## new value externally set, so just return to hwmon
             ## process to write value
             self.value_dirty = False
-            val = (
+            val = int((
                 self.properties[SensorValue.IFACE_NAME]['value']
-                - offset) * scale
+                - offset) * adjust)
             return [True, val]
         else:
-            # Keep the val as integer. scale may be floating point
-            val = int(value/scale + offset)
+            # Keep the val as integer. adjust may be floating point
+            val = int(value/adjust + offset)
             if (val != self.value):
                 SensorValue.setValue(self, val)
-                self.check_thresholds(val)
+                # scale the value to check threshold
+                self.check_thresholds(val * (10 ** scale))
                 self.value = val
 
             return [False, 0]