问题标签 [tcomport]

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 回答
365 浏览

arduino - 从 ComPort 退出中恢复

D5-pro:将 TurboPower APro 和 ComPort 和终端组件与 USB Arduino Nano 一起用于非常基本的 Comms-Terminal。一切正常,直到我拔下 USB 以模拟丢失端口。这一切都只是挂起,不会在不关闭和重新启动的情况下重新启动。

我找不到正在监视端口状态的事件或进程,因此我可以优雅地关闭端口。如果端口不存在,我可以阻止它被打开,但是一旦打开并且数据流入,我似乎就失去了对它的所有访问权限。

我还尝试了 Dejan Crnila 的 TComPort 和 Terminal,它也没有优雅地停止。它实际上崩溃了,我必须使用 TaskManager 将其全部关闭。

有人可以用一些代码片段指导我,这些代码片段可能表明该端口已丢失。或者是否有更好的免费组件来执行此操作。

0 投票
1 回答
838 浏览

serial-port - Delphi TcomPort 和 RS485 的问题

我正在尝试通过 Delphi 7-TComPort 库与 SMC LEC6 伺服电机控制器通信。我已阅读相关问题TComPort 和 Modbus。我的问题是如果我想发送一个包含 8 个字节的消息,我该如何指定停止位/开始位值?我需要将每个字节作为数据包和停止位分别发送还是由库自动完成?

0 投票
1 回答
1361 浏览

delphi - Delphi 7 TComPort OnRxChar 不触发

我正在使用TComPort 我使用OnRxChar事件来控制字节何时到达。

对于我发送的每个命令,我都会收到 3 个字节的字,但有时,OnRxChar即使一次正确发送了 3 个字节,也只会收到 2 个字节,而没有收到剩余的字节。

我认为剩余的字节仍然在一些缓冲区中,但OnRxChar没有为最后一个字节触发,为什么?

我究竟做错了什么?

编辑 1

一段代码

编辑 2,如果仅收到 2 个字节后,我发送其他 3 个字节,OnRxChar 触发,这次我收到 4 个字节,第一个字的最后一个字和整个第二个字

像这样: A1 A2 | A3 B1 B2 B3

编辑 3

我删除了对 Synchronize 的调用,现在调用了该事件。当我进行测试时,我需要一些东西来制作日志。怎么做?

0 投票
1 回答
379 浏览

delphi - 通过通用接口的异步事件

我必须将几个测量设备连接到我的应用程序(即卡尺、体重秤……),而不是绑定到特定的品牌或型号,所以在客户端我使用带有通用方法的接口(QueryValue)。设备连接在 COM 端口上并以异步方式访问:

  1. 请求一个值(= 在 COM 端口上发送一个特定的字符序列)
  2. 等待回复

在“业务”方面,我的组件在内部使用 TComPort,数据接收事件是TComPort.OnRxChar. 我想知道如何通过界面触发此事件?这是我到目前为止所做的:

但我需要一个事件来知道何时GetValue在客户端调用。执行这种数据流的常用方法是什么?

0 投票
1 回答
633 浏览

delphi - Delphi 使用 Cport 来自硬件的不一致数据

我无法从设备获取串行端口数据。下面是预期结果的图像:

期望结果:

在此处输入图像描述

不想要的结果:

在此处输入图像描述

我使用 Ttimer,所以我可以自动获取数据并将其放入备忘录中。

我需要在备忘录中逐行放置数据。

这是源代码:

我的问题是什么问题?什么是解决方案。

0 投票
1 回答
1353 浏览

delphi - 使用 Serial comport 411f delphi 7 接收到的丢失数据

我有一个 Delphi 7 代码,它从 DSP TMS32F28069 接收传感器值。Delphi接收到的值是Hex文件数据。例如我发送数据:

F1;01;01;07;00;00;0A;00;00;00;00;F7

来自 DSP。

我使用 Comport 411f,实际上当我使用 Windows 10 64 位英文版时,一切都很好。但是当我使用windows chinese 64位时,有时接收到的数据有时会发生变化。我在几个使用windows 7 64位中文版的笔记本上试了试,都出现了同样的问题。windows 7 64位中文版接收到的文件显示:

F1;01;01;01;00;00;00;F7;00;00;F7;00. 或 F1;01;07;01;00;0A;00;00;F7;F7;00;00

并且总是改变。这是我在 Delphi 7 中编写的代码:

请给我任何建议,为什么会在 Windows 7 64 位中文版上发生这种情况?因为当我使用 Windows 7 64 位英文版时,它也可以正常工作。

谢谢

0 投票
1 回答
582 浏览

delphi - 使用串行comport 411f delphi 7发送数据失败

我有一个 Delphi 7 代码,可将传感器数据值发送到 DSP TMS32F28069。Delphi 发送的值是 Hex 文件数据。例如我发送数据:

F0;01;01;07;00;00;00;00;00;00;00;F7 来自德尔福。

我使用 Comport 411f,实际上当我使用 Windows 10 64 位英文版时,一切都很好。但是当我使用windows 7中文64位时,发送的数据从未被DSP接收到。我在几台使用windows 7 64位中文版的笔记本上试了试,同样的问题,没有收到数据。这是我在 Delphi 7 中编写的代码:

请给我任何建议,为什么会在 Windows 7 64 位中文版上发生这种情况?因为当我使用 Windows 7 64 位英文版时,它也可以正常工作。谢谢你。

0 投票
1 回答
2418 浏览

delphi - 带有 ComPort 的 Delphi 7 中的串行端口不完全发送数据

TComPort使用该组件时,我在 Delphi 中访问我的串行端口时遇到问题。它不能完全发送数据,但是一些数据会随机丢失,比如这个例子:

061:1268:-108:16596:-462:239:-75:0.000000:0.000000
061:
061:1240:-84:16616:-425:235:-54:0.000000:0。
061:1220:-96:16620:-418:224:-69:0.000000:0.000000:0.0055
061:1220:-72:16676:-420:246:-72:0.0
061:1100:-176:16688:- 460:224:-45:0.000000:0.000000:0.0056
061:1164:-144:16676:-442:23
061:1272:-136:16456:-413:219:-84:0.000000:0.000000
:096 :0.0056 06 :-152:16616
061:1096:-140:16656:-427:235:-88:0.000000:0.000000:0.0056
061:1200:-1
061:1192:-84:16664:-447:228:-60: 0.000000:0.000000:0.0055
061
061:1208:-116:16576:-421:233:-56:0.000000:0.000000
061:1208:-128:16584:-427:226:-94:0.000000:05:0.
061:1172:-264:16560:-436:257:-72:0.000000:
061:1196:-200:16724:-428:234:-78:0.000000:0.000000:0.0056

正确的数据应该包含 10 个值,如下所示:

061:1196:-200:16724:-428:234:-78:0.000000:0.000000:0.0056

请帮我解决这个问题。我是德尔福的初学者。

这是我的代码:

0 投票
1 回答
1239 浏览

delphi - Delphi Comport 没有得到完整的数据

我有这个代码:

实际结果是:

然后变成了:

预期结果:

0 投票
1 回答
563 浏览

delphi - Delphi TComPort WriteAsync

我正在尝试通过 TComPort 组件异步发送字符串,但所有内容都是同步发送的。问题是应用程序将被阻止并等待传输结束。

我的代码: