问题标签 [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.
java - 无法使用 Visual Serial Port Emulator 打开已打开的端口
我是初学者。我正在尝试使用 VSP 模拟器同时运行 2 个 Java 进程来打开相同的 Com 端口。我尝试过使用连接器设备或分路器设备。第二个进程无法打开之前打开的端口。我还需要设置什么来执行此操作吗?
c# - 多个虚拟串口不刷新接收到的数据
我有一个用 c# 开发的串行端口监听控制台应用程序,一切正常。
但是最近几天,接收到的数据没有改变,但实际上接收到的数据发生了变化(我可以从监视器检查或重新启动我的应用程序时)。端口始终保持写入与接收字符串相同的数据。但是当我重新启动我的应用程序时它会刷新数据。我的意思是串行端口不会刷新/更新收到的更改数据。
在我们将 FIFO 属性设置为 TRUE 之前,我的应用程序运行良好。端口设置为 FALSE 时没有问题。
这是一个地磅应用程序,现场有 20 个地磅。他们每个人都通过虚拟端口向我的服务器发送数据。(COM1....COM20)
任何想法?谢谢你的帮助。
c# - C# 中的多个串行端口 / 使用 List <> 时遇到问题
我有一个向串行端口发送“at”命令并在 MessageBox 上显示返回的系统。但我需要在所有可用的串行端口中执行此操作。所以我创建了一个列表,并在上面添加了所有端口。我设法发送了命令,但无法继续其余代码来捕获返回,因为我在处理列表时遇到了麻烦。我是 C# 的初学者。以下是我当前的代码。被注释掉的部分是我正在努力继续的部分。这部分属于旧代码(当时只是一个串口)。
放置什么'sp.ReadLine();' 和'sp.Close();'?我不知道这样做是因为 List <>
c# - C# 打开虚拟串口抛出 ArgumentException
我有一个通过串行端口连接到设备的实用程序。为了测试这个应用程序,我正在为该设备编写一个模拟器。
这两个应用程序旨在在同一台 Windows 7 机器上运行。
我正在用 C# 编写模拟器。我使用 com0com 创建了一对虚拟端口(在本例中 - CNCA8 和 CNCB8,因为我已经有几个现有的端口对)。
我正在尝试在模拟器中打开 CNCB8(应用程序尚未运行),但出现异常:
System.dll 中出现“System.ArgumentException”类型的未处理异常
附加信息:给定的端口名称不以 COM/com 开头或不解析为有效的串行端口。
示例代码:
这个问题不相关,因为它是一个未使用的虚拟端口(如果重要,IsOpen 返回 false): C# SerialPort#Open() 方法由于端口名称而引发 ArgumentException?
编辑:我还确保端口名称出现在 SerialPort.GetPortNames() 中,并且它出现在“com0com 串行端口仿真器”下的 WIndows 设备管理器中。我还尝试使用 CNCA 而不是 B(具有几个不同的现有虚拟端口),尝试删除“HandShake”行并尝试将波特率更改为 115200,以防万一(尽管最终我需要 9600)。
c# - 写入虚拟 COM 时出现超时异常
我正在尝试使用.net 示例写入 COM 端口
写入真实 COM 没有问题,但是当我尝试写入虚拟 COM 时出现超时异常
未处理的异常:System.TimeoutException:写入超时。在 System.IO.Ports.SerialStream.Write(Byte[] 数组,Int32 偏移量,Int32 计数,Int32 超时) 在 System.IO.Ports.SerialPort.Write(String text) 在 System.IO.Ports.SerialPort.WriteLine(字符串文本)
我用谷歌搜索了这个问题,发现了这个。根据那里所说的,这是问题所在:
.net 的 write() 函数使用 CreateFile 和 WriteFile Async,如下所示:
当我使用那些我有 NULL 而不是 FILE_FLAG_OVERLAPPE
我的问题是,我该如何克服这个问题?我必须编写自己的代码吗?
c++ - 使用 Windows USB 虚拟 Com 端口识别断开连接事件
我正在开发一个使用虚拟串行端口设备驱动程序与 USB 设备通信的应用程序。我们遇到过这样一种情况,如果在串口句柄打开时设备被拔出(或崩溃),在串口句柄关闭后重新连接的唯一方法是拔下设备然后重新插入。
如果我能够足够快地检测到故障,则有潜在的解决方法。问题是,在这些情况下,以下函数调用不会报告错误:
根据我的经验,拔出设备时唯一返回错误的函数是WriteFile。可以理解,我真的不想写无意义的数据只是为了测试端口连接是否仍然有效。
我的问题是是否有一些方法可以用来确定端口连接是否仍然有效。
如果对我在做什么有任何疑问,以下代码片段显示了我的端口轮询线程在做什么:
我在使用重叠 I/O 时也遇到了同样的问题。
python - 终端连接时在 atml atmega16 微控制器上停止程序执行
我正在尝试从http://www.qu-bot.com的 qu-bot 接收数据。该机器人有一个 ATML atmega16 微控制器。我编写了一个在机器人上运行的程序,它将数据输出到其串行端口。但是,只要我连接到控制器,程序就会停止。我通过添加哔声语句对此进行了测试。只要程序正在运行,机器人就会发出哔哔声。当我连接到机器人时,哔哔声停止。我尝试了 qu-bo 支持,他们建议禁用串行端口上的 dtr 标志。我这样做了,但没有快乐。
还有什么我可以尝试的吗?[在 qu-bot 上运行的代码开始] 注意:这是用 C 的某种专有变体编写的,他们称之为 quick c。// 此代码显示 uart 函数。
现在为我的python串口读取程序。我在 raspbian 和 windows 7 64bit 上都试过这个程序。我正在粘贴Windows版本。raspbian 版本对 linux 有不同的名称。
PS我已经咨询了以下链接。
linux - linux上的虚拟串口通过TCP
使用虚拟串行端口仿真器,我可以
- 创建虚拟串行端口连接器
- 为连接器选择一个端口,例如 COM35
- 创建 TCP 服务器
- 将之前创建的虚拟串口分配给服务器
然后客户端可以通过知道 ip 地址、tcp 端口和虚拟串口的名称与 tcp 服务器建立流连接。
在上面的示例中,我创建了一个简单地连接到虚拟串行端口的 MICRO_Test 应用程序 (c++)。当我将数据写入此端口时,所有客户端都会收到它。
您可以在上图中的日志中看到它。
虽然这是在 Windows 上,但有没有办法在 linux 机器上实现一些等效的行为?
总结一下:
客户端从其真实的 com 端口读取物理数据,并通过 tcp 流将数据发送到服务器。
对于 linux,我阅读了很多关于 socat、tty 和 ser2net 的内容。但是我无法真正了解如何在 linux 上实现上述架构?你能帮我提供一些信息吗?
vb.net - 通过 vb.net 进行的串行端口通信在某些计算机上不起作用
我最近为我们的商业产品开发了新的 vb.net 应用程序。它适用于某些笔记本电脑,但不适用于某些笔记本电脑。我的申请详情如下:
Target .net framework = 4(尝试使用 3.5 以及两者的组合)
Driver = usbser.sys(微软提供)
CPU = 任何 CPU
Windows 版本 = XP 及更高版本
此应用程序正在我的笔记本电脑(x86 CPU 和 x86 WIN7 操作系统)上运行,另一台笔记本电脑具有 x64 芯片组和 x64 WIN7 操作系统。但它在 x86 操作系统的 x64 芯片组上失败。所有这些笔记本电脑都有 .net framework 4 或更高版本。我应该进行哪些设置才能使我的应用程序在平台上运行?这是 vb.net 应用程序或驱动程序安装过程的问题吗?
请帮忙。我的项目遇到了这个问题。
c++ - USB 串行虚拟 COM 端口:读取不工作但写入工作
我使用嵌入式硬件(TI:Piccolo Control Stick xxx69),它使用 FTDI usb 到串行转换器硬件。
在 PC 上,我有一个简单的 VC++ 应用程序,它尝试通过虚拟 COM 端口(VCOM:通常是 COM7)与硬件通信。
我能够正确连接到端口。
我能够将数据从应用程序/PC 发送到硬件并且正确接收。(所以,PC上的Tx工作正常),应用程序首先使用
createfile(... ... ...)
API打开连接,然后使用writefile(.. ... ..)
windows apis直接写入端口。令人惊讶的是,我无法从串行端口读取应用程序。当我调用
readfile(... ... ...)
api 时,它返回状态为 TRUE 但读取了零字节。我尝试使用显示内核 api 的 API 监控软件,Ntreadfile(... ... ...)
返回错误为STATUS_TIMEOUT" [0x00000102]
. 令人惊讶的是,尽管数据在线,但写入有效,但读取无效。
数据在线,因为当我使用普通的超级终端软件时,我能够正确地从控制器读取数据并且它是可见的。[在控制器端,没关系,因为我们可以在超级终端上看到数据。
我不是 Windows 程序员,因为我处理的是微控制器。因此,在解决这个问题方面提供一些帮助将是非常有帮助的。
此致,
-瓦伦
这是一个参考