通过 C++ 程序发送 CTRL-Z
send CTRL-Z through C++ program
我正在尝试编写一个简单的 C++ 程序,根据用户的输入发送 SMS 消息。简单的 C++ 程序无法完成这项工作:
#include<stdio.h>
#include <stdlib.h> /* system, NULL, EXIT_FAILURE */
#include<iostream>
#define CTRL(x) (#x[0]-'a'+1)
using namespace std;
int main()
{
char buffer[128];
sprintf(buffer, "/opt/modemcli AT+CMGC=\"+112345678\"\rTEST%c", CTRL(z));
printf (buffer);
system(buffer);
return 0;
}
modemcli 只是一个简单的 C++ 程序,可将消息写入 USB 端口并读取响应。
modemcli is simple, here is a test:
/opt/modemcli AT
Received AT
OK
我的猜测是 CMGC 未正确形成。格式为:
AT+CMGC="PHONE_NUMBER"<CR>SMS MESSAGE BODY.<Ctrl+z>
有人可以帮我解决这个问题吗?
首先,我认为您想使用 AT+CMGS
命令,而不是 AT+CMGC
。查看 27.005 to see if you really want AT+CMGC. But before reading that document, read all of chapter 5 in V.250 中每个命令的描述,这将教会你所有你需要的 AT 命令处理的基础知识。
您正在尝试的是不可能通过使用发送 AT 命令的通用命令行程序(如 modemcli 或我的 atinout 程序)来完成。为了 运行 AT+CMGS
在调制解调器上,发出它的程序 必须 明确支持此特定 AT 命令的行为。
这是因为在发送负载之前需要等待调制解调器的 "ready to receive" 提示。有关详细信息,请参阅 this answer 的第一部分。
我已经开始着手开发一个辅助程序,专门用来处理 AT+CMGS
,但还没有完成,请不要屏住呼吸,开发目前处于暂停状态。
我正在尝试编写一个简单的 C++ 程序,根据用户的输入发送 SMS 消息。简单的 C++ 程序无法完成这项工作:
#include<stdio.h>
#include <stdlib.h> /* system, NULL, EXIT_FAILURE */
#include<iostream>
#define CTRL(x) (#x[0]-'a'+1)
using namespace std;
int main()
{
char buffer[128];
sprintf(buffer, "/opt/modemcli AT+CMGC=\"+112345678\"\rTEST%c", CTRL(z));
printf (buffer);
system(buffer);
return 0;
}
modemcli 只是一个简单的 C++ 程序,可将消息写入 USB 端口并读取响应。
modemcli is simple, here is a test:
/opt/modemcli AT
Received AT
OK
我的猜测是 CMGC 未正确形成。格式为:
AT+CMGC="PHONE_NUMBER"<CR>SMS MESSAGE BODY.<Ctrl+z>
有人可以帮我解决这个问题吗?
首先,我认为您想使用 AT+CMGS
命令,而不是 AT+CMGC
。查看 27.005 to see if you really want AT+CMGC. But before reading that document, read all of chapter 5 in V.250 中每个命令的描述,这将教会你所有你需要的 AT 命令处理的基础知识。
您正在尝试的是不可能通过使用发送 AT 命令的通用命令行程序(如 modemcli 或我的 atinout 程序)来完成。为了 运行 AT+CMGS
在调制解调器上,发出它的程序 必须 明确支持此特定 AT 命令的行为。
这是因为在发送负载之前需要等待调制解调器的 "ready to receive" 提示。有关详细信息,请参阅 this answer 的第一部分。
我已经开始着手开发一个辅助程序,专门用来处理 AT+CMGS
,但还没有完成,请不要屏住呼吸,开发目前处于暂停状态。