Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Move Wave8 to pcdsdevices #77

Open
teddyrendahl opened this issue Apr 17, 2018 · 4 comments
Open

Move Wave8 to pcdsdevices #77

teddyrendahl opened this issue Apr 17, 2018 · 4 comments
Labels
Port Feature Port this feature to an external library

Comments

@teddyrendahl
Copy link
Contributor

Expected Behavior

The Wave8 IOC is general enough that we should include this in pcdsdevices

@teddyrendahl teddyrendahl added the Port Feature Port this feature to an external library label Apr 17, 2018
@teddyrendahl teddyrendahl added this to the HXRSnD Update milestone Apr 17, 2018
@klauer
Copy link
Contributor

klauer commented Oct 1, 2020

We have https://github.com/pcdshub/pcdsdevices/blob/cfff9b2a34db9661843b84c0f863e146f8131c0e/pcdsdevices/ipm.py#L304-L339

The classes are not interchangeable and do not share the same attributes/PVs (notably, per-channel peakA and peakT are unavailable on pcdsdevices).

Unsure how these should be merged.

@ZLLentz
Copy link
Member

ZLLentz commented Oct 1, 2020

Adding

class DiodeIO(SndDevice):
link for comparison purposes

@ZLLentz
Copy link
Member

ZLLentz commented Oct 1, 2020

All I can say is that we need to see if these PVs would connect for the existing wave8 devices in pcdsdevices

@klauer
Copy link
Contributor

klauer commented Oct 1, 2020

This is a 🐇 🕳️ I didn't expect.

It appears that these old PVs were aliased at some point. The raw-indexed names seem temporary and undesirable:

g/pcds/epics/ioc/xcs/wave8/R0.2.0/build/iocBoot/ioc-xcs-snd-bmmon/st.cmd
46:dbLoadRecords("db/wave8alias.db", "OLD=XCS:SND:DIO:_peakA_8,NEW=XCS:SND:DIA:DD:DIODE")
47:dbLoadRecords("db/wave8alias.db", "OLD=XCS:SND:DIO:_peakA_9,NEW=XCS:SND:DIA:DCC:DIODE")
48:dbLoadRecords("db/wave8alias.db", "OLD=XCS:SND:DIO:_peakA_10,NEW=XCS:SND:DIA:DCI:DIODE")
49:dbLoadRecords("db/wave8alias.db", "OLD=XCS:SND:DIO:_peakA_11,NEW=XCS:SND:DIA:DCO:DIODE")
50:dbLoadRecords("db/wave8alias.db", "OLD=XCS:SND:DIO:_peakA_12,NEW=XCS:SND:DIA:DI:DIODE")
51:dbLoadRecords("db/wave8alias.db", "OLD=XCS:SND:DIO:_peakA_13,NEW=XCS:SND:DIA:DO:DIODE")
52:dbLoadRecords("db/wave8alias.db", "OLD=XCS:SND:DIO:_peakA_14,NEW=XCS:SND:T4:DIODE")
53:dbLoadRecords("db/wave8alias.db", "OLD=XCS:SND:DIO:_peakA_15,NEW=XCS:SND:T1:DIODE")

g/pcds/epics/ioc/xcs/wave8/R0.2.1/build/iocBoot/ioc-xcs-snd-bmmon/st.cmd
46:dbLoadRecords("db/wave8alias.db", "OLD=XCS:SND:DIO:_peakA_8,NEW=XCS:SND:DIA:DCC:DIODE")
47:dbLoadRecords("db/wave8alias.db", "OLD=XCS:SND:DIO:_peakA_9,NEW=XCS:SND:DIA:DCO:DIODE")
48:dbLoadRecords("db/wave8alias.db", "OLD=XCS:SND:DIO:_peakA_10,NEW=XCS:SND:DIA:DO:DIODE")
49:dbLoadRecords("db/wave8alias.db", "OLD=XCS:SND:DIO:_peakA_11,NEW=XCS:SND:DIA:T1D:DIODE")
50:dbLoadRecords("db/wave8alias.db", "OLD=XCS:SND:DIO:_peakA_12,NEW=XCS:SND:DIA:DD:DIODE")
51:dbLoadRecords("db/wave8alias.db", "OLD=XCS:SND:DIO:_peakA_13,NEW=XCS:SND:DIA:DCI:DIODE")
52:dbLoadRecords("db/wave8alias.db", "OLD=XCS:SND:DIO:_peakA_14,NEW=XCS:SND:DIA:DI:DIODE")
53:dbLoadRecords("db/wave8alias.db", "OLD=XCS:SND:DIO:_peakA_15,NEW=XCS:SND:DIA:T4D:DIODE")

Note that the aliases even changed between R0.2.0 and R0.2.1.

So the above says _peakA_ is aliased to (e.g., for channel 10) XCS:SND:DIA:DO:DIODE
However, looking at what that is currently:

$ caget XCS:SND:DIA:DO:DIODE.NAME
XCS:SND:DIA:DO:DIODE.NAME      XCS:SND:DIO:AMPL_10

... it's also an alias: XCS:SND:DIA:DCC:DIODE -> XCS:SND:DIO:AMPL_10
This then matches pcdsdevices.ipm.Wave8Channel.amplitude

... meaning peakA is no longer necessary. I'd guess by extension peakT is tpos

TLDR:
peakA = pcdsdevices.ipm.Wave8Channel.amplitude
peakT = pcdsdevices.ipm.Wave8Channel.tpos (** maybe; unconfirmed)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Port Feature Port this feature to an external library
Projects
None yet
Development

No branches or pull requests

3 participants