用户指南
RHILEX 自定义串口协议接入

RHILEX 自定义串口协议接入

本文档详细介绍了如何在 RHILEX 软件中实现自定义串口协议自动接入功能。通过配置点位表,软件将自动向串口发送指令,并在指定的超时时间范围内等待对端设备响应,从而采集所需数据。

功能说明

配置点位表

device_user_protocol

用户在 RHILEX 软件中配置点位表,用于定义自动发送的指令及其相关参数。点位表包含以下信息:

  • 指令 ID:唯一标识一个指令。
  • 指令内容:包括指令头、参数和校验位。
  • 超时时间 T:等待对端响应的时间限制(单位:毫秒)。

自动发送指令

配置完点位表后,RHILEX 软件将根据点位表自动发送指令。

device_user_protocol

超时时间设置

每个指令的超时时间 T 在点位表中设置。软件在发送指令后,将等待最多 T 时间以接收对端设备的响应。

采集数据

在接收到对端设备的响应后,RHILEX 软件将自动解析并采集数据。

接入步骤

以下为自定义串口协议自动接入功能的接入步骤:

连接串口设备

  1. 确保串口设备与计算机已正确连接。
  2. 在 RHILEX 软件中选择“串口通信”模块。
  3. 点击“添加串口设备”按钮,选择对应的串口和波特率。

配置点位表

  1. 在“点位表配置”界面,点击“添加点位”按钮。
  2. 输入指令 ID、指令内容、超时时间 T 等参数。
  3. 保存点位表配置。

自动发送指令

  1. 确认点位表配置无误后,RHILEX 软件将自动按照点位表发送指令。
  2. 指令发送后,软件进入等待响应状态。

采集数据

  1. 在接收到对端设备的响应后,RHILEX 软件将自动解析数据。
  2. 采集的数据将显示在“数据展示”界面。

注意事项

  1. 确保串口设备与计算机的连接稳定,避免通信过程中出现断开现象。
  2. 根据实际需求在点位表中设置合适的超时时间 T。
  3. 在配置点位表时,请确保指令格式正确,避免因格式错误导致通信失败。

常见问题及解决方法

  1. 问题:自动发送指令后,未收到对端设备的响应。
    解决方法:检查串口连接是否正常,点位表配置是否正确,超时时间是否设置合理。

  2. 问题:采集到的数据错误。
    解决方法:检查点位表中指令格式和数据格式是否正确,校验位计算是否正确。

  3. 问题:软件运行过程中出现异常。
    解决方法:重启软件,检查并重新配置串口设备和点位表。

💡

自定义协议核心原理是假设请求过后,数据能按照预期正常返回,数据是理想状态下的正确数据。其实就是最原始的 C-S 模型,不考虑任何数据包断包,连包情况。因此相比其他规范协议有较大的错误率,建议将返回的数据进行 CRC 校验。

简单示例

以下是一个 Arduino 示例,它模拟了与 RHILEX 软件通信的过程。在这个示例中,Arduino 板将接收来自串口的数据,并在接收到数据后立即将其发送回。这个示例假设 RHILEX 软件已经配置好点位表,并且正在自动发送指令。

Cpp
void setup() {
  // 初始化串口通信,设置波特率为9600
  Serial.begin(9600);
}
void loop() {
  // 检查串口是否有数据可读
  if (Serial.available() > 0) {
    // 读取收到的数据
    String receivedCommand = Serial.readStringUntil('\n'); // 假设指令以换行符结束
    
    // 这里可以添加对指令的处理逻辑,例如解析指令、执行操作等
    // 为了简化示例,我们直接将接收到的指令返回
    // 等待100毫秒,模拟处理指令的时间
    delay(100);
    // 将接收到的数据发送回串口
    Serial.println(receivedCommand); // 使用println以确保发送的数据包含换行符
  }
}

在这个示例中,我们使用了 Serial.readStringUntil('\n') 来读取直到换行符为止的字符串,这通常用于读取一行完整的指令。然后,我们通过 Serial.println(receivedCommand) 将接收到的指令原样返回,并添加了一个换行符,这样 RHILEX 软件可以更容易地识别响应的结束。
请注意,这个示例假设 RHILEX 软件发送的指令以换行符结束。如果实际协议中使用了不同的结束符,您需要相应地调整 Serial.readStringUntil() 方法中的参数。
在将此代码上传到 Arduino 板之前,请确保您已经在 Arduino IDE 中选择了正确的板型和端口,并将串口监视器的波特率设置为 9600。这样,您就可以通过串口监视器发送指令,并观察 Arduino 板的响应了。

device_user_protocol

© 2023-2025 RHILEX Technologies Inc. All rights reserved.