如何使用DotRas连接USB 3G调制解调器并发送AT命令?

时间:2014-09-24 05:09:40

标签: c# windows usb modem ras

我发现DotRas是RAS的包装器。这就是我能用它做的事情

private void btnConnect_Click(object sender, EventArgs e)
    {
        RasDevice device = RasDevice.GetDeviceByName("ZTE Proprietary USB Modem", RasDeviceType.Modem);
        if (device != null)
        {
            MessageBox.Show("Found "+device.Name.ToString()+device.DeviceType.ToString(), "hah!", MessageBoxButtons.OK);
        }
        else
        {
            MessageBox.Show("Device not found", "Error", MessageBoxButtons.OK);
        }

        this.rasPhoneBook1.Open();
        RasEntry entry = RasEntry.CreateDialUpEntry("ZTE Proprietary USB Modem", "+880000000", device);
        this.rasPhoneBook1.Entries.Add(entry);

        this.rasDialer1.EntryName = "ZTE Proprietary USB Modem";
        this.rasDialer1.PhoneBookPath = rasPhoneBook1.Path;
        this.rasDialer1.DialAsync();
    }

    private void rasDialer1_StateChanged(object sender, StateChangedEventArgs e)
    {
        MessageBox.Show(e.State.ToString(), "Dial Status", MessageBoxButtons.OK);
    }

    private void rasDialer1_DialCompleted(object sender, DialCompletedEventArgs e)
    {
        if (e.Cancelled)
        {
            MessageBox.Show("Cancelled");
        }
        else if (e.TimedOut)
        {
            MessageBox.Show("Time out");
        }
        else if (e.Error != null)
        {
            MessageBox.Show(e.Error.ToString(),"Error");
        }
        else if (e.Connected)
        {
            MessageBox.Show("Connection successful!");
        }
    }   

代码尝试拨打调制解调器,但显示以下错误消息:

"The remote computer did not respond. To make sure that the server can be reached,ping the remote    computer."}

错误很严重:

 else if (e.Error != null)
        {
            MessageBox.Show(e.Error.ToString(),"Error");
        } 

我正在尝试连接3g调制解调器并通过调制解调器发送和接收短信。我如何通过DotRas实现这一目标?是的我已经阅读了API文档并阅读了DOtRas官方网站上的discussions步骤,但我仍然迷失了。任何帮助将非常感激。谢谢。

1 个答案:

答案 0 :(得分:2)

从文档中看,DotRas似乎只是用于建立RAS连接。您无需建立RAS连接即可发送&接收短信,只需在网络上注册。就个人而言,我会为此编写自己的代码,因为它并不太复杂,但有很多第三方库像gsmcomm处理SMS。

对于标准AT命令,请参阅www.3gpp.org的TS 27.005(sms)和27.007(一般AT命令)。 TS 27.005,第3.4节,处理接收消息。

(添加了对答案似乎有用的评论)。