Skip to content

Commit 8de01bd

Browse files
committed
Merge pull request #9 from cristiansteib/devoloping
Devoloping
2 parents cb057a9 + 5c9834b commit 8de01bd

File tree

3 files changed

+39
-6
lines changed

3 files changed

+39
-6
lines changed

README.md

+22
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,28 @@ Arduino Uno | Sim800l | Notes
2323
GND | GND |
2424

2525

26+
## Methods and functions
27+
28+
Name|Return|Notes
29+
:-------|:-------:|:-----------------------------------------------:|
30+
begin()|None|Initialize the library
31+
reset()|None|Reset the module,and wait to Sms Ready.
32+
sendSms(number,text)|true or false|parameters must be Strings.
33+
readSms(index)|String|index is the position of the sms in the prefered memory storage
34+
getNumberSms(index)|String|returns the number of the sms.
35+
delAllSms()|true or false|Delete all sms
36+
answerCall()|true or false|
37+
callNumber(number)|None|
38+
hangoffCall()|true or false|
39+
getCallStatus()|uint8_t|Return the call status, 0=ready,2=Unknown(),3=Ringing,4=Call in progress
40+
setPhoneFunctionality()|None|Set at to full functionality
41+
activateBearerProfile()|None|
42+
deactivateBearerProfile()|None|
43+
RTCtime(int *day,int *month, int *year,int *hour,int *minute, int *second)|None| Parameters must be reference ex: &day
44+
dateNet()|String|Return date time GSM
45+
updateRtc(utc)|true or false|Return if the rtc was update with date time GSM.
46+
____________________________________________________________________________________
47+
2648
You can regulate the voltage to the desired with this, is not the best,
2749
but for start it's easy.
2850

Sim800l.cpp

+16-6
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ void Sim800l::begin(){
4040
#if (LED)
4141
pinMode(OUTPUT,LED_PIN);
4242
#endif
43-
_buffer.reserve(120); //reserve memory to prevent intern fragmention
43+
_buffer.reserve(255); //reserve memory to prevent intern fragmention
4444
}
4545

4646

@@ -209,9 +209,15 @@ bool Sim800l::sendSms(char* number,char* text){
209209

210210
String Sim800l::getNumberSms(uint8_t index){
211211
_buffer=readSms(index);
212-
int _idx1=_buffer.indexOf("+CMGR:");
213-
_idx1=_buffer.indexOf("\",\"",_idx1+1);
214-
return _buffer.substring(_idx1+3,_buffer.indexOf("\",\"",_idx1+4));
212+
Serial.println(_buffer.length());
213+
if (_buffer.length() > 10) //avoid empty sms
214+
{
215+
uint8_t _idx1=_buffer.indexOf("+CMGR:");
216+
_idx1=_buffer.indexOf("\",\"",_idx1+1);
217+
return _buffer.substring(_idx1+3,_buffer.indexOf("\",\"",_idx1+4));
218+
}else{
219+
return "";
220+
}
215221
}
216222

217223

@@ -222,8 +228,12 @@ String Sim800l::readSms(uint8_t index){
222228
SIM.print (F("AT+CMGR="));
223229
SIM.print (index);
224230
SIM.print("\r");
225-
return _readSerial();
226-
}
231+
_buffer=_readSerial();
232+
if (_buffer.indexOf("CMGR:")!=-1){
233+
return _buffer;
234+
}
235+
else return "";
236+
}
227237
else
228238
return "";
229239
}

examples/readSmsAndFilterNumber/readSmsAndFIlterNumber.ino

+1
Original file line numberDiff line numberDiff line change
@@ -94,4 +94,5 @@ void loop(){
9494

9595

9696
}
97+
}
9798

0 commit comments

Comments
 (0)