|
Mobil_surveillance_system 1
|
00001 #ifndef GPRS_H_ 00002 #define GPRS_H_ 00003 00005 00012 #include "Bitmanip.h" // due to: the bit manipulations macros 00013 #include "Dinamic_Array.h" // due to: dinamic array 00014 #include "Time.h" // due to: software rtc 00015 #include "UART2.h" // due to: serial communications functions 00016 #include "GPS.h" // due to: GPS_setPostGPSInfoPacketsCallbackFunction function 00017 #include <stdio.h> // due to: sprintf function 00018 00019 //***************************************************************************** 00020 // 00021 // Types and definitions 00022 // 00023 //***************************************************************************** 00024 00025 #ifndef DEFINE_TBOOLEAN // define unsigned char as tBoolean in only that case when it hasn't been defined yet somewhere else in the scope 00026 00028 typedef unsigned char tBoolean; // use as bool 00029 #define DEFINE_TBOOLEAN 00030 00031 #endif // DEFINE_TBOOLEAN 00032 00033 //***************************************************************************** 00034 // 00035 // Types and definitions 00036 // 00037 //***************************************************************************** 00038 00040 #define AT_COMMAND_AT "AT\r\n" 00041 #define AT_COMMAND_ECHO_OFF "ATE0\r\n" 00042 #define AT_COMMAND_RESTART "AT+CFUN=1\r\n" 00043 #define AT_COMMAND_ENABLE_ERROR_MESSAGES "AT+CMEE=1\r\n" 00044 #define AT_COMMAND_START_WIP_PACKET "AT+WOPEN=1\r\n" 00045 #define AT_COMMAND_ENABLE_CLIP "AT+CLIP=1\r\n" 00046 #define AT_COMMAND_SELECT_CHARACTERSET "AT+CSCS=\"GSM\"\r\n" 00047 #define AT_COMMAND_START_IP_STACK "AT+WIPCFG=1\r\n" 00048 #define AT_COMMAND_CLOSE_IP_STACK "AT+WIPCFG=0\r\n" 00049 #define AT_COMMAND_CONF_IP_STACK "AT+WIPCFG?\r\n" 00050 #define AT_COMMAND_OPEN_BEARER "AT+WIPBR=1,6\r\n" 00051 #define AT_COMMAND_CLOSE_BEARER "AT+WIPBR=0,6\r\n" 00052 #define AT_COMMAND_START_BEARER "AT+WIPBR=4,6,0\r\n" 00053 #define AT_COMMAND_SET_TCP_PARAMETERS "AT+WIPOPT=2,1,2,51,1600\r\n" 00054 #define AT_COMMAND_SET_TCP_IN_PARAMETERS "AT+WIPOPT=2,1,2,50,1600\r\n" 00055 #define AT_COMMAND_SWITCH_TO_AT_MODE "+++" 00056 #define AT_COMMAND_CLOSE_IP "AT+WIPCLOSE=2,1\r\n" 00057 #define AT_COMMAND_OPEN_TCP_SOCKET "AT+WIPDATA=2,1,1\r\n" 00058 #define AT_COMMAND_CLOSE_TCP_SOCKET "AT+WIPCLOSE=2,1\r\n" 00059 00060 #define AT_COMMAND_DUMP_BR "AT+WIPBR?\r\n" 00061 00063 #define GPRS_RESPONSE_BUFFER_SIZE 1024 00064 00065 #define ATTEMPT_NUMBER 5 00066 00067 #define PIN "5003" 00068 00070 #define GPRS_ETX_CHAR '\x03' 00071 00072 00074 typedef enum 00075 { 00076 00077 GPRS_Uninitialized = 0, 00078 GPRS_EscapeToCommandMode, 00079 GPRS_RestartGSM, 00080 GPRS_EchoOff, 00081 GPRS_ErrorOn, 00082 GPRS_AddPin, 00083 GPRS_OpenGSM, 00084 GPRS_ChangeCharSet, 00085 00086 GPRS_Initialized, // 8 00087 00088 00089 GPRS_OpenGPRS, 00090 GPRS_OpenBearer, 00091 GPRS_SetConnectionPoint, 00092 GPRS_AddUsername, 00093 GPRS_AddPassword, 00094 GPRS_ConnectToBearer, 00095 00096 GPRS_ConnectedToBearer, // 15 00097 00098 GPRS_WIPCreate, 00099 GPRS_WIPData, 00100 GPRS_SendingData, 00101 GPRS_Connected, 00102 GPRS_EscapeFromDataMode, 00103 GPRS_WIPClose, 00104 GPRS_DisconnectingFromBearer, 00105 GPRS_CloseGPRS, // 23 00106 00107 GPRS_Waiting 00108 00109 }tGPRS_state; 00110 00111 00113 typedef struct 00114 { 00116 char* pcCommand; 00118 tDateTime sWaitingDuration; 00119 00120 }tCommandInstance; 00121 00122 00123 //***************************************************************************** 00124 // 00125 // Global variables. 00126 // 00127 //***************************************************************************** 00128 00129 //***************************************************************************** 00130 // 00131 // Function declarations 00132 // 00133 //***************************************************************************** 00134 00138 void GPRS_initGPRS(void); 00139 00140 00144 void GPRS_executeGPRS(void); 00145 00146 00150 void GPRS_processResponse(void); 00151 00152 00158 void GPRS_addCommand(char* pcCommand, tDateTime sTimeoutDuration); 00159 00160 00164 void GPRS_processCommand(void); 00165 00166 00171 void GPRS_setState(tGPRS_state newState); 00172 00173 00178 void GPRS_initCommandQueue(tDinamicArray* pDinamicArray); 00179 00180 00185 void GPRS_appendResponse(const char* pcResponse); 00186 00187 00191 void GPRS_clearResponseBuffer(void); 00192 00193 00199 void GPRS_wait(tDateTime sWaitDuration, tGPRS_state eNextState); 00200 00201 00206 tBoolean GPRS_isDeadlinePassed(void); 00207 00208 00212 void GPRS_connectToBearer(void); 00213 00214 00218 void GPRS_disconnectFromBearer(void); 00219 00220 00229 void GPRS_httpPost(char* pcHost, char* pcPort, char* pcURL, char* pcData, unsigned int uiDataLength); 00230 00231 00232 #endif /*GPRS_H_*/
1.7.4