PySide6.QtSerialBus.QCanFrameProcessor¶
- class QCanFrameProcessor¶
QCanFrameProcessor
类可用于解码QCanBusFrame
或将输入数据转换为准备发送给接收器的QCanBusFrame
。More_…概要¶
方法¶
def
__init__()
def
error()
def
errorString()
def
parseFrame()
def
prepareFrame()
def
warnings()
注意
本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译问题,您也可以通过在我们的https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。
详细描述¶
QCanFrameProcessor
类操作于CAN消息描述(由QCanMessageDescription
和QCanSignalDescription
类表示)和唯一标识符描述(由QCanUniqueIdDescription
表示)。它使用这些描述来解码传入的QCanBusFrame
或将用户指定的数据编码为适当的负载。在进行任何解码或编码之前,
QCanFrameProcessor
实例必须正确初始化。需要提供以下数据:一个
valid
唯一标识符描述。使用setUniqueIdDescription()
方法来提供适当的描述。至少一个消息描述。使用
addMessageDescriptions()
或setMessageDescriptions()
方法来提供消息描述。所有消息描述 必须 具有不同的唯一标识符。每条消息可以包含多个信号描述,但一条消息内的信号名称 必须 也是唯一的。
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()¶
移除此帧处理器的所有消息描述。
返回最后一个错误。
- errorString()¶
- Return type:
字符串
返回最后一个错误的文本描述。
- messageDescriptions()¶
- Return type:
返回当前由该帧处理器使用的所有消息描述。
- parseFrame(frame)¶
- Parameters:
帧 –
QCanBusFrame
- Return type:
使用指定的消息描述解析框架
frame
。解析过程如下:
uniqueIdDescription()
用于提取消息的唯一标识符。提取的唯一标识符用于从所有可用的
messageDescriptions()
列表中搜索合适的QCanMessageDescription
。匹配的
QCanMessageDescription
用于从帧中提取信号值。
此方法返回一个
ParseResult
,其中包含提取的唯一标识符和一个带有信号及其值的QVariantMap。映射的键是signal names
,映射的值是信号值。如果在解码过程中发生错误,将返回一个空的signalValues结果。在这种情况下,可以使用
error()
和errorString()
方法来获取有关错误的信息。- prepareFrame(uniqueId, signalValues)¶
- Parameters:
uniqueId –
UniqueId
signalValues – 字典,键类型为 .QString,值类型为 QVariant。
- Return type:
使用
uniqueId
和signalValues
构建一个CAN数据帧,并返回构建的QCanBusFrame
。signalValues
参数 必须 包含信号名称作为键,预期信号值作为值。创建框架的过程如下:
uniqueId
用于找到合适的消息描述。如果找到消息描述,将创建一个具有指定大小有效载荷的
QCanBusFrame
。有效载荷的所有字节以及帧ID都初始化为零。uniqueIdDescription()
用于将uniqueId
编码到帧的适当部分(帧ID或有效载荷)。选定的消息描述用于将所有
signalValues
编码到帧中。帧中未被唯一ID或现有信号描述覆盖的部分保持不变(因此仍然包含零)。
如果在编码过程中发生错误,将返回一个无效的
QCanBusFrame
。在这种情况下,可以使用error()
和errorString()
方法来获取有关错误的信息。- setMessageDescriptions(descriptions)¶
- Parameters:
描述 – .QCanMessageDescription 的列表
用新的消息描述
descriptions
替换此帧处理器当前使用的消息描述。- setUniqueIdDescription(description)¶
- Parameters:
将唯一标识符描述设置为
description
。唯一标识符描述必须有效,以便编码或解码CAN总线帧。有关更多详细信息,请参阅
QCanUniqueIdDescription
类文档。- uniqueIdDescription()¶
- Return type:
返回唯一标识符的描述。
唯一标识符描述必须有效,以便编码或解码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¶