Squashed 'LYNQ_PUBLIC/' content from commit 79d8f932f

git-subtree-dir: LYNQ_PUBLIC
git-subtree-split: 79d8f932fb4ebc4b5aec6c5ace97634912394272
Change-Id: If2527ba937f56fe989487bf71e996f7cfd9fbe61
diff --git "a/common_src/packages/apps/lynq-dev-test/src/lynq_testprocess\050gpio\051.tmp" "b/common_src/packages/apps/lynq-dev-test/src/lynq_testprocess\050gpio\051.tmp"
new file mode 100644
index 0000000..c07e271
--- /dev/null
+++ "b/common_src/packages/apps/lynq-dev-test/src/lynq_testprocess\050gpio\051.tmp"
@@ -0,0 +1,144 @@
+#include <stdio.h>
+#include <string.h>
+#include <pthread.h>
+#include <ctype.h>
+#include <stdlib.h>
+#include <errno.h>
+#include <fcntl.h>
+#include <gio/gio.h>
+#include <log/log.h>
+#include <glib.h>
+#define GPIO_SERVICE "lynq.gpio" /*well-known bus name */
+#define GPIO_DATA_INTERFACE "lynq.gpio.Data" /*interface name*/
+#define GPIO_DATA_PATH "/lynq/gpio/data" /*object name*/
+GMainLoop *loop = NULL;
+GDBusProxy *proxy = NULL;
+#define LOG_TAG "GPIO_CONTROL"
+int set_gpio (gchar * mode,guint *gpio_numb,guint param)
+{
+	GDBusConnection *c1;
+	GVariant *result;
+	GError *error;
+	guint  set_result = -1;
+	 g_type_init();
+	loop = g_main_loop_new(NULL, FALSE);   /** create main loop, but do not start it.*/
+	c1 = g_bus_get_sync (G_BUS_TYPE_SESSION, NULL, NULL);
+	g_assert (c1 != NULL);
+	g_assert (!g_dbus_connection_is_closed (c1));
+	result = g_dbus_connection_call_sync (c1,
+                                        GPIO_SERVICE,  /* bus name */
+                                        GPIO_DATA_PATH, /* object path */
+                                        GPIO_DATA_INTERFACE,  /* interface name */
+                                        "setGpio",                 /* method name */
+                                        g_variant_new ("(sii)", mode,gpio_numb,param),  /* parameters */
+                                         G_VARIANT_TYPE ("(i)"),                    /* return type */
+                                        G_DBUS_CALL_FLAGS_NONE,
+                                        -1,
+                                        NULL,
+                                        &error);
+	g_assert_no_error (error);
+	g_assert (result != NULL);
+	g_variant_get(result, "((i))", &(set_result));
+	g_variant_unref (result);
+	g_main_loop_run (loop);
+	g_main_loop_unref (loop);
+    return set_result;
+}
+int get_gpio (guint *gpio_numb)
+{
+   	GDBusConnection *c1;
+	GVariant *result;
+	GError *error;
+	guint  parm=0;
+	 const gchar *set_result;
+	 const gchar *mode ="gpio";
+	if(set_gpio(mode,gpio_numb,parm)== -1)
+	{
+		RLOGD("get_gpio number error");
+		return -1;
+	}
+	c1 = g_bus_get_sync (G_BUS_TYPE_SESSION, NULL, NULL);
+	g_assert (c1 != NULL);
+	g_assert (!g_dbus_connection_is_closed (c1));
+	result = g_dbus_connection_call_sync (c1,
+                                        GPIO_SERVICE,  /* bus name */
+                                        GPIO_DATA_PATH, /* object path */
+                                        GPIO_DATA_INTERFACE,  /* interface name */
+                                        "getGpio",                 /* method name */
+                                        NULL,  /* parameters */
+                                         G_VARIANT_TYPE ("(s)"),                     /* return type */
+                                        G_DBUS_CALL_FLAGS_NONE,
+                                        -1,
+                                        NULL,
+                                        &error);
+	g_assert_no_error (error);
+	g_assert (result != NULL);
+	g_variant_get(result, "((s))", &(set_result));
+	RLOGD("get_gpio,%s",set_result);
+	g_variant_unref (result);
+    return 1;
+}
+void proxy_ready(GObject *source, GAsyncResult *result, gpointer user_data) {
+    GError *error;
+
+    error = NULL;
+    proxy = g_dbus_proxy_new_for_bus_finish(result, &error);
+    if (proxy == NULL) {
+        RLOGE("create proxy fail");
+        return ;
+    }
+    RLOGD("proxy is ready");
+    gulong signal_handler_id;
+
+  //  signal_handler_id = g_signal_connect(proxy, "g-signal",
+  //          G_CALLBACK (proxy_signals_on_signal), NULL);
+   // if (signal_handler_id == 0) {
+   //     RLOGE("listen singal fail!");
+   // }
+}
+
+void* init_data_gdbus_cb(void *param)
+{
+    /* all the tests rely on a shared main loop */
+    loop = g_main_loop_new(NULL, FALSE);
+
+    g_dbus_proxy_new_for_bus(G_BUS_TYPE_SYSTEM,
+            G_DBUS_PROXY_FLAGS_NONE,
+            NULL, /* GDBusInterfaceInfo */
+            GPIO_SERVICE, /* name */
+            GPIO_DATA_PATH, /* object path */
+            GPIO_DATA_INTERFACE, /* interface */
+            NULL, /* GCancellable */
+            proxy_ready,
+            NULL);
+
+    g_main_loop_run(loop);
+
+    RLOGD("data gdbus main loop run()");
+    if(proxy != NULL) {
+        g_object_unref (proxy);
+    }
+    if(loop != NULL) {
+        g_main_loop_unref(loop);
+    }
+}
+
+
+void startGdbusLoop(void)
+{
+    pthread_t gpioThread;
+
+    RLOGD("startGdbusLoop()");
+   // pthread_mutex_lock(&s_startupMutex);
+    pthread_attr_t attr;
+    pthread_attr_init(&attr);
+    pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
+
+    int result = pthread_create(&gpioThread, &attr, init_data_gdbus_cb, NULL);
+    if (result != 0) {
+        RLOGW("Failed to create gdbus thread: %s", strerror(result));
+        //goto done;
+    }
+//done:
+ //   pthread_mutex_unlock(&s_startupMutex);
+}