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

LOQ: Investigate LSi Correlator #4021

Closed
kjwoodsISIS opened this issue Feb 19, 2019 · 5 comments
Closed

LOQ: Investigate LSi Correlator #4021

kjwoodsISIS opened this issue Feb 19, 2019 · 5 comments
Assignees

Comments

@kjwoodsISIS
Copy link
Contributor

kjwoodsISIS commented Feb 19, 2019

As a developer, I want to understand how I can communicate with the LSi Correlator via its API (Python).

Acceptance Criteria

  1. I can open a connection to the LSi Correlator.
  2. I can configure the LSi Correlator (to the extent permitted by the API).
  3. I can close a connection to the LSi Correlator.
  4. I can run a Python script demonstrating the collection & plotting (e.g. with matplotlib) of data from the LSi Correlator. Also demonstrate how to start a (neutron) run and how to generate a suitable run title.
  5. I have created appropriate documentation explaining how to use the LSi Correlator API.
  6. I have produced written recommendations for how we should support this device in IBEX (see note below).

Notes

  1. See also LOQ (& other SANS beamlines): Laser measurements #3361.
  2. There is no expectation, at this stage, that the solution be integrated into IBEX. The purpose of this ticket is to demonstrate that we can communicate with the device and write a simple script.
  3. It is assumed that the LSi Correlator may first need to be set up via its own UI. If so, consider providing simple notes (appropriate to a developer) on how this should be done
  4. It is expected that the data provided by the LSi Correlator might all be zeros if the laser box is not available.
    1. Please shout if the LSi Correlator cannot be used without the laser box.
  5. Recommendations: please provide advice on whether we can create an IOC & OPI, or whether the device can only be controlled by Python scripts. Should we consider providing a sample genie-python script to allow scientists to use the box?
  6. LSi Correlator documentation is here: \\isis\shares\ISIS_Experimental_Controls\LSI Correlator
  7. LSi Correlator software is here: \\isis\shares\ISIS_Experimental_Controls\LSI Correlator\DLS_laser_and_correlator_software.zip
@Alistair-McGann-Tessella
Copy link

Alistair-McGann-Tessella commented Mar 6, 2019

See https://github.com/ISISComputingGroup/ibex_developers_manual/wiki/LSi-Correlator for information about the correlator.

The conclusions on this were:

  1. It is possible to use the Python API to get both unprocessed and 'correlated' data off the device.
    • We can add this to Ibex this by either calling the API from instrument scripts, or by using pydevsup or PCASpy to make an IOC-like device.
  2. It is not possible to use python to start a run which has been set up in the vendor software (LSi Correlator Acquisition Software)
    • This is an issue, as the vendor software performs analysis on the raw data
  3. In order to use the vendor's analysis tools, we would have to reverse engineer the XML save format used
  4. We need to clarify that the correlated data from the python API is the 'correct' data that instrument scientists want

@kjwoodsISIS
Copy link
Contributor Author

How many points?

@DominicOram
Copy link
Contributor

DominicOram commented Mar 8, 2019

Some additional notes:

  • The Python API is < 3 if we were going to use it we would want to make it >3
  • The original vendor software seems to be compiled Labview. Their Labview API looks like it might be more fleshed out but it requires a Labview version > 2014, which I don't have.

I think the next step here is to get information on:

  • Exactly what data is required from the device
  • How the scientists want to use it
  • What they would like as a data format at the end

From there we can see if we need to go further beyond the Python API. However, this ticket proves that some communication will be possible. I'll call this reviewed but @Alistair-McGann-Tessella can you either discuss with scientists and make follow up tickets or create a ticket to discuss further.

@kjwoodsISIS
Copy link
Contributor Author

According to the LSI Correlator manual (see: \\isis\shares\ISIS_Experimental_Controls\LSI Correlator\LSI.Correlator.Manual_v3.2.1.pdf, page 34)

The Python API has been compiled with the following Python versions

  • Python 2.7.10 32bit (Autobahn 17.6.2 and Twisted 17.5.0)
  • Python 3.6.1 32bit (Autobahn 17.7.1 and Twisted 17.5.0)
    In case of issues in running the Python API with other Python versions, the user can contact LS Instruments support.

@DominicOram
Copy link
Contributor

It has print "hello" statements in it. It's definitely not valid python 3 syntax but I don't believe it would be significant work to make it so.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants