added sensor management
diff --git a/objects/sensor_temperature_ambient_obj.c b/objects/sensor_temperature_ambient_obj.c
index a16cbb1..661f0b3 100644
--- a/objects/sensor_temperature_ambient_obj.c
+++ b/objects/sensor_temperature_ambient_obj.c
@@ -5,7 +5,9 @@
static GDBusObjectManagerServer *manager = NULL;
static SensorInteger *sensor = NULL;
-static guint i2c_bus = 1;
+static gchar* i2c_bus = "";
+static gchar* i2c_address = "";
+static gboolean go = FALSE;
static gboolean
on_get_units (SensorInteger *sen,
@@ -27,6 +29,20 @@
return TRUE;
}
+static gboolean
+on_set_config (SensorInteger *sen,
+ GDBusMethodInvocation *invocation,
+ gchar** config,
+ gpointer user_data)
+{
+ g_print("I2C bus = %s\n",config[0]);
+ g_print("I2C addr = %s\n",config[1]);
+ sensor_integer_complete_set_config_data(sen,invocation);
+ go = TRUE;
+ return TRUE;
+}
+
+
static void
on_bus_acquired (GDBusConnection *connection,
const gchar *name,
@@ -59,6 +75,12 @@
G_CALLBACK (on_get_units),
NULL); /* user_data */
+ g_signal_connect (sensor,
+ "handle-set-config-data",
+ G_CALLBACK (on_set_config),
+ NULL); /* user_data */
+
+
/* Export the object (@manager takes its own reference to @object) */
g_dbus_object_manager_server_export (manager, G_DBUS_OBJECT_SKELETON (object));
@@ -87,18 +109,22 @@
static gboolean
poll_sensor()
{
- guint value = sensor_integer_get_value(sensor);
- //TOOD: Change to actually read sensor
-
- g_print("Polling sensor: %d\n",value);
-
- //if changed, set property and emit signal
- if (value != sensor_integer_get_value(sensor))
+ if (go)
{
- sensor_integer_set_value(sensor,value);
- sensor_integer_emit_changed(sensor,value);
+ guint value = sensor_integer_get_value(sensor);
+ //TOOD: Change to actually read sensor
+ value = value+1;
+ g_print("Polling sensor: %d\n",value);
+
+ //if changed, set property and emit signal
+ if (value != sensor_integer_get_value(sensor))
+ {
+ g_print("Sensor changed");
+ sensor_integer_set_value(sensor,value);
+ sensor_integer_emit_changed(sensor,value);
+ }
}
- return TRUE;
+ return TRUE;
}
gint