I am trying to send SMS using Matlab through a Nokia phone. I am using AT commands, and one of the commands uses ctrl+z. How can I do this in the M-file?
Thank you.

 Akzeptierte Antwort

Siddharth Shankar
Siddharth Shankar am 2 Feb. 2011

1 Stimme

The value for CTRL-Z (^Z), is 26 (decimal value). So you could just try using FWRITE to send that value, in addition to all the other commands. On a side note, the value for CTRL-A (^A) is 01 and other key combinations from CTRL-B through CTRL-Y are the number in between i.e. CTRL-B (2), CTRL-C(3) etc.

8 Kommentare

gokubori kira
gokubori kira am 2 Feb. 2011
Will it matter if the code is in decimal or hex?
Siddharth Shankar
Siddharth Shankar am 2 Feb. 2011
If you're transmitting in HEX, then you need to convert 26 to its HEX equivalent, which I believe is 1a. I don't think it would matter how you transmit it, at the end of the day, the bit sequence is the same.
Walter Roberson
Walter Roberson am 2 Feb. 2011
Yes, it would matter. The AT command set does *not* want to be sent hex.
You can construct ^Z as part of a string by using char(26) . If you are using sprintf or fprintf then you can code \x1a
Siddharth Shankar
Siddharth Shankar am 2 Feb. 2011
I'd take Walter's advice on this one, I know nothing about "AT commands". In general though, for example, communicating with an instrument via the serial port, it wouldn't matter.
gokubori kira
gokubori kira am 2 Feb. 2011
Thanks to both of you. To conclude, I can use,e.g., fprintf(s,'\x1a') to make a ^Z command?
Siddharth Shankar
Siddharth Shankar am 2 Feb. 2011
Not quite. IF you do want to send in hex and it is OK to do so, then refer to this solution: http://www.mathworks.com/support/solutions/en/data/1-61RAJP/?solution=1-61RAJP
Note that FPRINTF also sends a "terminator" character (new line, carraige return, or anything else you may have configured) to the instrument after the message that you have specified.
gokubori kira
gokubori kira am 3 Feb. 2011
OK, thanks.
I am working on a similar project, my code is not working can anyone please help me over and the code used by me is :
ss=serial('COM7');
ss.baudrate=9600;
fopen(ss);
ss.Terminator = 'CR'
tx ='AT';
tx1=char(13);
tx2 ='AT+CMGF=1';
tx3 ='AT+CSCS="GSM"';
tx4 ='AT+CMGS="=+919844806008"';
tx5 ='water';
tx6=char(26);
fprintf(ss,'%s',tx);
fprintf(ss,'%s',tx1);
pause(1);
fprintf(ss,'%s',tx2);
fprintf(ss,'%s',tx1);
pause(1);
fprintf(ss,'%s',tx3);
fprintf(ss,'%s',tx1);
pause(1);
fprintf(ss,'%s',tx4);
fprintf(ss,'%s',tx1);
pause(1);
fprintf(ss,'%s',tx5);
pause(1);
fprintf(ss,'%s',tx6);

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Encryption / Cryptography finden Sie in Hilfe-Center und File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by