thx for the link acetronics..........
You can make it all work without worrying about decoding the pdu's, dont be scared off by them!
Provided you always send commands in a set way, a protocol if you like, then it wont matter that its not text.
IE..
617658DE06BDDD alarm on
617658DE06BDCD66 alarm off
You just check a few key points in the above, ie
617 658D E06B DDD alarm on
617 658D E06B DCD66 alarm off
Just check for 658d, if you have that you have the alarm word,then check for DDD, if you have then its on, if DCD then its off, if not any, its a user/sms/command error.
Thats how I have mine working now.
And sending a sms back is easy too, ie...
serout portb.6,t1200,["atz",13] ' wake up thephone
pause 500
serout portb.6,t1200,["at+cmgs=",#ln,13] ' tell it we want to send a txt
pause 2000
serout portb.6,t1200,["0011000C91"] ' start of the pdu data
for x=1 to 12 ' send it the destination phone number, 12 digits international format
serout portb.6,t1200,[pduphn(x)]
next
serout portb.6,t1200,["00F0AD"] ' next part of header
' ****** Put all the above in a subroutine, every message you send will need the same header, all you need to send a different message is to change the next lines
serout portb.6,t1200,["C8329BFD06DDDF723619"] ' hello world
pause 9000 ' wait for phone to send
You can just change the hello world to whatever you want, remember if you change the length, you need to tellthe phone the incoming data is a different length.
use 'pdu spy' to create the pdu text you need.
Last edited by f_lez; - 6th September 2006 at 10:59.
thx for the info ...sorry for late reply ....bz lately with exam .......in the #6 post u put :
If buf(6)<>"4" then wait_for_command
if buf(6)<>"1" then wait_for_command
If buf(6)<>"7" then wait_for_command
If buf(6)<>"6" then wait_for_command
do i need to store the recieve message( Alarm arm 0AD09417658DE0685E56D
)into the buffer 1st ...?
I think this help you, this is the compleet command list that work for picmicro.
http://www.precision.net.in/picbasic...guidelines.pdf
http://www.precision.net.in/picbasic...at_command.pdf
Originally Posted by Ziki
Yes, make buf(XX) large enough for your longest message, but remember that a message has a huge 60 chars plus overhead, dont store those, you have to read them, but dont store them, and then simply read what you want with a for next loop.
use serin with a timeout so if the message is short, it will keep going, and also if the message is short, you need to skip any further serin commands, IE
for z=0 to 90
buf(z)="*"
next
error_flag=0
for n=1 to 20 digits
get_back_in_loop:
if error_flag=0
SERIN portb.7,t1200,1000,comserr,combuf(z)
endif
next
goto finished read
comserr:
error_flag=1
goto get_back_in_loop
finished_read:
OK so we have now read the string in (in a dirty horrible looking way) so you can now process it as you need
You will have to write another routine, to call (gosub) before that, to read the first 46 or so chars, then you can read the next 12 and save them as there are the originating phone number, you may want to check that for an authentic message sender, then dump another 20 as they are time/date etc, unless you want to do something with them.
remember it screws phone numbers / time date etc up too, so a phone number of 1234 becomes 2143, stupid damn system.
hi ..there's a problem ......when i connect my data cable which i have modify it to become serial instead of usb ....(coz canot find it anymore ) to the T610 with the PC .the hyperterminal doesn't seems to respond :< ..canot type anything on it ...pls advice ..thx .....
i use pin 4 (Rx)from T610 SE to pin 3(Tx) of db-9 female
pin 5(Tx) from t610 to pin 2(Rx) of db9 female
pin 8(Gnd) from t610 to pin 5(Gnd) of db9 female
to connect to pc 9 pin serial you need a max232.
your phone is 0v and 3.6v serial, your pc is -12v and +12v, your phone's port may be damaged after that.
I have had no problems with a t610 connected to a pic16f88 at 5v. but may in my finished design include a resistor.
Bookmarks