EBADPARM: pGPSInfo 或 pcb 为 NULL EUNSUPPORTED: 不支持该函数。 EFAILED: 常规失败 备注:
成功时,请求会在在处理,并响应会使用回调得到异步通知。 应用可以在 pcb 中调用 CALLBACK_Cancel() 以取消请求。 小结:
进行定位时,首先调用接口:IPOSDET_SetGPSConfig()进行GPS设置,设置完毕后,
调用IPOSDET_GetGPSInfo()进行定位。由于GPS引擎一次只能处理一个定位请求,多次定位时,所以需要在一次定位结束返回后再进行下一次定位。两次定位的间隔要尽量接近于设置的nInterval的大小。
2.2 PD API接口介绍
PD API 是一个接口集,应用程序可以利用PD API来确定手机的当前位置。PD API是
仿照CM API制定的,它分为两类:Requests 和 Callbacks。其中Requests又包括同步请求和异步请求。
2.2.1 Requests
同步请求:此时应用程序将被禁止运行,直到此请求被处理完,应用程序才继续运行。
其接口包括:
pdsm_client_init():客户端初始化,LCS代理客户端ID为PDSM_CLIENT_TYPE_NI。 pdsm_client_pd_reg():注册与呼叫相关的回调函数和事件。 pdsm_client_pa_reg():注册用来接收PD参数变化事件。
pdsm_client_lcs_reg ():注册用来接收来自LCS agent的事件(LCS agent是用来通知和验证的)
pdsm_client_act():激活注册的回调
pdsm_client_deact():禁止注册的回调 pdsm_client_release():释放客户端的引用
异步请求:接口包括:
pdsm_get_position():确定移动的位置 pdsm_end_session():取消PD请求 pdsm_set_parameters():设置PD NV参数 pdsm_get_parameters():获得NV参数的当前值
pdsm_lcs_agent_client_request():通知/验证请求;LSM调用此函数来发notification提醒任何已注册的客户端
pdsm_lcs_agent_client_response():来自客户端的通知/验证响应,已注册的客户端调用这个函数来发送用户响应给LSM。
2.2.2 Callbacks
回调函数:是客户端应用程序提供给PD API的函数。PD API利用这些回调函数返回
error,event和notification。
回调函数分为3种类型:
1、命令回调:用来返回异步请求的状态,例如,位置报告。 2、事件回调:用来返回: (1)与位置确定相关的事件; (2)与参数变化相关的事件; (3)与用户通知相关的事件。
3、其他客户端命令错误回调:用来返回其他客户端请求的命令状态
2.2.3 主要功能函数 2.2.3.1 pdsm_get_position()
函数功能:获取位置信息。 主要参数: 1. session type:
typedef enum pdsm_pd_option_e{ PDSM_PD_SESS_TYPE_MIN = -1, PDSM_PD_SESS_TYPE_LATEST, PDSM_PD_SESS_TYPE_NEW, PDSM_PD_SESS_TYPE_UPDATE, PDSM_PD_SESS_TYPE_TRACK, PDSM_PD_SESS_TYPE_TRACK_IND, PDSM_PD_SESS_TYPE_DATA_DLOAD, PDSM_PD_SESS_TYPE_MAX, }pdsm_pd_session_e_type;
2. operation mode: typedef enum {
PDSM_SESSION_OPERATION_MIN = 0,
PDSM_SESSION_OPERATION_STANDALONE_ONLY, PDSM_SESSION_OPERATION_MSBASED, PDSM_SESSION_OPERATION_PDE_CALC_ONLY, PDSM_SESSION_OPERATION_OPTIMAL_SPEED, PDSM_SESSION_OPERATION_OPTIMAL_ACCURACY, PDSM_SESSION_OPERATION_OPTIMAL_DATA, PDSM_SESSION_OPERATION_BESTPOSITIONMODE, PDSM_SESSION_OPERATION_MAX = 0x10000000 } pdsm_pd_session_operation_e_type;
AEE层和Service层GPS模式对应关系:
IPosDet相关接口中:AEEGPSMode对应的session type和operation mode:
GPS mode AEEGPS_MODE_DLOAD_FIRST Session type PDSM_PD_SESS_TYPE_DATA_DLOAD AEEGPS_MODE_TRACK_LOCAL AEEGPS_MODE_TRACK_STANDALONE AEEGPS_MODE_TRACK_NETWORK AEEGPS_MODE_TRACK_OPTIMAL/ AEEGPS_MODE_ONE_SHOT PDSM_PD_SESS_TYPE_NEW Optim AEEGPS_OPT_SPEED AEEGPS_OPT_NONE AEEGPS_OPT_PAYLOAD others Operation mode PDSM_SESSION_OPERATION_OPTIMAL_SPEED PDSM_SESSION_OPERATION_MSBASED PDSM_SESSION_OPERATION_OPTIMAL_DATA PDSM_SESSION_OPERATION_OPTIMAL_ACCURACY
IPosDetExt相关接口中:AEEGPSMode对应的session type和operation mode:
GPS mode Session type PDSM_PD_SESS_TYPE_NEW PDSM_SESSION_OPERATION_MSASSISTED PDSM_PD_SESS_TYPE_NEW PDSM_PD_SESS_TYPE_NEW PDSM_SESSION_OPERATION_STANDALONE_ONLY PDSM_SESSION_OPERATION_MSBASED Operation mode PDSM_SESSION_OPERATION_MSASSISTED
相关推荐: