将RS-232输出流式传输到浏览器

时间:2011-08-19 00:17:52

标签: c# .net serial-port

这可能吗?如果是这样,就软件而言,行业标准是什么?具体来说,我指的是.net控件。

谢谢

EDITED: 这就是我需要的。我有一个瘦客户端,其余的RS-232用于与瘦客户端交互。目前,它是一个紧凑的框架应用程序。我想知道的是否可以在Web应用程序中进行相同的设置。因此,这将导致RS-232不是服务器RS-232 - 它是用户的计算机RS-232 - RS-232在客户端上。所以当RS-232吐出输入时,它应该转到浏览器。是否可以在Web应用程序中使用?

2 个答案:

答案 0 :(得分:0)

我能想到的两种方式;

  • 缓冲应用程序对象中的串行数据,然后使用定时器触发的ajax调用来获取并显示最新数据。
  • 对于较短的数据流,您可以执行类似的操作,而不是使用asp.net控件;

    Response.ContentType = "text/plain";
    Response.Clear();
    
    String serialData;
    
    while(serialData = getSerialData() {
       Response.Write(serialData);
       Response.Flush();
    }
    

    这将实时将文本内容写入Web浏览器。你可能不想让这个会话开放太久了。

    如果您想在另一个页面中显示数据流,那么只需将包含上述代码的页面放在iFrame中。

    另请注意,上述操作最好在ashx处理程序而不是aspx页面中完成。

答案 1 :(得分:-1)

当然,你可以做到。您将从System.IO.Ports.SerialPort实例中读取,并通过HttpListener输出。

诀窍将是知道你想要对HttpListener提供的页面做什么。由于数据将实时传入COM端口,您可能希望在服务器的HTTP请求之间缓冲它,否则,如果您尝试在没有数据等待的情况下读取端口,您将挂起监听器。如果您不经常阅读数据并且它填满SerialPort读取缓冲区,您也可能会错过数据。