diff options
| -rw-r--r-- | mpm/include/mpm/ad937x/ad937x_ctrl.hpp | 6 | ||||
| -rw-r--r-- | mpm/lib/mykonos/ad937x_ctrl.cpp | 12 | 
2 files changed, 18 insertions, 0 deletions
| diff --git a/mpm/include/mpm/ad937x/ad937x_ctrl.hpp b/mpm/include/mpm/ad937x/ad937x_ctrl.hpp index 4d47a631f..ee3b5d6f3 100644 --- a/mpm/include/mpm/ad937x/ad937x_ctrl.hpp +++ b/mpm/include/mpm/ad937x/ad937x_ctrl.hpp @@ -167,6 +167,12 @@ public:      //! set step sizes for gain ctrl pins for one channel      virtual void set_gain_pin_step_sizes(const std::string &which, double inc_step, double dec_step) = 0; + +    //! Direct register read access +    virtual uint8_t peek8(const uint32_t addr) = 0; + +    //! Direct register write access +    virtual void poke8(const uint32_t addr, const uint8_t val) = 0;  };  }}; /* namespace mpm::chips */ diff --git a/mpm/lib/mykonos/ad937x_ctrl.cpp b/mpm/lib/mykonos/ad937x_ctrl.cpp index 69ffeb6c2..6bd8b5ce1 100644 --- a/mpm/lib/mykonos/ad937x_ctrl.cpp +++ b/mpm/lib/mykonos/ad937x_ctrl.cpp @@ -381,6 +381,18 @@ public:          device.set_gain_pin_step_sizes(dir, chain, inc_step, dec_step);      } +    uint8_t peek8(const uint32_t addr) +    { +        std::lock_guard<std::mutex> lock(*spi_mutex); +        return _iface->peek8(addr); +    } + +    void poke8(const uint32_t addr, const uint8_t val) +    { +        std::lock_guard<std::mutex> lock(*spi_mutex); +        _iface->poke8(addr, val); +    } +  private:      ad937x_device device;      std::shared_ptr<std::mutex> spi_mutex; | 
