Included variant ID in target pin descriptor
This commit is contained in:
@@ -15,7 +15,6 @@ namespace Bloom::Events
|
||||
|
||||
static inline EventType type = EventType::SET_TARGET_PIN_STATE;
|
||||
static inline const std::string name = "SetTargetPinState";
|
||||
int variantId = 0;
|
||||
Targets::TargetPinDescriptor pinDescriptor;
|
||||
Targets::TargetPinState pinState;
|
||||
|
||||
|
||||
@@ -630,11 +630,11 @@ void TargetController::onSetPinStateEvent(const Events::SetTargetPinState& event
|
||||
);
|
||||
}
|
||||
|
||||
this->target->setPinState(event.variantId, event.pinDescriptor, event.pinState);
|
||||
this->target->setPinState(event.pinDescriptor, event.pinState);
|
||||
|
||||
auto pinStatesUpdateEvent = std::make_shared<Events::TargetPinStatesRetrieved>();
|
||||
pinStatesUpdateEvent->correlationId = event.id;
|
||||
pinStatesUpdateEvent->variantId = event.variantId;
|
||||
pinStatesUpdateEvent->variantId = event.pinDescriptor.variantId;
|
||||
pinStatesUpdateEvent->pinSatesByNumber = {
|
||||
{event.pinDescriptor.number, event.pinState}
|
||||
};
|
||||
|
||||
@@ -123,11 +123,10 @@ Targets::TargetPinStateMappingType TargetControllerConsole::getPinStates(int var
|
||||
return this->triggerTargetControllerEventAndWaitForResponse(requestEvent)->pinSatesByNumber;
|
||||
}
|
||||
|
||||
void TargetControllerConsole::setPinState(int variantId, TargetPinDescriptor pinDescriptor, TargetPinState pinState) {
|
||||
void TargetControllerConsole::setPinState(TargetPinDescriptor pinDescriptor, TargetPinState pinState) {
|
||||
auto updateEvent = std::make_shared<SetTargetPinState>();
|
||||
updateEvent->variantId = variantId;
|
||||
updateEvent->pinDescriptor = std::move(pinDescriptor);
|
||||
updateEvent->pinState = pinState;
|
||||
|
||||
this->eventManager.triggerEvent(updateEvent);
|
||||
this->triggerTargetControllerEventAndWaitForResponse(updateEvent);
|
||||
}
|
||||
|
||||
@@ -197,12 +197,11 @@ namespace Bloom
|
||||
Targets::TargetPinStateMappingType getPinStates(int variantId);
|
||||
|
||||
/**
|
||||
* Requests a pin state update on the target, for a specific pin.
|
||||
* Updates the pin state on the target, for a specific pin.
|
||||
*
|
||||
* @param variantId
|
||||
* @param pinDescriptor
|
||||
* @param pinState
|
||||
*/
|
||||
void setPinState(int variantId, Targets::TargetPinDescriptor pinDescriptor, Targets::TargetPinState pinState);
|
||||
void setPinState(Targets::TargetPinDescriptor pinDescriptor, Targets::TargetPinState pinState);
|
||||
};
|
||||
}
|
||||
|
||||
@@ -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");
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user