peary/interfaces/SPI_CLICpix2/spi_CLICpix2.hpp

Peary CLICpix2 SPI Interface. More…

Namespaces

Name
peary
peary::interface

Classes

Name
class peary::interface::iface_spi_CLICpix2 Class representing the SPI interface for CLICpix2 devices.

Detailed Description

Peary CLICpix2 SPI Interface.

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 "peary/interfaces/SPI/spi.hpp"

namespace peary::interface {

    /* SPI command interface class
     */
    class iface_spi_CLICpix2 : public iface_spi<> {

    protected:
        explicit iface_spi_CLICpix2(const Interface<>::configuration_type& config) : iface_spi<>(config) {};

        ~iface_spi_CLICpix2() override = default;

        // Allow InterfaceManager to access private members
        GENERATE_FRIENDS()

        
        std::pair<iface_spi<>::spi_reg_t, spi_t> write(const std::pair<iface_spi<>::spi_reg_t, spi_t>& data) override;

        std::vector<std::pair<iface_spi<>::spi_reg_t, spi_t>>
        write(const std::vector<std::pair<iface_spi<>::spi_reg_t, spi_t>>& data) override;

        friend iface_spi_CLICpix2&
        InterfaceManager::getInterface<iface_spi_CLICpix2>(const Interface<>::configuration_type& config);

        friend void InterfaceManager::deleteInterface<iface_spi_CLICpix2>(iface_spi_CLICpix2*);

    public:
        iface_spi_CLICpix2() = delete;

    }; // class iface_spi_CLICpix2

} // namespace peary::interface
  

Updated on 2025-11-14 at 11:31:23 +0100