a library to use GPRS like ethernet or wifi, which makes it possible to connect to the internet with your GPRS module

Dependents:   Seeed_GPRS_Library_HelloWorld Seeed_GPRS_Xively_HelloWorld Seeed_ARCH_GPRS_V2_Xively_HelloWorld Seeed_ARCH_GPRS_V2_ThingSpeak_HelloWorld ... more

Embed: (wiki syntax)

« Back to documentation index

GPRSInterface Class Reference

Interface using GPRS to connect to an IP-based network. More...

#include <GPRSInterface.h>

Inherits GPRS.

Public Member Functions

 GPRSInterface (PinName tx, PinName rx, int baudRate, const char *apn, const char *userName=NULL, const char *passWord=NULL)
 Constructor.
int init ()
 Initialize the interface(no connection at this point).
int connect ()
 Connect to the network and get IP address.
int disconnect ()
 Disconnect with the network.
char * getIPAddress ()
 Get IP address.
bool join (void)
 Connect the GPRS module to the network.
bool close (int socket)
 Close a tcp connection.
bool connect (int socket, Protocol ptl, const char *host, int port, int timeout=DEFAULT_TIMEOUT)
 Open a tcp/udp connection with the specified host on the specified port.
bool setProtocol (int socket, Protocol p)
 Set the protocol (UDP or TCP)
void reset ()
 Reset the GPRS module.
bool readable (void)
 check if GPRS module is readable or not
int wait_readable (int socket, int wait_time)
 wait a few time to check if GPRS module is readable or not
int wait_writeable (int socket, int req_size)
 wait a few time to check if GPRS module is writeable or not
bool is_connected (int socket)
 Check if a tcp link is active.
int send (int socket, const char *str, int len)
 send data to socket
int recv (int socket, char *buf, int len)
 read data from socket
bool gethostbyname (const char *host, uint32_t *ip)
 convert the host to ip

Static Public Member Functions

static GPRS * getInstance ()
 get instance of GPRS class

Protected Member Functions

char readByte (void)
 read one byte from serialModem
int readBuffer (char *buffer, int count, unsigned int timeOut)
 read from Modem module and save to buffer array
void cleanBuffer (char *buffer, int count)
 clean Buffer
void sendCmd (const char *cmd)
 send AT command to Modem module
void sendATTest (void)
 send "AT" to Modem module
bool respCmp (const char *resp, unsigned int len, unsigned int timeout)
 compare the response from GPRS module with a string
int waitForResp (const char *resp, unsigned int timeout, DataType type)
 check Modem module response before time out
int sendCmdAndWaitForResp (const char *data, const char *resp, unsigned timeout, DataType type)
 send AT command to GPRS module and wait for correct response

Detailed Description

Interface using GPRS to connect to an IP-based network.

Definition at line 32 of file GPRSInterface.h.


Constructor & Destructor Documentation

GPRSInterface ( PinName  tx,
PinName  rx,
int  baudRate,
const char *  apn,
const char *  userName = NULL,
const char *  passWord = NULL 
)

Constructor.

Parameters:
txmbed pin to use for tx line of Serial interface
rxmbed pin to use for rx line of Serial interface
baudRateserial communicate baud rate
apnname of the gateway for GPRS to connect to the network
userNameapn's username, usually is NULL
passWordapn's password, usually is NULL

Definition at line 25 of file GPRSInterface.cpp.


Member Function Documentation

void cleanBuffer ( char *  buffer,
int  count 
) [protected, inherited]

clean Buffer

Parameters:
bufferbuffer to clean
countnumber of bytes to clean

Definition at line 55 of file modem.cpp.

bool close ( int  socket ) [inherited]

Close a tcp connection.

Returns:
true if successful

Definition at line 164 of file GPRS.cpp.

bool connect ( int  socket,
Protocol  ptl,
const char *  host,
int  port,
int  timeout = DEFAULT_TIMEOUT 
) [inherited]

Open a tcp/udp connection with the specified host on the specified port.

Parameters:
socketan endpoint of an inter-process communication flow of GPRS module,for SIM900 module, it is in [0,6]
ptlprotocol for socket, TCP/UDP can be choosen
hosthost (can be either an ip address or a name. If a name is provided, a dns request will be established)
portport
timeoutwait seconds till connected
Returns:
true if successful

Definition at line 102 of file GPRS.cpp.

int connect (  )

Connect to the network and get IP address.

Returns:
0 on success, a negative number on failure

Definition at line 36 of file GPRSInterface.cpp.

int disconnect ( void   )

Disconnect with the network.

Returns:
0 on success, a negative number on failure

Definition at line 41 of file GPRSInterface.cpp.

bool gethostbyname ( const char *  host,
uint32_t *  ip 
) [inherited]

convert the host to ip

Parameters:
hosthost ip string, ex. 10.11.12.13
iplong int ip address, ex. 0x11223344
Returns:
true if successful

Definition at line 124 of file GPRS.cpp.

static GPRS* getInstance (  ) [static, inherited]

get instance of GPRS class

Definition at line 54 of file GPRS.h.

char * getIPAddress (  )

Get IP address.

Returns:
ip address

Definition at line 46 of file GPRSInterface.cpp.

int init (  )

Initialize the interface(no connection at this point).

Returns:
0 on success, a negative number on failure

Definition at line 30 of file GPRSInterface.cpp.

bool is_connected ( int  socket ) [inherited]

Check if a tcp link is active.

Returns:
true if successful

Definition at line 142 of file GPRS.cpp.

bool join ( void   ) [inherited]

Connect the GPRS module to the network.

Returns:
true if connected, false otherwise

Definition at line 66 of file GPRS.cpp.

bool readable ( void   ) [inherited]

check if GPRS module is readable or not

Returns:
true if readable

Definition at line 184 of file GPRS.cpp.

int readBuffer ( char *  buffer,
int  count,
unsigned int  timeOut 
) [protected, inherited]

read from Modem module and save to buffer array

Parameters:
bufferbuffer array to save what read from Modem module
countthe maximal bytes number read from Modem module
timeOuttime to wait for reading from Modem module
Returns:
0 on success -1 on error

Definition at line 35 of file modem.cpp.

char readByte ( void   ) [protected, inherited]

read one byte from serialModem

Returns:
one byte read from serialModem

Definition at line 25 of file modem.cpp.

int recv ( int  socket,
char *  buf,
int  len 
) [inherited]

read data from socket

Parameters:
socketsocket
bufbuffer that will store the data read from socket
lenstring length need to read from socket
Returns:
bytes that actually read

Definition at line 240 of file GPRS.cpp.

void reset (  ) [inherited]

Reset the GPRS module.

Definition at line 159 of file GPRS.cpp.

bool respCmp ( const char *  resp,
unsigned int  len,
unsigned int  timeout 
) [protected, inherited]

compare the response from GPRS module with a string

Parameters:
respbuffer to be compared
lenlength that will be compared
timeoutwaiting seconds till timeout

Definition at line 72 of file modem.cpp.

int send ( int  socket,
const char *  str,
int  len 
) [inherited]

send data to socket

Parameters:
socketsocket
strstring to be sent
lenstring length
Returns:
return bytes that actually been send

Definition at line 222 of file GPRS.cpp.

void sendATTest ( void   ) [protected, inherited]

send "AT" to Modem module

Definition at line 67 of file modem.cpp.

void sendCmd ( const char *  cmd ) [protected, inherited]

send AT command to Modem module

Parameters:
cmdcommand array which will be send to GPRS module

Definition at line 62 of file modem.cpp.

int sendCmdAndWaitForResp ( const char *  data,
const char *  resp,
unsigned  timeout,
DataType  type 
) [protected, inherited]

send AT command to GPRS module and wait for correct response

Parameters:
*cmdAT command which will be send to GPRS module
*respcorrect response which GPRS module will return
*timeoutwaiting seconds till timeout
Returns:
0 on success -1 on error

Definition at line 125 of file modem.cpp.

bool setProtocol ( int  socket,
Protocol  p 
) [inherited]

Set the protocol (UDP or TCP)

Parameters:
socketsocket
pprotocol
Returns:
true if successful

Definition at line 93 of file GPRS.cpp.

int wait_readable ( int  socket,
int  wait_time 
) [inherited]

wait a few time to check if GPRS module is readable or not

Parameters:
socketsocket
wait_timetime of waiting

Definition at line 189 of file GPRS.cpp.

int wait_writeable ( int  socket,
int  req_size 
) [inherited]

wait a few time to check if GPRS module is writeable or not

Parameters:
socketsocket
wait_timetime of waiting

Definition at line 214 of file GPRS.cpp.

int waitForResp ( const char *  resp,
unsigned int  timeout,
DataType  type 
) [protected, inherited]

check Modem module response before time out

Parameters:
*respcorrect response which Modem module will return
*timeoutwaiting seconds till timeout
Returns:
0 on success -1 on error

Definition at line 95 of file modem.cpp.