added error handling
diff --git a/objects/power_control_obj.c b/objects/power_control_obj.c
index d5fe7ab..835ed7a 100644
--- a/objects/power_control_obj.c
+++ b/objects/power_control_obj.c
@@ -27,10 +27,11 @@
static gboolean poll_pgood(gpointer user_data)
{
- g_print("polling\n");
ControlPower *control_power = object_get_control_power((Object*)user_data);
Control* control = object_get_control((Object*)user_data);
EventLog* event_log = object_get_event_log((Object*)user_data);
+
+ //send the heartbeat
control_emit_heartbeat(control,dbus_name);
const gchar* obj_path = g_dbus_object_get_object_path((GDBusObject*)user_data);
@@ -40,11 +41,13 @@
event_log_emit_event_log(event_log, LOG_ALERT, "Poll interval cannot be 0");
return FALSE;
}
+ //calculate timeout count
guint pgood_timeout = control_power_get_pgood_timeout(control_power)/poll_int;
if (pgood_timeout_count > pgood_timeout)
{
event_log_emit_event_log(event_log, LOG_ALERT, "Pgood poll timeout");
+ // set timeout to 0 so timeout doesn't happen again
control_power_set_pgood_timeout(control_power,0);
pgood_timeout_count = 0;
return TRUE;
@@ -228,8 +231,9 @@
g_dbus_object_manager_server_set_connection (manager, connection);
// get gpio device paths
+ int rc = GPIO_OK;
do {
- int rc = GPIO_OK;
+
rc = gpio_init(connection,&power_pin);
if (rc != GPIO_OK) { break; }
rc = gpio_init(connection,&pgood);
@@ -237,6 +241,10 @@
rc = gpio_open(&pgood);
if (rc != GPIO_OK) { break; }
} while(0);
+ if (rc != GPIO_OK)
+ {
+ //event_log_emit_event_log(event_log, LOG_ALERT, "GPIO setup error");
+ }
}
static void