Writing Non-ASCII keys in Serial Port
显示 更早的评论
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.
采纳的回答
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 个评论
Will it matter if the code is in decimal or hex?
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.
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
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.
Thanks to both of you. To conclude, I can use,e.g., fprintf(s,'\x1a') to make a ^Z command?
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.
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);
更多回答(0 个)
类别
在 帮助中心 和 File Exchange 中查找有关 Encryption / Cryptography 的更多信息
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!选择网站
选择网站以获取翻译的可用内容,以及查看当地活动和优惠。根据您的位置,我们建议您选择:。
您也可以从以下列表中选择网站:
如何获得最佳网站性能
选择中国网站(中文或英文)以获得最佳网站性能。其他 MathWorks 国家/地区网站并未针对您所在位置的访问进行优化。
美洲
- América Latina (Español)
- Canada (English)
- United States (English)
欧洲
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)
