On this page
article
peary/device/AuxiliaryDevice.hpp
peary/device/AuxiliaryDevice.hpp
Caribou Auxiliary Device Class. More…
Namespaces
| Name |
|---|
| peary |
| peary::device Forward declaration of CaribouDevice, Board, and Carboard classes. |
Classes
| Name | |
|---|---|
| class | peary::device::AuxiliaryDevice Caribou Auxiliary Device class definition. |
Detailed Description
Caribou Auxiliary Device Class.
Copyright: Copyright (c) 2016-2025 CERN and the Peary Caribou authors. This software is distributed under the terms of the LGPL-3.0-only License, copied verbatim in the file “LICENSE.md”. SPDX-License-Identifier: LGPL-3.0-only
Source code
#pragma once
#include <string>
#include <vector>
#include "peary/config/configuration.hpp"
#include "peary/interfaces/Interface.hpp"
#include "peary/interfaces/InterfaceManager.hpp"
#include "Device.hpp"
namespace peary::device {
template <typename T> class AuxiliaryDevice : public Device {
public:
AuxiliaryDevice(const config::Configuration config, const typename T::configuration_type interfaceConfig);
virtual ~AuxiliaryDevice();
virtual std::string getName() override { return getType(); };
std::string getType() override;
virtual std::string getFirmwareVersion() override { return std::string(); };
utils::pearyRawData getRawData() override;
utils::pearyRawDataVector getRawData(const unsigned int noFrames) override;
utils::pearydata getData() override;
utils::pearydataVector getData(const unsigned int noFrames) override;
virtual void powerOn() override {};
virtual void powerOff() override {};
virtual void daqStart() override {};
virtual void daqStop() override {};
virtual void setRegister(std::string, uintptr_t) override {};
virtual uintptr_t getRegister(std::string) override { return uintptr_t(); };
virtual std::vector<std::pair<std::string, uintptr_t>> getRegisters() override {
return std::vector<std::pair<std::string, uintptr_t>>();
};
virtual std::vector<std::string> listMemories() override { return std::vector<std::string>(); }
virtual std::vector<std::string> listRegisters() override { return std::vector<std::string>(); }
virtual std::vector<std::pair<std::string, std::string>> listResources() override {
return std::vector<std::pair<std::string, std::string>>();
};
virtual void configureClock(const std::string&, const std::any&) override {};
virtual void disableClock(const std::string&) override {};
virtual bool isClockLocked(const std::string&) override { return bool(); };
virtual void setClockFrequency(const std::string&, uint64_t) override {};
virtual void setVoltage(const std::string&, double) override {};
virtual void setCurrentLimit(const std::string&, double) override {};
virtual void setCurrent(const std::string&, double, utils::Polarity) override {};
virtual void switchOn(const std::string&) override {};
virtual void switchOff(const std::string&) override {};
virtual double getVoltage(const std::string&) override { return double(); };
virtual double getCurrent(const std::string&) override { return double(); };
virtual double getPower(const std::string&) override { return double(); };
virtual void configure() override {};
virtual void set(std::string, uintptr_t) {};
virtual double get(std::string) { return double(); };
virtual void reset() override {};
virtual void setMemory(const std::string&, size_t, uintptr_t) override {};
virtual void setMemory(const std::string&, uintptr_t) override {};
virtual uintptr_t getMemory(const std::string&, size_t) override { return uintptr_t(); };
virtual uintptr_t getMemory(const std::string&) override { return uintptr_t(); };
virtual std::vector<std::pair<std::string, uintptr_t>> getMemories() override {
return std::vector<std::pair<std::string, uintptr_t>>();
};
protected:
typename T::data_type send(const typename T::data_type& data);
std::vector<typename T::data_type> send(const std::vector<typename T::data_type>& data);
std::pair<typename T::reg_type, typename T::data_type>
send(const std::pair<typename T::reg_type, typename T::data_type>& data);
std::vector<typename T::data_type> send(const typename T::reg_type& reg,
const std::vector<typename T::data_type>& data);
std::vector<std::pair<typename T::reg_type, typename T::data_type>>
send(const std::vector<std::pair<typename T::reg_type, typename T::data_type>>& data);
typename T::dataVector_type receive(const unsigned int length = 1);
typename T::dataVector_type receive(const typename T::reg_type reg, const unsigned int length = 1);
config::Configuration _config;
const typename T::configuration_type _interfaceConfig;
}; // class AuxiliaryDevice
} // namespace peary::device
#include "AuxiliaryDevice.tcc"
Updated on 2025-11-14 at 11:31:23 +0100