[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.