ql_api_ntrip_rtk.h 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. /** @file
  2. ql_api_ntrip_rtk.h
  3. @brief
  4. This file is used to define ntrip rtk api for different Quectel Project.
  5. */
  6. /*================================================================
  7. Copyright (c) 2020 Quectel Wireless Solution, Co., Ltd. All Rights Reserved.
  8. Quectel Wireless Solution Proprietary and Confidential.
  9. =================================================================*/
  10. /*=================================================================
  11. EDIT HISTORY FOR MODULE
  12. This section contains comments describing changes made to the module.
  13. Notice that changes are listed in reverse chronological order.
  14. WHEN WHO WHAT, WHERE, WHY
  15. ------------ ------- -------------------------------------------------------------------------------
  16. =================================================================*/
  17. #ifndef QL_API_NTRIP_RTK_H
  18. #define QL_API_NTRIP_RTK_H
  19. #include "ql_api_common.h"
  20. #ifdef __cplusplus
  21. extern "C" {
  22. #endif
  23. /**************************** error code about ql ntrip rtk ***************************/
  24. typedef enum
  25. {
  26. QL_NTRIP_RTK_SUCCESS = 0,
  27. QL_NTRIP_RTK_ERROR = 1 | (QL_COMPONNET_LWIP_NTRIP_RTK << 16), //ntrip rtk一般错误
  28. QL_NTRIP_RTK_PARAM_ERROR, //参数错误
  29. QL_NTRIP_RTK_STATE_ERROR, //状态错误,如没有挂载到差分服务器挂载点上,就直接发送数据
  30. QL_NTRIP_RTK_SEND_ERROR, //发送数据错误
  31. QL_NTRIP_RTK_MALLOC_MEM_ERROR, //申请内存错误
  32. QL_NTRIP_RTK_MUTEX_LOCK_ERROR, //互斥锁上锁超时报错
  33. QL_NTRIP_RTK_SOCKET_ERROR, //使用socket出错
  34. }ql_errcode_ntrip_rtk_e;
  35. typedef enum
  36. {
  37. QL_NTRIP_RTK_IDLE = 0, //空闲状态,没有连接差分服务器。过挂载差分服务器出错,也会返回idle状态,并断开socket连接
  38. QL_NTRIP_RTK_CONNECTING, //正在连接差服务器
  39. QL_NTRIP_RTK_CONNECTED, //连接上差服务器
  40. QL_NTRIP_RTK_POINTING, //正在挂载到差分服务器的挂载点上
  41. QL_NTRIP_RTK_POINTED, //挂载到差分服务器的挂载点上
  42. QL_NTRIP_RTK_RECV_DATA, //收到差分服务器下发的数据,需要处理数据
  43. }ql_ntrip_rtk_state_e;
  44. typedef void(*ql_ntrip_rtk_event_cb)(ql_ntrip_rtk_state_e state, char *data, int len);
  45. #define QUEC_NTTIP_RTK_ID_MAX 12
  46. typedef struct
  47. {
  48. uint8_t pdp_cid; //pdp ID
  49. uint8_t sim_id; //SIM ID
  50. char *ip; //差分服务器ip
  51. unsigned short port; //差分服务器端口
  52. char *user; //用户名
  53. char *pwd; //password密码
  54. char *point; //差分服务器挂载点
  55. char *gnss_type; //上传到差分服务器的GNSS数据类型
  56. ql_ntrip_rtk_event_cb func; //回调处理
  57. } ql_ntrip_rtk_config_s;
  58. /*========================================================================
  59. * function Definition
  60. *========================================================================*/
  61. /*****************************************************************
  62. * Function: ql_ntrip_rtk_init
  63. *
  64. * Description:
  65. * 初始化ntrip,发起和差分服务器建立socket连接
  66. *
  67. * Parameters:
  68. * id [in] ntrip rtk id,最大不超过12个
  69. * config [in] ntrip的配置信息,包括差分服务器的ip,端口,挂载点,用户名,密码等信息
  70. *
  71. * Return:ql_errcode_ntrip_rtk_e
  72. *
  73. *****************************************************************/
  74. ql_errcode_ntrip_rtk_e ql_ntrip_rtk_init(int id, ql_ntrip_rtk_config_s *config);
  75. /*****************************************************************
  76. * Function: ql_ntrip_rtk_send
  77. *
  78. * Description:
  79. * 发送数据到差分服务器,一般为GNSS的定位数据
  80. *
  81. * Parameters:
  82. * id [in] ntrip rtk id,最大不超过12个
  83. * data [in] 发往差分服务器的定位数据
  84. * len [in] 发往差分服务器的定位数据长度
  85. *
  86. * Return:ql_errcode_ntrip_rtk_e
  87. *
  88. *****************************************************************/
  89. ql_errcode_ntrip_rtk_e ql_ntrip_rtk_send(int id, char *data, int len);
  90. /*****************************************************************
  91. * Function: ql_ntrip_rtk_close
  92. *
  93. * Description:
  94. * 断开和差分服务器的连接,并释放资源
  95. *
  96. * Parameters:
  97. * id [in] ntrip rtk id,最大不超过12个
  98. *
  99. * Return:ql_errcode_ntrip_rtk_e
  100. *
  101. *****************************************************************/
  102. ql_errcode_ntrip_rtk_e ql_ntrip_rtk_close(int id);
  103. #ifdef __cplusplus
  104. } /*"C" */
  105. #endif
  106. #endif /* QL_API_NTRIP_RTK_H */