jjzjj

python - 如何在 Windows 上的 Python 中创建 COM 端口

我正在尝试在python中创建一个串行端口。我将使用它与另一个通过串行端口进行通信的程序进行通信。PySerial包看起来不错,但我无法让它工作。我到处都看过,每个实现都是针对linux的。谁能帮我在Windows上创建一个COM端口并对其进行读/写? 最佳答案 无法在Python中创建串行端口,因为您需要一个特殊的驱动程序来完成此任务。您只能调用将为您完成此操作的第3方实用程序(带有驱动程序)。我建议尝试以下实用程序:Com0Com:http://sourceforge.net/projects/com0com/虚拟零调制解调器:

c++ - 在串行端口上写入时出现错误 112(磁盘已满)是什么意思?

很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visitthehelpcenter.关闭10年前。在Windows机器上写入串行端口(COM1)时出现写入错误。返回的错误是112(DISK_FULL)。因为这是一个串行端口,所以我不明白错误的含义。难道是缓冲区满了?我不这么认为,因为我在打开端口后发送的第一个请求中收到错误。

windows - 使用 Windows Compact 2013 Virtual PC 打开 COM 端口

HANDLEhCom=INVALID_HANDLE_VALUE;hCom=CreateFileW(L"COM1:",GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);我正在尝试使用虚拟pc(WindowsEmbeddedCompact)打开计算机的COM端口。函数CreateFileW传递一个INVALID_HANDLE_VALUE。在win32上它运行完美。 最佳答案 检查HKLM\Drivers\Active下的端口名称。您可以

windows - 使用批处理文件自动化 Windows 命令行实用程序 - 在实用程序启动后将击键发送到标准输入

我有一个命令行实用程序,它打开一个串行连接,该连接由在(duh)命令行中发送的args指定。实用程序启动后,我可以在std输入中键入以将字符串发送到我所连接的端口。我想做的是使用批处理文件启动该实用程序(非常简单),然后自动执行我希望发送的击键。我自己运气不好,需要一些专家建议。我举一个更具体的例子:我使用以下行在批处理文件中启动teraterm.exe(开源串行通信实用程序):“调用serialtermcom5115200ascii是”然后,我可以输入“HelloWorld”并接收来自开放端口的响应。我希望我的批处理文件中的下一行为我发送“HelloWorld”,以便我可以通过在批处

c# - 好的编码? (多个消息循环)

我需要一些关于正确编码的建议:我正在开发一个使用多个串行连接的程序。每条通信线路都有一个Controller作为抽象层。在Controller和串行端口之间,插入一个协议(protocol)以将数据包装在数据包中,以备传输。该协议(protocol)负责处理失败的交付、重新发送等。为确保GUI不会挂起,每条连接线(协议(protocol)和串行端口)都在单独的线程上创建。Controller由主线程处理,因为它在GUI中有控件。目前,当我创建线程时,我选择在它们上创建一个消息循环(Application.Run()),因此我只是调用线程(BeginInvoke)并使用消息循环作为缓冲区

c# - SerialPort UnauthorizedAccessException

偶尔,我的一些集成测试会因上述消息而失败。我正在使用下面的代码来准备端口。for(inti=0;i我的假设是,因为它不可能是当前线程阻塞端口(因为它会尝试关闭它),所以它一定是另一个线程或进程在没有正确清理的情况下死亡(其他测试之一-没有其他访问此端口)。有没有办法重置SerialPort的状态,以便新线程/进程可以再次访问它?谢谢,理查德 最佳答案 这是SerialPort类中的一个缺陷,它使用内部辅助线程来等待端口上的事件。DataReceived、PinChanged和ErrorReceived事件的来源。该缺陷存在于Clos

c# - 如何强制串行端口写入方法在发送数据之前等待线路清除?

这是我正在尝试做的事情的一些背景:打开从移动设备到蓝牙打印机的串行端口。向蓝牙打印机发送EPL/2表格,以便它了解如何处理即将接收的数据。收到表格后,将一些数据发送到打印机,这些数据将打印在标签纸上。根据需要为每个要打印的标签重复第3步。第2步只发生在第一次,因为表单不需要在每个标签之前。我的问题是,当我发送表格时,如果我发送标签数据的速度太快,它将无法打印。有时我会在标签上打印“蓝牙故障:radio无法运行”,而不是我发送的数据。我通过执行以下操作找到了解决该问题的方法:for(intattempt=0;attempt所以基本上,我可以捕获TimeoutException并在等待一定

c# - 串行调用 Threading.Timer.Change() 会重置计时器的时钟吗?

如果我调用Threading.Timer.Change()连续两次,下一次线程什么时候运行?例如:myTimer.Change(5000,Timeout.Infinite);//Only2secondspass.myTimer.Change(5000,Timeout.Infinite);在此之后,线程会在3秒或5秒后运行吗?我希望答案是后者,每次调用Change()都会重置计时器。如果没有,我将需要找到解决此问题的方法。 最佳答案 它将在5秒后运行。调用Change将重置初始计数。 关于

c# - 在 C# 中每行读取一个字符串行

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:Easiestwaytosplitastringonnewlinesin.net?我试图读出并解释每行一行字符串。我看了一下StringReader类,但我需要找出我在最后一行的时间。这是我要完成的一些伪代码:while(!stringReaderObject.atEndOfStream()){interpret(stringReaderObject.readLine());}有人知道怎么做吗?谢谢!伊万

c# - SMBIOS - 获取 SPD(串行存在检测)模块信息 C#

我搜索了很多但没有找到任何通过C#获取SPD表信息的工作代码。有很多软件可以获取此信息,但如何获取?如图所示,对于RAM设备,您可以看到制造商的名称,而WMI等根本无法检索如果有C#中使用的DLL就完美了经过一些研究发现:https://github.com/sapozhnikovay/SMBIOS但无法读取表17获取内存设备信息。 最佳答案 在我对此进行研究后,您需要通过SMBUS(而非SMBIOS)获取此信息。但是您需要创建一个驱动程序(C/C++中的WDM)来访问此信息。 关于c#