Began implementation of WCH-Link protocol, for the WCH-LinkE debug tool.
Foundations have been laid.
This commit is contained in:
44
src/DebugToolDrivers/WCH/WchLinkBase.hpp
Normal file
44
src/DebugToolDrivers/WCH/WchLinkBase.hpp
Normal file
@@ -0,0 +1,44 @@
|
||||
#pragma once
|
||||
|
||||
#include <cstdint>
|
||||
#include <memory>
|
||||
#include <optional>
|
||||
|
||||
#include "src/DebugToolDrivers/DebugTool.hpp"
|
||||
#include "src/DebugToolDrivers/USB/UsbDevice.hpp"
|
||||
|
||||
#include "Protocols/WchLink/WchLinkInterface.hpp"
|
||||
|
||||
#include "WchGeneric.hpp"
|
||||
#include "DeviceInfo.hpp"
|
||||
|
||||
namespace DebugToolDrivers::Wch
|
||||
{
|
||||
class WchLinkBase: public DebugTool, public Usb::UsbDevice
|
||||
{
|
||||
public:
|
||||
WchLinkBase(
|
||||
WchLinkVariant variant,
|
||||
std::uint16_t vendorId,
|
||||
std::uint16_t productId,
|
||||
std::uint8_t wchLinkUsbInterfaceNumber
|
||||
);
|
||||
|
||||
void init() override;
|
||||
|
||||
void close() override;
|
||||
|
||||
std::string getSerialNumber() override;
|
||||
|
||||
protected:
|
||||
WchLinkVariant variant;
|
||||
|
||||
std::uint8_t wchLinkUsbInterfaceNumber;
|
||||
std::unique_ptr<Usb::UsbInterface> wchLinkUsbInterface = nullptr;
|
||||
std::unique_ptr<Protocols::WchLink::WchLinkInterface> wchLinkInterface = nullptr;
|
||||
|
||||
mutable std::optional<DeviceInfo> cachedDeviceInfo = std::nullopt;
|
||||
|
||||
const DeviceInfo& getDeviceInfo() const;
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user