From 6fc2f9d514ac5e4717611db85105afb4c543e20e Mon Sep 17 00:00:00 2001 From: Munkyu Im Date: Fri, 19 Sep 2014 18:36:20 +0900 Subject: [PATCH] vmodem: Send RSSI level Send RSSI at command to telephony daemon Conflicts: packaging/vmodemd-emul.spec Change-Id: Ied02dfd8f5aa60d12cca07661f43ad6c614a01e7 Signed-off-by: Munkyu Im Signed-off-by: Sooyoung Ha --- libvmodem/vgsm_phone.h | 1 + packaging/vmodemd-emul.spec | 2 +- vmodem/at/at_tx_display.c | 11 +++++++++++ vmodem/include/server/server_tx_display.h | 1 + vmodem/oem/oem_tx_display.c | 5 +++++ vmodem/server/client.c | 3 +++ vmodem/server/server_tx_display.c | 14 ++++++++++++++ 7 files changed, 36 insertions(+), 1 deletion(-) diff --git a/libvmodem/vgsm_phone.h b/libvmodem/vgsm_phone.h index 7606ea8..f4bac09 100644 --- a/libvmodem/vgsm_phone.h +++ b/libvmodem/vgsm_phone.h @@ -68,6 +68,7 @@ #define GSM_POWER 0x0F #define GSM_CLIENT 0x10 #define RESTORE_EI_DATA 0x11 +#define GSM_RSSI 0x13 #define FUNC_EDB 0x12 #define FUNC_EDB_IND 0x01 #define FUNC_SINGLEDB_IND 0x02 diff --git a/packaging/vmodemd-emul.spec b/packaging/vmodemd-emul.spec index c2c9b05..1c32413 100644 --- a/packaging/vmodemd-emul.spec +++ b/packaging/vmodemd-emul.spec @@ -1,6 +1,6 @@ #git:sdk/vmodem-daemon-emulator Name: vmodemd-emul -Version: 0.2.53 +Version: 0.2.56 Release: 1 Summary: Virtual Modem Group: System/ModemEmulator diff --git a/vmodem/at/at_tx_display.c b/vmodem/at/at_tx_display.c index e17a5cb..a02860d 100644 --- a/vmodem/at/at_tx_display.c +++ b/vmodem/at/at_tx_display.c @@ -33,6 +33,17 @@ #include "at_tx_display.h" #include "at_func.h" +int at_tx_display_rssi_info_noti(void *data, int len) +{ + TRACE(MSGL_VGSM_INFO, "%s noti\n", CIEV); + char* buf = (char*)data; + char sndbuf1[SEND_BUF_SIZE]; + memset(sndbuf1, '\0', sizeof(sndbuf1)); + + sprintf(sndbuf1, "%s%d,%d%s", CIEV, SIGNAL, buf[1], CRLF); // rssi + return at_msg_send(ACK_SEQ_NOTIFICATION, sndbuf1, strlen(sndbuf1)); +} + int at_tx_display_icon_info_noti(void *data, int len) { TRACE(MSGL_VGSM_INFO, "%s noti\n", CIEV); diff --git a/vmodem/include/server/server_tx_display.h b/vmodem/include/server/server_tx_display.h index 4a70dac..485639b 100644 --- a/vmodem/include/server/server_tx_display.h +++ b/vmodem/include/server/server_tx_display.h @@ -33,6 +33,7 @@ int server_tx_display_icon_info_resp(void); int server_tx_display_icon_info_noti( unsigned char icon_type, unsigned char rssi, unsigned char bat, unsigned char act, unsigned char reg); +int server_tx_display_rssi_info_noti( unsigned char icon_type, unsigned char rssi); #endif diff --git a/vmodem/oem/oem_tx_display.c b/vmodem/oem/oem_tx_display.c index 6a05db4..bb5c44a 100644 --- a/vmodem/oem/oem_tx_display.c +++ b/vmodem/oem/oem_tx_display.c @@ -31,6 +31,11 @@ #include "at_tx_display.h" #include "oem_tx_display.h" +int oem_tx_display_rssi_info_noti(void *data, int len) +{ + return at_tx_display_rssi_info_noti(data, len); +} + int oem_tx_display_icon_info_noti(void *data, int len) { return at_tx_display_icon_info_noti(data, len); diff --git a/vmodem/server/client.c b/vmodem/server/client.c index 42df968..3724e38 100644 --- a/vmodem/server/client.c +++ b/vmodem/server/client.c @@ -957,6 +957,9 @@ static int client_callback(PhoneServer * ps, int fd, EloopCondition cond, void * switch (group) { + case GSM_RSSI: + server_tx_display_rssi_info_noti(0xff, action); + break; case GSM_CALL: change_state_machine( GSM_CALL_CMD ); if( is_flight_mode() ){ diff --git a/vmodem/server/server_tx_display.c b/vmodem/server/server_tx_display.c index 2a874e0..65730ac 100644 --- a/vmodem/server/server_tx_display.c +++ b/vmodem/server/server_tx_display.c @@ -56,6 +56,20 @@ int server_tx_display_icon_info_resp(void) return oem_tx_display_icon_info_resp(data, n); } +int server_tx_display_rssi_info_noti( unsigned char icon_type, unsigned char rssi) +{ + unsigned char data[2]; + int n = 0; + + TRACE(MSGL_VGSM_INFO, "icon %02x rssi %02x\n", icon_type, rssi); + g_rssi_value = rssi; + + data[n++] = icon_type; + data[n++] = g_rssi_value; + + return oem_tx_display_rssi_info_noti(data, n); +} + int server_tx_display_icon_info_noti( unsigned char icon_type, unsigned char rssi, unsigned char bat, unsigned char act, unsigned char reg) { unsigned char data[10]; -- 2.7.4