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

inject not working on i04 #647

Open
DominicOram opened this issue Sep 20, 2024 · 4 comments
Open

inject not working on i04 #647

DominicOram opened this issue Sep 20, 2024 · 4 comments
Labels
bug Something isn't working devices connection worker Relates to worker code

Comments

@DominicOram
Copy link
Contributor

In testing on i04 today we had a plan like:

def thaw(smargon:Smargon = inject("smargon")):
    pass

This failed if we called it via run_plan() from GDA but passed if we did run_plan("smargon"). I04 is loading dodal from the scratch area.

Acceptance Criteria

  • inject works correctly
@noemifrisina
Copy link

Run into something similar, is this related to #633 or a new one?

@DominicOram
Copy link
Contributor Author

I saw that but read it as "BlueAPI should give cleaner errors if the device doesn't exist". This was that the devices do exist but blueAPI can't find them. In your case was there a pmac object that blueAPI failed to pick up? Did you manage to fix the issue?

@noemifrisina
Copy link

noemifrisina commented Sep 24, 2024

Yes the device was there, and could be found by running blueapi -c config.yaml controller devices, but wasn't picked up. The issue is still there, I just worked around it by explicitly passing the devices from the command line instead of relying on inject. This is not a great solution for plans that require multiple devices though...

From previous beamline testing, inject worked fine up to pre-release 0.4.5a1

@DiamondJoseph
Copy link
Collaborator

inject only ever really worked by co-incidence, I've been trying to get dodal #597 over the line so that inject("foo") can be replaced with ixx.foo(connect=False), which would allow the device to be created, and yield from ensure_connected(foo, ...) at the start of the plan to ensure it's connected.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working devices connection worker Relates to worker code
Projects
None yet
Development

No branches or pull requests

4 participants