Included variant ID in target pin descriptor

This commit is contained in:
Nav
2021-09-04 17:58:05 +01:00
parent 90a4f1ce29
commit 1bc881e9ae
9 changed files with 13 additions and 16 deletions

View File

@@ -428,7 +428,8 @@ std::map<int, TargetPinState> Avr8::getPinStates(int variantId) {
return output;
}
void Avr8::setPinState(int variantId, const TargetPinDescriptor& pinDescriptor, const TargetPinState& state) {
void Avr8::setPinState(const TargetPinDescriptor& pinDescriptor, const TargetPinState& state) {
auto variantId = pinDescriptor.variantId;
if (!this->targetVariantsById.contains(variantId)) {
throw Exception("Invalid target variant ID");
}

View File

@@ -146,7 +146,6 @@ namespace Bloom::Targets::Microchip::Avr::Avr8Bit
std::map<int, TargetPinState> getPinStates(int variantId) override;
void setPinState(
int variantId,
const TargetPinDescriptor& pinDescriptor,
const TargetPinState& state
) override;

View File

@@ -435,6 +435,7 @@ void TargetDescriptionFile::loadTargetVariants() {
targetPin.name = tdPin.pad;
targetPin.padName = tdPin.pad;
targetPin.number = tdPin.position;
targetPin.variantId = targetVariant.id;
// TODO: REMOVE THIS:
if (tdPin.pad.find("vcc") == 0

View File

@@ -292,12 +292,10 @@ namespace Bloom::Targets
/**
* Should update the pin state for the given pin, with the given state.
*
* @param variantId
* @param pinDescriptor
* @param state
*/
virtual void setPinState(
int variantId,
const TargetPinDescriptor& pinDescriptor,
const TargetPinState& state
) = 0;

View File

@@ -8,7 +8,7 @@
namespace Bloom::Targets
{
enum class TargetPinType: int
enum class TargetPinType: std::uint8_t
{
UNKNOWN,
GPIO,
@@ -19,6 +19,7 @@ namespace Bloom::Targets
struct TargetPinDescriptor
{
int number;
int variantId;
bool supportsGpio = false;
std::string name;
std::string padName;
@@ -39,13 +40,13 @@ namespace Bloom::Targets
struct TargetPinState
{
enum class IoState: int
enum class IoState: std::uint8_t
{
HIGH,
LOW,
};
enum class IoDirection: int
enum class IoDirection: std::uint8_t
{
INPUT,
OUTPUT,