fan_control: Move to using xyz.openbmc_project.Sensors

The org.openbmc.Sensors interface has been replaced with
xyz.openbmc_project.Sensors:
https://github.com/openbmc/docs/blob/master/sensor-architecture.md

Update the fan control app to use the supported sensor interface.
This fan control provides two D-Bus methods that are not used
by any current supported platform, but some platforms still include
this app in their image so update it to serve as a reference.
Also add an empty string as the second argument to the GetObject
method call, otherwise the call fails to find the object.

Tested: Booted Romulus and verified the fan control app started.

Change-Id: I9e576e126a80863f47cab622d0029a389cddb644
Signed-off-by: Adriana Kobylak <anoo@us.ibm.com>
diff --git a/fanctl/fan_control.c b/fanctl/fan_control.c
index c0f6241..2a2fe9f 100644
--- a/fanctl/fan_control.c
+++ b/fanctl/fan_control.c
@@ -52,8 +52,9 @@
 				"GetObject",
 				&bus_error,
 				&m,
-				"s",
-				obj_path);
+				"ss",
+				obj_path,
+				"");
 	if (rc < 0) {
 		fprintf(stderr,
 			"Failed to GetObject: %s\n", bus_error.message);
@@ -90,13 +91,12 @@
 		goto finish;
 	}
 
-	rc = sd_bus_call_method(bus,
+	rc = sd_bus_set_property(bus,
 				connection,
 				obj_path,
-				"org.openbmc.SensorValue",
-				"setValue",
+				"xyz.openbmc_project.Control.FanSpeed",
+				"Target",
 				&bus_error,
-				&response,
 				"i",
 				val);
 	if (rc < 0)
@@ -112,8 +112,8 @@
 	return rc;
 }
 
-/* Read sensor value from "org.openbmc.Sensors" */
-int read_dbus_sensor(sd_bus *bus, const char *obj_path)
+/* Read sensor value from "xyz.openbmc_projects.Sensors" */
+int read_dbus_sensor(sd_bus *bus, const char *obj_path, const char *property)
 {
 	char connection[DBUS_MAX_NAME_LEN];
 	sd_bus_error bus_error = SD_BUS_ERROR_NULL;
@@ -132,14 +132,14 @@
 		goto finish;
 	}
 
-	rc = sd_bus_call_method(bus,
+	rc = sd_bus_get_property(bus,
 				connection,
 				obj_path,
-				"org.openbmc.SensorValue",
-				"getValue",
+				"xyz.openbmc_project.Sensor.Value",
+				property,
 				&bus_error,
 				&response,
-				NULL);
+				"i");
 	if (rc < 0) {
 		val = 0;
 		fprintf(stderr,
@@ -148,7 +148,7 @@
 		goto finish;
 	}
 
-	rc = sd_bus_message_read(response, "v","i", &val);
+	rc = sd_bus_message_read(response, "i", &val);
 	if (rc < 0) {
 		val = 0;
 		fprintf(stderr,
@@ -165,7 +165,7 @@
 	return val;
 }
 
-/* set fan speed with /org/openbmc/sensors/speed/fan* object */
+/* set fan speed with /xyz/openbmc_project/sensors/fan_tach/fan* object */
 static int fan_set_speed(sd_bus *bus, int fan_id, uint8_t fan_speed)
 {
 	char obj_path[DBUS_MAX_NAME_LEN];
@@ -175,7 +175,7 @@
 		return -1;
 
 	snprintf(obj_path, sizeof(obj_path),
-		"/org/openbmc/sensors/speed/fan%d", fan_id);
+		"/xyz/openbmc_project/sensors/fan_tach/fan%d_0", fan_id);
 	rc = set_dbus_sensor(bus, obj_path, fan_speed);
 	if (rc < 0)
 		fprintf(stderr, "fanctl: Failed to set fan[%d] speed[%d]\n",
@@ -215,13 +215,10 @@
 	int fan_speed;
 
 	/* get fan tach */
-	/* The object path is specific to Barreleye */
 	snprintf(obj_path, sizeof(obj_path),
-		"/org/openbmc/sensors/tach/fan%dH", fan_id);
-	fan_tach_H = read_dbus_sensor(bus, obj_path);
-	snprintf(obj_path, sizeof(obj_path),
-		"/org/openbmc/sensors/tach/fan%dL", fan_id);
-	fan_tach_L = read_dbus_sensor(bus, obj_path);
+		"/xyz/openbmc_project/sensors/fan_tach/fan%d_0", fan_id);
+	fan_tach_H = read_dbus_sensor(bus, obj_path, "MaxValue");
+	fan_tach_L = read_dbus_sensor(bus, obj_path, "MinValue");
 
 	/* invalid sensor value is -1 */
 	if (fan_tach_H <= 0 || fan_tach_L <= 0)
@@ -243,7 +240,8 @@
 	char connection[DBUS_MAX_NAME_LEN];
 
 	snprintf(obj_path, sizeof(obj_path),
-		"/org/openbmc/inventory/system/chassis/fan%d", fan_id);
+		"/xyz/openbmc_project/inventory/system/chassis/motherboard/fan%d",
+		fan_id);
 
 	rc = get_connection(bus, connection, obj_path);
 	if (rc < 0) {
@@ -252,15 +250,14 @@
 		goto finish;
 	}
 
-	rc = sd_bus_call_method(bus,
+	rc = sd_bus_set_property(bus,
 				connection,
 				obj_path,
-				"org.openbmc.InventoryItem",
-				"setPresent",
+				"xyz.openbmc_project.Inventory.Item",
+				"Present",
 				&bus_error,
-				&response,
-				"s",
-				(val == 1 ? "True" : "False"));
+				"b",
+				val);
 	if(rc < 0)
 		fprintf(stderr,
 			"fanctl: Failed to update fan presence via dbus: %s\n",