diff --git a/parseagle/schematic/bus.cpp b/parseagle/schematic/bus.cpp old mode 100644 new mode 100755 index 3fe26c8..1e8f65a --- a/parseagle/schematic/bus.cpp +++ b/parseagle/schematic/bus.cpp @@ -4,9 +4,16 @@ namespace parseagle { -Bus::Bus(const DomElement& root) +Bus::Bus(const DomElement& root, QStringList* errors) { mName = root.getAttributeAsString("name"); + foreach (const DomElement& child, root.getChilds()) { + if (child.getTagName() == "segment") { + mSegments.append(Segment(child, errors)); + } else if (errors) { + errors->append("Unknown bus child: " + child.getTagName()); + } + } } Bus::~Bus() noexcept diff --git a/parseagle/schematic/bus.h b/parseagle/schematic/bus.h old mode 100644 new mode 100755 index 60dea09..65c6d29 --- a/parseagle/schematic/bus.h +++ b/parseagle/schematic/bus.h @@ -2,6 +2,7 @@ #define PARSEAGLE_BUS_H #include +#include "segment.h" namespace parseagle { @@ -13,15 +14,17 @@ class Bus final // Constructors / Destructor Bus() = delete; - explicit Bus(const DomElement& root); + explicit Bus(const DomElement& root, QStringList* errors = nullptr); ~Bus() noexcept; // Getters const QString& getName() const noexcept {return mName;} + const QList& getSegments() const noexcept {return mSegments;} private: QString mName; + QList mSegments; }; } // namespace parseagle diff --git a/parseagle/schematic/sheet.cpp b/parseagle/schematic/sheet.cpp old mode 100644 new mode 100755 index 42036a7..28ef2ba --- a/parseagle/schematic/sheet.cpp +++ b/parseagle/schematic/sheet.cpp @@ -35,7 +35,7 @@ Sheet::Sheet(const DomElement& root, QStringList* errors) } } else if (child.getTagName() == "busses") { foreach (const DomElement& busChild, child.getChilds()) { - mBuses.append(Bus(busChild)); + mBuses.append(Bus(busChild, errors)); } } else if (child.getTagName() == "nets") { foreach (const DomElement& netChild, child.getChilds()) {