gpt4 book ai didi

c# - 使用 WCF 服务从 ASP.NET 应用程序进行串行端口通信

转载 作者:行者123 更新时间:2023-11-30 22:06:37 25 4
gpt4 key购买 nike

我的要求如下:

我的 asp.net 应用程序必须连接到串行端口以偶尔获取权重。但由于无法直接从 ASP.net 执行此操作,因此我使用的是 WCF 服务。

如何使用 WCF 服务执行此操作?如何将值返回给 asp.net 函数?在串口通信中,数据是在一个单独的线程中接收的。

using System.IO;
using System;
using System.IO.Ports;

namespace SerialComm
{
public class FileReadService : IReadSerialComm
{

public void ReadSerialComm(string[] _params)
{
SerialPort spComm = new SerialPort(_params[0], Convert.ToInt32(_params[1]), Parity.None, Convert.ToInt32(_params[3]), StopBits.One);
spComm.RtsEnable = false;
spComm.DtrEnable = false;
spComm.DataReceived += new SerialDataReceivedEventHandler(spComm_DataReceived);
spComm.Open();
spComm.Write(_params[5]);
}

void spComm_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
// data received event handler
}
}
}

最佳答案

我会通过在浏览器中调用本地机器上的服务的 javascript 来解决这个问题。您可能希望进行一些初步调用以确保服务可用并准备就绪,并在出现问题时向用户发送消息。

jQuery 使 ajax 变得非常简单。你会想做一些阅读 jquery.com .获取 js 库,并查看 ajax 文档。

你的代码看起来像这样(而且这是完全未经测试的)......

<script src="../Script/jquery-1.9.0.js" type="text/javascript"></script>
...
<script type="text/javascript">
function readSerialBuffer() {
$.ajax({
url: "http://localhost:12345/readSerialBuffer",
success: function(data) {
$(".serialdata").val(data);
}
});
}

</script>

<asp:Textbox runat="server" id="txtSerialData" class="serialdata" />
<input type="button" onclick="readserialbuffer();" />

类似的东西。这个想法是单击按钮运行 ajax 函数来请求权重,当该调用成功时,它将返回的值加载到文本框中。我还没有试过运行这个...它就在我的脑海中。

关于c# - 使用 WCF 服务从 ASP.NET 应用程序进行串行端口通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23519410/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com