This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

A-GPS using SUPL doesn't work

DK: v0.9.0
nrf: v1.2.0
supl fw: v0.5.2
modem fw: v1.2.0
OS: Windows10

I'm trying to use assited GPS in "gps" sample program, but it doesn't work. This is log. There is no comments about SUPL.

*** Booting Zephyr OS build v2.1.99-ncs1  ***
Staring GPS application
Socket created
Getting GPS data...
Tracking: 0 Using: 0 Unhealthy: 0
Seconds since last fix 0

Scanning [|] Tracking: 0 Using: 0 Unhealthy: 0
Seconds since last fix 0

Scanning [/] Tracking: 0 Using: 0 Unhealthy: 0
Seconds since last fix 1

Scanning [-] Tracking: 0 Using: 0 Unhealthy: 0
Seconds since last fix 1

Scanning [\] Tracking: 0 Using: 0 Unhealthy: 0
Seconds since last fix 2

Scanning [|] Tracking: 0 Using: 0 Unhealthy: 0
Seconds since last fix 2

Scanning [/] Tracking: 0 Using: 0 Unhealthy: 0
Seconds since last fix 3

Scanning [-] Tracking: 0 Using: 0 Unhealthy: 0
Seconds since last fix 3

Scanning [\] Tracking: 0 Using: 0 Unhealthy: 0
Seconds since last fix 4

Scanning [|] Tracking: 0 Using: 0 Unhealthy: 0
Seconds since last fix 4

Scanning [/] Tracking: 0 Using: 0 Unhealthy: 0
Seconds since last fix 5

Scanning [-] Tracking: 0 Using: 0 Unhealthy: 0
Seconds since last fix 5

Scanning [\]

prj.conf

CONFIG_BSD_LIBRARY=y
CONFIG_STDOUT_CONSOLE=y
CONFIG_UART_INTERRUPT_DRIVEN=y
CONFIG_NEWLIB_LIBC=y
CONFIG_NEWLIB_LIBC_FLOAT_PRINTF=y
CONFIG_AT_CMD=y
CONFIG_AT_NOTIF=y

# Enable SUPL client support
CONFIG_SUPL_CLIENT_LIB=y # Set y 

# Networking
CONFIG_NETWORKING=y
CONFIG_NET_SOCKETS_OFFLOAD=y
CONFIG_NET_SOCKETS=y
CONFIG_NET_SOCKETS_POSIX_NAMES=y
CONFIG_NET_SOCKETS_SOCKOPT_TLS=y

# Disable native network stack to save some memory
CONFIG_NET_NATIVE=n

# Main thread
CONFIG_HEAP_MEM_POOL_SIZE=2048
CONFIG_MAIN_STACK_SIZE=4096

In main.c,

supl_init function is executed successfully.
gps_data->data_id value is always 1 or 2 and it isn't set 3.

Any help?

Parents Reply
  • How can I set DNS manually?

    I guess I need to fix something around this in supl_support.c

    int open_supl_socket(void)
    {
    	int err;
    	int proto;
    	u16_t port;
    	struct addrinfo *addr;
    	struct addrinfo *info;
    
    	proto = IPPROTO_TCP;
    	port = htons(SUPL_SERVER_PORT);
    
    	struct addrinfo hints = {
    		.ai_family = AF_INET,
    		.ai_socktype = SOCK_STREAM,
    		.ai_protocol = proto,
    		/* Either a valid,
    		 * NULL-terminated access point name or NULL.
    		 */
    		.ai_canonname = NULL,
    	};
    
    	err = getaddrinfo(SUPL_SERVER, NULL, &hints, &info);
    	if (err) {
    		printk("Failed to resolve hostname %s on IPv4, errno: %d)\n",
    			SUPL_SERVER, errno);
    		return -1;
    	}

Children
Related