【发布时间】:2014-07-02 15:00:29
【问题描述】:
我有一块带有 GPRS 屏蔽的 Arduino 板。我可以使用 Arduino 的 IDE 发送和接收 SMS,但我现在要使用 Wavecom GPRS 调制解调器。
我可以将字符串从 Qt 连接并发送到 Arduino 板,这样当 Arduino 从 Qt 接收到特殊字符串时,它会发送一条短信。请参阅下面的代码。
但是现在,我被困住了...不知道如何直接从 Qt 发送 AT 命令,而不仅仅是发送 Arduino 等待发送 SMS 的字符串...
现在有人可以从 Qt 向 GPRS 调制解调器发送 AT 命令吗?
Arduino 代码:
void loop()
{
//Check if available
if (Serial.available())
{
// read the incoming byte:
incomingByte = Serial.read();
//Just to show how it works
if(incomingByte == 'X')
{
AT commands to send an sms
}
}
else
delay(5); // there is nothing to read, so wait a few msec's
}
【问题讨论】:
-
这与 Arduino 板有何不同?如果您使用 QSerialPort 类,QIODevice::write() 会将这一切抽象出来,前提是 GPRS 的调制解调器 AT 通信是通过串行端口硬件接口发生的。
-
我希望我错了,但我只能从 Qt 向正在监听信号的 Arduino 发送一个信号(在我的情况下是一个字符串)。当他收到信号时,他会发送带有 Arduino 板中 AT 命令的 SMS。我无法将任何数据放入 GPRS 调制解调器中......我一直在寻找 QProcess 类来执行发送 AT 命令的 shell 脚本,但仍然希望可以直接从 Qt 执行此操作
-
您认为 AT 命令是如何工作的?以我的经验,它们通常是通过常规串行端口发送的。现在,您可能有一些蓝牙等调制解调器,但根据您的串行使用情况,它可能是串行的。调制解调器和你的 Qt 程序之间没有紧密的联系。我不知道为什么你认为两个程序只有在它们都用 Qt 等编写时才能说话。
-
刚刚发现您可以输入 AT 命令:
m_serialPort->write(QByteArray("AT..\r\n"));这样可以节省我的时间!! -
因为我离专业人士还很远^^
标签: c++ qt modem gprs qtserialport