Skip to content
Snippets Groups Projects
Select Git revision
  • 11f3badf4609e082e09a374f634717d65855bce3
  • main default protected
  • devel
  • feat/schemaUtils
  • feat/py310
  • kk_nodefaultinMCP23017
  • dantrim_py_incrdebug
  • kk_activeTB
  • dantrim_enforce_code_formatting
  • dantrim_update_ci_image
  • dantrim_remove_motion_control
  • kk_fixgpibscan
  • jgk_json_for_ClimateSensor
  • tripletspmon
  • kk_fix
  • kk_betsee_dec2020
  • dantrim_filecalibration_filecheck
  • lm_Tenma72-2930
  • nz_climate
  • kk_climate
  • kk_littleredcaen_centos8
  • v3.0
  • v2.0
  • v1.0
  • v0.2
  • v0.1
  • RALIrradNov2018
27 results

DACDevice.h

Blame
  • Forked from Berkeley Lab / labRemote
    Source project has a limited visibility.
    Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    DACDevice.h 1.33 KiB
    #ifndef DACDEVICE_H
    #define DACDEVICE_H
    
    #include <cstdint>
    #include <vector>
    #include <memory>
    #include <map>
    
    #include "DeviceCalibration.h"
    #include "DummyCalibration.h"
    
    class DACDevice
    {
    public:
      DACDevice(std::shared_ptr<DeviceCalibration> calibration=std::make_shared<DummyCalibration>());
      virtual ~DACDevice();
    
      void setCalibration(std::shared_ptr<DeviceCalibration> calibration);
      void setCalibration(uint8_t ch, std::shared_ptr<DeviceCalibration> calibration);
    
      virtual void setCount(int32_t counts) =0;
      virtual void setCount(uint8_t ch, int32_t counts) =0;
      virtual void setCount(const std::vector<uint8_t>& chs, const std::vector<int32_t>& counts) =0;
    
      virtual int32_t readCount() =0;
      virtual int32_t readCount(uint8_t ch) =0;
      virtual void    readCount(const std::vector<uint8_t>& chs, std::vector<int32_t>& data) =0;
    
      double set(double value);
      double set(uint8_t ch, double value);
      void   set(const std::vector<uint8_t>& chs, const std::vector<double>& values);
    
      double read();
      double read(uint8_t ch);
      void   read(const std::vector<uint8_t>& chs, std::vector<double>& data);
    
    private:
      std::shared_ptr<DeviceCalibration> findCalibration(uint8_t ch) const;
    
      std::shared_ptr<DeviceCalibration> m_calibration;
      std::map<uint8_t, std::shared_ptr<DeviceCalibration>> m_channelCalibration;
    };
    
    #endif // DACDEVICE_H