4

我需要通过串口访问一些称重机。我如何使用 RED 编程语言从/向它写入数据?

4

2 回答 2

1

串行端口和大部分 I/O 尚未在 Red 中实现。

请查看 Red Trello 板,以了解尚待完成的部分。

于 2017-04-21T15:52:55.000 回答
0

正如 DocKimbel 提到的,大多数 IO 支持尚未实现,但这并不意味着您不能在 Red/System 中手动实现该功能。

如果您正在为 Windows 进行编译,则以下信息是相关的。

为简单起见,我建议采用本文前半部分所述的轮询方法。

实际上你需要的大部分功能已经在 simple-io.reds 中了。具体来说,您必须在 simple-io 上下文中使用以下函数:

  • 创建文件A
  • 读取文件
  • 写文件

您可能还需要 DeleteFileA 和 GetLastError。simple-io 不导入它们(只有 DeleteFile 上的宽字符串变体),因此您必须自己通过在stdcall模式下从kernel32.dll导入它来完成它们。您还需要导入SetCommState()

BOOL WINAPI SetCommState(
  _In_ HANDLE hFile,
  _In_ LPDCB  lpDCB
);

第二个参数需要一个DCB(设备控制块)结构。

一旦你让它在 Red/System 级别工作,你就可以将每个基本的 com 功能包装在一个例程中!抽象出一些低级 c 方面并将低级代码暴露给您的 Red 代码。

于 2017-10-20T08:49:02.870 回答