#pragma once #include #include #include #include #include namespace Bloom::Targets { enum class TargetPinType: int { UNKNOWN, GPIO, GND, VCC, }; struct TargetPinDescriptor { int number; bool supportsGpio = false; std::string name; std::string padName; std::vector functions; TargetPinType type = TargetPinType::UNKNOWN; }; struct TargetPinState { enum class IoState: int { HIGH, LOW, }; enum class IoDirection: int { INPUT, OUTPUT, }; std::optional ioState; std::optional ioDirection; }; using TargetPinStateMappingType = std::map; } Q_DECLARE_METATYPE(Bloom::Targets::TargetPinDescriptor) Q_DECLARE_METATYPE(Bloom::Targets::TargetPinState) Q_DECLARE_METATYPE(Bloom::Targets::TargetPinStateMappingType)