Serial port 收到';中断';在tcl 8.5.1中,导致COM端口停止工作(win xp)

Serial port 收到';中断';在tcl 8.5.1中,导致COM端口停止工作(win xp),serial-port,tcl,Serial Port,Tcl,我正在编写一个程序,该程序大量使用串行端口 它目前是一个仅限windows的程序(不幸的是:-),运行在windows XP上。TCL版本是8.5.1.0——它可能是也可能不是“官方”TCL,不确定 在另一端的设备发送中断之前,一切都正常工作(或者,只需断开串行端口:-) 一旦发生这种情况,数据仍然可以正常接收,但通过“puts”将数据发送到端口将导致没有数据发送到串行端口。事实上,当我发送一个字符,询问fconfigure最后一个错误时,它总是说BREAK。现在,我不知道这是否只是上一个错误的

我正在编写一个程序,该程序大量使用串行端口

它目前是一个仅限windows的程序(不幸的是:-),运行在windows XP上。TCL版本是8.5.1.0——它可能是也可能不是“官方”TCL,不确定

在另一端的设备发送中断之前,一切都正常工作(或者,只需断开串行端口:-)

一旦发生这种情况,数据仍然可以正常接收,但通过“puts”将数据发送到端口将导致没有数据发送到串行端口。事实上,当我发送一个字符,询问fconfigure最后一个错误时,它总是说BREAK。现在,我不知道这是否只是上一个错误的遗留问题

在任何情况下,人们究竟是如何清除TCL串行端口上的“中断”条件的

谢谢

生锈的

更新:以下是我们如何打开串行端口:

    set state(com_port_handle) [open $name r+]


    #      Configure the COM port.

    fconfigure $state(com_port_handle) -mode 115200,n,8,1 \
                                       -blocking 0 \
                                       -buffering none \
                                       -translation binary
    fconfigure $state(com_port_handle) -handshake none
当我们想从我们这边强行突破时,我们会:

    fconfigure $state(com_port_handle) -ttycontrol {break 1}
    after 100
    fconfigure $state(com_port_handle) -ttycontrol {break 0}
读取软件流控制后,发送
Xon
字符可能会唤醒链接(如果它确实被
Xoff
暂停)


此外,您可能还想在TCLer的wiki上查看有关串行端口的信息。这是我通常用作涉及串行端口的任何内容的框架的代码。

嗯,我还不知道如何清除此条件,但我发现,如果不使用xonxoff模式,则该条件永远不会发生。Rusty当你说中断时,你是指NUL/0x00/CTRL-@字符吗?你是否尝试过使用open命令的-ttycontrol选项禁用中断条件?在回答第一个问题时,我指的是中断条件-这是指串行线在活动状态下保持超过字符时间的情况(实际上,通常更长),没有位开关。回答第二个问题,不,我没有在open命令中尝试过。以上是我们周围公开的代码,供参考。当我们想要发送中断时,您可以看到上面的代码,所以我假设打开时的ttycontrol也会做同样的事情-发送中断,而不是启用它。我必须尝试ttycontrol,看看会发生什么-有机会时我会在这里更新。