File indexing completed on 2024-06-16 03:42:51

0001 /*
0002     File                 : VectorBLFFilterPrivate.h
0003     Project              : LabPlot
0004     Description          : Private implementation class for VectorBLFFilter.
0005     --------------------------------------------------------------------
0006     SPDX-FileCopyrightText: 2023 <martin.marmsoler@gmail.com>
0007 
0008     SPDX-License-Identifier: GPL-3.0-or-later
0009 */
0010 #ifndef VECTORBLFFILTERPRIVATE_H
0011 #define VECTORBLFFILTERPRIVATE_H
0012 
0013 #include "CANFilterPrivate.h"
0014 #include "VectorBLFFilter.h"
0015 
0016 class AbstractDataSource;
0017 class VectorBLFFilter;
0018 
0019 class VectorBLFFilterPrivate : public CANFilterPrivate {
0020 public:
0021     explicit VectorBLFFilterPrivate(VectorBLFFilter*);
0022     virtual ~VectorBLFFilterPrivate() {
0023     }
0024     virtual bool isValid(const QString& filename) const override;
0025 
0026     virtual QStringList lastErrors() const override;
0027 
0028 private:
0029     enum class ParseStatus {
0030         Success,
0031         ErrorUnknown,
0032         ErrorInvalidFile,
0033         DBCInvalidFile,
0034         DBCMessageToLong,
0035         DBCBigEndian,
0036         DBCParserUnsupported,
0037         DBCUnknownID,
0038         DBCInvalidConversion
0039     };
0040     static ParseStatus DBCParserParseStatusToVectorBLFStatus(DbcParser::ParseStatus);
0041     struct Errors {
0042         ParseStatus e;
0043         uint32_t CANId;
0044     };
0045     QList<Errors> errors;
0046 
0047 private:
0048     virtual int readDataFromFileCommonTime(const QString& fileName, int lines = -1) override;
0049     virtual int readDataFromFileSeparateTime(const QString& fileName, int lines = -1) override;
0050 
0051 #ifdef HAVE_VECTOR_BLF
0052     const VectorBLFFilter* q;
0053 #endif
0054 };
0055 
0056 #endif // VECTORBLFFILTERPRIVATE_H