我有一个空终止的串口侦听器,我希望它将所有数据和引脚事件从输入端口传递到输出端口。数据运行良好,但我想传递所有的pin事件。我使用了
添加了一个监听器in_port.PinChanged += new SerialPinChangedEventHandler(port_PinChanged);
然后用:
处理它 static void port_PinChanged(object sender, SerialPinChangedEventArgs e)
{
if (e.EventType == SerialPinChange.Break)
{
out_port.BreakState = in_port.BreakState;
}
else if (e.EventType == SerialPinChange.CDChanged)
{
}
else if (e.EventType == SerialPinChange.CtsChanged)
{
}
else if (e.EventType == SerialPinChange.DsrChanged)
{
}
else if (e.EventType == SerialPinChange.Ring)
{
}
}
如何将引脚状态的这些更改传递到输出端口?
答案 0 :(得分:5)
这不起作用。 CD和Ring是调制解调器信号,它们作为PC上的输入连线。您没有可用于驱动这些信号的备用输出。 CTS和DSR是握手信号,在另一端连接到RTS和DTR。您需要自己使用它们在两个端口上实现握手。 Break也不能很好地工作,你不知道什么时候关闭,虽然你可以用计时器模拟它。不要打扰,这个信号可以追溯到石器时代。
RS-232不是为此而制造的。而是直接连接并点击信号。 TxD + Gnd到一个端口,RxD + Gnd到另一个端口,这样你就可以窥探流量。噪声不是最大的,保持电缆短路或波特率低。需要烙铁。
答案 1 :(得分:1)
CtsChanged和DsrChanged引脚状态是对其他事情的反应,你不应该试图以这种方式传递它们。它们与数据流有关。
我不确定其他信号。