#ifndef __LTE_COMMS_H_ #define __LTE_COMMS_H_ #ifdef __cplusplus extern "C" { #endif #include "eg91.h" #include "eg91_conf.h" #define LTE_COMMS_MAX_DELAY 0xFFFFU #define LTE_OPERATOR_STRING 30 #define LTE_OPERATORS_LIST 6 * LTE_OPERATOR_STRING #define LTE_IPADDR_STRING 35 #define LTE_IPADDR_LIST 3 * LTE_IPADDR_STRING #define LTE_ERROR_STRING 40 #define LTE_MAN_SIZE 16 #define LTE_PROD_ID_SIZE 16 #define LTE_FW_REV_SIZE 100 #define LTE_IMEI_SIZE 16 #define LTE_ICCID_SIZE 20 #define LTE_MAX_NOS 100 /* Network Operators */ #define LTE_MAX_CONNECTION EG91_MAX_SOCKETS #define LTE_PAYLOAD_SIZE 1500 /* Should be = or > than EG91_RX_DATABUF_SIZE */ typedef enum { LTE_IPV4 = 0x01, LTE_IPV6 = 0x02 } LTE_IPVer_t; typedef enum { LTE_AUTHENT_NONE = 0x00, LTE_AUTHENT_PAP = 0x01, LTE_AUTHENT_CHAP = 0x02, LTE_AUTHENT_PAP_CHAP = 0x03 } LTE_Authent_t; typedef enum { LTE_TCP_PROTOCOL = 0, LTE_UDP_PROTOCOL = 1, LTE_TCP_LISTENER_PROTOCOL = 2, LTE_UDP_SERVICE_PROTOCOL = 3 } LTE_Protocol_t; typedef enum { /* Registration Status */ LTE_REGISTATUS_NOT_REGISTERED = 0x00, LTE_REGISTATUS_HOME_NETWORK = 0x01, LTE_REGISTATUS_TRYING = 0x02, LTE_REGISTATUS_REG_DENIED = 0x03, LTE_REGISTATUS_UNKNOWN = 0x04, LTE_REGISTATUS_ROAMING = 0x05, LTE_REGISTATUS_SIM_NOT_INSERTED = 0x0A, LTE_REGISTATUS_SIM_PIN_REQUIRED = 0x0B, LTE_REGISTATUS_SIM_PUK_REGUIRED = 0x0C, LTE_REGISTATUS_SIM_FAILURE = 0x0D, LTE_REGISTATUS_SIM_BUSY = 0x0E, LTE_REGISTATUS_SIM_WRONG = 0x0F, LTE_REGISTATUS_INCORRECT_PSW = 0x10, LTE_REGISTATUS_SIM_PIN2_REQUIRED = 0x11, LTE_REGISTATUS_SIM_PUK2_REQUIRED = 0x12, LTE_REGISTATUS_OP_NOT_ALLOWED = 0x13, LTE_REGISTATUS_ERROR = 0xFF } LTE_Registatus_t; typedef enum { LTE_AP_DEACTIVATED = 0x00, LTE_AP_ACTIVATED = 0x01, LTE_AP_ERROR = 0xFF } LTE_APState_t; typedef enum { LTE_RET_OK = 0x00, LTE_RET_NOT_SUPPORTED = 0x01, LTE_RET_ERROR = 0x02 } LTE_Ret_t; typedef enum { LTE_SEND_OK = 0x00, LTE_SEND_BUF_FULL = 0x01, LTE_SEND_ERROR = 0xFF } LTE_SendStatus_t; typedef enum{ SIM_OPERATOR_UNKNOWN = -1, SIM_OPERATOR_SMART = 0, SIM_OPERATOR_GLOBE = 1, SIM_OPERATOR_DITO = 2, SIM_OPERATOR_LIST } LTE_SimOperatorList_t; int Network_Init(void); void LTE_ConvertIpAddrToString(const uint8_t * ipArray, char *returnStr); LTE_Registatus_t LTE_Init(uint16_t registration_timeout_sec); LTE_Ret_t LTE_GetSignalQualityStatus(int32_t *qValue); LTE_Ret_t LTE_ListOperators(char *operator); LTE_Ret_t LTE_GetCurrentOperator (char *operator, int32_t bufSize); LTE_Ret_t LTE_ForceOperator(int32_t code); LTE_Ret_t LTE_ConfigureAP(uint8_t contextType, const char *apn, const char *username, const char *password, uint8_t authenticationMode); LTE_Ret_t LTE_Connect(const char* apn); LTE_Ret_t LTE_Disconnect(void); LTE_APState_t LTE_isConnected(void); LTE_Ret_t LTE_GetActiveIpAddress(void); LTE_Ret_t LTE_Ping(void); LTE_Ret_t LTE_GetHostAddress(const char *address, uint8_t *ipaddr); LTE_Ret_t LTE_StartClientConnection(uint32_t socket, LTE_Protocol_t type, const char *url, uint8_t *ipaddr, uint16_t port, uint16_t local_port); LTE_Ret_t LTE_StopClientConnection(uint32_t socket); LTE_Ret_t LTE_StartServerConnection(uint32_t socket, LTE_Protocol_t type, uint16_t port, uint16_t local_port); LTE_Ret_t LTE_StopServerConnection(uint32_t socket); LTE_SendStatus_t LTE_SendData(uint32_t socket, uint8_t *pdata, uint16_t reqLen, uint16_t *sentDataLen, uint32_t timeout); LTE_Ret_t LTE_ReceiveData(uint32_t socket, uint8_t *pdata, uint16_t reqLen, uint16_t *rcvDataLen, uint32_t timeout); LTE_Ret_t LTE_RetrieveLastErrorDetails(char *errorStr); LTE_Ret_t LTE_PowerOff(void); LTE_Ret_t LTE_GetModuleFirmwareRevision(char *rev); LTE_Ret_t LTE_GetModuleID(char *productId); LTE_Ret_t LTE_GetModuleName(char *moduleName); LTE_Ret_t LTE_GetSimId(char *simId); LTE_Ret_t LTE_GetIMEI(char *imei); #ifdef __cplusplus } #endif #endif /* __LTE_COMMS_H_ */