Improved naming consistency of aliases
This commit is contained in:
@@ -32,7 +32,7 @@ namespace Bloom::DebugServer::Gdb::AvrGdb
|
|||||||
}
|
}
|
||||||
|
|
||||||
std::unique_ptr<Gdb::CommandPackets::CommandPacket> AvrGdbRsp::resolveCommandPacket(
|
std::unique_ptr<Gdb::CommandPackets::CommandPacket> AvrGdbRsp::resolveCommandPacket(
|
||||||
const RawPacketType& rawPacket
|
const RawPacket& rawPacket
|
||||||
) {
|
) {
|
||||||
using AvrGdb::CommandPackets::ReadMemory;
|
using AvrGdb::CommandPackets::ReadMemory;
|
||||||
using AvrGdb::CommandPackets::WriteMemory;
|
using AvrGdb::CommandPackets::WriteMemory;
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ namespace Bloom::DebugServer::Gdb::AvrGdb
|
|||||||
}
|
}
|
||||||
|
|
||||||
std::unique_ptr<Gdb::CommandPackets::CommandPacket> resolveCommandPacket(
|
std::unique_ptr<Gdb::CommandPackets::CommandPacket> resolveCommandPacket(
|
||||||
const RawPacketType& rawPacket
|
const RawPacket& rawPacket
|
||||||
) override;
|
) override;
|
||||||
|
|
||||||
std::set<std::pair<Feature, std::optional<std::string>>> getSupportedFeatures() override ;
|
std::set<std::pair<Feature, std::optional<std::string>>> getSupportedFeatures() override ;
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ namespace Bloom::DebugServer::Gdb::AvrGdb::CommandPackets
|
|||||||
|
|
||||||
using namespace Bloom::Exceptions;
|
using namespace Bloom::Exceptions;
|
||||||
|
|
||||||
FlashDone::FlashDone(const RawPacketType& rawPacket)
|
FlashDone::FlashDone(const RawPacket& rawPacket)
|
||||||
: CommandPacket(rawPacket)
|
: CommandPacket(rawPacket)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ namespace Bloom::DebugServer::Gdb::AvrGdb::CommandPackets
|
|||||||
class FlashDone: public Gdb::CommandPackets::CommandPacket
|
class FlashDone: public Gdb::CommandPackets::CommandPacket
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
explicit FlashDone(const RawPacketType& rawPacket);
|
explicit FlashDone(const RawPacket& rawPacket);
|
||||||
|
|
||||||
void handle(
|
void handle(
|
||||||
DebugSession& debugSession,
|
DebugSession& debugSession,
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ namespace Bloom::DebugServer::Gdb::AvrGdb::CommandPackets
|
|||||||
|
|
||||||
using namespace Bloom::Exceptions;
|
using namespace Bloom::Exceptions;
|
||||||
|
|
||||||
FlashErase::FlashErase(const RawPacketType& rawPacket)
|
FlashErase::FlashErase(const RawPacket& rawPacket)
|
||||||
: CommandPacket(rawPacket)
|
: CommandPacket(rawPacket)
|
||||||
{
|
{
|
||||||
const auto packetString = QString::fromLocal8Bit(
|
const auto packetString = QString::fromLocal8Bit(
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ namespace Bloom::DebugServer::Gdb::AvrGdb::CommandPackets
|
|||||||
std::uint32_t startAddress = 0;
|
std::uint32_t startAddress = 0;
|
||||||
std::uint32_t bytes = 0;
|
std::uint32_t bytes = 0;
|
||||||
|
|
||||||
explicit FlashErase(const RawPacketType& rawPacket);
|
explicit FlashErase(const RawPacket& rawPacket);
|
||||||
|
|
||||||
void handle(
|
void handle(
|
||||||
DebugSession& debugSession,
|
DebugSession& debugSession,
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ namespace Bloom::DebugServer::Gdb::AvrGdb::CommandPackets
|
|||||||
|
|
||||||
using namespace Bloom::Exceptions;
|
using namespace Bloom::Exceptions;
|
||||||
|
|
||||||
FlashWrite::FlashWrite(const RawPacketType& rawPacket)
|
FlashWrite::FlashWrite(const RawPacket& rawPacket)
|
||||||
: CommandPacket(rawPacket)
|
: CommandPacket(rawPacket)
|
||||||
{
|
{
|
||||||
if (this->data.size() < 15) {
|
if (this->data.size() < 15) {
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ namespace Bloom::DebugServer::Gdb::AvrGdb::CommandPackets
|
|||||||
std::uint32_t startAddress = 0;
|
std::uint32_t startAddress = 0;
|
||||||
Targets::TargetMemoryBuffer buffer;
|
Targets::TargetMemoryBuffer buffer;
|
||||||
|
|
||||||
explicit FlashWrite(const RawPacketType& rawPacket);
|
explicit FlashWrite(const RawPacket& rawPacket);
|
||||||
|
|
||||||
void handle(
|
void handle(
|
||||||
DebugSession& debugSession,
|
DebugSession& debugSession,
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ namespace Bloom::DebugServer::Gdb::AvrGdb::CommandPackets
|
|||||||
|
|
||||||
using Exceptions::Exception;
|
using Exceptions::Exception;
|
||||||
|
|
||||||
ReadMemory::ReadMemory(const RawPacketType& rawPacket, const TargetDescriptor& gdbTargetDescriptor)
|
ReadMemory::ReadMemory(const RawPacket& rawPacket, const TargetDescriptor& gdbTargetDescriptor)
|
||||||
: CommandPacket(rawPacket)
|
: CommandPacket(rawPacket)
|
||||||
{
|
{
|
||||||
if (this->data.size() < 4) {
|
if (this->data.size() < 4) {
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ namespace Bloom::DebugServer::Gdb::AvrGdb::CommandPackets
|
|||||||
*/
|
*/
|
||||||
Targets::TargetMemorySize bytes = 0;
|
Targets::TargetMemorySize bytes = 0;
|
||||||
|
|
||||||
explicit ReadMemory(const RawPacketType& rawPacket, const Gdb::TargetDescriptor& gdbTargetDescriptor);
|
explicit ReadMemory(const RawPacket& rawPacket, const Gdb::TargetDescriptor& gdbTargetDescriptor);
|
||||||
|
|
||||||
void handle(
|
void handle(
|
||||||
DebugSession& debugSession,
|
DebugSession& debugSession,
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ namespace Bloom::DebugServer::Gdb::AvrGdb::CommandPackets
|
|||||||
|
|
||||||
using Exceptions::Exception;
|
using Exceptions::Exception;
|
||||||
|
|
||||||
ReadMemoryMap::ReadMemoryMap(const RawPacketType& rawPacket)
|
ReadMemoryMap::ReadMemoryMap(const RawPacket& rawPacket)
|
||||||
: CommandPacket(rawPacket)
|
: CommandPacket(rawPacket)
|
||||||
{
|
{
|
||||||
if (this->data.size() < 26) {
|
if (this->data.size() < 26) {
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ namespace Bloom::DebugServer::Gdb::AvrGdb::CommandPackets
|
|||||||
*/
|
*/
|
||||||
std::uint32_t length = 0;
|
std::uint32_t length = 0;
|
||||||
|
|
||||||
explicit ReadMemoryMap(const RawPacketType& rawPacket);
|
explicit ReadMemoryMap(const RawPacket& rawPacket);
|
||||||
|
|
||||||
void handle(
|
void handle(
|
||||||
DebugSession& debugSession,
|
DebugSession& debugSession,
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ namespace Bloom::DebugServer::Gdb::AvrGdb::CommandPackets
|
|||||||
|
|
||||||
using namespace Bloom::Exceptions;
|
using namespace Bloom::Exceptions;
|
||||||
|
|
||||||
WriteMemory::WriteMemory(const RawPacketType& rawPacket, const TargetDescriptor& gdbTargetDescriptor)
|
WriteMemory::WriteMemory(const RawPacket& rawPacket, const TargetDescriptor& gdbTargetDescriptor)
|
||||||
: CommandPacket(rawPacket)
|
: CommandPacket(rawPacket)
|
||||||
{
|
{
|
||||||
if (this->data.size() < 4) {
|
if (this->data.size() < 4) {
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ namespace Bloom::DebugServer::Gdb::AvrGdb::CommandPackets
|
|||||||
*/
|
*/
|
||||||
Targets::TargetMemoryBuffer buffer;
|
Targets::TargetMemoryBuffer buffer;
|
||||||
|
|
||||||
explicit WriteMemory(const RawPacketType& rawPacket, const Gdb::TargetDescriptor& gdbTargetDescriptor);
|
explicit WriteMemory(const RawPacket& rawPacket, const Gdb::TargetDescriptor& gdbTargetDescriptor);
|
||||||
|
|
||||||
void handle(
|
void handle(
|
||||||
DebugSession& debugSession,
|
DebugSession& debugSession,
|
||||||
|
|||||||
@@ -24,13 +24,13 @@ namespace Bloom::DebugServer::Gdb::AvrGdb
|
|||||||
this->loadRegisterMappings();
|
this->loadRegisterMappings();
|
||||||
}
|
}
|
||||||
|
|
||||||
std::optional<GdbRegisterNumberType> TargetDescriptor::getRegisterNumberFromTargetRegisterDescriptor(
|
std::optional<GdbRegisterNumber> TargetDescriptor::getRegisterNumberFromTargetRegisterDescriptor(
|
||||||
const Targets::TargetRegisterDescriptor& registerDescriptor
|
const Targets::TargetRegisterDescriptor& registerDescriptor
|
||||||
) const {
|
) const {
|
||||||
return this->targetRegisterDescriptorsByGdbNumber.valueAt(registerDescriptor);
|
return this->targetRegisterDescriptorsByGdbNumber.valueAt(registerDescriptor);
|
||||||
}
|
}
|
||||||
|
|
||||||
const RegisterDescriptor& TargetDescriptor::getRegisterDescriptorFromNumber(GdbRegisterNumberType number) const {
|
const RegisterDescriptor& TargetDescriptor::getRegisterDescriptorFromNumber(GdbRegisterNumber number) const {
|
||||||
if (this->registerDescriptorsByGdbNumber.contains(number)) {
|
if (this->registerDescriptorsByGdbNumber.contains(number)) {
|
||||||
return this->registerDescriptorsByGdbNumber.at(number);
|
return this->registerDescriptorsByGdbNumber.at(number);
|
||||||
}
|
}
|
||||||
@@ -40,7 +40,7 @@ namespace Bloom::DebugServer::Gdb::AvrGdb
|
|||||||
}
|
}
|
||||||
|
|
||||||
const TargetRegisterDescriptor& TargetDescriptor::getTargetRegisterDescriptorFromNumber(
|
const TargetRegisterDescriptor& TargetDescriptor::getTargetRegisterDescriptorFromNumber(
|
||||||
GdbRegisterNumberType number
|
GdbRegisterNumber number
|
||||||
) const {
|
) const {
|
||||||
if (this->targetRegisterDescriptorsByGdbNumber.contains(number)) {
|
if (this->targetRegisterDescriptorsByGdbNumber.contains(number)) {
|
||||||
return this->targetRegisterDescriptorsByGdbNumber.at(number);
|
return this->targetRegisterDescriptorsByGdbNumber.at(number);
|
||||||
@@ -50,7 +50,7 @@ namespace Bloom::DebugServer::Gdb::AvrGdb
|
|||||||
+ ") not mapped to any target register descriptor.");
|
+ ") not mapped to any target register descriptor.");
|
||||||
}
|
}
|
||||||
|
|
||||||
const std::vector<GdbRegisterNumberType>& TargetDescriptor::getRegisterNumbers() const {
|
const std::vector<GdbRegisterNumber>& TargetDescriptor::getRegisterNumbers() const {
|
||||||
return this->registerNumbers;
|
return this->registerNumbers;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -98,7 +98,7 @@ namespace Bloom::DebugServer::Gdb::AvrGdb
|
|||||||
);
|
);
|
||||||
|
|
||||||
// General purpose registers
|
// General purpose registers
|
||||||
GdbRegisterNumberType regNumber = 0;
|
GdbRegisterNumber regNumber = 0;
|
||||||
for (const auto& descriptor : gpRegisterDescriptors) {
|
for (const auto& descriptor : gpRegisterDescriptors) {
|
||||||
this->registerDescriptorsByGdbNumber.insert(std::pair(
|
this->registerDescriptorsByGdbNumber.insert(std::pair(
|
||||||
regNumber,
|
regNumber,
|
||||||
|
|||||||
@@ -9,8 +9,8 @@ namespace Bloom::DebugServer::Gdb::AvrGdb
|
|||||||
class TargetDescriptor: public DebugServer::Gdb::TargetDescriptor
|
class TargetDescriptor: public DebugServer::Gdb::TargetDescriptor
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
BiMap<GdbRegisterNumberType, RegisterDescriptor> registerDescriptorsByGdbNumber = {};
|
BiMap<GdbRegisterNumber, RegisterDescriptor> registerDescriptorsByGdbNumber = {};
|
||||||
BiMap<GdbRegisterNumberType, Targets::TargetRegisterDescriptor> targetRegisterDescriptorsByGdbNumber = {};
|
BiMap<GdbRegisterNumber, Targets::TargetRegisterDescriptor> targetRegisterDescriptorsByGdbNumber = {};
|
||||||
|
|
||||||
explicit TargetDescriptor(const Targets::TargetDescriptor& targetDescriptor);
|
explicit TargetDescriptor(const Targets::TargetDescriptor& targetDescriptor);
|
||||||
|
|
||||||
@@ -21,7 +21,7 @@ namespace Bloom::DebugServer::Gdb::AvrGdb
|
|||||||
* @param registerDescriptor
|
* @param registerDescriptor
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
std::optional<GdbRegisterNumberType> getRegisterNumberFromTargetRegisterDescriptor(
|
std::optional<GdbRegisterNumber> getRegisterNumberFromTargetRegisterDescriptor(
|
||||||
const Targets::TargetRegisterDescriptor& registerDescriptor
|
const Targets::TargetRegisterDescriptor& registerDescriptor
|
||||||
) const override;
|
) const override;
|
||||||
|
|
||||||
@@ -31,7 +31,7 @@ namespace Bloom::DebugServer::Gdb::AvrGdb
|
|||||||
* @param number
|
* @param number
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
const RegisterDescriptor& getRegisterDescriptorFromNumber(GdbRegisterNumberType number) const override;
|
const RegisterDescriptor& getRegisterDescriptorFromNumber(GdbRegisterNumber number) const override;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Should retrieve the mapped target register descriptor for a given GDB register number.
|
* Should retrieve the mapped target register descriptor for a given GDB register number.
|
||||||
@@ -40,13 +40,13 @@ namespace Bloom::DebugServer::Gdb::AvrGdb
|
|||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
const Targets::TargetRegisterDescriptor& getTargetRegisterDescriptorFromNumber(
|
const Targets::TargetRegisterDescriptor& getTargetRegisterDescriptorFromNumber(
|
||||||
GdbRegisterNumberType number
|
GdbRegisterNumber number
|
||||||
) const override;
|
) const override;
|
||||||
|
|
||||||
const std::vector<GdbRegisterNumberType>& getRegisterNumbers() const override;
|
const std::vector<GdbRegisterNumber>& getRegisterNumbers() const override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
std::vector<GdbRegisterNumberType> registerNumbers = std::vector<GdbRegisterNumberType>(35);
|
std::vector<GdbRegisterNumber> registerNumbers = std::vector<GdbRegisterNumber>(35);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* For AVR targets, avr-gdb defines 35 registers in total:
|
* For AVR targets, avr-gdb defines 35 registers in total:
|
||||||
|
|||||||
@@ -36,7 +36,7 @@ namespace Bloom::DebugServer::Gdb::CommandPackets
|
|||||||
class CommandPacket: public Packet
|
class CommandPacket: public Packet
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
explicit CommandPacket(const RawPacketType& rawPacket): Packet(rawPacket) {}
|
explicit CommandPacket(const RawPacket& rawPacket): Packet(rawPacket) {}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Should handle the command for the current active debug session.
|
* Should handle the command for the current active debug session.
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ namespace Bloom::DebugServer::Gdb::CommandPackets
|
|||||||
using ResponsePackets::ErrorResponsePacket;
|
using ResponsePackets::ErrorResponsePacket;
|
||||||
using Exceptions::Exception;
|
using Exceptions::Exception;
|
||||||
|
|
||||||
ContinueExecution::ContinueExecution(const RawPacketType& rawPacket)
|
ContinueExecution::ContinueExecution(const RawPacket& rawPacket)
|
||||||
: CommandPacket(rawPacket)
|
: CommandPacket(rawPacket)
|
||||||
{
|
{
|
||||||
if (this->data.size() > 1) {
|
if (this->data.size() > 1) {
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ namespace Bloom::DebugServer::Gdb::CommandPackets
|
|||||||
*/
|
*/
|
||||||
std::optional<Targets::TargetProgramCounter> fromProgramCounter;
|
std::optional<Targets::TargetProgramCounter> fromProgramCounter;
|
||||||
|
|
||||||
explicit ContinueExecution(const RawPacketType& rawPacket);
|
explicit ContinueExecution(const RawPacket& rawPacket);
|
||||||
|
|
||||||
void handle(
|
void handle(
|
||||||
DebugSession& debugSession,
|
DebugSession& debugSession,
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ namespace Bloom::DebugServer::Gdb::CommandPackets
|
|||||||
|
|
||||||
using Exceptions::Exception;
|
using Exceptions::Exception;
|
||||||
|
|
||||||
Detach::Detach(const RawPacketType& rawPacket)
|
Detach::Detach(const RawPacket& rawPacket)
|
||||||
: CommandPacket(rawPacket)
|
: CommandPacket(rawPacket)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ namespace Bloom::DebugServer::Gdb::CommandPackets
|
|||||||
class Detach: public CommandPacket
|
class Detach: public CommandPacket
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
explicit Detach(const RawPacketType& rawPacket);
|
explicit Detach(const RawPacket& rawPacket);
|
||||||
|
|
||||||
void handle(
|
void handle(
|
||||||
DebugSession& debugSession,
|
DebugSession& debugSession,
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ namespace Bloom::DebugServer::Gdb::CommandPackets
|
|||||||
class InterruptExecution: public CommandPacket
|
class InterruptExecution: public CommandPacket
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
explicit InterruptExecution(const RawPacketType& rawPacket): CommandPacket(rawPacket) {}
|
explicit InterruptExecution(const RawPacket& rawPacket): CommandPacket(rawPacket) {}
|
||||||
|
|
||||||
void handle(
|
void handle(
|
||||||
DebugSession& debugSession,
|
DebugSession& debugSession,
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ namespace Bloom::DebugServer::Gdb::CommandPackets
|
|||||||
|
|
||||||
using ResponsePackets::EmptyResponsePacket;
|
using ResponsePackets::EmptyResponsePacket;
|
||||||
|
|
||||||
Monitor::Monitor(const RawPacketType& rawPacket)
|
Monitor::Monitor(const RawPacket& rawPacket)
|
||||||
: CommandPacket(rawPacket)
|
: CommandPacket(rawPacket)
|
||||||
{
|
{
|
||||||
if (this->data.size() > 6) {
|
if (this->data.size() > 6) {
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ namespace Bloom::DebugServer::Gdb::CommandPackets
|
|||||||
*/
|
*/
|
||||||
std::string command;
|
std::string command;
|
||||||
|
|
||||||
explicit Monitor(const RawPacketType& rawPacket);
|
explicit Monitor(const RawPacket& rawPacket);
|
||||||
|
|
||||||
void handle(
|
void handle(
|
||||||
DebugSession& debugSession,
|
DebugSession& debugSession,
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ namespace Bloom::DebugServer::Gdb::CommandPackets
|
|||||||
|
|
||||||
using Exceptions::Exception;
|
using Exceptions::Exception;
|
||||||
|
|
||||||
ReadRegisters::ReadRegisters(const RawPacketType& rawPacket)
|
ReadRegisters::ReadRegisters(const RawPacket& rawPacket)
|
||||||
: CommandPacket(rawPacket)
|
: CommandPacket(rawPacket)
|
||||||
{
|
{
|
||||||
if (this->data.size() >= 2 && this->data.front() == 'p') {
|
if (this->data.size() >= 2 && this->data.front() == 'p') {
|
||||||
|
|||||||
@@ -23,9 +23,9 @@ namespace Bloom::DebugServer::Gdb::CommandPackets
|
|||||||
* If the register number is not supplied (as is the case with "g" packets), the server is expected to respond
|
* If the register number is not supplied (as is the case with "g" packets), the server is expected to respond
|
||||||
* with values for all registers.
|
* with values for all registers.
|
||||||
*/
|
*/
|
||||||
std::optional<GdbRegisterNumberType> registerNumber;
|
std::optional<GdbRegisterNumber> registerNumber;
|
||||||
|
|
||||||
explicit ReadRegisters(const RawPacketType& rawPacket);
|
explicit ReadRegisters(const RawPacket& rawPacket);
|
||||||
|
|
||||||
void handle(
|
void handle(
|
||||||
DebugSession& debugSession,
|
DebugSession& debugSession,
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ namespace Bloom::DebugServer::Gdb::CommandPackets
|
|||||||
|
|
||||||
using Exceptions::Exception;
|
using Exceptions::Exception;
|
||||||
|
|
||||||
RemoveBreakpoint::RemoveBreakpoint(const RawPacketType& rawPacket)
|
RemoveBreakpoint::RemoveBreakpoint(const RawPacket& rawPacket)
|
||||||
: CommandPacket(rawPacket)
|
: CommandPacket(rawPacket)
|
||||||
{
|
{
|
||||||
if (this->data.size() < 6) {
|
if (this->data.size() < 6) {
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ namespace Bloom::DebugServer::Gdb::CommandPackets
|
|||||||
*/
|
*/
|
||||||
Targets::TargetMemoryAddress address = 0;
|
Targets::TargetMemoryAddress address = 0;
|
||||||
|
|
||||||
explicit RemoveBreakpoint(const RawPacketType& rawPacket);
|
explicit RemoveBreakpoint(const RawPacket& rawPacket);
|
||||||
|
|
||||||
void handle(
|
void handle(
|
||||||
DebugSession& debugSession,
|
DebugSession& debugSession,
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ namespace Bloom::DebugServer::Gdb::CommandPackets
|
|||||||
|
|
||||||
using Exceptions::Exception;
|
using Exceptions::Exception;
|
||||||
|
|
||||||
SetBreakpoint::SetBreakpoint(const RawPacketType& rawPacket)
|
SetBreakpoint::SetBreakpoint(const RawPacket& rawPacket)
|
||||||
: CommandPacket(rawPacket)
|
: CommandPacket(rawPacket)
|
||||||
{
|
{
|
||||||
if (this->data.size() < 6) {
|
if (this->data.size() < 6) {
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ namespace Bloom::DebugServer::Gdb::CommandPackets
|
|||||||
*/
|
*/
|
||||||
Targets::TargetMemoryAddress address = 0;
|
Targets::TargetMemoryAddress address = 0;
|
||||||
|
|
||||||
explicit SetBreakpoint(const RawPacketType& rawPacket);
|
explicit SetBreakpoint(const RawPacket& rawPacket);
|
||||||
|
|
||||||
void handle(
|
void handle(
|
||||||
DebugSession& debugSession,
|
DebugSession& debugSession,
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ namespace Bloom::DebugServer::Gdb::CommandPackets
|
|||||||
|
|
||||||
using Exceptions::Exception;
|
using Exceptions::Exception;
|
||||||
|
|
||||||
StepExecution::StepExecution(const RawPacketType& rawPacket)
|
StepExecution::StepExecution(const RawPacket& rawPacket)
|
||||||
: CommandPacket(rawPacket)
|
: CommandPacket(rawPacket)
|
||||||
{
|
{
|
||||||
if (this->data.size() > 1) {
|
if (this->data.size() > 1) {
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ namespace Bloom::DebugServer::Gdb::CommandPackets
|
|||||||
*/
|
*/
|
||||||
std::optional<Targets::TargetProgramCounter> fromProgramCounter;
|
std::optional<Targets::TargetProgramCounter> fromProgramCounter;
|
||||||
|
|
||||||
explicit StepExecution(const RawPacketType& rawPacket);
|
explicit StepExecution(const RawPacket& rawPacket);
|
||||||
|
|
||||||
void handle(
|
void handle(
|
||||||
DebugSession& debugSession,
|
DebugSession& debugSession,
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ namespace Bloom::DebugServer::Gdb::CommandPackets
|
|||||||
using Bloom::Exceptions::Exception;
|
using Bloom::Exceptions::Exception;
|
||||||
using Gdb::Exceptions::ClientNotSupported;
|
using Gdb::Exceptions::ClientNotSupported;
|
||||||
|
|
||||||
SupportedFeaturesQuery::SupportedFeaturesQuery(const RawPacketType& rawPacket)
|
SupportedFeaturesQuery::SupportedFeaturesQuery(const RawPacket& rawPacket)
|
||||||
: CommandPacket(rawPacket)
|
: CommandPacket(rawPacket)
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ namespace Bloom::DebugServer::Gdb::CommandPackets
|
|||||||
class SupportedFeaturesQuery: public CommandPacket
|
class SupportedFeaturesQuery: public CommandPacket
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
explicit SupportedFeaturesQuery(const RawPacketType& rawPacket);
|
explicit SupportedFeaturesQuery(const RawPacket& rawPacket);
|
||||||
|
|
||||||
[[nodiscard]] bool isFeatureSupported(const Feature& feature) const {
|
[[nodiscard]] bool isFeatureSupported(const Feature& feature) const {
|
||||||
return this->supportedFeatures.find(feature) != this->supportedFeatures.end();
|
return this->supportedFeatures.find(feature) != this->supportedFeatures.end();
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ namespace Bloom::DebugServer::Gdb::CommandPackets
|
|||||||
|
|
||||||
using Exceptions::Exception;
|
using Exceptions::Exception;
|
||||||
|
|
||||||
WriteRegister::WriteRegister(const RawPacketType& rawPacket)
|
WriteRegister::WriteRegister(const RawPacket& rawPacket)
|
||||||
: CommandPacket(rawPacket)
|
: CommandPacket(rawPacket)
|
||||||
{
|
{
|
||||||
// The P packet updates a single register
|
// The P packet updates a single register
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ namespace Bloom::DebugServer::Gdb::CommandPackets
|
|||||||
int registerNumber = 0;
|
int registerNumber = 0;
|
||||||
std::vector<unsigned char> registerValue;
|
std::vector<unsigned char> registerValue;
|
||||||
|
|
||||||
explicit WriteRegister(const RawPacketType& rawPacket);
|
explicit WriteRegister(const RawPacket& rawPacket);
|
||||||
|
|
||||||
void handle(
|
void handle(
|
||||||
DebugSession& debugSession,
|
DebugSession& debugSession,
|
||||||
|
|||||||
@@ -51,8 +51,8 @@ namespace Bloom::DebugServer::Gdb
|
|||||||
return std::string(ipAddress.data());
|
return std::string(ipAddress.data());
|
||||||
}
|
}
|
||||||
|
|
||||||
std::vector<RawPacketType> Connection::readRawPackets() {
|
std::vector<RawPacket> Connection::readRawPackets() {
|
||||||
std::vector<RawPacketType> output;
|
std::vector<RawPacket> output;
|
||||||
|
|
||||||
const auto bytes = this->read();
|
const auto bytes = this->read();
|
||||||
|
|
||||||
@@ -71,7 +71,7 @@ namespace Bloom::DebugServer::Gdb
|
|||||||
|
|
||||||
} else if (byte == '$') {
|
} else if (byte == '$') {
|
||||||
// Beginning of packet
|
// Beginning of packet
|
||||||
RawPacketType rawPacket;
|
RawPacket rawPacket;
|
||||||
rawPacket.push_back('$');
|
rawPacket.push_back('$');
|
||||||
|
|
||||||
auto packetIndex = byteIndex;
|
auto packetIndex = byteIndex;
|
||||||
|
|||||||
@@ -57,7 +57,7 @@ namespace Bloom::DebugServer::Gdb
|
|||||||
*
|
*
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
std::vector<RawPacketType> readRawPackets();
|
std::vector<RawPacket> readRawPackets();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sends a response packet to the client.
|
* Sends a response packet to the client.
|
||||||
|
|||||||
@@ -254,7 +254,7 @@ namespace Bloom::DebugServer::Gdb
|
|||||||
return this->resolveCommandPacket(rawPackets.back());
|
return this->resolveCommandPacket(rawPackets.back());
|
||||||
}
|
}
|
||||||
|
|
||||||
std::unique_ptr<CommandPacket> GdbRspDebugServer::resolveCommandPacket(const RawPacketType& rawPacket) {
|
std::unique_ptr<CommandPacket> GdbRspDebugServer::resolveCommandPacket(const RawPacket& rawPacket) {
|
||||||
if (rawPacket.size() == 5 && rawPacket[1] == 0x03) {
|
if (rawPacket.size() == 5 && rawPacket[1] == 0x03) {
|
||||||
// Interrupt request
|
// Interrupt request
|
||||||
return std::make_unique<CommandPackets::InterruptExecution>(rawPacket);
|
return std::make_unique<CommandPackets::InterruptExecution>(rawPacket);
|
||||||
|
|||||||
@@ -161,7 +161,7 @@ namespace Bloom::DebugServer::Gdb
|
|||||||
* @param rawPacket
|
* @param rawPacket
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
virtual std::unique_ptr<CommandPackets::CommandPacket> resolveCommandPacket(const RawPacketType& rawPacket);
|
virtual std::unique_ptr<CommandPackets::CommandPacket> resolveCommandPacket(const RawPacket& rawPacket);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Should return a set of GDB features supported by the GDB server. Each supported feature may come with an
|
* Should return a set of GDB features supported by the GDB server. Each supported feature may come with an
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
|
|
||||||
namespace Bloom::DebugServer::Gdb
|
namespace Bloom::DebugServer::Gdb
|
||||||
{
|
{
|
||||||
using RawPacketType = std::vector<unsigned char>;
|
using RawPacket = std::vector<unsigned char>;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The Packet class implements the data structure for GDB RSP packets.
|
* The Packet class implements the data structure for GDB RSP packets.
|
||||||
@@ -19,7 +19,7 @@ namespace Bloom::DebugServer::Gdb
|
|||||||
class Packet
|
class Packet
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
explicit Packet(const RawPacketType& rawPacket) {
|
explicit Packet(const RawPacket& rawPacket) {
|
||||||
this->init(rawPacket);
|
this->init(rawPacket);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -45,7 +45,7 @@ namespace Bloom::DebugServer::Gdb
|
|||||||
*
|
*
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
[[nodiscard]] RawPacketType toRawPacket() const {
|
[[nodiscard]] RawPacket toRawPacket() const {
|
||||||
std::vector<unsigned char> packet = {'$'};
|
std::vector<unsigned char> packet = {'$'};
|
||||||
auto data = this->getData();
|
auto data = this->getData();
|
||||||
|
|
||||||
@@ -139,7 +139,7 @@ namespace Bloom::DebugServer::Gdb
|
|||||||
protected:
|
protected:
|
||||||
std::vector<unsigned char> data;
|
std::vector<unsigned char> data;
|
||||||
|
|
||||||
void init(const RawPacketType& rawPacket) {
|
void init(const RawPacket& rawPacket) {
|
||||||
this->data.insert(
|
this->data.insert(
|
||||||
this->data.begin(),
|
this->data.begin(),
|
||||||
rawPacket.begin() + 1,
|
rawPacket.begin() + 1,
|
||||||
|
|||||||
@@ -51,7 +51,7 @@ public:
|
|||||||
*/
|
*/
|
||||||
std::uint32_t address = 0;
|
std::uint32_t address = 0;
|
||||||
|
|
||||||
explicit SetBreakpoint(const RawPacketType& rawPacket);
|
explicit SetBreakpoint(const RawPacket& rawPacket);
|
||||||
|
|
||||||
void handle(DebugSession& debugSession, TargetControllerConsole& targetControllerConsole) override;
|
void handle(DebugSession& debugSession, TargetControllerConsole& targetControllerConsole) override;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
namespace Bloom::DebugServer::Gdb
|
namespace Bloom::DebugServer::Gdb
|
||||||
{
|
{
|
||||||
using GdbRegisterNumberType = int;
|
using GdbRegisterNumber = int;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* GDB defines a set of registers for each target architecture.
|
* GDB defines a set of registers for each target architecture.
|
||||||
@@ -14,12 +14,15 @@ namespace Bloom::DebugServer::Gdb
|
|||||||
*/
|
*/
|
||||||
struct RegisterDescriptor
|
struct RegisterDescriptor
|
||||||
{
|
{
|
||||||
GdbRegisterNumberType number;
|
GdbRegisterNumber number;
|
||||||
std::uint16_t size;
|
std::uint16_t size;
|
||||||
std::string name;
|
std::string name;
|
||||||
|
|
||||||
RegisterDescriptor(GdbRegisterNumberType number, std::uint16_t size, const std::string& name)
|
RegisterDescriptor(GdbRegisterNumber number, std::uint16_t size, const std::string& name)
|
||||||
: number(number), size(size), name(name) {};
|
: number(number)
|
||||||
|
, size(size)
|
||||||
|
, name(name)
|
||||||
|
{};
|
||||||
|
|
||||||
bool operator == (const RegisterDescriptor& other) const {
|
bool operator == (const RegisterDescriptor& other) const {
|
||||||
return this->number == other.number;
|
return this->number == other.number;
|
||||||
|
|||||||
@@ -59,7 +59,7 @@ namespace Bloom::DebugServer::Gdb
|
|||||||
* @param registerDescriptor
|
* @param registerDescriptor
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
virtual std::optional<GdbRegisterNumberType> getRegisterNumberFromTargetRegisterDescriptor(
|
virtual std::optional<GdbRegisterNumber> getRegisterNumberFromTargetRegisterDescriptor(
|
||||||
const Targets::TargetRegisterDescriptor& registerDescriptor
|
const Targets::TargetRegisterDescriptor& registerDescriptor
|
||||||
) const = 0;
|
) const = 0;
|
||||||
|
|
||||||
@@ -69,7 +69,7 @@ namespace Bloom::DebugServer::Gdb
|
|||||||
* @param number
|
* @param number
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
virtual const RegisterDescriptor& getRegisterDescriptorFromNumber(GdbRegisterNumberType number) const = 0;
|
virtual const RegisterDescriptor& getRegisterDescriptorFromNumber(GdbRegisterNumber number) const = 0;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Should retrieve the mapped target register descriptor for a given GDB register number.
|
* Should retrieve the mapped target register descriptor for a given GDB register number.
|
||||||
@@ -78,7 +78,7 @@ namespace Bloom::DebugServer::Gdb
|
|||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
virtual const Targets::TargetRegisterDescriptor& getTargetRegisterDescriptorFromNumber(
|
virtual const Targets::TargetRegisterDescriptor& getTargetRegisterDescriptorFromNumber(
|
||||||
GdbRegisterNumberType number
|
GdbRegisterNumber number
|
||||||
) const = 0;
|
) const = 0;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -86,7 +86,7 @@ namespace Bloom::DebugServer::Gdb
|
|||||||
*
|
*
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
virtual const std::vector<GdbRegisterNumberType>& getRegisterNumbers() const = 0;
|
virtual const std::vector<GdbRegisterNumber>& getRegisterNumbers() const = 0;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
BiMap<Targets::TargetMemoryType, std::uint32_t> memoryOffsetsByType;
|
BiMap<Targets::TargetMemoryType, std::uint32_t> memoryOffsetsByType;
|
||||||
|
|||||||
@@ -68,9 +68,9 @@ namespace Bloom::Usb
|
|||||||
std::string getHidDevicePath();
|
std::string getHidDevicePath();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
using HidDeviceType = std::unique_ptr<::hid_device, decltype(&::hid_close)>;
|
using HidDevice = std::unique_ptr<::hid_device, decltype(&::hid_close)>;
|
||||||
|
|
||||||
HidDeviceType hidDevice = HidDeviceType(nullptr, ::hid_close);
|
HidDevice hidDevice = HidDevice(nullptr, ::hid_close);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* All HID reports have a fixed report length. This means that every packet we send or receive to/from an HID
|
* All HID reports have a fixed report length. This means that every packet we send or receive to/from an HID
|
||||||
|
|||||||
@@ -80,12 +80,12 @@ namespace Bloom::Usb
|
|||||||
::libusb_free_config_descriptor(configDescriptor);
|
::libusb_free_config_descriptor(configDescriptor);
|
||||||
}
|
}
|
||||||
|
|
||||||
std::vector<LibusbDeviceType> UsbDevice::findMatchingDevices(
|
std::vector<LibusbDevice> UsbDevice::findMatchingDevices(
|
||||||
std::uint16_t vendorId, std::uint16_t productId
|
std::uint16_t vendorId, std::uint16_t productId
|
||||||
) {
|
) {
|
||||||
::libusb_device** devices = nullptr;
|
::libusb_device** devices = nullptr;
|
||||||
::libusb_device* device;
|
::libusb_device* device;
|
||||||
std::vector<LibusbDeviceType> matchedDevices;
|
std::vector<LibusbDevice> matchedDevices;
|
||||||
|
|
||||||
auto libusbStatusCode = ::libusb_get_device_list(UsbDevice::libusbContext.get(), &devices);
|
auto libusbStatusCode = ::libusb_get_device_list(UsbDevice::libusbContext.get(), &devices);
|
||||||
if (libusbStatusCode < 0) {
|
if (libusbStatusCode < 0) {
|
||||||
@@ -96,7 +96,7 @@ namespace Bloom::Usb
|
|||||||
|
|
||||||
ssize_t i = 0;
|
ssize_t i = 0;
|
||||||
while ((device = devices[i++]) != nullptr) {
|
while ((device = devices[i++]) != nullptr) {
|
||||||
auto libusbDevice = LibusbDeviceType(device, ::libusb_unref_device);
|
auto libusbDevice = LibusbDevice(device, ::libusb_unref_device);
|
||||||
struct ::libusb_device_descriptor desc = {};
|
struct ::libusb_device_descriptor desc = {};
|
||||||
|
|
||||||
if ((libusbStatusCode = ::libusb_get_device_descriptor(device, &desc)) < 0) {
|
if ((libusbStatusCode = ::libusb_get_device_descriptor(device, &desc)) < 0) {
|
||||||
|
|||||||
@@ -10,9 +10,9 @@
|
|||||||
|
|
||||||
namespace Bloom::Usb
|
namespace Bloom::Usb
|
||||||
{
|
{
|
||||||
using LibusbContextType = std::unique_ptr<::libusb_context, decltype(&::libusb_exit)>;
|
using LibusbContext = std::unique_ptr<::libusb_context, decltype(&::libusb_exit)>;
|
||||||
using LibusbDeviceType = std::unique_ptr<::libusb_device, decltype(&::libusb_unref_device)>;
|
using LibusbDevice = std::unique_ptr<::libusb_device, decltype(&::libusb_unref_device)>;
|
||||||
using LibusbDeviceHandleType = std::unique_ptr<::libusb_device_handle, decltype(&::libusb_close)>;
|
using LibusbDeviceHandle = std::unique_ptr<::libusb_device_handle, decltype(&::libusb_close)>;
|
||||||
|
|
||||||
class UsbDevice
|
class UsbDevice
|
||||||
{
|
{
|
||||||
@@ -40,12 +40,12 @@ namespace Bloom::Usb
|
|||||||
virtual ~UsbDevice();
|
virtual ~UsbDevice();
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
static inline LibusbContextType libusbContext = LibusbContextType(nullptr, ::libusb_exit);
|
static inline LibusbContext libusbContext = LibusbContext(nullptr, ::libusb_exit);
|
||||||
|
|
||||||
LibusbDeviceType libusbDevice = LibusbDeviceType(nullptr, ::libusb_unref_device);
|
LibusbDevice libusbDevice = LibusbDevice(nullptr, ::libusb_unref_device);
|
||||||
LibusbDeviceHandleType libusbDeviceHandle = LibusbDeviceHandleType(nullptr, ::libusb_close);
|
LibusbDeviceHandle libusbDeviceHandle = LibusbDeviceHandle(nullptr, ::libusb_close);
|
||||||
|
|
||||||
std::vector<LibusbDeviceType> findMatchingDevices(std::uint16_t vendorId, std::uint16_t productId);
|
std::vector<LibusbDevice> findMatchingDevices(std::uint16_t vendorId, std::uint16_t productId);
|
||||||
|
|
||||||
void detachKernelDriverFromInterface(std::uint8_t interfaceNumber);
|
void detachKernelDriverFromInterface(std::uint8_t interfaceNumber);
|
||||||
|
|
||||||
|
|||||||
@@ -47,15 +47,15 @@ namespace Bloom
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
Process::ProcT Process::getProcessInfo(::pid_t processId) {
|
Process::Proc Process::getProcessInfo(::pid_t processId) {
|
||||||
auto proc = std::unique_ptr<::PROCTAB, decltype(&::closeproc)>(
|
auto proc = std::unique_ptr<::PROCTAB, decltype(&::closeproc)>(
|
||||||
::openproc(PROC_FILLSTAT | PROC_FILLARG | PROC_PID, &processId),
|
::openproc(PROC_FILLSTAT | PROC_FILLARG | PROC_PID, &processId),
|
||||||
::closeproc
|
::closeproc
|
||||||
);
|
);
|
||||||
auto processInfo = ProcT(::readproc(proc.get(), NULL), ::freeproc);
|
auto processInfo = Proc(::readproc(proc.get(), NULL), ::freeproc);
|
||||||
|
|
||||||
if (processInfo == NULL) {
|
if (processInfo == NULL) {
|
||||||
return ProcT(nullptr, ::freeproc);
|
return Proc(nullptr, ::freeproc);
|
||||||
}
|
}
|
||||||
|
|
||||||
return processInfo;
|
return processInfo;
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ namespace Bloom
|
|||||||
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
using ProcT = std::unique_ptr<::proc_t, decltype(&::freeproc)>;
|
using Proc = std::unique_ptr<::proc_t, decltype(&::freeproc)>;
|
||||||
static ProcT getProcessInfo(::pid_t processId);
|
static Proc getProcessInfo(::pid_t processId);
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ namespace Bloom
|
|||||||
};
|
};
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void targetPinStatesRetrieved(Bloom::Targets::TargetPinStateMappingType pinStatesByNumber);
|
void targetPinStatesRetrieved(Bloom::Targets::TargetPinStateMapping pinStatesByNumber);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
void run(TargetController::TargetControllerConsole& targetControllerConsole) override;
|
void run(TargetController::TargetControllerConsole& targetControllerConsole) override;
|
||||||
|
|||||||
@@ -71,7 +71,7 @@ namespace Bloom::Widgets::InsightTargetWidgets
|
|||||||
InsightWorker::queueTask(refreshTask);
|
InsightWorker::queueTask(refreshTask);
|
||||||
}
|
}
|
||||||
|
|
||||||
void TargetPackageWidget::updatePinStates(const Targets::TargetPinStateMappingType& pinStatesByNumber) {
|
void TargetPackageWidget::updatePinStates(const Targets::TargetPinStateMapping& pinStatesByNumber) {
|
||||||
for (auto& pinWidget : this->pinWidgets) {
|
for (auto& pinWidget : this->pinWidgets) {
|
||||||
auto pinNumber = pinWidget->getPinNumber();
|
auto pinNumber = pinWidget->getPinNumber();
|
||||||
if (pinStatesByNumber.contains(pinNumber)) {
|
if (pinStatesByNumber.contains(pinNumber)) {
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ namespace Bloom::Widgets::InsightTargetWidgets
|
|||||||
|
|
||||||
Targets::TargetState targetState = Targets::TargetState::UNKNOWN;
|
Targets::TargetState targetState = Targets::TargetState::UNKNOWN;
|
||||||
|
|
||||||
virtual void updatePinStates(const Targets::TargetPinStateMappingType& pinStatesByNumber);
|
virtual void updatePinStates(const Targets::TargetPinStateMapping& pinStatesByNumber);
|
||||||
void onTargetStateChanged(Targets::TargetState newState);
|
void onTargetStateChanged(Targets::TargetState newState);
|
||||||
void onProgrammingModeEnabled();
|
void onProgrammingModeEnabled();
|
||||||
void onProgrammingModeDisabled();
|
void onProgrammingModeDisabled();
|
||||||
|
|||||||
@@ -11,9 +11,9 @@ namespace Bloom::TargetController::Responses
|
|||||||
public:
|
public:
|
||||||
static constexpr ResponseType type = ResponseType::TARGET_PIN_STATES;
|
static constexpr ResponseType type = ResponseType::TARGET_PIN_STATES;
|
||||||
|
|
||||||
Targets::TargetPinStateMappingType pinStatesByNumber;
|
Targets::TargetPinStateMapping pinStatesByNumber;
|
||||||
|
|
||||||
explicit TargetPinStates(const Targets::TargetPinStateMappingType& pinStatesByNumber)
|
explicit TargetPinStates(const Targets::TargetPinStateMapping& pinStatesByNumber)
|
||||||
: pinStatesByNumber(pinStatesByNumber)
|
: pinStatesByNumber(pinStatesByNumber)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
|||||||
@@ -67,7 +67,7 @@ namespace Bloom::TargetController
|
|||||||
|
|
||||||
using Targets::TargetPinDescriptor;
|
using Targets::TargetPinDescriptor;
|
||||||
using Targets::TargetPinState;
|
using Targets::TargetPinState;
|
||||||
using Targets::TargetPinStateMappingType;
|
using Targets::TargetPinStateMapping;
|
||||||
|
|
||||||
TargetControllerState TargetControllerConsole::getTargetControllerState() {
|
TargetControllerState TargetControllerConsole::getTargetControllerState() {
|
||||||
return this->commandManager.sendCommandAndWaitForResponse(
|
return this->commandManager.sendCommandAndWaitForResponse(
|
||||||
@@ -218,7 +218,7 @@ namespace Bloom::TargetController
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
TargetPinStateMappingType TargetControllerConsole::getPinStates(int variantId) {
|
TargetPinStateMapping TargetControllerConsole::getPinStates(int variantId) {
|
||||||
return this->commandManager.sendCommandAndWaitForResponse(
|
return this->commandManager.sendCommandAndWaitForResponse(
|
||||||
std::make_unique<GetTargetPinStates>(variantId),
|
std::make_unique<GetTargetPinStates>(variantId),
|
||||||
this->defaultTimeout
|
this->defaultTimeout
|
||||||
|
|||||||
@@ -171,7 +171,7 @@ namespace Bloom::TargetController
|
|||||||
*
|
*
|
||||||
* @param variantId
|
* @param variantId
|
||||||
*/
|
*/
|
||||||
Targets::TargetPinStateMappingType getPinStates(int variantId);
|
Targets::TargetPinStateMapping getPinStates(int variantId);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Updates the pin state on the target, for a specific pin.
|
* Updates the pin state on the target, for a specific pin.
|
||||||
|
|||||||
@@ -57,9 +57,9 @@ namespace Bloom::Targets
|
|||||||
std::optional<IoDirection> ioDirection;
|
std::optional<IoDirection> ioDirection;
|
||||||
};
|
};
|
||||||
|
|
||||||
using TargetPinStateMappingType = std::map<int, Bloom::Targets::TargetPinState>;
|
using TargetPinStateMapping = std::map<int, Bloom::Targets::TargetPinState>;
|
||||||
}
|
}
|
||||||
|
|
||||||
Q_DECLARE_METATYPE(Bloom::Targets::TargetPinDescriptor)
|
Q_DECLARE_METATYPE(Bloom::Targets::TargetPinDescriptor)
|
||||||
Q_DECLARE_METATYPE(Bloom::Targets::TargetPinState)
|
Q_DECLARE_METATYPE(Bloom::Targets::TargetPinState)
|
||||||
Q_DECLARE_METATYPE(Bloom::Targets::TargetPinStateMappingType)
|
Q_DECLARE_METATYPE(Bloom::Targets::TargetPinStateMapping)
|
||||||
|
|||||||
Reference in New Issue
Block a user