.net System.IO.Ports.SerialPort-是否可以配置IOCTL\u SERIAL\u SET\u WAIT\u掩码?
我一直试图通过编写一个小型Windows窗体应用程序来从旧的外部调制解调器收集来电显示数据,从而了解.Net(3.5)如何通过.net System.IO.Ports.SerialPort-是否可以配置IOCTL\u SERIAL\u SET\u WAIT\u掩码?,.net,serial-port,.net,Serial Port,我一直试图通过编写一个小型Windows窗体应用程序来从旧的外部调制解调器收集来电显示数据,从而了解.Net(3.5)如何通过System.IO.Ports.SerialPorts类与串行端口交互 我已经测试过调制解调器是否支持来电显示;使用Putty或Hyperterminal,我可以配置调制解调器以收集来电显示数据(使用我找到的命令AT#CID=1),当电话铃响时,显示数据。在终端窗口中,如下所示: RING DATE = 0308 TIME = 2045 NMBR = 012345678
System.IO.Ports.SerialPorts
类与串行端口交互
我已经测试过调制解调器是否支持来电显示;使用Putty或Hyperterminal,我可以配置调制解调器以收集来电显示数据(使用我找到的命令AT#CID=1
),当电话铃响时,显示数据。在终端窗口中,如下所示:
RING
DATE = 0308
TIME = 2045
NMBR = 01234567890
RING
我的C#应用程序似乎成功配置了调制解调器,并显示一个铃声
电话铃响时的留言;但是,它从不显示呼叫者ID数据
为了理解为什么会这样,我比较了使用Sysinternals的不同客户机采取的操作
主要区别在于连接配置;我的C#应用程序包括以下行,Putty和Hyperterminal不包括这些行:
0.00000307 callerID.exe IOCTL_SERIAL_SET_WAIT_MASK Serial0 SUCCESS Mask: RXCHAR RXFLAG CTS DSR RLSD BRK ERR RING
据我所知,IOCTL\u SERIAL\u SET\u WAIT\u MASK
是要筛选的消息类型的一个包含列表
因此,有三个问题:
呼叫方ID信息是否可能被IOCTL\u SERIAL\u SET\u WAIT\u MASK
抑制
如果是,我如何配置它以显示来电显示信息?它似乎无法从类属性访问
如果我不能配置它,那么我唯一的选择就是绕过它,将自己的包装器写入控制串行端口的较低级别系统函数吗
我对串行端口通信的理解非常基础,因此我认为我的诊断还远远不够。感谢您的指导。我在MSDN上找到了它,它看起来是一个不错的示例,说明了如何通过系统dll上的p/Invoke访问串行端口
我仍然想知道我是否可以解决.Net类的问题。我在MSDN上找到了它,它看起来是一个不错的示例,说明了如何通过系统dll上的p/Invoke访问串行端口
我仍然想知道我是否可以解决我在.Net课程中遇到的问题。我的诊断还远远不够 似乎
WriteLine
方法没有用我的调制解调器期望的行终止符终止它发送的命令
我所需要做的就是在我发送的命令中添加回车符,并使用Write
方法发送它们
很抱歉浪费了大家的时间。我的诊断偏离了方向 似乎
WriteLine
方法没有用我的调制解调器期望的行终止符终止它发送的命令
我所需要做的就是在我发送的命令中添加回车符,并使用Write
方法发送它们
为浪费任何人的时间而道歉。在回答自己的问题时,您在保持最新信息方面做得非常好!:-DYou在回答您自己的问题时,能够及时了解最新信息,这真是一项出色的工作!:-Dyeah,有必要在方法_serialPort.WriteLine(“at#cid=1”+System.Environment.newline)中添加换行符;是的,有必要在方法_serialPort.WriteLine(“at#cid=1”+System.Environment.newline)中添加换行符;