Updated TDF variant extraction to align with new TDF format
This commit is contained in:
@@ -256,6 +256,14 @@ namespace Targets::TargetDescription
|
||||
std::pair(pinout.key, std::move(pinout))
|
||||
);
|
||||
}
|
||||
|
||||
for (
|
||||
auto element = deviceElement.firstChildElement("variants").firstChildElement("variant");
|
||||
!element.isNull();
|
||||
element = element.nextSiblingElement("variant")
|
||||
) {
|
||||
this->variants.emplace_back(TargetDescriptionFile::variantFromXml(element));
|
||||
}
|
||||
}
|
||||
|
||||
const std::string& TargetDescriptionFile::deviceAttribute(const std::string& attributeName) const {
|
||||
@@ -653,4 +661,12 @@ namespace Targets::TargetDescription
|
||||
TargetDescriptionFile::getAttribute(xmlElement, "pad")
|
||||
);
|
||||
}
|
||||
|
||||
Variant TargetDescriptionFile::variantFromXml(const QDomElement& xmlElement) {
|
||||
return Variant(
|
||||
TargetDescriptionFile::getAttribute(xmlElement, "name"),
|
||||
TargetDescriptionFile::getAttribute(xmlElement, "pinout-key"),
|
||||
TargetDescriptionFile::getAttribute(xmlElement, "package")
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -111,6 +111,7 @@ namespace Targets::TargetDescription
|
||||
std::map<std::string, Module, std::less<void>> modulesByKey;
|
||||
std::map<std::string, Peripheral, std::less<void>> peripheralsByKey;
|
||||
std::map<std::string, Pinout, std::less<void>> pinoutsByKey;
|
||||
std::vector<Variant> variants;
|
||||
|
||||
TargetDescriptionFile() = default;
|
||||
virtual ~TargetDescriptionFile() = default;
|
||||
@@ -145,5 +146,6 @@ namespace Targets::TargetDescription
|
||||
static Signal signalFromXml(const QDomElement& xmlElement);
|
||||
static Pinout pinoutFromXml(const QDomElement& xmlElement);
|
||||
static Pin pinFromXml(const QDomElement& xmlElement);
|
||||
static Variant variantFromXml(const QDomElement& xmlElement);
|
||||
};
|
||||
}
|
||||
|
||||
@@ -7,8 +7,17 @@ namespace Targets::TargetDescription
|
||||
struct Variant
|
||||
{
|
||||
std::string name;
|
||||
std::string pinoutName;
|
||||
std::string pinoutKey;
|
||||
std::string package;
|
||||
bool disabled = false;
|
||||
|
||||
Variant(
|
||||
const std::string& name,
|
||||
const std::string& pinoutKey,
|
||||
const std::string& package
|
||||
)
|
||||
: name(name)
|
||||
, pinoutKey(pinoutKey)
|
||||
, package(package)
|
||||
{}
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user