从串行端口c#asp.net读取输入?
你好,我有一个PIC16F877A微控制器和Lcd显示屏。我已经让PIC控制器每2分钟在LCD屏幕上显示一次随机数字,它还通过RS232电缆每2分钟将随机生成的数字发送到我的笔记本电脑。我正在使用ASP.NET 4 C#创建一个网站,在那里我想阅读这些数字并执行一些功能。我已经写了以下代码,但它不起作用,但我在我的笔记本电脑超级终端接收到这些随机数。请建议我如何实现这一点-我必须每2分钟收到这些代码从串行端口c#asp.net读取输入?,asp.net,c#-4.0,serial-port,Asp.net,C# 4.0,Serial Port,你好,我有一个PIC16F877A微控制器和Lcd显示屏。我已经让PIC控制器每2分钟在LCD屏幕上显示一次随机数字,它还通过RS232电缆每2分钟将随机生成的数字发送到我的笔记本电脑。我正在使用ASP.NET 4 C#创建一个网站,在那里我想阅读这些数字并执行一些功能。我已经写了以下代码,但它不起作用,但我在我的笔记本电脑超级终端接收到这些随机数。请建议我如何实现这一点-我必须每2分钟收到这些代码 using System; using System.Collections.Generic;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.IO.Ports;
public partial class Entercode : System.Web.UI.Page
{
static SerialPort mySerialPort = new SerialPort("COM46", 1200, Parity.None, 8, StopBits.One);
protected void Page_Load(object sender, EventArgs e)
{
mySerialPort.Open();
String str = mySerialPort.ReadLine();
mySerialPort.Close();
}
}
我建议重新设计你的程序 ASP.NET被设计成无状态(因为它是基于HTTP的)。ASP.NET主机进程(w3wp.exe)可以在没有警告的情况下随意终止和回收。如果需要可靠性,应在专用Windows服务进程中执行串行端口通信,该进程通过某种形式的IPC与ASP.NET应用程序通信 使用页面加载是非常不合适的,更不用说非常不线程安全了。
.Close
方法相当于调用.Dispose
,这会破坏将SerialPort作为静态成员(在其生命周期结束时)的功能
我知道你对ASP.NET或IO端口编程都不熟悉。我建议您分别在这两个方面磨练自己的技能(即先开发一个命令行串行端口程序,然后开发一个不使用串行端口的简单ASP.NET web应用程序),然后在您在这两个方面都很强后再将它们结合起来。您好,我对这两种语言都不熟悉。但是我是一名电子专业的学生,所以我不需要学习ASP.NET的完整章节。我希望此代码暂时用于检查我的应用程序。所以你能建议我用什么代码来代替这个吗?它们不是语言。C#是语言,ASP.NET是平台。无论如何,完全抛弃ASP.NET,只开发一个控制台应用程序。