add i10-1 and i06-1magnet temperature controller - #2121
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #2121 +/- ##
========================================
Coverage 99.16% 99.17%
========================================
Files 353 356 +3
Lines 13832 13988 +156
========================================
+ Hits 13716 13872 +156
Misses 116 116 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
oliwenmandiamond
left a comment
There was a problem hiding this comment.
Thanks, looks good but have feedback to improve. As @Villtord mentioned in standup, could we please also make sure to add doc strings to the devices. Thanks!
oliwenmandiamond
left a comment
There was a problem hiding this comment.
Looks good, thanks. Some comments on class naming which I think needs to be updated to make support easier long term and movable_logic needs to be addressed.
Co-authored-by: oliwenmandiamond <136330507+oliwenmandiamond@users.noreply.github.com>
…roller.py Co-authored-by: oliwenmandiamond <136330507+oliwenmandiamond@users.noreply.github.com>
…roller.py Co-authored-by: oliwenmandiamond <136330507+oliwenmandiamond@users.noreply.github.com>
oliwenmandiamond
left a comment
There was a problem hiding this comment.
Looks good, couple comments. Can we test to see if DeviceVector would work with it? If it doesn't work, happy to approve. It probably won't work but is a very natural fit for this and if find any issues with it we can raise with ophyd-async and then revisit this later
|
(We also need to up test coverage) |
* Use DeviceVector for TemperatureSensor * update base controller * add sensor typing * add active sensor to config * remove unused type * add sensor switching test * add typing and edge case * update scm * highFieldmagnet update * Enhance High-Field Magnet Temperature Controller with sensor mapping and name setting functionality * Refactor temperature controller tests to use active sensor names and comment out sensor assertion * Comment out assert_reading in temperature controller readback test * add test fir default_high_fieldMagnet * rename sorb without cap --------- Co-authored-by: Raymond Fan <raymond.fan@diamond.ac.uk>
oliwenmandiamond
left a comment
There was a problem hiding this comment.
Thanks, this looks much better now. I have couple more comments and then once ophyd-async blocker added, looks great. Thank you!
| if sensor_map is None: | ||
| sensor_map = {"sensor1": ""} | ||
| sensor_map.update({f"sensor{i}": str(i) for i in range(2, 4)}) | ||
| sensor = TemperatureSensor[HighFieldMagnetSensor]( | ||
| DeviceMap( | ||
| { | ||
| name_key: HighFieldMagnetSensor(f"{prefix}STEMP{pv_suffix}") | ||
| for name_key, pv_suffix in sensor_map.items() | ||
| } | ||
| ) | ||
| ) |
There was a problem hiding this comment.
I personally dislike this sensor_map. It looks quite awkward when you could just construct TemperatureSensor class outside this class and pass it directly in with the DeviceMap already configured.
There was a problem hiding this comment.
This is the i10 sub class, we are efficiently doing what you are saying, think of it as a helper function so we do not have to do this x times in i10 config:
sensor = TemperatureSensor[HighFieldMagnetSensor](
DeviceMap({
"sensor1": BaseTemperatureSensor("BL01I-EA-HFM-01:STEMP"),
"sensor2": BaseTemperatureSensor("BL01I-EA-HFM-01:STEMP2"),
"sensor3": BaseTemperatureSensor("BL01I-EA-HFM-01:STEMP3"),
})
)
hfm_temp = HighFieldMagnetTemperatureController(prefix="BL01I-EA-HFM-01:", sensor=sensor)… classes to use BaseTemperatureSensor
Removed comment explaining the need for non-cached property.
Fixes #2113, #2124
Requires: ophyd-async(#1381)
added a new generic temperature_controller:
Added support for the I06-1 SCM Cryocon M32 temperature controller:
Added support for the I10-1 High Field Magnet temperature controllers:
Fixed historical typo in module naming:
Instructions to reviewer on how to test:
Checks for reviewer
dodal connect ${BEAMLINE}