A Serial Interface for SIMCOM modules.

Dependents:   SIMInterface

Committer:
BorjaTarazona
Date:
Thu Aug 10 10:04:19 2017 +0000
Revision:
0:9c2d61688e70
Child:
1:6f42bbd5eb48
Creation

Who changed what in which revision?

UserRevisionLine numberNew contents of line
BorjaTarazona 0:9c2d61688e70 1 #ifndef _ATCommand_H
BorjaTarazona 0:9c2d61688e70 2 #define _ATCommand_H
BorjaTarazona 0:9c2d61688e70 3
BorjaTarazona 0:9c2d61688e70 4 #include "mbed.h"
BorjaTarazona 0:9c2d61688e70 5
BorjaTarazona 0:9c2d61688e70 6 /** A Serial interface for SIMCOM modules
BorjaTarazona 0:9c2d61688e70 7 *
BorjaTarazona 0:9c2d61688e70 8 * @brief Currently tested on SIM900, SIM800, SIM800L and SIM800F
BorjaTarazona 0:9c2d61688e70 9 *
BorjaTarazona 0:9c2d61688e70 10 */
BorjaTarazona 0:9c2d61688e70 11
BorjaTarazona 0:9c2d61688e70 12 class ATSerial
BorjaTarazona 0:9c2d61688e70 13 {
BorjaTarazona 0:9c2d61688e70 14
BorjaTarazona 0:9c2d61688e70 15 protected:
BorjaTarazona 0:9c2d61688e70 16
BorjaTarazona 0:9c2d61688e70 17 /** Serial port for UART Communication
BorjaTarazona 0:9c2d61688e70 18 **/
BorjaTarazona 0:9c2d61688e70 19 Serial _serial;
BorjaTarazona 0:9c2d61688e70 20
BorjaTarazona 0:9c2d61688e70 21 public:
BorjaTarazona 0:9c2d61688e70 22
BorjaTarazona 0:9c2d61688e70 23 /** Create a Serial Interface for AT Commands
BorjaTarazona 0:9c2d61688e70 24 *
BorjaTarazona 0:9c2d61688e70 25 * @param tx Tx pin for the UART, rx RX pin for the UART, baudrate Baudrate for the UART
BorjaTarazona 0:9c2d61688e70 26 *
BorjaTarazona 0:9c2d61688e70 27 **/
BorjaTarazona 0:9c2d61688e70 28 ATSerial(PinName tx, PinName rx, int baudrate);
BorjaTarazona 0:9c2d61688e70 29
BorjaTarazona 0:9c2d61688e70 30 /** Function to send a command to the SIM module
BorjaTarazona 0:9c2d61688e70 31 *
BorjaTarazona 0:9c2d61688e70 32 * @param tx Tx pin for the UART, rx RX pin for the UART, baudrate Baudrate for the UART
BorjaTarazona 0:9c2d61688e70 33 *
BorjaTarazona 0:9c2d61688e70 34 **/
BorjaTarazona 0:9c2d61688e70 35 void sendCmd(char *cmd);
BorjaTarazona 0:9c2d61688e70 36
BorjaTarazona 0:9c2d61688e70 37 /** Function to check if we receive the string we want and returns if we have received it or not
BorjaTarazona 0:9c2d61688e70 38 *
BorjaTarazona 0:9c2d61688e70 39 * @param cmd Command to send, str String we want to receive, len Length of the String we want, timeout Time we wait for that string
BorjaTarazona 0:9c2d61688e70 40 *
BorjaTarazona 0:9c2d61688e70 41 **/
BorjaTarazona 0:9c2d61688e70 42 int waitForAString(char* cmd, char* str,int len, int timeout);
BorjaTarazona 0:9c2d61688e70 43
BorjaTarazona 0:9c2d61688e70 44 /** Function to wait for a string and store in the buffer what comes after that string
BorjaTarazona 0:9c2d61688e70 45 *
BorjaTarazona 0:9c2d61688e70 46 * @param words String we are waiting for, timeout Time we wait for that string, buffer String where we store the string we want
BorjaTarazona 0:9c2d61688e70 47 *
BorjaTarazona 0:9c2d61688e70 48 **/
BorjaTarazona 0:9c2d61688e70 49 int waitForWord(char* words, int timeout, char* buffer);
BorjaTarazona 0:9c2d61688e70 50
BorjaTarazona 0:9c2d61688e70 51 /** Function to wait for the response
BorjaTarazona 0:9c2d61688e70 52 *
BorjaTarazona 0:9c2d61688e70 53 * @param timeout Time we wait for the response
BorjaTarazona 0:9c2d61688e70 54 *
BorjaTarazona 0:9c2d61688e70 55 **/
BorjaTarazona 0:9c2d61688e70 56 char* waitForResp(int timeout);
BorjaTarazona 0:9c2d61688e70 57
BorjaTarazona 0:9c2d61688e70 58 /** Function to send a command and wait for the response
BorjaTarazona 0:9c2d61688e70 59 *
BorjaTarazona 0:9c2d61688e70 60 * @param cmd Command to send, timeout Time to wait for the response
BorjaTarazona 0:9c2d61688e70 61 *
BorjaTarazona 0:9c2d61688e70 62 **/
BorjaTarazona 0:9c2d61688e70 63 char* sendCmdAndWaitForResp(char *cmd, int timeout);
BorjaTarazona 0:9c2d61688e70 64
BorjaTarazona 0:9c2d61688e70 65 /** Function to get the length of a response
BorjaTarazona 0:9c2d61688e70 66 *
BorjaTarazona 0:9c2d61688e70 67 * @param timeout Time to wait for the response
BorjaTarazona 0:9c2d61688e70 68 *
BorjaTarazona 0:9c2d61688e70 69 **/
BorjaTarazona 0:9c2d61688e70 70 int getResponseLength(int timeout);
BorjaTarazona 0:9c2d61688e70 71
BorjaTarazona 0:9c2d61688e70 72 /** Function to clear the buffer of the SIM module
BorjaTarazona 0:9c2d61688e70 73 **/
BorjaTarazona 0:9c2d61688e70 74 void clearBuffer();
BorjaTarazona 0:9c2d61688e70 75
BorjaTarazona 0:9c2d61688e70 76 private:
BorjaTarazona 0:9c2d61688e70 77
BorjaTarazona 0:9c2d61688e70 78 };
BorjaTarazona 0:9c2d61688e70 79
BorjaTarazona 0:9c2d61688e70 80 #endif