led: add led api

Change-Id: I6d124e6ad583e897adb22371cac6a695eec3b0cb
diff --git a/mbtk/lynq_lib/src/lynq_net_light.c b/mbtk/lynq_lib/src/lynq_net_light.c
index 34394af..0d59348 100755
--- a/mbtk/lynq_lib/src/lynq_net_light.c
+++ b/mbtk/lynq_lib/src/lynq_net_light.c
@@ -1,17 +1,138 @@
 #include "lynq_led.h"
 #include "mbtk_type.h"
+#include "mbtk_log.h"
+#include "mbtk_info_api.h"
 
+/****************************DEFINE***************************************/
+#define QSER_RESULT_FAIL    -1
+#define QSER_RESULT_SUCCESS 0
+/****************************DEFINE***************************************/
+
+/****************************VARIABLE***************************************/
+extern mbtk_info_handle_t* qser_info_handle;
+extern int qser_info_handle_num;
+/****************************VARIABLE***************************************/
+
+
+/******************************FUNC*****************************************/
+static int qser_led_client_init(void)
+{
+    if(qser_info_handle == NULL)
+    {
+        qser_info_handle = mbtk_info_handle_get();
+        if(qser_info_handle)
+        {
+            qser_info_handle_num++;
+        } 
+        else
+        {
+            LOGE("[qser_led] mbtk_info_handle_get() fail.");
+            return QSER_RESULT_FAIL;
+        }
+    }
+    else
+    {
+        qser_info_handle_num++;
+    }
+
+    LOGE("[qser_led] mbtk_info_handle_get() success.");
+    return QSER_RESULT_SUCCESS;
+}
+
+static int qser_led_client_deinit(void)
+{
+    if(qser_info_handle)
+    {
+        LOGE("[qser_led] qser_info_handle_num = %d", qser_info_handle_num);
+        if(qser_info_handle_num == 1)
+        { // 最后一个引用,可释放。
+            int ret = mbtk_info_handle_free(&qser_info_handle);
+            if(ret)
+            {
+                LOGE("[qser_led] mbtk_info_handle_free() fail.");
+                return QSER_RESULT_FAIL;
+            }
+            else
+            {
+                qser_info_handle_num = 0;
+                qser_info_handle = NULL;
+            }
+        } 
+        else
+        {
+            qser_info_handle_num--;
+        }
+    }
+    else
+    {
+        LOGE("[qser_led] handle not inited.");
+        return QSER_RESULT_FAIL;
+    }
+
+    return QSER_RESULT_SUCCESS;
+}
+
+/******************************FUNC*****************************************/
+
+/****************************API***************************************/
 int lynq_set_netled_on(int led_mode)
 {
-    UNUSED(led_mode);
+    //UNUSED(led_mode);
 
-    return 0;
+    if(led_mode != 0 && led_mode != 1)
+    {
+        LOGE("[qser_led]param is fail.");
+        return QSER_RESULT_FAIL;
+    }
+
+    
+    int ret = qser_led_client_init();
+    if(ret != QSER_RESULT_SUCCESS)
+    {
+        LOGE("[qser_led]qser_led_client_init fail.");
+        return QSER_RESULT_FAIL;
+    }
+
+    ret = mbtk_led_set(qser_info_handle, MBTK_LED_TYPE_NET, led_mode);
+    if(ret != 0)
+    {
+        LOGE("[qser_led]mbtk_led_gpio_init fail.");
+        return QSER_RESULT_FAIL;
+    }
+
+    ret = qser_led_client_init();
+    
+    return QSER_RESULT_SUCCESS;
 }
 
 int lynq_set_statusled_on(int led_mode)
 {
-    UNUSED(led_mode);
+    //UNUSED(led_mode);
 
-    return 0;
+    if(led_mode != 0 && led_mode != 1)
+    {
+        LOGE("[qser_led]param is fail.");
+        return QSER_RESULT_FAIL;
+    }
+    
+    int ret = qser_led_client_init();
+    if(ret != QSER_RESULT_SUCCESS)
+    {
+        LOGE("[qser_led]qser_led_client_init fail.");
+        return QSER_RESULT_FAIL;
+    }
+
+    ret = mbtk_led_set(qser_info_handle, MBTK_LED_TYPE_STATUS, led_mode);
+    if(ret != 0)
+    {
+        LOGE("[qser_led]mbtk_led_gpio_init fail.");
+        return QSER_RESULT_FAIL;
+    }
+
+    ret = qser_led_client_init();
+    
+    return QSER_RESULT_SUCCESS;
 }
+/****************************API***************************************/
+