leo: gps, and some overlay config updates

* Updated libgps to v2.0 NMEA (tytung)
* Fixed leo.mk, so that custom gps.conf is included
* removed duplicate entry in frameworks config.xml
* enabled allow_in_call_touch_ui in the phone app

Change-Id: I07bb3512954a6457d46a2d63a35498bfd08ed57b
This commit is contained in:
Arif Ali 2011-08-13 00:00:52 +01:00
parent 2629ed2783
commit 115162ec01
8 changed files with 129 additions and 36 deletions

View File

@ -15,3 +15,37 @@ SUPL_HOST=FQDN
SUPL_PORT=7275
SUPL_TLS_HOST=FQDN
SUPL_TLS_CERT=/etc/SuplRootCert
###########################################
# Enable/disable automatic (periodic) #
# download requests of gpsOneXTRA #
# assistance data to client #
# Range: 0 to 1 #
# Default: 0 (Disabled) #
###########################################
GPS1_XTRA_AUTO_DOWNLOAD_ENABLED=0
###########################################
# Time (in hours) between automatic #
# download requests of gpsOneXTRA #
# assistance data to client #
# Range: 1 to 168 (168 = hr in a week) #
# Default: 24 hr #
###########################################
GPS1_XTRA_DOWNLOAD_INTERVAL=24
###########################################
# Enable/disable to shutdown the gpsOne #
# engine properly on GPS off #
# Range: 0 to 1 #
# Default: 1 (Enabled) #
###########################################
GPS1_CLEANUP_ENABLED=1
###########################################
# Time (in seconds) between invoking #
# pdsm_get_position() #
# Range: 2 to 120 #
# Default: 2 seconds #
###########################################
GPS1_SESSION_TIMEOUT=2

51
gps_eu.conf Normal file
View File

@ -0,0 +1,51 @@
NTP_SERVER=europe.pool.ntp.org
XTRA_SERVER_1=http://xtra1.gpsonextra.net/xtra.bin
XTRA_SERVER_2=http://xtra2.gpsonextra.net/xtra.bin
XTRA_SERVER_3=http://xtra3.gpsonextra.net/xtra.bin
NTP_SERVER=0.europe.pool.ntp.org
NTP_SERVER=1.europe.pool.ntp.org
NTP_SERVER=2.europe.pool.ntp.org
NTP_SERVER=3.europe.pool.ntp.org
XTRA_SERVER_1=http://xtra1.gpsonextra.net/xtra.bin
XTRA_SERVER_2=http://xtra2.gpsonextra.net/xtra.bin
XTRA_SERVER_3=http://xtra3.gpsonextra.net/xtra.bin
SUPL_HOST=supl.google.com
SUPL_PORT=7276
SUPL_HOST=FQDN
SUPL_PORT=7275
SUPL_TLS_HOST=FQDN
SUPL_TLS_CERT=/etc/SuplRootCert
###########################################
# Enable/disable automatic (periodic) #
# download requests of gpsOneXTRA #
# assistance data to client #
# Range: 0 to 1 #
# Default: 0 (Disabled) #
###########################################
GPS1_XTRA_AUTO_DOWNLOAD_ENABLED=0
###########################################
# Time (in hours) between automatic #
# download requests of gpsOneXTRA #
# assistance data to client #
# Range: 1 to 168 (168 = hr in a week) #
# Default: 24 hr #
###########################################
GPS1_XTRA_DOWNLOAD_INTERVAL=24
###########################################
# Enable/disable to shutdown the gpsOne #
# engine properly on GPS off #
# Range: 0 to 1 #
# Default: 1 (Enabled) #
###########################################
GPS1_CLEANUP_ENABLED=1
###########################################
# Time (in seconds) between invoking #
# pdsm_get_position() #
# Range: 2 to 120 #
# Default: 2 seconds #
###########################################
GPS1_SESSION_TIMEOUT=2

9
leo.mk
View File

@ -34,12 +34,12 @@ PRODUCT_PROPERTY_OVERRIDES += \
ro.ril.enable.a53.HTC-ITA=1 \
ro.ril.enable.a52=0 \
ro.ril.enable.a53=1 \
ro.ril.enable.dtm = 1 \
ro.ril.gprsclass = 12 \
ro.ril.enable.dtm=1 \
ro.ril.gprsclass=12 \
ro.ril.hsdpa.category=8 \
ro.ril.hsupa.category=5 \
ro.ril.hsxpa=2 \
mobiledata.interfaces=rmnet0,rmnet1,rmnet2,ppp \
mobiledata.interfaces=rmnet0,rmnet1,rmnet2,ppp0 \
wifi.interface=eth0 \
wifi.supplicant_scan_interval=15
@ -148,7 +148,8 @@ LOCAL_KERNEL := $(TARGET_PREBUILT_KERNEL)
endif
# The gps config appropriate for this device
$(call inherit-product, device/common/gps/gps_as_supl.mk)
PRODUCT_COPY_FILES += \
device/htc/leo/gps.conf:system/etc/gps.conf
PRODUCT_COPY_FILES += \
$(LOCAL_KERNEL):kernel

View File

@ -20,7 +20,9 @@
#
# The gps config appropriate for this device
$(call inherit-product, device/common/gps/gps_eu_supl.mk)
PRODUCT_COPY_FILES += \
device/htc/leo/gps_eu.conf:system/etc/gps.conf
# The rest of the configuration is inherited from a generic config
$(call inherit-product, device/htc/leo/leo.mk)

View File

@ -86,7 +86,7 @@ struct SVCXPRT {
} while(0);
static uint32_t client_IDs[16];//highest known value is 0xb
static uint32_t has_fix=0;
static uint32_t no_fix=1;
#if ENABLE_NMEA
static uint32_t use_nmea=1;
#else
@ -646,7 +646,7 @@ void dispatch_pdsm_pd(uint32_t *data) {
}
if(event&PDSM_PD_EVENT_GPS_DONE) {
D("PDSM_PD_EVENT_GPS_DONE");
has_fix = 0;
no_fix = 1;
}
GpsLocation fix;
fix.flags = 0;
@ -686,7 +686,7 @@ void dispatch_pdsm_pd(uint32_t *data) {
fix.timestamp *= 1000; //ms
fix.flags |= GPS_LOCATION_HAS_LAT_LONG;
has_fix = 1;
no_fix = 0;
if (ntohl(data[75])) {
fix.flags |= GPS_LOCATION_HAS_ACCURACY;
@ -749,7 +749,10 @@ void dispatch_pdsm_ext(uint32_t *data) {
int i;
if (use_nmea) return;
if (has_fix) return;
no_fix++;
if (no_fix < 2) return;
if (no_fix == UINT32_MAX) no_fix = 2; // avoid overflow
ret.num_svs=ntohl(data[8]);
D("%s() is called. num_svs=%d", __FUNCTION__, ret.num_svs);
@ -771,9 +774,7 @@ void dispatch_pdsm_ext(uint32_t *data) {
}
//ret.used_in_fix_mask=ntohl(data[9]);
ret.used_in_fix_mask=0;
if (ret.num_svs) {
update_gps_svstatus(&ret);
}
update_gps_svstatus(&ret);
}
void dispatch_pdsm_xtra_req(uint8_t *data) {
@ -837,10 +838,11 @@ void dispatch(struct svc_req* a, registered_server* svc) {
svc_sendreply(svc, xdr_int, &result);
}
static uint8_t CHECKED[3] = {0};
static uint8_t CHECKED[4] = {0};
static uint8_t XTRA_AUTO_DOWNLOAD_ENABLED = 0;
static uint8_t XTRA_DOWNLOAD_INTERVAL = 24;
static uint8_t XTRA_DOWNLOAD_INTERVAL = 24; // hours
static uint8_t CLEANUP_ENABLED = 1;
static uint8_t SESSION_TIMEOUT = 2; // seconds
uint8_t get_cleanup_value() {
D("%s() is called: %d", __FUNCTION__, CLEANUP_ENABLED);
@ -857,12 +859,13 @@ int parse_gps_conf() {
char *check_auto_download = "GPS1_XTRA_AUTO_DOWNLOAD_ENABLED";
char *check_interval = "GPS1_XTRA_DOWNLOAD_INTERVAL";
char *check_cleanup = "GPS1_CLEANUP_ENABLED";
char *check_timeout = "GPS1_SESSION_TIMEOUT";
char *result;
char str[256];
int i = -1;
while (fscanf(file, "%s", str) != EOF) {
//printf("%s (%d)\n", str, strlen(str));
//D("%s (%d)\n", str, strlen(str));
if (!CHECKED[1]) {
result = strstr(str, check_auto_download);
if (result != NULL) {
@ -892,6 +895,16 @@ int parse_gps_conf() {
CHECKED[2] = 1;
}
}
if (!CHECKED[3]) {
result = strstr(str, check_timeout);
if (result != NULL) {
result = result+strlen(check_timeout)+1;
i = atoi(result);
if (i>1 && i<121)
SESSION_TIMEOUT = i;
CHECKED[3] = 1;
}
}
}
fclose(file);
return 0;
@ -994,9 +1007,15 @@ int gps_xtra_inject_time_info(GpsUtcTime time, int64_t timeReference, int uncert
return res;
}
void gps_get_position(int timeout)
void gps_get_position()
{
D("%s() is called", __FUNCTION__);
#if GPS_DEBUG
struct tm tm;
time_t now = time(NULL);
gmtime_r( &now, &tm );
long time = mktime(&tm);
D("%s() is called: %ld", __FUNCTION__, time);
#endif
pdsm_get_position(_clnt,
0, 0,
1,
@ -1008,7 +1027,7 @@ void gps_get_position(int timeout)
0,
0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0,
1, 50, timeout,
1, 50, SESSION_TIMEOUT,
client_IDs[2]);
}

View File

@ -967,12 +967,6 @@ Exit:
return NULL;
}
uint64_t get_usleep_time(int fix_freq) {
uint64_t microseconds;
microseconds = (fix_freq * 1000000) - 500000;
return microseconds;
}
#if ENABLE_NMEA
static void* gps_timer_thread( void* arg ) {
D("%s() running", __FUNCTION__);
@ -1008,7 +1002,7 @@ static void* gps_timer_thread( void* arg ) {
GPS_STATE_UNLOCK_FIX(state);
uint64_t microseconds = get_usleep_time(state->fix_freq);
uint64_t microseconds = (state->fix_freq * 1000000) - 500000;
usleep(microseconds);
//D("%s() usleep(%ld)", __FUNCTION__, microseconds);
@ -1020,13 +1014,6 @@ static void* gps_timer_thread( void* arg ) {
#endif
void pdsm_pd_callback() {
#if DUMP_DATA
struct tm tm;
time_t now = time(NULL);
gmtime_r( &now, &tm );
long time = mktime(&tm);
D("%s() is called: %ld", __FUNCTION__, time);
#endif
pthread_cond_signal(&get_pos_ready_cond);
}
@ -1037,7 +1024,7 @@ static void* gps_get_position_thread( void* arg ) {
{
while(started)
{
gps_get_position(s->fix_freq);
gps_get_position();
pthread_mutex_lock(&get_pos_ready_mutex);
pthread_cond_wait(&get_pos_ready_cond, &get_pos_ready_mutex);
pthread_mutex_unlock(&get_pos_ready_mutex);

View File

@ -32,8 +32,6 @@
<bool name="config_automatic_brightness_available">true</bool>
<bool name="config_animateScreenLights">false</bool>
<!-- disable menu hard key on HD2 in non-pattern lockscreen -->
<bool name="config_disableMenuKeyInLockScreen">true</bool>
@ -182,6 +180,7 @@
<!-- Enable use of power animations -->
<bool name="config_animateScreenLights">false</bool>
<!-- Enable Tablet tweaks -->
<bool name="cm_default_has_soft_buttons">true</bool>
<bool name="cm_default_show_soft_home">false</bool>
<bool name="cm_default_show_soft_menu">false</bool>

View File

@ -19,7 +19,7 @@
<!-- Enable the onscreen touch UI for all states of the in-call UI. -->
<bool name="allow_incoming_call_touch_ui">true</bool>
<bool name="allow_in_call_touch_ui">false</bool>
<bool name="allow_in_call_touch_ui">true</bool>
<!-- This is a device with capacitive buttons, so disable the feature
where BACK rejects the current incoming call. (Since it's so