blob: 4a07d42404602a2771df4879a79e3c1a545abc2a [file] [log] [blame]
/*
* Copyright 2023 Google LLC
*
* SPDX-License-Identifier: Apache-2.0
*/
#include <zephyr/drivers/gnss.h>
#include <zephyr/drivers/gnss/gnss_publish.h>
#include <zephyr/device.h>
DEVICE_DEFINE(gnss_dev, "gnss_dev", NULL, NULL, NULL, NULL,
POST_KERNEL, CONFIG_KERNEL_INIT_PRIORITY_DEFAULT, NULL);
static const struct device *gnss_dev = &DEVICE_NAME_GET(gnss_dev);
static struct gnss_data test_data;
static struct gnss_satellite test_satellite;
static void test_gnss_data(void)
{
gnss_publish_data(gnss_dev, &test_data);
/* positive values */
test_data.nav_data.latitude = 10000000001;
test_data.nav_data.longitude = 20000000002;
test_data.nav_data.bearing = 3003;
test_data.nav_data.speed = 4004;
test_data.nav_data.altitude = 5005;
test_data.info.satellites_cnt = 6;
test_data.info.hdop = 7;
test_data.info.fix_status = GNSS_FIX_STATUS_GNSS_FIX;
test_data.info.fix_quality = GNSS_FIX_QUALITY_GNSS_PPS;
test_data.utc.hour = 1;
test_data.utc.minute = 2;
test_data.utc.millisecond = 3;
test_data.utc.month_day = 4;
test_data.utc.month = 5;
test_data.utc.century_year = 6;
gnss_publish_data(gnss_dev, &test_data);
/* small positive values */
test_data.nav_data.latitude = 1;
test_data.nav_data.longitude = 2;
test_data.nav_data.bearing = 3;
test_data.nav_data.speed = 4;
test_data.nav_data.altitude = 5;
gnss_publish_data(gnss_dev, &test_data);
/* negative values */
test_data.nav_data.latitude = -10000000001;
test_data.nav_data.longitude = -20000000002;
test_data.nav_data.altitude = -5005;
gnss_publish_data(gnss_dev, &test_data);
/* small negative values */
test_data.nav_data.latitude = -1;
test_data.nav_data.longitude = -2;
test_data.nav_data.altitude = -5;
gnss_publish_data(gnss_dev, &test_data);
}
static void test_satellites_data(void)
{
gnss_publish_satellites(gnss_dev, &test_satellite, 1);
test_satellite.prn = 1;
test_satellite.snr = 2;
test_satellite.azimuth = 3;
test_satellite.system = GNSS_SYSTEM_GALILEO;
test_satellite.is_tracked = 1;
gnss_publish_satellites(gnss_dev, &test_satellite, 1);
}
int main(void)
{
test_gnss_data();
test_satellites_data();
return 0;
}