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 EventType type = EventType::SET_TARGET_PIN_STATE;
|
||||||
static inline const std::string name = "SetTargetPinState";
|
static inline const std::string name = "SetTargetPinState";
|
||||||
int variantId = 0;
|
|
||||||
Targets::TargetPinDescriptor pinDescriptor;
|
Targets::TargetPinDescriptor pinDescriptor;
|
||||||
Targets::TargetPinState pinState;
|
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>();
|
auto pinStatesUpdateEvent = std::make_shared<Events::TargetPinStatesRetrieved>();
|
||||||
pinStatesUpdateEvent->correlationId = event.id;
|
pinStatesUpdateEvent->correlationId = event.id;
|
||||||
pinStatesUpdateEvent->variantId = event.variantId;
|
pinStatesUpdateEvent->variantId = event.pinDescriptor.variantId;
|
||||||
pinStatesUpdateEvent->pinSatesByNumber = {
|
pinStatesUpdateEvent->pinSatesByNumber = {
|
||||||
{event.pinDescriptor.number, event.pinState}
|
{event.pinDescriptor.number, event.pinState}
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -123,11 +123,10 @@ Targets::TargetPinStateMappingType TargetControllerConsole::getPinStates(int var
|
|||||||
return this->triggerTargetControllerEventAndWaitForResponse(requestEvent)->pinSatesByNumber;
|
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>();
|
auto updateEvent = std::make_shared<SetTargetPinState>();
|
||||||
updateEvent->variantId = variantId;
|
|
||||||
updateEvent->pinDescriptor = std::move(pinDescriptor);
|
updateEvent->pinDescriptor = std::move(pinDescriptor);
|
||||||
updateEvent->pinState = pinState;
|
updateEvent->pinState = pinState;
|
||||||
|
|
||||||
this->eventManager.triggerEvent(updateEvent);
|
this->triggerTargetControllerEventAndWaitForResponse(updateEvent);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -197,12 +197,11 @@ namespace Bloom
|
|||||||
Targets::TargetPinStateMappingType getPinStates(int variantId);
|
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 pinDescriptor
|
||||||
* @param pinState
|
* @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;
|
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)) {
|
if (!this->targetVariantsById.contains(variantId)) {
|
||||||
throw Exception("Invalid target variant ID");
|
throw Exception("Invalid target variant ID");
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -146,7 +146,6 @@ namespace Bloom::Targets::Microchip::Avr::Avr8Bit
|
|||||||
|
|
||||||
std::map<int, TargetPinState> getPinStates(int variantId) override;
|
std::map<int, TargetPinState> getPinStates(int variantId) override;
|
||||||
void setPinState(
|
void setPinState(
|
||||||
int variantId,
|
|
||||||
const TargetPinDescriptor& pinDescriptor,
|
const TargetPinDescriptor& pinDescriptor,
|
||||||
const TargetPinState& state
|
const TargetPinState& state
|
||||||
) override;
|
) override;
|
||||||
|
|||||||
@@ -435,6 +435,7 @@ void TargetDescriptionFile::loadTargetVariants() {
|
|||||||
targetPin.name = tdPin.pad;
|
targetPin.name = tdPin.pad;
|
||||||
targetPin.padName = tdPin.pad;
|
targetPin.padName = tdPin.pad;
|
||||||
targetPin.number = tdPin.position;
|
targetPin.number = tdPin.position;
|
||||||
|
targetPin.variantId = targetVariant.id;
|
||||||
|
|
||||||
// TODO: REMOVE THIS:
|
// TODO: REMOVE THIS:
|
||||||
if (tdPin.pad.find("vcc") == 0
|
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.
|
* Should update the pin state for the given pin, with the given state.
|
||||||
*
|
*
|
||||||
* @param variantId
|
|
||||||
* @param pinDescriptor
|
* @param pinDescriptor
|
||||||
* @param state
|
* @param state
|
||||||
*/
|
*/
|
||||||
virtual void setPinState(
|
virtual void setPinState(
|
||||||
int variantId,
|
|
||||||
const TargetPinDescriptor& pinDescriptor,
|
const TargetPinDescriptor& pinDescriptor,
|
||||||
const TargetPinState& state
|
const TargetPinState& state
|
||||||
) = 0;
|
) = 0;
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
|
|
||||||
namespace Bloom::Targets
|
namespace Bloom::Targets
|
||||||
{
|
{
|
||||||
enum class TargetPinType: int
|
enum class TargetPinType: std::uint8_t
|
||||||
{
|
{
|
||||||
UNKNOWN,
|
UNKNOWN,
|
||||||
GPIO,
|
GPIO,
|
||||||
@@ -19,6 +19,7 @@ namespace Bloom::Targets
|
|||||||
struct TargetPinDescriptor
|
struct TargetPinDescriptor
|
||||||
{
|
{
|
||||||
int number;
|
int number;
|
||||||
|
int variantId;
|
||||||
bool supportsGpio = false;
|
bool supportsGpio = false;
|
||||||
std::string name;
|
std::string name;
|
||||||
std::string padName;
|
std::string padName;
|
||||||
@@ -39,13 +40,13 @@ namespace Bloom::Targets
|
|||||||
|
|
||||||
struct TargetPinState
|
struct TargetPinState
|
||||||
{
|
{
|
||||||
enum class IoState: int
|
enum class IoState: std::uint8_t
|
||||||
{
|
{
|
||||||
HIGH,
|
HIGH,
|
||||||
LOW,
|
LOW,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum class IoDirection: int
|
enum class IoDirection: std::uint8_t
|
||||||
{
|
{
|
||||||
INPUT,
|
INPUT,
|
||||||
OUTPUT,
|
OUTPUT,
|
||||||
|
|||||||
Reference in New Issue
Block a user