添加串口到web页面
本文关键字:页面 web 串口 添加 | 更新日期: 2023-09-27 18:05:20
是否可以在web应用程序中添加串行端口控制?我试过以编程方式创建一个,但我有端口保持开放的问题。我不知道如何解决这个问题,除了通过添加一个串口控制以某种方式到网页。关于如何完成这项任务,你有什么建议吗?提前谢谢。
下面是我目前拥有的代码:
public partial class LoadCellTest : System.Web.UI.Page
{
SerialPort serialPort1 = new SerialPort("COM3",9600,Parity.None,8,StopBits.One);
protected void Page_Load(object sender, EventArgs e)
{
serialPort1.DataReceived += new SerialDataReceivedEventHandler(serialPort1_DataReceived);
serialPort1.ErrorReceived += new SerialErrorReceivedEventHandler(serialPort1_ErrorReceived);
}
delegate void SerialDataReceivedDelegate(object sender, SerialDataReceivedEventArgs e);
delegate void SerialErrorReceivedDelegate(object sender, SerialErrorReceivedEventArgs e);
protected void serialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
TextBox1.Text = (serialPort1.ReadExisting());
if (serialPort1.ReadExisting().Length == 0)
{
ListBox1.Items.Insert(0, TextBox1.Text);
TextBox1.Text = "";
}
}
protected void button1_Click(object sender, EventArgs e)
{
try
{
if (serialPort1.IsOpen)
{
serialPort1.Close();
button1.Text = "Start";
}
else
{
serialPort1.Open();
button1.Text = "Stop";
}
}
catch (IOException ex)
{
MessageBox.Show(ex.Message);
}
}
把我的评论变成答案…
串口代码为服务器端代码。你不能用ASP.NET在客户端上这样做。
创建ActiveX或其他胖客户端控件是一项繁重的工作,并不是一个好主意。
我的建议是继续使用你的WinForms应用程序中需要扫描仪的代码,并添加一个菜单,使你能够启动一个单独的ASP。. NET web应用程序,用于报表/数据访问。
如果你想让它对用户来说更"无缝",你可以添加一个带有WebBrowser控件的表单来加载你的报表/数据访问站点。对他们来说,它只是"应用程序的一部分"。
也就是说,根据你连接到端口的设备,可能有一个更简单的选择。
我们的一个条形码扫描器附带的软件,只是获取条形码数据,因为它被扫描和粘贴到任何打开的文档有焦点。如果您在记事本中工作,则扫描的数据将粘贴到记事本中。如果你打开了一个web应用程序,并且光标在文本框中,数据就会直接粘贴到那里。
这是一个实现起来更简单的选择,但是对于用户来说很难,因为如果他们不是技术人员,他们会打电话给你,想知道为什么条形码会发出嘟嘟声,但却没有填充文本框。(答案将是"因为你的光标不在文本框中或者窗体没有焦点")
所以我回到第一条建议
您的代码只是访问服务器的串行端口,因为它在服务器上运行…
如果你真的需要从web应用程序访问客户端的串行端口,那么你将需要使用一些直接在客户端上运行的技术…这可能是一个嵌入到网页中的ActiveX控件…
我真的不确定也许Silverlight应用程序嵌入到你的网页也可以实现这一点…
请注意,在网页中这样做可能存在安全问题!