Skip to content

PS300: Add GPIB support - #975

Merged
Tom-Willemsen merged 6 commits into
masterfrom
gpib_ps300
Aug 7, 2026
Merged

PS300: Add GPIB support#975
Tom-Willemsen merged 6 commits into
masterfrom
gpib_ps300

Conversation

@FreddieAkeroyd

@FreddieAkeroyd FreddieAkeroyd commented Jun 25, 2026

Copy link
Copy Markdown
Member

Description of work

Add GPIB as a connection option to the PS300 series of power supplies, some modeal have both serial and GPIB whereas others are just GPIB. Connection is via a prologix GPIB to ethernet adapter.

To test

Borrowed device is in end room if you wish to connect and test
See ISISComputingGroup/IBEX#8470

Acceptance criteria

Connects to device and can read back voltage and current pvs

  • ** If this PR changes GALIL / GALILMUL ioc are these changes applicable to both the old (galil-old branch based) and new (master branch based) drivers? If so have all appropriate PRs been created **

Code Review

Functional Tests

  • IOC responds correctly in:
    • Devsim mode
    • Recsim mode
    • Real device, if available
  • Supplementary IOCs (..._0n where n>1) run correctly
  • Log files do not report undefined macros (serach for macLib: macro to find instances of macLib: macro [macro name] is undefined...

Final steps

  • Update the IOC submodule in the main EPICS repo. See Git workflow page for details.
  • Reviewer has merged the associated PR for the release notes

<macro name="PORT" pattern="^COM[0-9]+$" description="Serial COM port" hasDefault="NO" />
<macro name="MODEL" pattern="^[0-9]{3}((_neg)|(_pos))*$" description="Serial COM port" hasDefault="YES" defaultValue="350_pos"/>
<macro name="IPADDR" pattern="^[0-9]+\.[0-9]\.+[0-9]\.+[0-9]+$" description="IP Address of prologix GPIB" hasDefault="NO" />
<macro name="GPIBADDR" pattern="^[0-9]+\.[0-9]\.+[0-9]\.+[0-9]+$" description="GPIB Address for prologix GPIB, usually 14" hasDefault="YES" defaultValue="-1" />

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • This regex does not look correct for an address that is "usually 14".
  • If it really is "usually 14", then can it default to 14?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The address macro gets passed via the asyn DB and so also goes to the serial interface as well as the gpib, for the serial wants -1. So i was being a bit lazy here, but i should add a second round of macro checks and if it is serial pass -1 for ADDR ratehr than GPIPADDR in which case it can default to 14

@Tom-Willemsen Tom-Willemsen Aug 7, 2026

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I meant this regex: ^[0-9]+\.[0-9]\.+[0-9]\.+[0-9]+$ looks wrong, looks like it's meant to be for an IP address, but even then not convinced it works, I think it should be ^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$ instead for an IP address and just ^-?[0-9]+$ (not tested) for address

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not sure what happened to IPADDR - i was assuming i has copied it from another IOC as we use it elsewhere!

I've removed need for -1 so i think ^[0-9]{1,2}$ covers it now for this device

@Tom-Willemsen
Tom-Willemsen merged commit 2e0e82a into master Aug 7, 2026
@Tom-Willemsen
Tom-Willemsen deleted the gpib_ps300 branch August 7, 2026 14:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants