问题标签 [serial-port]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
112497 浏览

serial-port - 什么是用于逆向工程的好的免费串行端口监视器?

我正在对串行协议进行逆向工程,并对坏工具感到沮丧。有谁知道一个很好的免费工具,用于在 Windows 上将数据记录到串行端口/从串行端口记录数据?

要求:

  • 必须是免费的
  • 不得控制端口(即必须挂钩文件 API 或内核,而不是尝试打开设备)
  • 必须具有某种过滤功能
  • 写入人类可读或二进制日志,最好以易于解析的格式

有任何想法吗?Portmon 可以工作,但它的日志很难使用,而且它的过滤器实际上是无用的;我还尝试了一些商业工具,但似乎没有任何东西符合要求。

0 投票
4 回答
11838 浏览

c# - How to correctly use .NET2.0 serial port .BaseStream for async operation

I am attempting to use the .BaseStream property of the .NET2.0 SerialPort to do asynchronous reads and writes (BeginWrite/EndWrite, BeginRead/EndRead).

I am having some success in this, but after a time, I notice (using Process Explorer) a very gradual increase in the Handles the app is using, and occasionally an extra thread, which also increases the Handle count.

The context switch rate also increases each time a new thread appears.

The app constantly sends 3 bytes to a PLC device, and gets 800 or so bytes in return, and does so at a baud rate of 57600.

The initial CSwitch Delta (again, from Process Explorer) is around 2500, which seems very high anyway. Each time a new thread appears, this value increases, and the CPU load increases accordingly.

I'm hoping that somebody might have done something similar, and can help me out, or even say 'In God's name, don't do it that way.'

In the code below, 'this._stream' is obtained from SerialPort.BaseStream, and CommsResponse is a class I use as the IAsyncresult state object.

This code is common to a TCP connection I make as an alternative to using the serial port, (I have a CommsChannel base class, with a serial and TCP channel derived from it) and it has none of these problems so I'm reasonably hopeful that there is nothing wrong with the CommsResponse class.

Any comments gratefully received.

0 投票
5 回答
664 浏览

c - 串口通讯

我正在尝试为用 LINUX 编写的 ac 代码创建一个 GUI。

这段代码基本上连接了两个系统,打开串口,通过端口将数据从一个系统写入另一个系统。我该怎么做呢?

随身携带的开发工具是Qt Designer version 3.3.5 和K Develop,我应该使用哪一个。如何去做?

0 投票
8 回答
125432 浏览

c# - 如何在 C# 中使用 SerialPort 端口对象的 dataReceived 事件?

我正在尝试创建一个小型应用程序来收集从连接到 COM10 的外部传感器接收到的数据。我已经成功创建了一个小的 C# 控制台对象和应用程序,它使用 for 循环在固定的时间段内打开端口并将数据流式传输到文件。

我想将此应用程序转换为使用 dataReceived 事件进行流式传输。在阅读了Top 5 SerialPort Tips之后,我似乎仍然无法让它工作,也不知道我错过了什么。我重写了控制台应用程序,以便所有代码都在 Main 中并粘贴在下面。有人可以帮我解释一下为什么事件处理程序 port_OnReceiveDatazz 没有被调用,即使我知道硬件正在向端口发送数据?

谢谢

感谢@Gabe 、@ Jason Down@abatishchev的所有建议。我很难过,似乎无法让事件处理程序工作。也许它与设备有关。我可以只在线程中读取端口并将数据直接流式传输到文件中。


代码


0 投票
3 回答
25456 浏览

python - 带有pyserial(python串口)的二进制数据

pyserial 中的 serial.write() 方法似乎只发送字符串数据。我有像 [0xc0,0x04,0x00] 这样的数组,并且希望能够通过串口发送/接收它们?原始 I/O 是否有任何单独的方法?

我想我可能需要将数组更改为 ['\xc0','\x04','\x00'],但空字符可能会造成问题。

0 投票
1 回答
278 浏览

.net - .NET 库来访问 COM 端口?

是否有一个库可以让我在串行 COM 端口上发送和接收数据?

0 投票
3 回答
6849 浏览

java - 如何从串口读取文本?

我正在尝试通过 Java 从 Windows 串行端口读取数据。我有 javax.comm 库并且能够获取一些数据但不正确的数据。当我将端口读入字节数组并将其转换为文本时,我得到一系列字符,但没有真正的文本字符串。我试图将字节数组指定为“UTF-8”和“US-ASCII”。有谁知道如何从中获取真实文本?

这是我的代码:

前三行的输出不会让我复制和粘贴(我假设因为它们不是普通字符)。这是十六进制的输出:78786000e67e9e60061e8606781e66e0869e98e086f89898861878809e1e9880

我正在从一个以字符串格式输出的 Hollux GPS 设备读取数据。我肯定知道这一点,因为我是通过 C# 完成的。

我在 C# 应用程序中使用的通信设置是:波特率:9600 数据位:8 停止位:1 奇偶校验:无

0 投票
10 回答
110845 浏览

linux - Linux环境下串口数据转TCP/IP

我需要从 Linux 系统的串行端口获取数据并将其转换为 TCP/IP 以发送到服务器。这很难做到吗?我有一些基本的编程经验,但对 Linux 的经验并不多。是否有这样做的开源应用程序?

0 投票
4 回答
2249 浏览

c# - 两个调制解调器,C# 中的两个 SerialPort 对象

我有两个科胜讯传真调制解调器和一个带有两个 serialPort 对象的 C# 应用程序,用于侦听两个通信端口上的传入数据。

这是我初始化每个调制解调器的方法:

第二个调制解调器被初始化为不同的 SerialPort 对象,但使用“COM4”。

我第一个初始化的任何 COM 端口都可以接收数据,但第二个 COM 端口将不会接收数据。

这是我的初始化、C# 的 SerialPort 类或 Windows XP 拒绝让两个调制解调器同时运行的问题吗?

欢迎任何意见或建议。

更新

您是否在“设备管理器”下检查了两个端口都已配置、启用和工作?

是的,它们都有单独的端口。

您是否尝试过类似 Hyperterm 的方法来尝试将数据发送到端口?

尝试在单独的超级终端中打开两个通讯端口,但未能打开第二个通讯端口。

0 投票
5 回答
13432 浏览

.net - 使用 System.IO.Ports.SerialPort 类打开串行端口时出错

我正在尝试使用 System.IO.Ports.SerialPort 类打开和读取串行端口。我将串行端口从工具窗格 (Visual Studio 2008) 拖到我的 Windows 窗体应用程序上。

我已经设置了一个属性网格,因此我可以在运行时轻松更改串行端口的属性。当我尝试打开端口时,我收到如下所示的错误。我不明白为什么,因为我可以使用超级终端打开和读取端口。

有任何想法吗?

注意,这是一个 USB 连接,所以它实际上是一个虚拟串口。

我的设置如下:

BaudRate = 9600
DataBits = 8
DiscardNull = false
DtrEnable = false
Handshake = None
Parity = None
ParityReplace = 63
PortName = COM3
ReadBufferSize = 4096
ReadTimeout = -1
ReceivedBytes = 1
TrsEnable = False
StopBits = One
WriteBufferSize = 2048
WriteTimeout = -1

我从Sysinternals下载了 PortMon。我已经捕获了两个日志。第一个是超级终端打开端口时发生的情况的日志,第二个是 .NET SerialPort 类尝试打开端口时发生的情况:

超级终端:

.NET 串行端口: