【发布时间】:2011-09-29 16:47:51
【问题描述】:
我有一个 lightWave 类型的 USB gsm 调制解调器。我在 c# 中找到了这段代码,它可以从这个调制解调器接收、发送、删除和读取短信,但是当新消息到达调制解调器时,在收到新消息时应该引发的事件不会被引发。我不知道问题是什么;但是,我可以在收到后从 sim 中读取此消息,但我希望在消息到达这部分代码时引发收到消息的事件:
private void Form1_Load(object sender, EventArgs e)
{
int port = GsmCommMain.DefaultPortNumber;
int baudRate = 9600; // We Set 9600 as our Default Baud Rate
int timeout = GsmCommMain.DefaultTimeout;
dlg = new frmConnection();
dlg.StartPosition = FormStartPosition.CenterScreen;
dlg.SetData(port, baudRate, timeout);
if (dlg.ShowDialog(this) == DialogResult.OK)
{
dlg.GetData(out port, out baudRate, out timeout);
CommSetting.Comm_Port = port;
CommSetting.Comm_BaudRate = baudRate;
CommSetting.Comm_TimeOut = timeout;
}
else
{
Close();
return;
}
Cursor.Current = Cursors.WaitCursor;
CommSetting.comm = new GsmCommMain(port, baudRate, timeout);
Cursor.Current = Cursors.Default;
CommSetting.comm.PhoneConnected += new EventHandler(comm_PhoneConnected);
CommSetting.comm.MessageReceived += new MessageReceivedEventHandler(comm_MessageReceived);
//....
}
消息时不会引发此事件
CommSetting.comm.MessageReceived += new MessageReceivedEventHandler(comm_MessageReceived);
我在codeproject.com 创建的这段 C# 代码可以帮助我吗?
【问题讨论】:
-
如果不设置 Handshake 属性,则必须自己设置硬件握手信号。将 RtsEnable 和 DtrEnable 属性设置为 true。
-
您必须使用自己的处理程序来接收数据并做出相应的决定,而不是使用 GSMcomm。