[Feature][T3TSK-3][AT]add AT+LYNQMTSM to get temp

Change-Id: I5dc405d470dcbb01dc796cc4a8be9a373cd342e2
diff --git a/meta/meta-mediatek-mt2731/recipes-lynq/lynq-atsvc/lynq-atsvc.bb b/meta/meta-mediatek-mt2731/recipes-lynq/lynq-atsvc/lynq-atsvc.bb
index 43832dc..c3406f8 100755
--- a/meta/meta-mediatek-mt2731/recipes-lynq/lynq-atsvc/lynq-atsvc.bb
+++ b/meta/meta-mediatek-mt2731/recipes-lynq/lynq-atsvc/lynq-atsvc.bb
@@ -3,7 +3,7 @@
 DESCRIPTION = "lynq ril service"

 LICENSE = "MediaTekProprietary"

 LIC_FILES_CHKSUM = "file://LICENSE;md5=e1696b147d49d491bcb4da1a57173fff"

-DEPENDS += "platform-libs audio-mixer-ctrl libvendor-ril libpal gstreamer1.0 glib-2.0 dtmf libapn dbus liblynq-protcl liblynq-logdata-handle liblynq-log liblynq-fota nandapi bootctrl"

+DEPENDS += "platform-libs audio-mixer-ctrl libvendor-ril libpal gstreamer1.0 glib-2.0 dtmf libapn dbus liblynq-protcl liblynq-logdata-handle liblynq-log liblynq-fota nandapi bootctrl liblynq-thermal"

 inherit workonsrc

 WORKONSRC = "${TOPDIR}/../src/lynq/framework/lynq-atsvc/src"

 

diff --git a/meta/meta-mediatek-mt2731/recipes-lynq/packagegroups/packagegroup-lync-mt2731.bb b/meta/meta-mediatek-mt2731/recipes-lynq/packagegroups/packagegroup-lync-mt2731.bb
index 2d0cdbc..e8f387c 100755
--- a/meta/meta-mediatek-mt2731/recipes-lynq/packagegroups/packagegroup-lync-mt2731.bb
+++ b/meta/meta-mediatek-mt2731/recipes-lynq/packagegroups/packagegroup-lync-mt2731.bb
@@ -26,4 +26,5 @@
     lynq-low-power \
     liblynq-logdata-handle \
     lynq-gnss-test \
+    liblynq-thermal \
 "
diff --git a/src/lynq/framework/lynq-atsvc/src/lynq_at_transfer_table.h b/src/lynq/framework/lynq-atsvc/src/lynq_at_transfer_table.h
index abf0aed..57607b4 100755
--- a/src/lynq/framework/lynq-atsvc/src/lynq_at_transfer_table.h
+++ b/src/lynq/framework/lynq-atsvc/src/lynq_at_transfer_table.h
@@ -21,6 +21,8 @@
 {LYNQ_REQUEST_FACTORY,"LYNQFACTORY",7},

 {LYNQ_REQUEST_LINFO,"LINFO",7},

 {LYNQ_REQUEST_FOTA,"LYNQFOTA",7},

+{LYNQ_REQUEST_TEMP,"LYNQMTSM",1},

+

 /*lei add*/

 {LYNQ_REQUEST_CSCLK,"CSCLK",7},

 {LYNQ_REQUEST_MPWRSM,"MPWRSM",7},

diff --git a/src/lynq/framework/lynq-atsvc/src/lynq_common.cpp b/src/lynq/framework/lynq-atsvc/src/lynq_common.cpp
index 5115d7c..5aaf509 100755
--- a/src/lynq/framework/lynq-atsvc/src/lynq_common.cpp
+++ b/src/lynq/framework/lynq-atsvc/src/lynq_common.cpp
@@ -123,6 +123,8 @@
             return LYNQ_GOTO_FACTORY;
         case LYNQ_REQUEST_FOTA:
             return LYNQ_GOTO_FOTA;
+        case LYNQ_REQUEST_TEMP:
+            return LYNQ_GOTO_TEMP;
         default:
             return -1;
     }
diff --git a/src/lynq/framework/lynq-atsvc/src/lynq_common.h b/src/lynq/framework/lynq-atsvc/src/lynq_common.h
index b20456d..ffa25ac 100755
--- a/src/lynq/framework/lynq-atsvc/src/lynq_common.h
+++ b/src/lynq/framework/lynq-atsvc/src/lynq_common.h
@@ -35,6 +35,8 @@
 #define LYNQ_GOTO_FOTA 8
 /*PMS*/
 #define LYNQ_GOTO_PMS 9
+/*TEMP*/
+#define LYNQ_GOTO_TEMP 10
 
 #define LYNQ_APN_LEN_MAX 100
 #define LYNQ_APNTPYE_LEN_MAX 50
@@ -69,6 +71,7 @@
 #define LYNQ_REQUEST_CFSN (LYNQ_VERSION +23)
 #define LYNQ_REQUEST_RST (LYNQ_VERSION +25)
 /*lei add*/
+#define LYNQ_REQUEST_TEMP (LYNQ_VERSION +26)
 #define LYNQ_USER_REQUEST_GNSS (LYNQ_VERSION +100)
 #define LYNQ_USER_REQUEST_OTHRE (LYNQ_VERSION +101)
 
diff --git a/src/lynq/framework/lynq-atsvc/src/makefile b/src/lynq/framework/lynq-atsvc/src/makefile
index 4f685e7..00fe5de 100755
--- a/src/lynq/framework/lynq-atsvc/src/makefile
+++ b/src/lynq/framework/lynq-atsvc/src/makefile
@@ -68,8 +68,10 @@
   -I$(LOCAL_PATH)/rndis \
   -I$(LOCAL_PATH)/factory \
   -I$(LOCAL_PATH)/fota \
+  -I$(LOCAL_PATH)/temp \
   -I$(ROOT)$(includedir)/ \
   -I$(ROOT)$(includedir)/liblog \
+  -I$(ROOT)$(includedir)/liblynq-thermal \
   -I$(ROOT)$(includedir)/include  \
   -I$(ROOT)$(includedir)/ftp \
   -I$(ROOT)$(includedir)/logger \
@@ -110,6 +112,7 @@
     -llynq-log \
     -llynq-fota \
     -lnandapi  \
+    -llynq-thermal  \
 
 ifeq ($(strip $(TARGET_PLATFORM)), mt2735)
 LOCAL_LIBS += -luciwrapper
@@ -118,7 +121,7 @@
 endif
 
 
-SOURCES = $(wildcard util/*.cpp *.cpp ecall/*.cpp ecall/gost/*.cpp ecall/gost/utils/*.cpp ecall/gost/sslp/*.cpp ecall/gost/sslp/auth/*.cpp ecall/gost/sslp/firmware/*.cpp ecall/gost/sslp/commands/*.cpp ecall/gost/sslp/ecall/*.cpp ecall/gost/sslp/teledata/*.cpp data/*.cpp  em/rfdesense/*.cpp em/networkinfo/*.cpp em/*.cpp sms/*.cpp sms/gsm/*.cpp sms/cdma/*.cpp atci/*.cpp stateManager/*.cpp log/*.cpp rndis/*.cpp factory/*.cpp )
+SOURCES = $(wildcard util/*.cpp *.cpp ecall/*.cpp ecall/gost/*.cpp ecall/gost/utils/*.cpp ecall/gost/sslp/*.cpp ecall/gost/sslp/auth/*.cpp ecall/gost/sslp/firmware/*.cpp ecall/gost/sslp/commands/*.cpp ecall/gost/sslp/ecall/*.cpp ecall/gost/sslp/teledata/*.cpp data/*.cpp  em/rfdesense/*.cpp em/networkinfo/*.cpp em/*.cpp sms/*.cpp sms/gsm/*.cpp sms/cdma/*.cpp atci/*.cpp stateManager/*.cpp log/*.cpp rndis/*.cpp factory/*.cpp temp/*.cpp )
 
 EXECUTABLE = lynq-atsvc
 
diff --git a/src/lynq/framework/lynq-atsvc/src/ril.cpp b/src/lynq/framework/lynq-atsvc/src/ril.cpp
index cb27c32..be2e992 100755
--- a/src/lynq/framework/lynq-atsvc/src/ril.cpp
+++ b/src/lynq/framework/lynq-atsvc/src/ril.cpp
@@ -83,6 +83,7 @@
 #include "lynq_send_log_data.h"
 #include "lynq_rndis.h"
 #include "lynq_factory.h"
+#include "lynq_at_temp.h"
 /*Warren add for FAW platform 2021/9/28 end*/
 
 
@@ -6674,6 +6675,11 @@
                     break;
                 }
                 /*lei add*/
+                case LYNQ_GOTO_TEMP:
+                {
+                    lynq_at_get_temp(argc, argv);
+                    break;
+                 }
                 default:
                     break;
             }
diff --git a/src/lynq/framework/lynq-atsvc/src/temp/lynq_at_temp.cpp b/src/lynq/framework/lynq-atsvc/src/temp/lynq_at_temp.cpp
new file mode 100755
index 0000000..818dbdd
--- /dev/null
+++ b/src/lynq/framework/lynq-atsvc/src/temp/lynq_at_temp.cpp
@@ -0,0 +1,58 @@
+/*============================================================================= 

+**     FileName: lynq_at_temp

+**     Desc: lynq at temp

+**     Author: rita

+**     Version: V1.0

+**     LastChange: 2022-06-13

+**     History: 

+=============================================================================*/

+

+#include "common.h"

+#include <stdio.h>

+#include <string.h>

+#include <stdlib.h>

+

+#ifdef __cplusplus

+extern "C" {

+#endif

+

+//#include <log/log.h>

+#include "liblynq-thermal/lynq_get_thermal.h"

+

+static void lynq_response_ttyGS3(char *log_buf)

+{

+//    sprintf(log_buf,"LYNQ_GOTO_LOGS_REQ\n");

+    write(ttyGS3_fd,log_buf,strlen(log_buf));

+    return;  

+}

+

+int lynq_at_get_temp(int argc, char *argv[])

+{

+    int temp = 0;

+    char buf[20] = "";

+

+    

+    if(NULL == argv[3] || argc<4){

+        lynq_response_ttyGS3("+CME ERROR: no such device,please reinput!!\n");

+        return -1;

+    }

+    

+    int ret = lynq_get_zone_tmp(ZONE_NUM(atoi(argv[3])), &temp);

+       

+    

+    if(ret!=0){

+        lynq_response_ttyGS3("+CME ERROR: no such device,please reinput!!\n");

+    }

+    else{

+       //lynq_response_ttyGS3("+temp:%d\n");

+       sprintf(buf,"+LYNQMTSM: %d\n", temp);

+       lynq_response_ttyGS3(buf);

+    }

+

+    return ret;

+}

+

+

+#ifdef __cplusplus

+}

+#endif

diff --git a/src/lynq/framework/lynq-atsvc/src/temp/lynq_at_temp.h b/src/lynq/framework/lynq-atsvc/src/temp/lynq_at_temp.h
new file mode 100755
index 0000000..d17d134
--- /dev/null
+++ b/src/lynq/framework/lynq-atsvc/src/temp/lynq_at_temp.h
@@ -0,0 +1,26 @@
+#ifndef __LYNQ_AT_TEMP_H__

+#define __LYNQ_AT_TEMP_H__

+#ifdef __cplusplus

+extern "C" {

+#endif

+

+typedef enum {

+    mtktscpu=0,

+    mtktsaplt,

+    mtktsrf,

+    mtktsdram,

+    mtktspa4g,

+    mtktspmic,

+    tzts1,

+    tzts2,

+    tzts3,

+    tzts4=9,

+} ZONE_NUM;

+

+int lynq_at_get_temp(int argc, char *argv[]);

+

+#ifdef __cplusplus

+}

+#endif

+

+#endif //__LYNQ_AT_TEMP_H__

diff --git a/src/lynq/lib/liblynq-thermal/include/liblynq-thermal/lynq_get_thermal.h b/src/lynq/lib/liblynq-thermal/include/liblynq-thermal/lynq_get_thermal.h
new file mode 100755
index 0000000..b066e31
--- /dev/null
+++ b/src/lynq/lib/liblynq-thermal/include/liblynq-thermal/lynq_get_thermal.h
@@ -0,0 +1,35 @@
+#ifndef __LYNQ_GET_THERMAL_H__

+#define __LYNQ_GET_THERMAL_H__

+

+#define LYNQ_THM_PATH 256

+

+#define TYPE_PATH_PRE "/sys/class/thermal"

+

+#define LYNQ_THM_OK 0

+#define LYNQ_THM_OPEN_ERROR -1

+#define LYNQ_THM_READ_ERROR -2

+#define LYNQ_THM_ACCESS_ERROR -3

+#define LYNQ_THM_ZONE_ERROR -4

+#define LYNQ_THM_TEMP_ERROR -5

+

+#define LYNQ_THM_ZONE_KEY "thermal_zone"

+#define LYNQ_THM_COOLER_KEY "cooling_device"

+

+typedef enum {

+    mtktscpu=0,

+    mtktsaplt,

+    mtktsrf,

+    mtktsdram,

+    mtktspa4g,

+    mtktspmic,

+    tzts1,

+    tzts2,

+    tzts3,

+    tzts4=9,

+} ZONE_NUM;

+

+char* lynq_read_version();

+int read_sys_info(char *sys_path, char *out_buf, int out_buf_len);

+int lynq_get_zone_tmp(ZONE_NUM num, int *temp);

+

+#endif  //__LYNQ_GET_THERMAL_H__
\ No newline at end of file
diff --git a/src/lynq/lib/liblynq-thermal/src/lynq_get_thermal.c b/src/lynq/lib/liblynq-thermal/src/lynq_get_thermal.c
new file mode 100755
index 0000000..1f03e84
--- /dev/null
+++ b/src/lynq/lib/liblynq-thermal/src/lynq_get_thermal.c
@@ -0,0 +1,75 @@
+#include <sys/types.h>

+#include <dirent.h>

+#include <unistd.h>

+#include <stdio.h>

+#include <string.h>

+#include <fcntl.h>

+#include <stdlib.h>

+#include <unistd.h>

+#include "liblynq-thermal/lynq_get_thermal.h"

+

+//merge from t800 start

+char* lynq_read_version()

+{

+    return "THERMAL-V1.0";

+}

+

+int read_sys_info(char *sys_path, char *out_buf, int out_buf_len)

+{

+    int fd, ret;

+    char buf[LYNQ_THM_PATH] = "";

+

+    if (NULL == out_buf)

+        return LYNQ_THM_ZONE_ERROR;

+

+    if ((access(sys_path, F_OK)) == -1)

+        return LYNQ_THM_ACCESS_ERROR;

+

+    fd = open(sys_path, O_RDONLY);

+

+    if (fd < 0)

+    {

+        //printf("[%s-%d] open error!!!\n", __FUNCTION__, __LINE__);

+        return LYNQ_THM_OPEN_ERROR;

+    }

+

+    ret = read(fd, buf, sizeof(buf));

+

+

+    if(ret<0){

+        close(fd);

+        //printf("[%s-%d] read error!!!\n", __FUNCTION__, __LINE__);

+        return LYNQ_THM_READ_ERROR;

+    }

+

+    memcpy(out_buf, buf, out_buf_len);

+    close(fd);

+

+    return LYNQ_THM_OK;

+}

+

+int lynq_get_zone_tmp(ZONE_NUM num, int *temp)

+{

+    char tz_path[LYNQ_THM_PATH] = "";

+    char buf[LYNQ_THM_PATH] = "";

+       

+    if(num < 0 || num > 9)

+    {

+        return  LYNQ_THM_ZONE_ERROR;

+    }

+    

+    if(NULL == temp)

+        return LYNQ_THM_ZONE_ERROR;

+

+    sprintf(tz_path, "%s/%s%d/temp", TYPE_PATH_PRE, LYNQ_THM_ZONE_KEY, num);

+

+    int ret = read_sys_info(tz_path, buf, LYNQ_THM_PATH);

+    if(!ret)

+    {

+        if(strlen(buf))

+            *temp = atoi(buf);

+    }

+    

+    return ret;

+}

+//merge from t800 end
\ No newline at end of file