quec_modem_interface.h 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. /** @file
  2. quec_modem_interface.h
  3. @brief
  4. This file is used to define version information 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 QUEC_MODEM_INTERFACE_H
  18. #define QUEC_MODEM_INTERFACE_H
  19. #include "at_cfw.h"
  20. #include "lwip/netif.h"
  21. #include "quec_common.h"
  22. #ifdef __cplusplus
  23. extern "C" {
  24. #endif
  25. #ifdef CONFIG_QUEC_PROJECT_FEATURE_NETIF
  26. /*========================================================================
  27. * Macro Definition
  28. *========================================================================*/
  29. /*========================================================================
  30. * Enumeration Definition
  31. *========================================================================*/
  32. typedef enum
  33. {
  34. QUEC_NETIF_ACTION_NONE = 0,
  35. QUEC_NETIF_ACTION_BUSY,
  36. QUEC_NETIF_ACTION_MATCH_MODE,
  37. QUEC_NETIF_ACTION_TOCONNECT,
  38. QUEC_NETIF_ACTION_TOACTIVE,
  39. QUEC_NETIF_ACTION_MAX,
  40. }quec_netif_action_e;
  41. /*========================================================================
  42. * Type Definition
  43. *========================================================================*/
  44. typedef struct
  45. {
  46. uint8_t nSim;
  47. uint8_t nCid;
  48. void (*quec_modem_exception_handler)(void *ctx);
  49. void *exception_ctx;
  50. ql_mutex_t lock;
  51. }quec_modem_connect_ctx_s;
  52. /*========================================================================
  53. * Variable Definition
  54. *========================================================================*/
  55. /*========================================================================
  56. * Utilities Definition
  57. *========================================================================*/
  58. /*========================================================================
  59. * function Definition
  60. *========================================================================*/
  61. void quec_modem_connect_ctx_try_lock(void);
  62. void quec_modem_connect_ctx_unlock(void);
  63. uint8_t quec_check_netif_exist_or_available(uint8_t nSim, uint8_t nCid, quec_netif **wan_if, quec_netif **lwip_if, uint8_t dst_mode);
  64. quec_netif *quec_getAvailableNetIfBySIMCID(uint8_t nSim, uint8_t nCid);
  65. quec_netif *quec_get_NAT_wan_NetIf(uint8_t nSim, uint8_t nCid);
  66. void quec_modem_attach_notification(uint8_t nSim,uint8_t ps_status);
  67. uint32_t quec_check_gprs_pdp_state(uint8_t nSim, uint8_t cid);
  68. uint32_t quec_try_to_active_pdp_context_by_cid(quec_modem_connect_ctx_s *ctx);
  69. void _getPeerIpv6Prefix(struct netif *nif, struct pbuf *p);
  70. #endif
  71. #ifdef __cplusplus
  72. } /*"C" */
  73. #endif
  74. #endif /* QUEC_MODEM_INTERFACE_H */