[Feature]Merge MR0.5 RIL and gnss related content
Change-Id: Ida412e15319debce294feb6bc9991877d848c1c3
diff --git a/framework/lynq-ril-service/src/data/data_gdbus.cpp b/framework/lynq-ril-service/src/data/data_gdbus.cpp
index 3d067b8..cd62eb1 100755
--- a/framework/lynq-ril-service/src/data/data_gdbus.cpp
+++ b/framework/lynq-ril-service/src/data/data_gdbus.cpp
@@ -95,6 +95,7 @@
p.writeInt32 (LYNQ_URC_DATA_CALL_STATUS_IND);
p.writeInt32 (0);//temporary plan
p.writeInt32(PDN_DISCONNECTED);
+ writeStringToParcel(p,urc_response->apnType);
android::LYNQ_RIL_urcBroadcast(p);
RLOGD("removed apn:%s,apntype:%s",apn_table[i].apn,apn_table[i].apntype);
//printf("removed apn:%s,apntype:%s\n",apn_table[i].apn,apn_table[i].apntype);
diff --git a/framework/lynq-ril-service/src/lynq_interface.h b/framework/lynq-ril-service/src/lynq_interface.h
index 6179538..2a26b51 100755
--- a/framework/lynq-ril-service/src/lynq_interface.h
+++ b/framework/lynq-ril-service/src/lynq_interface.h
@@ -12,6 +12,7 @@
#define LYNQ_REQUEST_READ_SMS_FROM_MEMORY (LYNQ_REQUEST_VENDOR_BASE + 5)
#define LYNQ_REQUEST_DELETE_SMS_FROM_MEMORY (LYNQ_REQUEST_VENDOR_BASE + 6)
#define LYNQ_REQUEST_LIST_SMS_FROM_MEMORY (LYNQ_REQUEST_VENDOR_BASE + 7)
+#define LYNQ_REQUEST_SET_DEFAULT_SIM_ALL (LYNQ_REQUEST_VENDOR_BASE + 8)
typedef struct{
int request;
int waitTime;
diff --git a/framework/lynq-ril-service/src/ril.cpp b/framework/lynq-ril-service/src/ril.cpp
index 268c852..bc6133a 100755
--- a/framework/lynq-ril-service/src/ril.cpp
+++ b/framework/lynq-ril-service/src/ril.cpp
@@ -4857,6 +4857,7 @@
case LYNQ_REQUEST_READ_SMS_FROM_MEMORY: return "LYNQ_REQUEST_READ_SMS_FROM_MEMORY";
case LYNQ_REQUEST_DELETE_SMS_FROM_MEMORY: return "LYNQ_REQUEST_DELETE_SMS_FROM_MEMORY";
case LYNQ_REQUEST_LIST_SMS_FROM_MEMORY: return "LYNQ_REQUEST_LIST_SMS_FROM_MEMORY";
+ case LYNQ_REQUEST_SET_DEFAULT_SIM_ALL:return "SET_DEFAULT_SIM_ALL";
default: return "<unknown request>";
}
}
@@ -5118,6 +5119,7 @@
case LYNQ_REQUEST_READ_SMS_FROM_MEMORY: return "LYNQ_REQUEST_READ_SMS_FROM_MEMORY";
case LYNQ_REQUEST_DELETE_SMS_FROM_MEMORY: return "LYNQ_REQUEST_DELETE_SMS_FROM_MEMORY";
case LYNQ_REQUEST_LIST_SMS_FROM_MEMORY: return "LYNQ_REQUEST_LIST_SMS_FROM_MEMORY";
+ case LYNQ_REQUEST_SET_DEFAULT_SIM_ALL:return "SET_DEFAULT_SIM_ALL";
/*warren add for t800 ril service 2022/1/22 end*/
default: return "<unknown request>";
}
diff --git a/lib/liblynq-call/lynq_call.cpp b/lib/liblynq-call/lynq_call.cpp
index b517092..1f71165 100755
--- a/lib/liblynq-call/lynq_call.cpp
+++ b/lib/liblynq-call/lynq_call.cpp
@@ -15,6 +15,7 @@
#include <sys/time.h>
#include <string.h>
#define LYNQ_SERVICE_PORT 8088
+#define DSET_IP_ADDRESS "127.0.0.1"
#define LYNQ_URC_SERVICE_PORT 8086
#define LYNQ_REC_BUF 8192
#define LYNQ_REQUEST_PARAM_BUF 8192
@@ -66,7 +67,13 @@
pthread_t lynq_call_urc_tid;
pthread_t lynq_call_list_loop_tid;
-
+/*lei add*/
+/* socket文件描述符 */
+int len_addr_serv;
+struct sockaddr_in addr_serv;
+lynq_client_t client_t;
+int client_size = 0;
+/*lei add*/
int s_call_urc_event_complete = 1;
@@ -122,7 +129,7 @@
int send_request(int sockfd,lynq_client_t *client_tmp)
{
int ret=0;
- ret = write(sockfd, client_tmp, LYQN_SEDN_BUF);
+ ret = sendto(sockfd, client_tmp, client_size, 0, (struct sockaddr *)&addr_serv, len_addr_serv);
if(ret==-1)
{
LYERRLOG("write error:%s",strerror(errno));
@@ -137,7 +144,7 @@
char recvline[LYNQ_REC_BUF];
bzero(recvline,LYNQ_REC_BUF);
/* receive data from server */
- len = read(sockfd, recvline, LYNQ_REC_BUF);
+ len = recvfrom(sockfd,recvline,LYNQ_REC_BUF, 0, (struct sockaddr *)&addr_serv,(socklen_t*)&len_addr_serv);
if(len == -1)
{
LYERRLOG("read error:%s",strerror(errno));
@@ -407,13 +414,15 @@
/*Warren add for T800 platform 2021/11/19 start*/
int lynq_socket_client_start()
-{
+{
+ #if 0
struct sockaddr_in lynq_socket_server_addr;
/* init lynq_socket_server_addr */
bzero(&lynq_socket_server_addr, sizeof(lynq_socket_server_addr));
lynq_socket_server_addr.sin_family = AF_INET;
lynq_socket_server_addr.sin_port = htons(LYNQ_SERVICE_PORT);
lynq_socket_server_addr.sin_addr.s_addr = htons(INADDR_ANY);
+
/*
if(inet_pton(AF_INET,"127.0.0.1", &lynq_socket_server_addr.sin_addr) <= 0)
{
@@ -427,6 +436,18 @@
LYERRLOG("connect error:%s",strerror(errno));
return -1;
}
+ #endif
+ lynq_call_client_sockfd = socket(AF_INET, SOCK_DGRAM, 0);
+ if (-1 == lynq_call_client_sockfd)
+ {
+ return lynq_call_client_sockfd;
+ }
+ /* 设置address */
+ memset(&addr_serv, 0, sizeof(addr_serv));
+ addr_serv.sin_family = AF_INET;
+ addr_serv.sin_addr.s_addr = inet_addr(DSET_IP_ADDRESS);
+ addr_serv.sin_port = htons(LYNQ_SERVICE_PORT);
+ len_addr_serv = sizeof(addr_serv);
return 0;
}
int lynq_update_call_list_loop()
@@ -582,6 +603,7 @@
int result = 0;
Global_uToken_call = uToken;
urc_call_recive_status = 1;
+ client_size = sizeof(client_t);
LYLOGSET(LOG_INFO);
LYLOGEINIT(USER_LOG_TAG);
result = lynq_socket_client_start();
diff --git a/lib/liblynq-gnss/include/lynq_gnss.h b/lib/liblynq-gnss/include/lynq_gnss.h
index afefd60..40ef778 100755
--- a/lib/liblynq-gnss/include/lynq_gnss.h
+++ b/lib/liblynq-gnss/include/lynq_gnss.h
@@ -25,26 +25,69 @@
}LYNQ_CONF_SWITCH;
+//new version
+typedef struct
+{
+ /** set to sizeof(GpsLocation) */
+ size_t size;
+ /** Contains GpsLocationFlags bits. */
+ uint16_t flags;
+ /** Represents latitude in degrees. */
+ double latitude;
+ /** Represents longitude in degrees. */
+ double longitude;
+ /**
+ * Represents altitude in meters above the WGS 84 reference ellipsoid.
+ */
+ double altitude;
+ /** Represents speed in meters per second. */
+ float speed;
+ /** Represents heading in degrees. */
+ float bearing;
+ /** Represents expected accuracy in meters. */
+ float accuracy;
+ /** Timestamp for the location fix. */
+ int64_t timestamp;
+
+ float horizontalAccuracyMeters;
+
+ /**
+ * Represents expected vertical position accuracy in meters
+ * (68% confidence).
+ */
+ float verticalAccuracyMeters;
+
+ /**
+ * Represents expected speed accuracy in meter per seconds
+ * (68% confidence).
+ */
+ float speedAccuracyMetersPerSecond;
+
+ /**
+ * Represents expected bearing accuracy in degrees
+ * (68% confidence).
+ */
+ float bearingAccuracyDegrees;
+}lynq_gnsslocation;
+
int lynq_gnss_init(void);
-// int lynq_gnss_callback_reg(lynq_gnss_cb* callbacks);
+int lynq_gnss_deinit(void);
int lynq_gnss_start(void);
int lynq_gnss_stop(void);
-void lynq_gnss_cleanup(void);
+int lynq_gnss_cleanup(void);
int lynq_gnss_inject_time(GpsUtcTime time, int64_t timeReference, int uncertainty);
int lynq_gnss_inject_location(double latitude,double longitude,float accuracy);
-void lynq_gnss_delete_aiding_data(GpsAidingData flags);
+int lynq_gnss_delete_aiding_data(GpsAidingData flags);
int lynq_gnss_inject_fused_location(double latitude,double longitude,float accuracy);
-void* lynq_gnss_get_extension(const char* name);
-
int lynq_gnss_set_start_mode(LYNQ_GNSS_MODE_CONFIGURATION start_mode);
int lynq_gnss_debug_switch(LYNQ_CONF_SWITCH switch_op);
@@ -53,7 +96,8 @@
int lynq_gnss_output_frequency_set(int frequency);
-GpsCallbacks_ext* lynq__get_gps_callbacks(void);
+int lynq_get_location_info(lynq_gnsslocation* loc);
+
diff --git a/lib/liblynq-gnss/src/lynq_callback.c b/lib/liblynq-gnss/src/lynq_callback.c
index 23e00d8..9af2060 100755
--- a/lib/liblynq-gnss/src/lynq_callback.c
+++ b/lib/liblynq-gnss/src/lynq_callback.c
@@ -19,20 +19,6 @@
{
GpsLocation_ext* loc = (GpsLocation_ext *)location;
lynq_GpsLocation_ext lynq_loc;
- //lynq_loc.legacyLocation.size = loc->legacyLocation.size;
- lynq_loc.legacyLocation.size = sizeof(lynq_GpsLocation_ext);
- lynq_loc.legacyLocation.flags = loc->legacyLocation.flags;
- lynq_loc.legacyLocation.latitude = loc->legacyLocation.latitude;
- lynq_loc.legacyLocation.longitude = loc->legacyLocation.longitude;
- lynq_loc.legacyLocation.altitude = loc->legacyLocation.altitude;
- lynq_loc.legacyLocation.speed = loc->legacyLocation.speed;
- lynq_loc.legacyLocation.bearing = loc->legacyLocation.bearing;
- lynq_loc.legacyLocation.accuracy = loc->legacyLocation.accuracy;
- lynq_loc.legacyLocation.timestamp = loc->legacyLocation.timestamp;
- lynq_loc.horizontalAccuracyMeters = loc->horizontalAccuracyMeters;
- lynq_loc.speedAccuracyMetersPerSecond = loc->speedAccuracyMetersPerSecond;
- lynq_loc.bearingAccuracyDegrees = loc->bearingAccuracyDegrees;
- lynq_callbacks->lynq_location_cb(&lynq_loc);
lynq_cb_status = 1;
lynq_gnss_location.size = sizeof(lynq_gnsslocation);
@@ -48,11 +34,20 @@
lynq_gnss_location.verticalAccuracyMeters = loc->verticalAccuracyMeters;
lynq_gnss_location.speedAccuracyMetersPerSecond = loc->speedAccuracyMetersPerSecond;
lynq_gnss_location.bearingAccuracyDegrees = loc->bearingAccuracyDegrees;
+ RLOGD("------------------------------------------------------------\r\n");
+ RLOGD("Flags: 0x%x\r\n",lynq_gnss_location.flags);
+ RLOGD("latitude: %.10lf\r\n",lynq_gnss_location.latitude);
+ RLOGD("longitude: %.10lf\r\n",lynq_gnss_location.longitude);
+ RLOGD("altitude: %.10lf\r\n",lynq_gnss_location.altitude);
+ RLOGD("speed: %fm/s\r\n",lynq_gnss_location.speed);
+ RLOGD("bearing: %f\r\n",lynq_gnss_location.bearing);
+ RLOGD("accuracy: %fm\r\n",lynq_gnss_location.horizontalAccuracyMeters);
+ RLOGD("timestamp: %ld\r\n",lynq_gnss_location.timestamp);
+ RLOGD("------------------------------------------------------------\r\n");
}
void lynq_gps_status_callback(GpsStatus* status)
{
- lynq_callbacks->lynq_status_cb(status);
lynq_gnss_status.size = sizeof(lynq_gnssstatus);
lynq_gnss_status.status = status->status;
}
@@ -64,7 +59,7 @@
void lynq_gps_nmea_callback(GpsUtcTime timestamp, const char* nmea, int length)
{
- lynq_callbacks->lynq_nmea_cb(timestamp,nmea,length);
+
}
void lynq_gps_set_capabilities(uint32_t capabilities)
diff --git a/lib/liblynq-gnss/src/lynq_gnss.c b/lib/liblynq-gnss/src/lynq_gnss.c
index 8ea5605..020ee63 100755
--- a/lib/liblynq-gnss/src/lynq_gnss.c
+++ b/lib/liblynq-gnss/src/lynq_gnss.c
@@ -62,9 +62,7 @@
pthread_t tid;
pthread_attr_t attr;
called_status = 1;
- gpshal_set_gps_state_intent(GPSHAL_STATE_INIT);
- gpshal2mnl_gps_init();
- g_gpshal_ctx.mnl_retry_timer = mnldinf_init_timer(gpshal_mnl_retry_routine);
+
mnldinf_wake_lock_init();
turn_cbs = lynq__get_gps_callbacks();
if(turn_cbs == NULL)
@@ -77,6 +75,10 @@
return -1;
}
+ gpshal_set_gps_state_intent(GPSHAL_STATE_INIT);
+ gpshal2mnl_gps_init();
+ g_gpshal_ctx.mnl_retry_timer = mnldinf_init_timer(gpshal_mnl_retry_routine);
+
pthread_attr_init(&attr);
pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
ret = pthread_create(&tid,&attr,thread_called_recv,NULL);
@@ -99,6 +101,7 @@
g_gpshal_ctx.mnl_retry_timer = INVALID_TIMERID;
if(mnldinf_deinit_timer(retry_timer) == -1) {
RLOGD("retry_timer deinit fail:%s", strerror(errno));
+ return -1;
}
return 0;
}
@@ -135,7 +138,7 @@
return 0;
}
-void lynq_gnss_cleanup(void)
+int lynq_gnss_cleanup(void)
{
timer_t retry_timer;
gpshal_set_gps_state_intent(GPSHAL_STATE_CLEANUP);
@@ -145,13 +148,16 @@
g_gpshal_ctx.mnl_retry_timer = INVALID_TIMERID;
if(mnldinf_deinit_timer(retry_timer) == -1) {
RLOGD("retry_timer deinit fail:%s", strerror(errno));
+ return -1;
}
+ return 0;
}
int lynq_gnss_inject_time(GpsUtcTime time, int64_t timeReference, int uncertainty)
{
if (hal2mnl_gps_inject_time(time, timeReference, uncertainty) == -1) {
RLOGD("hal2mnl_gps_inject_time failed because of safe_sendto fail ,strerror:%s \n", strerror(errno));
+ return -1;
}
return 0;
}
@@ -162,14 +168,17 @@
float accuracy) {
if (hal2mnl_gps_inject_location(latitude, longitude, accuracy) == -1) {
RLOGD("hal2mnl_gps_inject_location failed because of safe_sendto fail ,strerror:%s \n", strerror(errno));
+ return -1;
}
return 0;
}
-void lynq_gnss_delete_aiding_data(GpsAidingData flags) {
+int lynq_gnss_delete_aiding_data(GpsAidingData flags) {
if (hal2mnl_gps_delete_aiding_data(flags) == -1) {
RLOGD("hal2mnl_gps_delete_aiding_data failed because of safe_sendto fail ,strerror:%s \n", strerror(errno));
+ return -1;
}
+ return 0;
}
int lynq_gnss_inject_fused_location(
@@ -299,6 +308,34 @@
return 0;
}
+int lynq_get_location_info(lynq_gnsslocation* loc)
+{
+ if(loc == NULL)
+ {
+ RLOGD("incoming point error");
+ return -1;
+ }
+ if(lynq_gnss_location.latitude == 0)
+ {
+ printf("none of location info");
+ }else{
+ loc->size = lynq_gnss_location.size;
+ loc->flags = lynq_gnss_location.flags;
+ loc->latitude = lynq_gnss_location.latitude;
+ loc->longitude = lynq_gnss_location.longitude ;
+ loc->altitude = lynq_gnss_location.altitude;
+ loc->speed = lynq_gnss_location.speed;
+ loc->bearing = lynq_gnss_location.bearing;
+ loc->accuracy = lynq_gnss_location.accuracy;
+ loc->timestamp = lynq_gnss_location.timestamp;
+ loc->horizontalAccuracyMeters = lynq_gnss_location.horizontalAccuracyMeters;
+ loc->verticalAccuracyMeters = lynq_gnss_location.verticalAccuracyMeters;
+ loc->speedAccuracyMetersPerSecond = lynq_gnss_location.speedAccuracyMetersPerSecond;
+ loc->bearingAccuracyDegrees = lynq_gnss_location.bearingAccuracyDegrees;
+ }
+ return 0;
+}
+
/*void lyqn_gnss_restart(void)
{
diff --git a/lib/liblynq-gnss/src/lynq_gnsshal.h b/lib/liblynq-gnss/src/lynq_gnsshal.h
index 77f290f..e433ce4 100755
--- a/lib/liblynq-gnss/src/lynq_gnsshal.h
+++ b/lib/liblynq-gnss/src/lynq_gnsshal.h
@@ -73,49 +73,7 @@
uint16_t status;
}lynq_gnssstatus;
-//new version
-typedef struct
-{
- /** set to sizeof(GpsLocation) */
- size_t size;
- /** Contains GpsLocationFlags bits. */
- uint16_t flags;
- /** Represents latitude in degrees. */
- double latitude;
- /** Represents longitude in degrees. */
- double longitude;
- /**
- * Represents altitude in meters above the WGS 84 reference ellipsoid.
- */
- double altitude;
- /** Represents speed in meters per second. */
- float speed;
- /** Represents heading in degrees. */
- float bearing;
- /** Represents expected accuracy in meters. */
- float accuracy;
- /** Timestamp for the location fix. */
- int64_t timestamp;
-
- float horizontalAccuracyMeters;
+GpsCallbacks_ext* lynq__get_gps_callbacks(void);
- /**
- * Represents expected vertical position accuracy in meters
- * (68% confidence).
- */
- float verticalAccuracyMeters;
-
- /**
- * Represents expected speed accuracy in meter per seconds
- * (68% confidence).
- */
- float speedAccuracyMetersPerSecond;
-
- /**
- * Represents expected bearing accuracy in degrees
- * (68% confidence).
- */
- float bearingAccuracyDegrees;
-}lynq_gnsslocation;
#endif
\ No newline at end of file
diff --git a/lib/liblynq-network/include/lynq_network/lynq_network.h b/lib/liblynq-network/include/lynq_network/lynq_network.h
index dc8aa82..d3783ae 100755
--- a/lib/liblynq-network/include/lynq_network/lynq_network.h
+++ b/lib/liblynq-network/include/lynq_network/lynq_network.h
@@ -1,7 +1,5 @@
#ifndef LYNQ_NETWORK_H
#define LYNQ_NETWORK_H
-#include <vendor-ril/telephony/ril.h>
-#include <pthread.h>
#ifdef __cplusplus
extern "C" {
#endif
diff --git a/lib/liblynq-sim/include/lynq_sim.h b/lib/liblynq-sim/include/lynq_sim.h
index 9e55e69..e7f534f 100755
--- a/lib/liblynq-sim/include/lynq_sim.h
+++ b/lib/liblynq-sim/include/lynq_sim.h
@@ -27,6 +27,7 @@
int lynq_change_pin(char *old_pin, char *new_pin);
int lynq_unlock_pin(char *puk, char *pin);
int lynq_query_phone_number(char buf[]);
+int lynq_switch_card(int slot);
/*add by lei*/
diff --git a/lib/liblynq-sim/src/lynq_sim.cpp b/lib/liblynq-sim/src/lynq_sim.cpp
index 16c2315..85a8c5b 100755
--- a/lib/liblynq-sim/src/lynq_sim.cpp
+++ b/lib/liblynq-sim/src/lynq_sim.cpp
@@ -31,6 +31,7 @@
#define RIL_REQUEST_ENTER_SIM_PUK 3
#define RIL_REQUEST_CHANGE_SIM_PIN 6
#define RIL_REQUEST_OEM_HOOK_RAW 59
+#define LYNQ_REQUEST_SET_DEFAULT_SIM_ALL 8008
#define MAX_LEN 1024*8
#define MAX_NUM 10
#define LOG_TAG "LYNQ_SIM"
@@ -230,6 +231,8 @@
int ret = -1;
if(pin == NULL)
return ret;
+ if(!strlen(pin))
+ return ret;
int send_num = 0;
int recv_num = 0;
char res_data[MAX_LEN] = {0};
@@ -391,6 +394,8 @@
int ret = -1;
if(old_pin == NULL || new_pin == NULL)
return ret;
+ if(!strlen(new_pin))
+ return ret;
int send_num = 0;
int recv_num = 0;
char res_data[MAX_LEN] = {0};
@@ -554,6 +559,38 @@
}
return error1;
}
+
+static int judge(int slot){
+ switch(slot){
+ case 0:
+ return -1;
+ case 1:
+ return -1;
+ }
+ return 0;
+}
+
+
+int lynq_switch_card(int slot){
+ int ret = -1;
+ if(!judge(slot))
+ return ret;
+ int send_num = 0;
+ int recv_num = 0;
+ char res_data[MAX_LEN] = {0};
+ int len = 0;
+ client_t.request = LYNQ_REQUEST_SET_DEFAULT_SIM_ALL;
+ client_t.paramLen = 1;
+ client_t.uToken = Global_uToken;
+ sprintf(client_t.param, "%d\n", slot);
+ send_num = sendto(sock_fd, &client_t, sizeof(client_t), 0, (struct sockaddr *)&addr_serv, len_addr_serv);
+ if(send_num < 0)
+ {
+ RLOGD("sendto error:");
+ return send_num;
+ }
+ return 0;
+}
#if FLAG_TESS
int lynq_query_operator(char buf[]){
int32_t token = -1;