PySide6.QtSerialBus.QCanFrameProcessor

class QCanFrameProcessor

QCanFrameProcessor 类可用于解码 QCanBusFrame 或将输入数据转换为准备发送给接收器的 QCanBusFrameMore_

概要

方法

注意

本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译问题,您也可以通过在我们的https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。

详细描述

QCanFrameProcessor 类操作于CAN消息描述(由QCanMessageDescriptionQCanSignalDescription 类表示)和唯一标识符描述(由 QCanUniqueIdDescription 表示)。它使用这些描述来解码传入的 QCanBusFrame 或将用户指定的数据编码为适当的负载。

在进行任何解码或编码之前,QCanFrameProcessor实例必须正确初始化。需要提供以下数据:

parseFrame() 方法可用于处理传入的 QCanBusFrame。该方法返回一个 ParseResult 结构,其中包含 唯一标识符信号值 映射。映射的键是 signal names,映射的值是信号值。

prepareFrame() 方法可用于为特定的唯一标识符生成一个 QCanBusFrame 对象,使用提供的信号名称和期望值。

在编码或解码过程中可能会发生错误。在这种情况下,可以使用error()errorString()方法来获取有关错误的信息。

一些非关键问题也可能发生。这些问题将被记录,但进程不会停止。进程完成后,可以使用warnings()方法来访问所有警告的列表。

注意

一旦开始解码或编码,最后的错误和错误描述以及警告将被重置。

class Error

此枚举表示在编码或解码QCanBusFrame时可能发生的错误。

常量

描述

QCanFrameProcessor.Error.None

没有发生错误。

QCanFrameProcessor.Error.InvalidFrame

接收到的帧无效且无法解析。

QCanFrameProcessor.Error.UnsupportedFrameFormat

接收到的帧格式不受支持,无法解析。

QCanFrameProcessor.Error.Decoding

解码过程中发生错误。使用errorString()获取错误的字符串表示。

QCanFrameProcessor.Error.Encoding

编码过程中发生错误。使用errorString()获取错误的字符串表示。

__init__()

创建一个CAN帧处理器。

addMessageDescriptions(descriptions)
Parameters:

描述 – .QCanMessageDescription 的列表

将新的消息描述 descriptions 添加到可用的消息描述中。

所有消息描述应具有不同的唯一ID。

如果某些消息描述具有重复的唯一ID,则仅使用最后一个描述。

如果解析器已经有一个具有相同唯一ID的消息描述,它将被覆盖。

clearMessageDescriptions()

移除此帧处理器的所有消息描述。

error()
Return type:

错误

返回最后一个错误。

errorString()
Return type:

字符串

返回最后一个错误的文本描述。

messageDescriptions()
Return type:

QCanMessageDescription的列表

返回当前由该帧处理器使用的所有消息描述。

parseFrame(frame)
Parameters:

QCanBusFrame

Return type:

ParseResult

使用指定的消息描述解析框架 frame

解析过程如下:

  1. uniqueIdDescription() 用于提取消息的唯一标识符。

  2. 提取的唯一标识符用于从所有可用的messageDescriptions()列表中搜索合适的QCanMessageDescription

  3. 匹配的 QCanMessageDescription 用于从帧中提取信号值。

此方法返回一个ParseResult,其中包含提取的唯一标识符和一个带有信号及其值的QVariantMap。映射的键是signal names,映射的值是信号值。

如果在解码过程中发生错误,将返回一个空的signalValues结果。在这种情况下,可以使用error()errorString()方法来获取有关错误的信息。

注意

调用此方法将清除所有先前的错误和警告。

prepareFrame(uniqueId, signalValues)
Parameters:
  • uniqueIdUniqueId

  • signalValues – 字典,键类型为 .QString,值类型为 QVariant。

Return type:

QCanBusFrame

使用uniqueIdsignalValues构建一个CAN数据帧,并返回构建的QCanBusFrame

signalValues 参数 必须 包含信号名称作为键,预期信号值作为值。

创建框架的过程如下:

  1. uniqueId 用于找到合适的消息描述。

  2. 如果找到消息描述,将创建一个具有指定大小有效载荷的QCanBusFrame。有效载荷的所有字节以及帧ID都初始化为零。

  3. uniqueIdDescription() 用于将 uniqueId 编码到帧的适当部分(帧ID或有效载荷)。

  4. 选定的消息描述用于将所有signalValues编码到帧中。

  5. 帧中未被唯一ID或现有信号描述覆盖的部分保持不变(因此仍然包含零)。

如果在编码过程中发生错误,将返回一个无效的QCanBusFrame。在这种情况下,可以使用error()errorString()方法来获取有关错误的信息。

注意

调用此方法将清除所有先前的错误和警告。

setMessageDescriptions(descriptions)
Parameters:

描述 – .QCanMessageDescription 的列表

用新的消息描述 descriptions 替换此帧处理器当前使用的消息描述。

setUniqueIdDescription(description)
Parameters:

描述QCanUniqueIdDescription

将唯一标识符描述设置为description

唯一标识符描述必须有效,以便编码或解码CAN总线帧。有关更多详细信息,请参阅QCanUniqueIdDescription类文档。

uniqueIdDescription()
Return type:

QCanUniqueIdDescription

返回唯一标识符的描述。

唯一标识符描述必须有效,以便编码或解码CAN总线帧。有关更多详细信息,请参阅QCanUniqueIdDescription类文档。

warnings()
Return type:

字符串列表

返回在上次编码或解码调用期间生成的警告列表。

class ParseResult

注意

本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译问题,您也可以通过在我们的https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。

详细描述

PySide6.QtSerialBus.QCanFrameProcessor.ParseResult.uniqueId
PySide6.QtSerialBus.QCanFrameProcessor.ParseResult.signalValues