Skip to content

[WIP] merging with the OPC server

Changed EndeavourRaw from unique_ptr to shared_ptr in AMACv2 to support multiple AMACs on one Endeavour bus.

Also, added a method uint32_t readVersionID() that reads the version and sets amac_version.

Added and overload PBv3ConfigTools::configAMAC(std::shared_ptr<AMACv2> amac, const std::string &config, bool write) to load calibrations from a file with json. That's the method used in the OPC server.

And added placeholders for bool autorange in such methods as AMACv2::temperatureX. They currently do nothing. But we need to make it auto-adjust the ADC, if it is saturated. (Although, I am not sure how that works in the fast async communication.)

I built it with just a FelixClient utility endeavour2 in dcs-tests repository.

  • Next step is to build the OPC server with this as the backend.
  • Update pybindings.
  • Cleanup CMake.

And I will add the full structs for ADC readings. I.e. methods like temperatureX that return a struct with: count, voltage double, physics double. We used it to confirm that our calibrations work correctly.

Merge request reports

Loading