3

我正在尝试使用通过 USB 连接的本地调制解调器调用远程调制解调器。编程语言是 VB.NET,我正在使用SerialPort控件与调制解调器对话。

通讯如下:

我发送: ATZ0[CR]

调制解调器回应:ATZ0[CR][CR][LF]OK[CR][LF]

然后我尝试拨打一个号码:

我发送: 有效号码ATDTnnnnnnnnnn[CR]在哪里nnnnnnnnnn

调制解调器响应:ATDTnnnnnnnnnn[CR][CR][LF]ERROR[CR][LF]

所有其他命令似乎都可以正常工作

有关信息,调制解调器是 MultiTech MT5634ZBA-USB-V92

如果我使用超级终端并在其中键入相同的命令,它会按预期工作并拨打号码,所以它一定是我在我的代码中做的事情,可能在SerialPort控件中进行了一些设置

编辑

我已经发布了我自己的答案,该答案是发给AT&D0调制解调器的。上面的命令现在正在工作。

4

5 回答 5

2

经过数小时的实验后,我发现之前发出AT&D0(忽略 DTR 信号)命令ATDT的效果是调制解调器不再响应,ERROR而是根据需要拨打远程调制解调器。

我仍然有点困惑,为什么在超级终端中输入命令而无需AT&D0发出命令 - 有谁知道超级终端是否在静默发出命令?

于 2012-02-20T16:22:10.797 回答
2

我已经有 12 年没有发出 AT 命令了,但我记得你需要阅读调制解调器的特定手册,因为每个品牌的所有 AT 命令都不同。

通常,如果您必须拨出外线,您必须先拨“1”,然后再拨其余号码。在发出命令之间,您经常不得不在拨号脚本中稍作等待。根据记忆,这些是“W1”、“W2”等。

因此,要拨打外线(“1”),然后拨打电话号码(“123456”),您需要输入如下内容:

ATDT1W3123456[CR][LF]

我已经很久没有这样做了:)

此外,根据记忆,AT&D0 类似于“重置调制解调器状态”,因此我们总是使用该命令启动脚本。

于 2012-02-22T10:49:39.200 回答
0

我想查看您的代码以更好地理解问题,但首先,请尝试发送

ATDTnnnnnnnnnn[CR][LF]
于 2012-02-18T10:28:02.097 回答
0

你试过用 [LF] 而不是 [CR] 来结束你的“ATDT”吗?

于 2012-02-22T23:12:25.893 回答
0

ATZ0返回一些存储的配置以供使用。也许有些东西会导致问题。您可以通过命令打印 if:

AT&V[CR]

尝试恢复出厂设置命令:

AT&F[CR]

进而:

ATDTnnnnn[CR]
于 2012-02-23T14:46:25.983 回答