Skip to content

Add class registry for libMeter

Daniel Joseph Antrim requested to merge dantrim_libmeter_registry into devel

What

This MR adds a class registry for the implementations of IMeter. Given that we are moving to a common interface for IMeter it makes sense to define a class registry to make their use simpler.

Notes:

  • Fills the m_listPowerSupply and m_listPowerSupplyChannel EquipConf caches (previously they were only ever checked, but never filled) -- a similar cache is added for IMeter objects
  • Updates the labRemote JSON schema for devices to handle hw-type of ["PS", "Meter"] (from ["PS"])
  • Updates the IMeter interface to have setConfiguration and getConfiguration methods, the same as in IPowerSupply
  • Adds meter.cpp, a command line utility similar to powersupply.cpp that executes the various commands provided by the IMeter interface
  • Updates EquipConf class to have a createMeter method, in the same way as for createPowerSupply
  • Make measureDCV, measureDCI, measureRES, measureCAP purely virtual methods of IMeter interface
  • Add measureX(std::vector<unsigned> channels) methods to complement the measureX(unsigned channel) methods
    • The measureX(std::vector<unsigned> channels) methods are implemented for DMM6500 by a simple loop over the measureX(unsigned) methods, but can be updated in a later MR to perhaps leverage the channel list functionality of SCPI command set to turn this into a single command versus N commands (N = number of channels requested).
Edited by Daniel Joseph Antrim

Merge request reports