[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