我必须通过串行端口进行通信。我现在正在尝试允许通过 2 个设备进行蓝牙通信,但无处可去。
我在设备上有一个应用程序(称为蓝牙资源管理器),它允许我进行串行通信,它将通过蓝牙发送,使用 Stonestreet One 堆栈以防您想知道:(
在设置中,我可以创建一个定义了 COM 端口的“服务”。
所以我然后尝试运行以下代码(我在一个设备上调用 Write 并在另一台设备上调用 Read)。BTExplorer 在执行时启动配对应用程序serialPort.Open()
。在那里我选择了我想使用的“服务”(串行端口 1)。
但是serialPort.ReadLine()
挂起并且永远不会返回。(我的意思是真的挂了。我必须热启动设备才能杀死我的应用程序。结束进程/终止进程不起作用。)
这是供参考的代码:
public void WriteSerial()
{
SerialPort serialPort = new SerialPort("COM4");
serialPort.Open();
serialPort.WriteLine("Hello To The Other Side");
serialPort.Close();
}
public void ReadSerial()
{
SerialPort serialPort = new SerialPort("COM4");
serialPort.Open();
string output = serialPort.ReadLine();
serialPort.Close();
MessageBox.Show(output);
}
private void btnWrite_Click(object sender, EventArgs e)
{
WriteSerial();
}
private void btnRead_Click(object sender, EventArgs e)
{
ReadSerial();
}
如何让这个工作?
我正在使用带有 MC70 设备的 Windows Mobile 5。蓝牙堆栈是 Stonestreet One(可悲的是无法改变)。在 C# Compact Framework .NET 3.5 中开发