A Serial Interface for SIMCOM modules.

Dependents:   SIMInterface

Committer:
BorjaTarazona
Date:
Thu Aug 10 10:35:22 2017 +0000
Revision:
1:6f42bbd5eb48
Parent:
0:9c2d61688e70
Change in the comment sections

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 1:6f42bbd5eb48 25 * @param tx Tx pin for the UART
BorjaTarazona 1:6f42bbd5eb48 26 * @param rx RX pin for the UART
BorjaTarazona 1:6f42bbd5eb48 27 * @param baudrate Baudrate for the UART
BorjaTarazona 0:9c2d61688e70 28 *
BorjaTarazona 0:9c2d61688e70 29 **/
BorjaTarazona 0:9c2d61688e70 30 ATSerial(PinName tx, PinName rx, int baudrate);
BorjaTarazona 0:9c2d61688e70 31
BorjaTarazona 0:9c2d61688e70 32 /** Function to send a command to the SIM module
BorjaTarazona 0:9c2d61688e70 33 *
BorjaTarazona 1:6f42bbd5eb48 34 * @param tx Tx pin for the UART
BorjaTarazona 1:6f42bbd5eb48 35 * @param rx RX pin for the UART
BorjaTarazona 1:6f42bbd5eb48 36 * @param baudrate Baudrate for the UART
BorjaTarazona 0:9c2d61688e70 37 *
BorjaTarazona 0:9c2d61688e70 38 **/
BorjaTarazona 0:9c2d61688e70 39 void sendCmd(char *cmd);
BorjaTarazona 0:9c2d61688e70 40
BorjaTarazona 0:9c2d61688e70 41 /** Function to check if we receive the string we want and returns if we have received it or not
BorjaTarazona 0:9c2d61688e70 42 *
BorjaTarazona 1:6f42bbd5eb48 43 * @param cmd Command to send
BorjaTarazona 1:6f42bbd5eb48 44 * @param str String we want to receive
BorjaTarazona 1:6f42bbd5eb48 45 * @param len Length of the String we want
BorjaTarazona 1:6f42bbd5eb48 46 * @param timeout Time we wait for that string
BorjaTarazona 0:9c2d61688e70 47 *
BorjaTarazona 0:9c2d61688e70 48 **/
BorjaTarazona 0:9c2d61688e70 49 int waitForAString(char* cmd, char* str,int len, int timeout);
BorjaTarazona 0:9c2d61688e70 50
BorjaTarazona 0:9c2d61688e70 51 /** Function to wait for a string and store in the buffer what comes after that string
BorjaTarazona 0:9c2d61688e70 52 *
BorjaTarazona 1:6f42bbd5eb48 53 * @param words String we are waiting for
BorjaTarazona 1:6f42bbd5eb48 54 * @param timeout Time we wait for that string
BorjaTarazona 1:6f42bbd5eb48 55 * @param buffer String where we store the string we want
BorjaTarazona 0:9c2d61688e70 56 *
BorjaTarazona 0:9c2d61688e70 57 **/
BorjaTarazona 0:9c2d61688e70 58 int waitForWord(char* words, int timeout, char* buffer);
BorjaTarazona 0:9c2d61688e70 59
BorjaTarazona 0:9c2d61688e70 60 /** Function to wait for the response
BorjaTarazona 0:9c2d61688e70 61 *
BorjaTarazona 0:9c2d61688e70 62 * @param timeout Time we wait for the response
BorjaTarazona 0:9c2d61688e70 63 *
BorjaTarazona 0:9c2d61688e70 64 **/
BorjaTarazona 0:9c2d61688e70 65 char* waitForResp(int timeout);
BorjaTarazona 0:9c2d61688e70 66
BorjaTarazona 0:9c2d61688e70 67 /** Function to send a command and wait for the response
BorjaTarazona 0:9c2d61688e70 68 *
BorjaTarazona 1:6f42bbd5eb48 69 * @param cmd Command to send
BorjaTarazona 1:6f42bbd5eb48 70 * @param timeout Time to wait for the response
BorjaTarazona 0:9c2d61688e70 71 *
BorjaTarazona 0:9c2d61688e70 72 **/
BorjaTarazona 0:9c2d61688e70 73 char* sendCmdAndWaitForResp(char *cmd, int timeout);
BorjaTarazona 0:9c2d61688e70 74
BorjaTarazona 0:9c2d61688e70 75 /** Function to get the length of a response
BorjaTarazona 0:9c2d61688e70 76 *
BorjaTarazona 0:9c2d61688e70 77 * @param timeout Time to wait for the response
BorjaTarazona 0:9c2d61688e70 78 *
BorjaTarazona 0:9c2d61688e70 79 **/
BorjaTarazona 0:9c2d61688e70 80 int getResponseLength(int timeout);
BorjaTarazona 0:9c2d61688e70 81
BorjaTarazona 0:9c2d61688e70 82 /** Function to clear the buffer of the SIM module
BorjaTarazona 0:9c2d61688e70 83 **/
BorjaTarazona 0:9c2d61688e70 84 void clearBuffer();
BorjaTarazona 0:9c2d61688e70 85
BorjaTarazona 0:9c2d61688e70 86 private:
BorjaTarazona 0:9c2d61688e70 87
BorjaTarazona 0:9c2d61688e70 88 };
BorjaTarazona 0:9c2d61688e70 89
BorjaTarazona 0:9c2d61688e70 90 #endif