全部文档
OneOS简介 硬件支持 快速开发指南 编译构造工具 API参考文档 高级语言 用户编程手册 OnePos定位 应用笔记 FAQ

终端配置

GNSS定位结果数据结构

根据不同的NMEA数据集封装了不同的结构体,这些语句集的结构体作为GNSS位置结构体的一个子集,可以通过相关宏定义来控制使用不同的子集;目前支持的NMEA数据集有:RMC、GGA、GSV、GLL、GSA、VTG、ZDA

typedef struct
{
    #if NMEA_SUPP_RMC
    nmea_rmc_t rmc_frame;
    #endif

    #if NMEA_SUPP_GGA
    nmea_gga_t gga_frame;
    #endif

    #if NMEA_SUPP_GSV
    nmea_gsv_t gsv_frame;
    #endif

    #if NMEA_SUPP_GLL
    nmea_gll_t gll_frame;
    #endif

    #if NMEA_SUPP_GSA
    nmea_gsa_t gsa_frame;
    #endif

    #if NMEA_SUPP_VTG
    nmea_vtg_t vtg_frame;
    #endif

    #if NMEA_SUPP_ZDA
    nmea_zda_t zda_frame;
    #endif

    os_uint32_t valid_flag;
} nmea_t;
重要成员 说明
rmc_frame RMC数据集(推荐最低指定GNSS数据)
gga_frame GGA数据集(GPS定位信息,用于全球定位系统的定位数据)
gsv_frame GSV数据集(可见的GNSS卫星)
gll_frame GGL数据集(地理位置——经度/纬度)
gsa_frame GSA数据集(GPS精度因子与使用的卫星)
vtg_frame VTG数据集(地面航向与地面速度,水平航向与航速)
zda_frame ZDA数据集(时间与日期)
valid_flag 当前GNSS数据结构中有效数据集标志

OnePos服务定位数据结构

typedef struct
{
    os_uint32_t time;           /* Information acquisition time */
    double      lat_coordinate; /* Latitude coordinate */
    double      lon_coordinate; /* Longitude coordinate */
} onepos_pos_t;
重要成员 说明
time 定位时间(Unix时间戳,单位:s)
lat_coordinate 纬度
lon_coordinate 经度

GNSS定位API列表

接口 说明
gnss_loca_start 开启GNSS定位功能
get_gnss_data 获取GNSS定位结果

get_gnss_data

os_bool_t get_gnss_data(nmea_t* nmea, gnss_data_flag_t get_data_type_flag)
参数 说明
nmea 指向GNSS数据结构体,用来保存位置信息
get_data_type_flag 要获取的数据集类别
返回 说明
os_bool_t 成功获取返回true,获取超时返回false

配置定位服务API接口

接口 说明
onepos_get_server_sta 查询服务运行状态
onepos_get_server_type 查询服务运行类型
onepos_set_server_type 设置服务运行类型
onepos_get_pos_mode 查询服务的定位方式
onepos_set_pos_mode 设置服务的定位方法
onepos_get_pos_interval 查询服务定位间隔(该间隔用于周期性定位的周期)
onepos_set_pos_interval 设置服务定位间隔(该间隔用于周期性定位的周期)
onepos_start_server 开启定位服务
onepos_stop_server 停止定位服务
onepos_info_print 打印定位结果
onepos_get_latest_position 获取OnePos定位服务的定位结果
onepos_serv_sta_t onepos_get_server_sta(void)
返回 说明
onepos_serv_sta_t 返回服务运行状态;包括:
0 : ONEPOS_CLOSING // 服务已关闭
1 : ONEPOS_RUNING // 周期性定位正在运行
2 : ONEPOS_SIG_RUNING // 单次定位正在运行
3 : ONEPOS_WILL_CLOSE // 周期性定位即将关闭(在本次定位运行完成后将关闭)
onepos_serv_type onepos_get_server_type(void)
返回 说明
onepos_serv_type 服务运行类型;包括:
0 : ONEPOS_CIRC_RUN // 周期性运行定位功能
1 : ONEPOS_SIG_RUN // 单次运行定位功能
os_bool_t onepos_set_server_type(onepos_serv_type type)
参数 说明
type 要设置的服务运行类型
返回 说明
os_bool_t 成功获取返回true,获取超时返回false
onepos_pos_mode_t onepos_get_pos_mode(void)
返回 说明
onepos_pos_mode_t 返回所使用的定位模式;包括:
0 : ONEPOS_WIFI_POS_MODE // wifi定位模式
1 : ONEPOS_CELL_POS_MODE // 基站定位模式
os_bool_t onepos_set_pos_mode(onepos_pos_mode_t mode)
参数 说明
mode 设置的定位模式
返回 说明
os_bool_t 成功获取返回true,获取超时返回false
os_uint16_t onepos_get_pos_interval(void)
返回 说明
os_uint16_t 返回服务当前的定位周期(单位:s)
os_bool_t onepos_set_pos_interval(os_uint16_t interval)
参数 说明
interval 设置的定位周期时间(单位:s)
返回 说明
os_bool_t 成功获取返回true,设置失败返回false
void onepos_info_print(ops_src_info_t *src_info, onepos_pos_mode_t mode)
参数 说明
src_info 指向定位服务维护的位置结果的结构体,保存有定位结果
mode 定位模式(选择要打印那种模式定位的结果)
os_bool_t     onepos_get_latest_position(onepos_pos_t *src_info)
参数 说明
src_info 用于保存定位结果
返回 说明
os_bool_t 成功获取返回true,获取超时返回false

工程配置

使用cube工具进行工程配置,配置项包括:

配置项图片

配置项 说明
OS_USING_OnePos 使能OnePos定位服务
ONEPOS_DEBUG 使能调试模式
ONEPOS_GNSS_POS 使能GNSS定位功能
NMEA_SERIAL_DEVICE_NAME GNSS设备使用的串口的名称
ONEPOS_WIFI_POS 使能wifi定位功能
ONEPOS_WIFI_DEVICE_NAME 使用的wifi设备
ONEPOS_CELL_POS 使能基站定位功能
ONEPOS_CELL_DEVICE_NAME 使用的蜂窝通信设备
ONEPOS_DEVICE_ID 配置服务的Device ID(从OnePos定位平台申请获得)
ONEPOS_PASSWORD 配置服务的Password(密钥是由OnePos定位平台分配的设备key经过MD5加密得到)
ONEPOS_COMM_REC_BUFF_LEN 配置下行数据缓存空间大小
ONEPOS_COMM_SEND_BUFF_LEN 配置上行数据缓存空间大小
ONEPOS_DEFAULT_INTERVAL 配置周期性运行间隔
ONEPOS_DEVICE_REC_POS_INFO 使能设备端获取定位结果功能
ONEPOS_REC_SUB_MSG_TIMEOUT 配置与平台通信超时时间
ONEPOS_SUPP_REMOTE_CONF 使能远程服务控制功能
ONEPOS_DEFAULT_POS_MODE 服务默认的定位方式
ONEPOS_DEFAULT_SEV_TYPE 服务默认的运行方式
ONEPOS_CMD 使能服务的shell命令

依赖组件

OnePos服务依赖的其他组件包括:Paho MQTT、CJson、WIFI\蜂窝模组。

使用示例

参考components\position\source目录下onepos_cmd.c使用范例。

results matching ""

    No results matching ""

    返回顶部