Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.
 
 
 
 

154 rader
3.8 KiB

  1. /*
  2. * File: SIM7080GInterface.h
  3. * Author: JF
  4. *
  5. * Created on August 13, 2024, 1:43 PM
  6. */
  7. #ifndef SIM7080GINTERFACE_H
  8. #define SIM7080GINTERFACE_H
  9. #include "define.h"
  10. #define LTE_MODULE_POWERUP_TIMEOUT 2000
  11. #define LTE_MODULE_WAIT_INIT_TIMEOUT 5000
  12. #define LTE_MODULE_CONNECTION_CHECK_TIMEOUT 5000
  13. #define LTE_MODULE_MAX_CMD_LENGTH 128
  14. #define LTE_MODULE_MAX_MASTER_CONNECT_RETRY 5
  15. #define LTE_MODULE_MAX_COMM_TIMEOUT 10000
  16. enum eLTEModuleCommands
  17. {
  18. LTE_MODULE_NO_CMD = 0,
  19. LTE_MODULE_CONNECT_APN_CMD,
  20. LTE_MODULE_DISCONNECT_APN_CMD,
  21. LTE_MODULE_CONNECT_TO_MASTER_CMD,
  22. LTE_MODULE_DISCONNECT_FROM_MASTER_CMD,
  23. LTE_MODULE_RX_DATA_CMD,
  24. LTE_MODULE_TX_DATA_CMD,
  25. LTE_MODULE_CHECK_APN_CONNECTION_CMD,
  26. LTE_MODULE_CHECK_MASTER_CONNECTION_CMD,
  27. LTE_MODULE_MAX_CMD
  28. };
  29. enum eLTEModuleCmdResult
  30. {
  31. LTE_MODULE_RESULT_OK,
  32. LTE_MODULE_RESULT_ERROR
  33. };
  34. enum eLTEModuleAPNConnectionStatus
  35. {
  36. LTE_MODULE_APN_DISCONNECTED,
  37. LTE_MODULE_APN_CONNECTED
  38. };
  39. enum eLTEModuleMasterConnectionStatus
  40. {
  41. LTE_MODULE_MASTER_DISCONNECTED,
  42. LTE_MODULE_MASTER_CONNECTED,
  43. LTE_MODULE_MASTER_SOCKET_ERROR
  44. };
  45. enum eLTEModuleStates
  46. {
  47. LTE_MODULE_SM_INIT_STATE,
  48. LTE_MODULE_SM_RESET_STATE,
  49. LTE_MODULE_SM_POWERUP_STATE,
  50. LTE_MODULE_SM_WAIT_RDY_STATE,
  51. LTE_MODULE_SM_SETECHOOFF_STATE,
  52. LTE_MODULE_SM_SETAPN_STATE,
  53. LTE_MODULE_SM_DELAY_STATE,
  54. LTE_MODULE_SM_RUN_STATE,
  55. LTE_MODULE_SM_PASSTHROUGH_STATE,
  56. LTE_MODULE_SM_MAX_STATE
  57. };
  58. enum eLTEModuleEvents
  59. {
  60. LTE_MODULE_SM_TICK_EVENT,
  61. LTE_MODULE_RX_DATA_EVENT,
  62. LTE_MODULE_RX_RDY_EVENT,
  63. LTE_MODULE_ENTER_PASSTHROUGH_EVENT,
  64. LTE_MODULE_EXIT_PASSTHROUGH_EVENT,
  65. LTE_MODULE_MAX_EVENT
  66. };
  67. enum eLTEModuleOperationStates
  68. {
  69. LTE_MODULE_OPERATION_INIT_STATE,
  70. LTE_MODULE_OPERATION_WAIT_CONNECT_APN_STATE,
  71. LTE_MODULE_OPERATION_CHECK_APN_STATE,
  72. LTE_MODULE_OPERATION_WAIT_CONNECT_SERVER_STATE,
  73. LTE_MODULE_OPERATION_WAIT_DISCONNECT_SERVER_STATE,
  74. LTE_MODULE_OPERATION_STANDBY_STATE,
  75. LTE_MODULE_OPERATION_WAIT_FOR_DATA_STATE,
  76. LTE_MODULE_OPERATION_SENDING_DATA_STATE,
  77. LTE_MODULE_OPERATION_MAX_STATE
  78. };
  79. enum eLTEModuleOperationSubStates
  80. {
  81. LTE_MODULE_OPERATION_NOMINAL_SUBSTATE,
  82. LTE_MODULE_OPERATION_RECONNECT_MASTER_SUBSTATE,
  83. LTE_MODULE_OPERATION_CHECK_APN_SUBSTATE,
  84. LTE_MODULE_OPERATION_RECONNECT_APN_SUBSTATE,
  85. LTE_MODULE_OPERATION_MAX_SUBSTATE
  86. };
  87. enum eLTEModuleOperationSMEvents
  88. {
  89. LTE_MODULE_OP_TICK_EVENT,
  90. LTE_MODULE_OP_APN_CONNECTED_EVENT,
  91. LTE_MODULE_OP_APN_DISCONNECTED_EVENT,
  92. LTE_MODULE_OP_APN_CONN_FAILED_EVENT,
  93. LTE_MODULE_OP_APN_CONN_OK_EVENT,
  94. LTE_MODULE_OP_SERVER_CONNECTED_EVENT,
  95. LTE_MODULE_OP_SERVER_DISCONNECTED_EVENT,
  96. LTE_MODULE_OP_SERVER_CONN_FAILED_EVENT,
  97. LTE_MODULE_OP_CMD_RESP_RECEIVED_EVENT,
  98. LTE_MODULE_OP_MASTER_DATA_READY_EVENT,
  99. LTE_MODULE_OP_MASTER_DATA_RECEIVED_EVENT,
  100. LTE_MODULE_OP_MASTER_SEND_DATA_REQUEST_EVENT,
  101. LTE_MODULE_OP_MASTER_DATA_SENT_EVENT,
  102. LTE_MODULE_OP_MAX_EVENT
  103. };
  104. void InitLTEModule();
  105. void LTEModuleSM(int SMEvent);
  106. void TickLTEModule();
  107. void LTEModuleOperationSM(int OperationEvent);
  108. void LTEModuleNewData(unsigned char Data);
  109. void LTEEnterSerialPassthrough();
  110. void LTEExitSerialPassthrough();
  111. void LTEFwdPassthroughData(char Data);
  112. int LTEEnableSerialDebug(bool EnModule, bool EnPic);
  113. int LTESendCommandToModule(int Command);
  114. void SendDataToLteModule(char *Data, int Size);
  115. int LTEModuleReset();
  116. int LTESendDataToMaster(char *Buffer, int Size);
  117. int LTESendMasterBufferToModule();
  118. void LTECmdResponseReceived(int Cmd, int Result);
  119. void LTEModuleAPNConnectionStatus(int Status);
  120. void LTEModuleMasterConnectionStatus(int Status);
  121. void LTEModuleNewDataReady();
  122. void LTEModuleDataReceived(char *Data, int Size);
  123. void LTEModuleMasterCtrlCommStatus(bool Offline);
  124. bool LTEModuleIsMasterConnected();
  125. #endif /* SIM7080GINTERFACE_H */