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))
|
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 {
|
const std::string& TargetDescriptionFile::deviceAttribute(const std::string& attributeName) const {
|
||||||
@@ -653,4 +661,12 @@ namespace Targets::TargetDescription
|
|||||||
TargetDescriptionFile::getAttribute(xmlElement, "pad")
|
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, Module, std::less<void>> modulesByKey;
|
||||||
std::map<std::string, Peripheral, std::less<void>> peripheralsByKey;
|
std::map<std::string, Peripheral, std::less<void>> peripheralsByKey;
|
||||||
std::map<std::string, Pinout, std::less<void>> pinoutsByKey;
|
std::map<std::string, Pinout, std::less<void>> pinoutsByKey;
|
||||||
|
std::vector<Variant> variants;
|
||||||
|
|
||||||
TargetDescriptionFile() = default;
|
TargetDescriptionFile() = default;
|
||||||
virtual ~TargetDescriptionFile() = default;
|
virtual ~TargetDescriptionFile() = default;
|
||||||
@@ -145,5 +146,6 @@ namespace Targets::TargetDescription
|
|||||||
static Signal signalFromXml(const QDomElement& xmlElement);
|
static Signal signalFromXml(const QDomElement& xmlElement);
|
||||||
static Pinout pinoutFromXml(const QDomElement& xmlElement);
|
static Pinout pinoutFromXml(const QDomElement& xmlElement);
|
||||||
static Pin pinFromXml(const QDomElement& xmlElement);
|
static Pin pinFromXml(const QDomElement& xmlElement);
|
||||||
|
static Variant variantFromXml(const QDomElement& xmlElement);
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,8 +7,17 @@ namespace Targets::TargetDescription
|
|||||||
struct Variant
|
struct Variant
|
||||||
{
|
{
|
||||||
std::string name;
|
std::string name;
|
||||||
std::string pinoutName;
|
std::string pinoutKey;
|
||||||
std::string package;
|
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