154 lines
3.8 KiB
C
154 lines
3.8 KiB
C
/*
|
|
* File: SIM7080GInterface.h
|
|
* Author: JF
|
|
*
|
|
* Created on August 13, 2024, 1:43 PM
|
|
*/
|
|
|
|
#ifndef SIM7080GINTERFACE_H
|
|
#define SIM7080GINTERFACE_H
|
|
|
|
#include "define.h"
|
|
|
|
#define LTE_MODULE_POWERUP_TIMEOUT 2000
|
|
#define LTE_MODULE_WAIT_INIT_TIMEOUT 5000
|
|
#define LTE_MODULE_CONNECTION_CHECK_TIMEOUT 5000
|
|
#define LTE_MODULE_MAX_CMD_LENGTH 128
|
|
#define LTE_MODULE_MAX_MASTER_CONNECT_RETRY 5
|
|
#define LTE_MODULE_MAX_COMM_TIMEOUT 10000
|
|
|
|
enum eLTEModuleCommands
|
|
{
|
|
LTE_MODULE_NO_CMD = 0,
|
|
LTE_MODULE_CONNECT_APN_CMD,
|
|
LTE_MODULE_DISCONNECT_APN_CMD,
|
|
LTE_MODULE_CONNECT_TO_MASTER_CMD,
|
|
LTE_MODULE_DISCONNECT_FROM_MASTER_CMD,
|
|
LTE_MODULE_RX_DATA_CMD,
|
|
LTE_MODULE_TX_DATA_CMD,
|
|
LTE_MODULE_CHECK_APN_CONNECTION_CMD,
|
|
LTE_MODULE_CHECK_MASTER_CONNECTION_CMD,
|
|
|
|
LTE_MODULE_MAX_CMD
|
|
};
|
|
|
|
enum eLTEModuleCmdResult
|
|
{
|
|
LTE_MODULE_RESULT_OK,
|
|
LTE_MODULE_RESULT_ERROR
|
|
};
|
|
|
|
enum eLTEModuleAPNConnectionStatus
|
|
{
|
|
LTE_MODULE_APN_DISCONNECTED,
|
|
LTE_MODULE_APN_CONNECTED
|
|
};
|
|
|
|
enum eLTEModuleMasterConnectionStatus
|
|
{
|
|
LTE_MODULE_MASTER_DISCONNECTED,
|
|
LTE_MODULE_MASTER_CONNECTED,
|
|
LTE_MODULE_MASTER_SOCKET_ERROR
|
|
};
|
|
|
|
|
|
enum eLTEModuleStates
|
|
{
|
|
LTE_MODULE_SM_INIT_STATE,
|
|
LTE_MODULE_SM_RESET_STATE,
|
|
LTE_MODULE_SM_POWERUP_STATE,
|
|
LTE_MODULE_SM_WAIT_RDY_STATE,
|
|
LTE_MODULE_SM_SETECHOOFF_STATE,
|
|
LTE_MODULE_SM_SETAPN_STATE,
|
|
LTE_MODULE_SM_DELAY_STATE,
|
|
LTE_MODULE_SM_RUN_STATE,
|
|
LTE_MODULE_SM_PASSTHROUGH_STATE,
|
|
|
|
LTE_MODULE_SM_MAX_STATE
|
|
|
|
};
|
|
|
|
enum eLTEModuleEvents
|
|
{
|
|
LTE_MODULE_SM_TICK_EVENT,
|
|
LTE_MODULE_RX_DATA_EVENT,
|
|
LTE_MODULE_RX_RDY_EVENT,
|
|
LTE_MODULE_ENTER_PASSTHROUGH_EVENT,
|
|
LTE_MODULE_EXIT_PASSTHROUGH_EVENT,
|
|
|
|
LTE_MODULE_MAX_EVENT
|
|
|
|
};
|
|
|
|
enum eLTEModuleOperationStates
|
|
{
|
|
LTE_MODULE_OPERATION_INIT_STATE,
|
|
LTE_MODULE_OPERATION_WAIT_CONNECT_APN_STATE,
|
|
LTE_MODULE_OPERATION_CHECK_APN_STATE,
|
|
LTE_MODULE_OPERATION_WAIT_CONNECT_SERVER_STATE,
|
|
LTE_MODULE_OPERATION_WAIT_DISCONNECT_SERVER_STATE,
|
|
LTE_MODULE_OPERATION_STANDBY_STATE,
|
|
LTE_MODULE_OPERATION_WAIT_FOR_DATA_STATE,
|
|
LTE_MODULE_OPERATION_SENDING_DATA_STATE,
|
|
|
|
LTE_MODULE_OPERATION_MAX_STATE
|
|
};
|
|
|
|
enum eLTEModuleOperationSubStates
|
|
{
|
|
LTE_MODULE_OPERATION_NOMINAL_SUBSTATE,
|
|
LTE_MODULE_OPERATION_RECONNECT_MASTER_SUBSTATE,
|
|
LTE_MODULE_OPERATION_CHECK_APN_SUBSTATE,
|
|
LTE_MODULE_OPERATION_RECONNECT_APN_SUBSTATE,
|
|
|
|
LTE_MODULE_OPERATION_MAX_SUBSTATE
|
|
};
|
|
|
|
enum eLTEModuleOperationSMEvents
|
|
{
|
|
LTE_MODULE_OP_TICK_EVENT,
|
|
LTE_MODULE_OP_APN_CONNECTED_EVENT,
|
|
LTE_MODULE_OP_APN_DISCONNECTED_EVENT,
|
|
LTE_MODULE_OP_APN_CONN_FAILED_EVENT,
|
|
LTE_MODULE_OP_APN_CONN_OK_EVENT,
|
|
LTE_MODULE_OP_SERVER_CONNECTED_EVENT,
|
|
LTE_MODULE_OP_SERVER_DISCONNECTED_EVENT,
|
|
LTE_MODULE_OP_SERVER_CONN_FAILED_EVENT,
|
|
LTE_MODULE_OP_CMD_RESP_RECEIVED_EVENT,
|
|
LTE_MODULE_OP_MASTER_DATA_READY_EVENT,
|
|
LTE_MODULE_OP_MASTER_DATA_RECEIVED_EVENT,
|
|
LTE_MODULE_OP_MASTER_SEND_DATA_REQUEST_EVENT,
|
|
LTE_MODULE_OP_MASTER_DATA_SENT_EVENT,
|
|
|
|
LTE_MODULE_OP_MAX_EVENT
|
|
};
|
|
|
|
|
|
|
|
void InitLTEModule();
|
|
void LTEModuleSM(int SMEvent);
|
|
void TickLTEModule();
|
|
void LTEModuleOperationSM(int OperationEvent);
|
|
void LTEModuleNewData(unsigned char Data);
|
|
void LTEEnterSerialPassthrough();
|
|
void LTEExitSerialPassthrough();
|
|
void LTEFwdPassthroughData(char Data);
|
|
int LTEEnableSerialDebug(bool EnModule, bool EnPic);
|
|
int LTESendCommandToModule(int Command);
|
|
void SendDataToLteModule(char *Data, int Size);
|
|
int LTEModuleReset();
|
|
int LTESendDataToMaster(char *Buffer, int Size);
|
|
int LTESendMasterBufferToModule();
|
|
|
|
void LTECmdResponseReceived(int Cmd, int Result);
|
|
void LTEModuleAPNConnectionStatus(int Status);
|
|
void LTEModuleMasterConnectionStatus(int Status);
|
|
void LTEModuleNewDataReady();
|
|
void LTEModuleDataReceived(char *Data, int Size);
|
|
void LTEModuleMasterCtrlCommStatus(bool Offline);
|
|
|
|
bool LTEModuleIsMasterConnected();
|
|
|
|
#endif /* SIM7080GINTERFACE_H */
|
|
|