发送命令后如何捕获串行端口的返回? - c#

发送命令后如何捕获串行端口的返回?退货还可以。我该如何阅读?
我尝试使用readLine()和ReadExisting()无法正常工作。

        serialPort.PortName = "COM1";
            serialPort.BaudRate = 115200;
            serialPort.Open();
            if (serialPort.IsOpen)
            {
                // Send command
                serialPort.Write("at");

                // string data = portaSerial.ReadLine();


                // Close serial port
                serialPort.Close();
            }

参考方案

您需要将EventHandler附加到DataReceived Event。

从上面的链接:

表示将处理SerialPort对象的数据接收事件的方法

private static void DataReceivedHandler( object sender, SerialDataReceivedEventArgs e)
{
    SerialPort sp = (SerialPort)sender;
    string indata = sp.ReadExisting();
    Console.WriteLine("Data Received:");
    Console.Write(indata);
}

您可以将其附加在设计器中,也可以按程序编程。

serialPort.DataReceived += new SerialDataReceivedEventHandler(DataReceivedHandler);

每次单击按钮时,您都将附加DataReceivedEvent处理程序,此外,正如Greg所说,一旦发送数据,您将关闭端口。看看是否有这种效果。我没有任何串行设备可以对此进行测试。通常,我会在会话开始时打开端口,并保持打开状态,直到完成所有通信为止。

public partial class Form1 : Form
{
    SerialPort serialPort = new SerialPort();

    public Form1()
    {
        InitializeComponent();
        serialPort.PortName = "Com1";
        serialPort.BaudRate = 115200;
        serialPort.DataReceived += new SerialDataReceivedEventHandler(DataRecievedHandler);
        openSerial();

    }

    void DataRecievedHandler(object sender, SerialDataReceivedEventArgs e)
    {
        SerialPort sp = (SerialPort)sender;
        string indata = sp.ReadExisting();
        MessageBox.Show(indata);
        closeSerial();

    }
    public void openSerial()
    {
        if (!serialPort.IsOpen) serialPort.Open();
    }

    public void closeSerial()
    {
        if (serialPort.IsOpen) serialPort.Close();
    }

    private void button1_Click(object sender, EventArgs e)
    {
        openSerial();
        serialPort.Write("Hello");

    }
}

ddl在服务器中未更新-asp.net - javascript

我在ASP.NET c#上工作。我有一个DropDownList。 (runat =“ server”)在$ {document).ready上,我更新了它的值:$(document).ready(function () { document.getElementById("ddl").value = "abc"; ……

在ASP.NET MVC中创建数据库回调的最有效方法 - c#

我有一个ASP.NET MVC网页,该网页基本上通过日期过滤器显示MS SQL数据库中表的行。当新行插入数据库表时,我想用新行列表更新网页视图。实现此目标的最有效方法是什么?基本上,我想从我的JavaScript创建一个到数据库服务器的回调,以用新结果更新UI。假设数据库表中的行数很大。(〜1百万)谢谢,cas 参考方案 如果数据库更新非常频繁,则可以按特定…

如何使用JavaScript访问嵌入式ASP.NET GlobalResources? - javascript

我正在开发一个遗留的ASP.NET项目,该项目正试图缓慢地进行调整,但是如果没有像巧克力手指屋一样塌陷的情况,我将无法进行重大更改。我试图为此找到解决方案,但由于术语的特定混合(“ javascript”,“ embedded”和/或“ resource”只是为我提供了有关如何嵌入.js文件的信息,而失败了)。 。),这可能是一种怪异的处理方式。该项目将Ap…

如何使用ASP.NET ViewState使用JavaScript - c#

我的页面中有UL,它为空。我开始使用JavaScript使用LI填充它。在回发阶段如何在asp.net中使用此新添加的动态数据?那是因为我的提交按钮是asp.net控件。我不想使用JS POST。谢谢 参考方案 我过去通过在隐藏字段中填充要发布的动态数据来完成此类操作,您可以-在回传之前触发JavaScript事件,该事件将数据从UL解析到隐藏字段中要么更新…

如何从.Net DLL获取公共出口列表? - c#

我可以使用“ dumpbin”和“ dll export”之类的工具来查看标准win32 DLL的公共入口点(“ exports”),例如Windows \ SYSTEM32 \ GDI32.dll。但是,当我在.Net DLL上使用这些相同的工具时,我看到的仅仅是 2000 .reloc 2000 .rsrc 48000 .text 我有一个C#/。Net…