skeleton: Rewrite setValue() method for Dbus object /org/openbmc/sensors/host/PowerCap

obmc uses dbus interface 'org.openbmc.SensorValue' of the object
'/org/openbmc/sensors/host/PowerCap' to set Host PowerCap.
Rewrite the setValue() method to set PowerCap via the
"/sys/class/hwmon/hwmonX/user_powercap" OCC-HWMON sysfs attribute.
BMC will sends a "Set User PowerCap" command to OCC.

Signed-off-by: Yi Li <adamliyi@msn.com>
diff --git a/bin/Sensors.py b/bin/Sensors.py
index 81a593a..d31f513 100755
--- a/bin/Sensors.py
+++ b/bin/Sensors.py
@@ -1,6 +1,7 @@
 #!/usr/bin/python -u
 
 import sys
+import subprocess
 #from gi.repository import GObject
 import gobject
 import dbus
@@ -133,10 +134,23 @@
 		
 CONTROL_IFACE = 'org.openbmc.Control'
 class PowerCap(VirtualSensor):
-	def __init__(self,bus,name):
-		VirtualSensor.__init__(self,bus,name)
-		self.setValue(100)
-
+	def __init__(self, bus, name):
+		VirtualSensor.__init__(self, bus, name)
+		SensorValue.setValue(self, 0)
+		self.sysfs_attr = "/sys/class/hwmon/hwmon3/user_powercap"
+	##override setValue method
+	@dbus.service.method(SensorValue.IFACE_NAME,
+		in_signature='v', out_signature='')
+	def setValue(self, value):
+		try:
+			cmd_str = "echo "+str(value)+" > "+self.sysfs_attr
+			ret = subprocess.check_output(cmd_str, shell=True)
+		except subprocess.CalledProcessError as powerexc:
+			print "Set PowerCap Error", powerexc.returncode,
+			powerexc.output
+			return
+		print "Set PowerCap: ", value
+		SensorValue.setValue(self, value)
 		
 class BootProgressSensor(VirtualSensor):
 	def __init__(self,bus,name):