Discussion in "Embedded GSM Development" started by    Alvanbert    Feb 11, 2012.
Wed Feb 15 2012, 04:20 pm
#11
@ Alvanbert
yes the code is correct
i use it with gsm modem and its works
u need t capture a event of new message notification
same thing is for cell phone as well as modem
which cell phone or modem ur using
Wed Feb 15 2012, 07:44 pm
#12
Hi Majoka, Thanks for yr reply. Pliz show me how i can integrate the capture of the new message notification into the code.
the Code above the last post i made has a code from Ajay that Kiran told me to use which i think is meant for this but i dont know how to integrate it.

Am using a Huawei Modem E160...its A USB modem
Thu Feb 16 2012, 09:20 am
#13
In that same post its there read notification()
implement it in main program. u ll get.

Thu Feb 16 2012, 08:37 pm
#14
hi guys. i av been working on different though am yet to come to a successful conclusion. i want u to tell me whether this would be possible.

1. Is it possible to increment the 1 using aloop in the the command in the line ..SMSString( "AT+CMGR= 1 \r");...so that it can be able to read
( "AT+CMGR= 2 \r");, ( "AT+CMGR= 3 \r"); ( "AT+CMGR= 4 \r");...so that it can check from address 1-5 using a variable e.g n

2.If The above is okay....in case my simcard receives messages greater that the variable stated, i want it to delete the oldest message..which in this case would be the message at n=1 and replace it with the newest and the loop continues.
Fri Feb 17 2012, 09:34 am
#15
In SMSString() its not possible to increment no.
Do like this
SMSString("AT+CMGR=");
tx0(var++);
SMSString("\r");

Second method also can be done.As soon as you receive a msg read/store it and delete it.So that when next msg arrives it sits in 1st location only.
Fri Feb 17 2012, 08:14 pm
#16
Thanks Kiran. But the problem now is tx0 function is supposed to output unsigned characters and yet i think the variable will be an integer.
i have tried to declare the (var) as an integer globally but wen the program runs the "AT+CMGR = " doesnt pick up the digit..so in the terminal it displays as shown in the snapshot below


secondly, KiRAN said

Second method also can be done.As soon as you receive a msg read/store it and delete it.So that when next msg arrives it sits in 1st location ony



How can i do this.. thought it would be easier to read from message location 1,2,3,4,5 then back to 1...through the loop i was suggesting above...
so when a new message arrives after location 5 has been filled..instead of storing it in 6, i will delete message in location 1 and place it there and the loop continues..... I hope am clear enough..

THANKS
Wed Feb 22 2012, 04:36 am
#17
var must be converted to ascii first before sending it to modem. and "AT+CMGR=" without spaces around '=' sign
Thu Feb 23 2012, 04:17 am
#18
Thanx A jay but problem is i dnt knw how 2 convert variable 2 ascii. Pliz enlighten me on how to do this. Thanx
Thu Feb 23 2012, 04:38 am
#19


Thanx A jay but problem is i dnt knw how 2 convert variable 2 ascii. Pliz enlighten me on how to do this. Thanx

Alvanbert


For numbers up to 10 the best method is just to add 0x30 to the value.
EG
0 becomes 0x30 which is ascii '0'
1 becomes 0x31 which is ascii '1' etc.

For 10 or above use "printf", "sprintf" or "itoa"
"printf" will often add a lot of code so is best avoided.
Fri Feb 24 2012, 05:57 pm
#20
Thanx alot guys for your help...now am getting some output on the screen.

Now am left with one disturbing issue though it should be easy.
am failing to create a loop that can display the message onto the lcd from at+cmgr=1 to at+cmgr=5
below is the part of the code where i want to set up the loop pliz help.
SMSString("AT\r"); // AT commands to initialize gsm modem
delay_sms(1000);

SMSString( "ATe0\r"); // turn off echo
delay_sms(1000);

SMSString( "AT&W\r"); // save settings
delay_sms(1000);

SMSString( "AT+CMGF=1\r"); // select text mode for sms
delay_sms(1000);

SMSString( "AT+CNMI=2,1,0,0,0\r"); // notification of new sms
delay_sms(1000);

SMSString( "AT+CMGR="); // AT command to read sms
tx0(var++);
SMSString( "\r");

IE=0X90;   // Enable serial interrupt
delay_sms(2000);

/* i get a response like this

// +CMGR: "REC READ" ,"+2347060580383","10/10/23,14:29:33+04" 
// device1 off 
// Ok. */

// read sms and store in buffer msg1
read_text(msg1);
delay_sms(2000);
IE=0X00;     // Disable all interrupt
while(1);


Get Social

Information

Powered by e107 Forum System

Downloads

Comments

AntoniaRoons
Fri Apr 19 2024, 09:59 pm
carpinteyrowrl
Fri Apr 19 2024, 02:51 pm
DonaldJAX
Fri Apr 19 2024, 01:08 pm
Lewisuhakeply
Thu Apr 18 2024, 06:00 pm
Darrellciz
Thu Apr 18 2024, 11:07 am
Charlessber
Thu Apr 18 2024, 09:29 am
BartonSem
Thu Apr 18 2024, 04:56 am
DonaldKnown
Thu Apr 18 2024, 12:24 am