Skip to main content

EPICS IOC record search and meta information tool

Project description

https://img.shields.io/travis/pcdshub/whatrecord.svg https://img.shields.io/pypi/v/whatrecord.svg

EPICS IOC record search and meta information tool.

Spiritual successor of recordwhat.

https://pcdshub.github.io/whatrecord/

What?

Lark grammar-based parsers which parse any of the following into easy-to-use Python dataclasses:

  • EPICS access security files (.acf)

  • EPICS autosave save files (.sav)

  • EPICS V3 database files

  • EPICS V4 database files

  • EPICS msi-style template/substitutions files (.template/.substitutions)

  • EPICS gateway configuration (.pvlist)

  • EPICS sequencer state notation language programs (.st)

  • EPICS StreamDevice protocols (.proto)

All of the above can be easily serialized to JSON for interoperability.

Pseudo-IOC shell interpreter:

  • Reads st.cmd files as if it were an IOC

  • Loads and lints record files (and other supported formats above)

  • Builds inter- and intra- IOC PV relationship graphs

  • Stores context information about where each record/field/etc came from

API server

  • IOC finder (LCLS IOC manager, list of files, or external script)

  • Provides access to all parsed information above

  • Preliminary asyncio-based client to talk with the server

Frontend

  • User-friendly vue.js v3 frontend that communicates with API server

  • Interfaces for:
    • Searching for records

    • Record relationships (processing and links, cross-IOC links)

    • IOC information

    • Gateway configuration overview

    • Duplicate records

    • Optional plugins

Plugins

  • happi devices

  • Simple LDAP search (LCLS hosts, “netconfig”)

  • LCLS-specific epicsArch / logbook DAQ PVs

  • TwinCAT PLC source code (pytmc)

Command-line tools

  • whatrecord lint - lint a database

  • whatrecord parse - parse supported formats

  • whatrecord server - start the API server

Record?

https://docs.epics-controls.org/en/latest/guides/EPICS_Process_Database_Concepts.html#the-epics-process-database

Requirements

Requirements:

  • Python 3.9

  • aiohttp

  • apischema[graphql]

  • graphviz

  • jinja2

  • lark

Build requirements:

  • cython

  • epicscorelibs

Frontend Screenshots

Search for records and view relationships:

https://github.com/pcdshub/whatrecord/raw/assets/screenshot_1.png

View StreamDevice protocol information:

https://github.com/pcdshub/whatrecord/raw/assets/screenshot_2.png

See where your qsrv pvAccess keys come from:

https://github.com/pcdshub/whatrecord/raw/assets/screenshot_3.png

See access security settings:

https://github.com/pcdshub/whatrecord/raw/assets/screenshot_4.png

View all of your IOCs in one place and browse their records by type:

https://github.com/pcdshub/whatrecord/raw/assets/screenshot_5.png

View inter-IOC record relationships:

https://github.com/pcdshub/whatrecord/raw/assets/screenshot_6.png

View all of your ophyd/happi devices and their relevant PVs:

https://github.com/pcdshub/whatrecord/raw/assets/screenshot_7.png

View LDAP-provided settings:

https://github.com/pcdshub/whatrecord/raw/assets/screenshot_8.png

(LCLS-specific) View epicsArch DAQ PVs:

https://github.com/pcdshub/whatrecord/raw/assets/screenshot_9.png

View gateway PVList configurations:

https://github.com/pcdshub/whatrecord/raw/assets/screenshot_10.png

View record duplicates:

https://github.com/pcdshub/whatrecord/raw/assets/screenshot_11.png

View API server logs:

https://github.com/pcdshub/whatrecord/raw/assets/screenshot_12.png

See per-parameter values:

https://github.com/pcdshub/whatrecord/raw/assets/screenshot_13.png https://github.com/pcdshub/whatrecord/raw/assets/screenshot_15.png

See database lint:

https://github.com/pcdshub/whatrecord/raw/assets/screenshot_14.png

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

whatrecord-0.2.1.tar.gz (334.3 kB view details)

Uploaded Source

File details

Details for the file whatrecord-0.2.1.tar.gz.

File metadata

  • Download URL: whatrecord-0.2.1.tar.gz
  • Upload date:
  • Size: 334.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.6.1 pkginfo/1.7.1 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.9.4

File hashes

Hashes for whatrecord-0.2.1.tar.gz
Algorithm Hash digest
SHA256 668c5e39e7867668a93469eb25e3eb881ec2cb66e39a177a9d5328cd2346f0de
MD5 ac21944a4d644ba75962b36201182f4d
BLAKE2b-256 0af769bb31248ea4901fe436630bd72ec6ab21763a8e4cd1a94e16ee0bff4141

See more details on using hashes here.

Provenance

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page