PySide6.QtSerialBus.QCanDbcFileParser¶
- class QCanDbcFileParser¶
- The - QCanDbcFileParserclass can be used to parse DBC files. More…- Synopsis¶- Methods¶- def - __init__()
- def - error()
- def - errorString()
- def - parse()
- def - parseData()
- def - warnings()
 - Static functions¶- Note - This documentation may contain snippets that were automatically translated from C++ to Python. We always welcome contributions to the snippet translation. If you see an issue with the translation, you can also let us know by creating a ticket on https:/bugreports.qt.io/projects/PYSIDE - Detailed Description¶- A CAN database or CAN DBC file is an ASCII text file that contains information on how to decode and interpret raw CAN bus data. Some more details about the format can be found here or here . - The - QCanDbcFileParserclass takes the input DBC file, parses it, and provides a list of- QCanMessageDescriptions as an output. These message descriptions can be forwarded to- QCanFrameProcessor, and later used as rules to encode or decode- QCanBusFrames.- Use one of - parse()overloads to specify a file or a list of files that will be processed. Both overloads return- trueif the parsing completes successfully and- falseotherwise.- Call the - error()method to get the error which occurred during the parsing. If the parsing completes successfully, this method will return- None. Otherwise, you can use an- errorString()method to get the string representation of an error.- During the parsing some non-critical problems may occur as well. Such problems will be logged, but the parsing process will not be aborted. You can use the - warnings()method to get the full list of such problems after the parsing is completed.- If the parsing completes successfully, call - messageDescriptions()to get a list of the message descriptions that were extracted during the last- parse()call. Call- messageValueDescriptions()to get the textual descriptions of signal raw values, if they are available.- Use the static - uniqueIdDescription()function to get a- QCanUniqueIdDescriptionfor the DBC format.- QCanDbcFileParser fileParser; const bool result = fileParser.parse(u"path/to/file.dbc"_s); // Check result, call error() and warnings() if needed // Prepare a QCanFrameProcessor to decode or encode DBC frames QCanFrameProcessor frameProcessor; frameProcessor.setUniqueIdDescription(QCanDbcFileParser::uniqueIdDescription()); frameProcessor.setMessageDescriptions(fileParser.messageDescriptions()); - Note - The parser is stateful, which means that all the results (like extracted message descriptions, error code, or warnings) are reset once the next parsing starts. - Supported Keywords¶- The current implementation supports only a subset of keywords that you can find in a DBC file: - BO_- message description.
- SG_- signal description.
- SIG_VALTYPE_- signal type description.
- SG_MUL_VAL_- extended multiplexing description.
- CM_- comments (only for message and signal descriptions).
- VAL_- textual descriptions for raw signal values.
 - Lines starting from other keywords are simply ignored. - See also - class Error¶
- This enum represents the possible errors that can happen during the parsing of a DBC file. - Constant - Description - QCanDbcFileParser.Error.None_ - No error occurred. - QCanDbcFileParser.Error.FileReading - An error occurred while opening or reading the file. - QCanDbcFileParser.Error.Parsing - An error occurred while parsing the content of the file. 
 - __init__()¶
 - Constructs a DBC file parser. - Returns the last error which occurred during the parsing. - See also - errorString()¶
- Return type:
- str 
 
 - Returns the text representation of the last error which occurred during the parsing or an empty string if there was no error. - See also - messageDescriptions()¶
- Return type:
- .list of QCanMessageDescription 
 
 - Returns the list of message descriptions that were extracted during the last - parse()call.- messageValueDescriptions()¶
- Return type:
- Dictionary with keys of type .QtCanBus.UniqueId and values of type QString. 
 
 - Returns the textual descriptions for signal raw values. - DBC supports the possibility to provide textual descriptions to signal raw values. If such data exists in the parsed DBC file(s), it can be accessed using this function. - The textual descriptions are unique for a certain signal within a specific message, so the returned structure contains the information about the message unique id and the signal name, as well as the actual value descriptions. - parse(fileName)¶
- Parameters:
- fileName – str 
- Return type:
- bool 
 
 - Parses the file - fileName. Returns- trueif the parsing completed successfully or- falseotherwise.- If the parsing completed successfully, call the - messageDescriptions()method to get the list of all extracted message descriptions.- If the parsing failed, call the - error()and- errorString()methods to get the information about the error.- Call the - warnings()method to get the list of warnings that were logged during the parsing.- Note - This method expects the file contents to be encoded in UTF-8. If the file has a different encoding, decode it first, and use - parseData()to extract the DBC information.- parse(fileNames)
- Parameters:
- fileNames – list of strings 
- Return type:
- bool 
 
 - This is an overloaded function. - Parses a list of files - fileNames. Returns- trueif the parsing completed successfully or- falseotherwise.- If the parsing completed successfully, call the - messageDescriptions()method to get the list of all extracted message descriptions.- The parsing stops at the first error. Call the - error()and- errorString()methods to get the information about the error.- Call the - warnings()method to get the list of warnings that were logged during the parsing.- Note - This method expects the file contents to be encoded in UTF-8. If the file has a different encoding, decode it first, and use - parseData()to extract the DBC information.- parseData(data)¶
- Parameters:
- data – str 
- Return type:
- bool 
 
 - Parses the input data - dataand returns- trueif the parsing completed successfully or- falseotherwise.- If the parsing completed successfully, call the - messageDescriptions()method to get the list of all extracted message descriptions.- If the parsing failed, call the - error()and- errorString()methods to get the information about the error.- Call the - warnings()method to get the list of warnings that were logged during the parsing.- The method expects that - datais the content of a valid DBC file, properly converted to QStringView.- Use this method when the input file has an encoding different from UTF-8. - // Read the data from a DBC file with custom encoding const QByteArray initialData = ...; // Convert to UTF-16 using QStringDecoder or some other way const QString decodedData = ...; QCanDbcFileParser parser; const bool result = parser.parseData(decodedData); - See also - static uniqueIdDescription()¶
- Return type:
 
 - Returns a unique identifier description. DBC protocol always uses the Frame Id as an identifier, and therefore the unique identifier description is always the same. - Use this method to get an instance of - QCanUniqueIdDescriptionand pass it to- QCanFrameProcessor.- See also - warnings()¶
- Return type:
- list of strings 
 
 - Returns the list of non-critical problems which occurred during the parsing. - A typical problem can be a malformed message or signal description. In such cases the malformed message or signal is skipped, but the rest of the file can be processed as usual.