问题标签 [virtual-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 投票
1 回答
1307 浏览

linux - LPC17xx 作为带有 PXA168 的 CDC 设备

我使用 LPC1768 作为连接到运行 Linux 的 PXA168 的 CDC 设备。在 LPC 方面,我有驱动程序。我还为 usb-serial 和 cdc-acm 驱动器启用了 PXA linux 驱动程序。当我启动电路板时,我得到以下信息:-

现在我的 LPC 没有检测到任何驱动程序。此 LPC 在用于连接具有 Windows 的 PC 时工作正常,但如果我连接到 Linux PC,我也无法运行它。

任何人都可以帮助我了解linux的驱动程序以及将使用哪个接口来访问虚拟串口。

0 投票
2 回答
5341 浏览

.net - VB.Net SerialPort 读取正在返回碎片数据集

问题

我有一个在 Windows 上创建虚拟串行端口的 USB 设备。我正在使用 VB.Net 从端口写入和读取。我的设备以特定大小的字节集响应,但我发现 SerialPort.Read(byte-array,offset,number-bytes) 不会返回完整的数字字节,但它也不会超时或生成异常。重复调用会返回额外的片段(最多需要 3 次调用)。我不明白为什么这种读取方法的行为方式如此?它是否认为请求的字节数只是一个建议?:-)。我希望它会等待完成整个请求,除非它首先超时。

使用 pySerial 的 Python 代码没有同样的问题。

那么,我在这里做错了什么?我期待太多了吗?

一些场景是:

  1. 我向端口写了一个命令,并期望得到 4 个字节的响应。我先得到 1 个字节,然后在随后的调用中得到 3 个字节。
  2. 我写了一个命令并期望 21120 字节作为响应。在从端口读取的 3 次调用中,我得到 1、12671 和 8448 字节。

以下是我的代码的一些摘录:

谢谢你。

0 投票
1 回答
3523 浏览

c# - ubuntu linux上的虚拟socat串口和c#

出于测试目的,我正在尝试编写一个连接到使用 socat 创建的虚拟串行端口的简单程序。

我使用以下命令创建串行端口:

得到这个输出:

当我尝试以这种方式连接时:

我得到一个“文件名未知” System.IO.IOException

我是否缺少设置 DataBits、StopBits 或其他参数?如何发现 socat 设置的属性?或者这段代码有什么问题?

0 投票
0 回答
745 浏览

python - 用于创建设备通信的 Linux 虚拟串行端口

我使用 SOCAT 使用以下命令创建了一个 VSP:

在那里我能够创建一个串行设备 (19200,N,8,1) 并使用 Python 发送和接收数据。

因此,当我这样做时,我必须对配置为(19200,even_aprity,Python 中的硬件流)的另一台设备执行相同的操作,它会抛出以下错误:

引导我

0 投票
2 回答
9327 浏览

.net - 串行端口嗅探

我有一个通过 USB 连接到 pc 的设备,它通过驱动程序和软件映射到虚拟串行端口,连接到该串行端口并允许我管理设备。我不知道使用什么协议软件来连接设备。我可以通过查看设备和软件之间的通信来找出协议,但是串口的问题是,一旦软件连接到串口,其他软件也无法连接到该端口(这当然是有道理的)。

所以我想我可以写一个软件来做以下事情:

  1. 连接到设备所在的虚拟串行端口
  2. 创建软件将连接到的虚拟串行端口
  3. 在内部将所有内容从第一个端口传输到第二个端口,反之亦然,但将所有这些信息记录到某个转储文件中

我的问题是:是否可以使用 .NET 创建虚拟串行端口?我听说没有,因为您需要以某种方式创建驱动程序或其他东西,并且需要内核级编程,对吗?如果仍然如此,有没有一种方法可以在没有任何桥接软件的情况下观察设备和软件之间的通信?

提前致谢!亚伦

0 投票
1 回答
2919 浏览

visual-studio-2010 - Visual Studio 2010 Ultimate 中使用 C# 的蓝牙应用程序

我看过很多关于 32feet.NET 库的链接。我需要知道如何在 C# 中使用它。几乎所有东西都使用 Visual Basic,但我对那种语言不太熟悉。我更喜欢用 C# 来做。作为附加信息,应用程序将发送类似于串行接口的数据。这意味着它将向设备发送字节,该设备也将响应字节。我正在尝试使用内置蓝牙,但我找不到与之关联的端口,也无法使用其他在线示例检测到它,我也尝试了 Power Shell 示例。

0 投票
1 回答
1867 浏览

vb.net - 使用虚拟 com 端口驱动 FTDI USB 芯片时无法通过 VB.net 中的串行端口接收数据

我的设置:

  1. 使用 FTDI FT2232D 芯片的硬件设备使用 USB 连接到我的电脑。
  2. 我已经安装了 VCP(虚拟 COM 端口)驱动程序,它显示了通过 USB 连接的 FTDI 芯片作为 Windows 中的 COM 端口。
  3. 我正在使用一个简单的 VB.net 程序来读取 com 端口。

行为:

当我使用 realterm 通过 com 端口向我的设备发送数据时,设备总是成功回复。

当我使用我的 VB.net 测试程序然后使用 realterm 时,tx 工作,但 realterm 没有收到任何回复。

我可以通过拔下usb,重新插入然后重新发送命令来让realterm再次接收数据。

使用我的 vb.net 程序时,拔下和重新插入 USB 并不能解决问题。我的 vb.net 程序有时有效,但并非总是如此。

看起来我的程序中的某些东西导致 com 端口损坏,修复它的唯一方法是拔下 USB 电缆并重新插入。

我的代码看起来像这样:

0 投票
2 回答
19799 浏览

linux - 如何在 Linux 中创建将数据代理到真实设备的虚拟 io 设备?

我有一个有趣的问题。我正在开发一个嵌入式机器,其中包含多个 Linux 实例,每个实例都在 ARM 处理器上运行。它们通过内部 1GBps 网络连接。我有一个连接到处理器 A 的串行端口设备节点(假设在其上运行 Linux-A)。我有一个在处理器 B 上运行的程序(比如说在 Linux-B 上)访问串行端口设备,就好像它在本地连接到 Linux-B 一样。
我的程序在设备节点上调用 term i/o type api 调用来控制 tty echo、字符模式输入。我想知道是否有一种方法可以创建在 Linux-B 上可用的虚拟串行设备,以某种方式通过内部网络与 Linux-A 上的真实串行设备通信。

我在想一些事情:Linux-B 有 /dev/ttyvirtual。写入它的任何内容都会通过网络套接字传输到 Linux-A 串行服务器。串行服务器执行真实设备上的 api 调用,比如说 /dev/ttys0。任何在 ttys0 上等待的数据都会被传输回 /dev/ttyvirtual。

快速完成这项工作涉及的所有事项是什么?

谢谢
Videoguy

更新:我在 http://fixunix.com/bsd/261068-network-socket-serial-port-question.html找到了一个很好的讨论。
另一个有用的链接是http://blog.philippklaus.de/2011/08/make-rs232-serial-devices-accessible-via-ethernet/

0 投票
1 回答
7952 浏览

c# - C# SerialPort#Open() method throws ArgumentException because of port name?

On my local machine,

  • Windows XP
  • Ports (COM & LPT)
    • COM3
    • RIM Virtual Serial Port v2 (COM4)
    • RIM Virtual Serial Port v2 (COM5)

the following code,

will throw the following ArgumentException,

enter image description here

That is,

The given port name does not start with COM/com or does not resolve to a valid serial port.

Does anybody know why this is happening?

0 投票
3 回答
12272 浏览

virtual-serial-port - Socat 虚拟串口无法识别

我正在使用 socat 创建几个虚拟串行端口。一个我使用一个简单的 C 程序(使用 termios)连接,另一个我想使用一个名为 Ardupilot Mega Planner 的程序(用于 RC 东西)连接。但是,Planner 无法识别虚拟端口(在 /dev/pts 下列出),只能识别 tty 设备和 /dev/serial 设备。我需要做一些特殊的安装才能让它工作吗?或者有没有我可以尝试的解决方法?我尝试“链接”现有的串行端口(例如 ttyS0),但如果我尝试任何类似的操作(虚拟端口到真实端口,真实端口到真实端口),我会收到“不适当的 ioctl”错误。有任何想法吗?

编辑:查看程序的源代码(Mission Planner)后,它似乎只“识别”(或添加了)所有 /dev/ttyS* 设备的端口,即 /dev/serial/by-id/*设备、/dev/USB0 和 /dev/ACM0。所以要么我需要编辑源代码,要么找到一种方法来“验证”一个 ttyS* 端口。Mission Planner 似乎仍然不会连接到除 S1 或 S0 之外的任何 ttyS* 设备。有任何想法吗?我有一种感觉,这是因为它们配置不正确,不知何故。

编辑 2:我终于掌握了 ArdupilotMega Planner 源代码并对其进行了更改,使其包含来自 /dev/pts/ 的设备。但是,我仍然遇到同样的问题。Planner 在打开端口时遇到了一些问题。是否有一些设置需要立即检查/更改才能使程序能够连接到它?去研究一下,尝试更彻底的了解串口通信...