【发布时间】:2016-05-30 11:53:22
【问题描述】:
我需要创建一个从 COMX 读取来电号码的 Windows 应用程序,以下是我拥有的代码:
public partial class frmMain : Form
{
public frmMain ()
{
InitializeComponent();
if (!serialPort1.IsOpen)
{
try
{
serialPort1.Open();
}
catch (System.Exception ex)
{
MessageBox.Show(ex.ToString());
}
}
}
delegate void OutputUpdateDelegate(string data);
private void OutputUpdateCallback(string data)
{
txtReceive.Text += data;
}
private void DataRec(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
{
try
{
string data = serialPort1.ReadExisting();
txtReceive.Invoke(new OutputUpdateDelegate(OutputUpdateCallback),data);
}
catch (System.Exception ex)
{
MessageBox.Show(ex.ToString());
}
}
}
由于我没有要测试的调制解调器,我需要知道如何创建一个虚假的测试呼叫以及如何只读取电话号码而不是读取来自“ReadExisting()”方法的整个字符串,是除了拆分字符串还有其他方法吗?如果没有,传入的字符串是什么样的?
请指教。
【问题讨论】:
-
获取调制解调器的编程手册以获取响应样本。您的 RJ11 电缆是否在计算机中使用 9/25 针连接器、USB 或以太网连接?测试代码的消息传递部分的一种简单方法是与客户端和服务器建立虚拟 TCP 连接。服务器将模仿调制解调器和您的 PC 发送消息的客户端。
-
谢谢@jdweng 非常感谢您的提示,我搜索了虚拟 TCP 连接并找到了使用超级终端进行测试的方法,但我无法拨打假电话(例如输入一个数字+999999999)我所能做的就是在终端中写入并在我的代码中捕获值。至于回答你的问题,我计划使用的调制解调器有 RJ11 端口,使用 9/25 针连接器。
-
@jdweng,对不起,我打算使用的调制解调器有 RJ11 端口,而不是你上面提到的任何一个。
-
9/25 连接器可以通过用电线或回形针连接针脚 2 和 3 来跳转。做了很多次来测试代码。
-
@jdweng 我连接了调制解调器并尝试拨打电话,我只收到 RING RING ...没有其他信息 我希望得到 NMBR = xxxxxxxx 知道我使用 AT+VCID=1 启用了 CallerId我没问题,但仍然没有收到预期的结果,当我将电缆连接到电话时,我看到了来电者号码。如何处理?
标签: c# serial-port windows-applications