Squashed 'LYNQ_PUBLIC/' content from commit 79d8f932f

git-subtree-dir: LYNQ_PUBLIC
git-subtree-split: 79d8f932fb4ebc4b5aec6c5ace97634912394272
Change-Id: If2527ba937f56fe989487bf71e996f7cfd9fbe61
diff --git a/common_src/lib/liblynq-systime/src/lynq_systime.c b/common_src/lib/liblynq-systime/src/lynq_systime.c
new file mode 100755
index 0000000..46ec442
--- /dev/null
+++ b/common_src/lib/liblynq-systime/src/lynq_systime.c
@@ -0,0 +1,149 @@
+#include <stdio.h>

+#include <string.h>

+#include<stdlib.h>

+#include <time.h>

+#include <include/lynq_uci.h>

+#include "lynq_systime.h"

+

+

+#define LYNQ_SYNC_TIME_SECTION "lynq_sync_time"

+#define LYNQ_MODEM_TIME_KEY "lynq_modem_sync_time_enable"

+#define LYNQ_GNSS_TIME_KEY "lynq_gnss_sync_time_enable"

+

+#define BUF_LEN 258

+#define  TIME_BUF 100

+

+#define  NTP_RESTART_BUF "systemctl restart ntpd"

+#define  NTP_STOP_BUF "systemctl stop ntpd"

+

+#define SYNC_TIME_SUCCESS 0

+

+#define NTP_ALREADY_ENABLE  1

+#define NTP_ALREADY_DISABLE 2

+

+//#define NITZ_ALREADY_ENABLE  3

+//#define NITZ_ALREADY_DISABLE 4

+//#define GNSS_ALREADY_ENABLE  5

+//#define GNSS_ALREADY_DISABLE 6

+#define OPEN_ERROR 7

+#define ERROR_PARA 8

+

+char* lynq_read_version()

+{

+    return "SYSTIME_V1.0";

+}

+

+int get_cmd_value(char *input_cmd, char *value)

+{

+    FILE * fp = NULL;

+    char buf[TIME_BUF] = {0};

+

+    fp = popen (input_cmd, "r");

+

+    if (!fp) {  

+        printf("popen error\n");

+        return OPEN_ERROR;

+    } 

+	

+    while(fgets(buf, sizeof(buf), fp)!=NULL){

+        strcat(value, buf);

+    }

+

+    pclose(fp);

+    return 0;

+}

+

+int user_set_time(char *date_input, char *time_input)

+{

+    char date[TIME_BUF] = "";

+    char time[TIME_BUF] = "";

+

+    if(NULL == date_input || NULL == time_input)

+        return ERROR_PARA;

+

+    sprintf(date, "date -s %s", date_input);

+    sprintf(time, "date -s %s", time_input);

+

+    system(date);

+    system(time);

+    system("hwclock -w -f /dev/rtc0");

+    return 0;

+}

+

+int ntp_sync_time(int enable)

+{

+    char cmd_buf[TIME_BUF] = "pgrep ntpd";

+    char out_value[TIME_BUF] = {0};

+    

+    if(enable != 0 && enable !=1)

+        return ERROR_PARA;

+	

+    get_cmd_value(cmd_buf, out_value);

+    if(strlen(out_value))

+    {

+        if(enable)

+        {

+            return NTP_ALREADY_ENABLE;

+        }

+        else{

+            system(NTP_STOP_BUF);

+            return SYNC_TIME_SUCCESS;

+        }

+    }

+    else{

+        if(enable)

+        {

+            system(NTP_RESTART_BUF);

+            return SYNC_TIME_SUCCESS;

+        }

+        else{

+            return NTP_ALREADY_DISABLE;

+        }	

+    }

+}

+

+int modem_time_enable(int enable)

+{

+    char buf[BUF_LEN] = "";

+    int ret = 0;

+    

+    if(enable != 0 && enable !=1)

+        return ERROR_PARA;

+    

+    if(enable)

+    {

+        //system("killall ntpd");

+        sprintf(buf,"%s.%s.%s=%d", LYNQ_UCI_FILE, LYNQ_SYNC_TIME_SECTION, LYNQ_MODEM_TIME_KEY, enable);

+        ret = lynq_uci_set(buf);

+    }

+    else

+    {

+        sprintf(buf,"%s.%s.%s=%d", LYNQ_UCI_FILE, LYNQ_SYNC_TIME_SECTION, LYNQ_MODEM_TIME_KEY, enable);

+        ret = lynq_uci_set(buf);

+    }

+	

+    return ret;

+}

+

+int gnss_time_enable(int enable)

+{

+    char buf[BUF_LEN] = "";

+    int ret = 0;

+    

+    if(enable != 0 && enable !=1)

+        return ERROR_PARA;

+    

+    if(enable)

+    {

+        //system("killall ntpd");

+        sprintf(buf,"%s.%s.%s=%d", LYNQ_UCI_FILE, LYNQ_SYNC_TIME_SECTION, LYNQ_GNSS_TIME_KEY, enable);

+        ret = lynq_uci_set(buf);

+    }

+    else

+    {

+        sprintf(buf,"%s.%s.%s=%d", LYNQ_UCI_FILE, LYNQ_SYNC_TIME_SECTION, LYNQ_GNSS_TIME_KEY, enable);

+        ret = lynq_uci_set(buf);

+    }

+	

+    return ret;

+}