<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki-ext.aps.anl.gov/blc/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Jemian</id>
	<title>Beam Line Controls - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-ext.aps.anl.gov/blc/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Jemian"/>
	<link rel="alternate" type="text/html" href="https://wiki-ext.aps.anl.gov/blc/index.php?title=Special:Contributions/Jemian"/>
	<updated>2026-07-19T06:52:18Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.36.1</generator>
	<entry>
		<id>https://wiki-ext.aps.anl.gov/blc/index.php?title=Beamline_Controls&amp;diff=815</id>
		<title>Beamline Controls</title>
		<link rel="alternate" type="text/html" href="https://wiki-ext.aps.anl.gov/blc/index.php?title=Beamline_Controls&amp;diff=815"/>
		<updated>2026-03-18T21:25:03Z</updated>

		<summary type="html">&lt;p&gt;Jemian: /* Beamline Data Pipelines */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;WIKI for the APS Beamline Controls Community, maintained by the Beamline Controls Technical Working Group.&amp;lt;br /&amp;gt;&lt;br /&gt;
This wiki exists to collect the output of the working group, including documentation on beamline controls software and hardware useful for APS beamline scientists and resident users.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Getting Started===&lt;br /&gt;
* [[EPICS Cheat Sheet]]: Channel Access command-lines, noteworthy record fields &amp;amp; IOC shell commands.&lt;br /&gt;
* [[EPICS 101]]: definition of basic EPICS components ([[EPICS_101#What_is_an_IOC.3F|IOC]], [[EPICS 101#What_is_a_PV.3F|PV]], [[EPICS_101#What_is_a_record.3F|record]], [[EPICS 101#What_is_a_database.3F|database]]).&lt;br /&gt;
* [[IOC 101]]: learn how to create your own IOC.&lt;br /&gt;
* [[Git_101|Git 101]]: git refresher (basic workflow, commands, and more).&lt;br /&gt;
&lt;br /&gt;
===Beamline Controls Documentation===&lt;br /&gt;
&lt;br /&gt;
* [[EPICS networking]]: basic overview of how to control the network paths used by EPICS IOCs and clients.&lt;br /&gt;
* [[Controls Software Documentation]]&lt;br /&gt;
* [[Hardware and IT Configuration]]&lt;br /&gt;
* [[APSU_PVs]]: Description of what process variables(PVs) have changed for PSS, EPS, and ID control for the APSU beamlines&lt;br /&gt;
** Mark Rivers has documented the process he used to find the relevant medm screens and the useful PVs for his beamline:&lt;br /&gt;
*** https://github.com/CARS-UChicago/GSECARS-EPICS/blob/master/docs/EPICS_Beamline_PVs.docx&lt;br /&gt;
*** https://github.com/CARS-UChicago/GSECARS-EPICS/blob/master/docs/EPICS_Beamline_PVs.pdf&lt;br /&gt;
&lt;br /&gt;
===Practical Beamline Controls Training (2023)===&lt;br /&gt;
&lt;br /&gt;
[[Practical_Beamline_Controls_Training#IOC_Basics|Session 1: IOC Basics]]&lt;br /&gt;
[[Practical_Beamline_Controls_Training#IOC_Deployment_.26_Troubleshooting|Session 2: IOC Deployment &amp;amp; Troubleshooting]]&lt;br /&gt;
&lt;br /&gt;
===Beamline Controls Technical Working Group information===&lt;br /&gt;
&lt;br /&gt;
The BC Technical Working (BCTWG) group meets monthly to review and gather feedback on possible changes in either the way BC delivers support or the technologies that BC supports. The BCTWG comprises the BC group plus interested stakeholders from XSD. In a nutshell, the main goal of the BCTWG is to improve communication between BC and its customers on topics of mutual interest.&lt;br /&gt;
&lt;br /&gt;
* Box folder with slides and meeting notes (ANL only): [https://anl.box.com/s/chcn7xauil93inay8ipinbxtcckc9k9f]&lt;br /&gt;
&lt;br /&gt;
* Current chairs:&lt;br /&gt;
** Tejas Guruswamy (XSD-DET)&lt;br /&gt;
** Keenan Lang (XSD-BC)&lt;br /&gt;
** Victoria Cooley (XSD-MPE)&lt;br /&gt;
&lt;br /&gt;
===Beamline Data Pipelines===&lt;br /&gt;
&lt;br /&gt;
* https://git.aps.anl.gov/groups/bdp-public/-/wikis/home&lt;br /&gt;
* https://git.aps.anl.gov/groups/bdp-public/-/wikis/Software-Containers (podman, docker)&lt;/div&gt;</summary>
		<author><name>Jemian</name></author>
	</entry>
	<entry>
		<id>https://wiki-ext.aps.anl.gov/blc/index.php?title=Beamline_Controls&amp;diff=814</id>
		<title>Beamline Controls</title>
		<link rel="alternate" type="text/html" href="https://wiki-ext.aps.anl.gov/blc/index.php?title=Beamline_Controls&amp;diff=814"/>
		<updated>2026-03-18T21:24:42Z</updated>

		<summary type="html">&lt;p&gt;Jemian: /* Beamline Data Pipelines */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;WIKI for the APS Beamline Controls Community, maintained by the Beamline Controls Technical Working Group.&amp;lt;br /&amp;gt;&lt;br /&gt;
This wiki exists to collect the output of the working group, including documentation on beamline controls software and hardware useful for APS beamline scientists and resident users.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Getting Started===&lt;br /&gt;
* [[EPICS Cheat Sheet]]: Channel Access command-lines, noteworthy record fields &amp;amp; IOC shell commands.&lt;br /&gt;
* [[EPICS 101]]: definition of basic EPICS components ([[EPICS_101#What_is_an_IOC.3F|IOC]], [[EPICS 101#What_is_a_PV.3F|PV]], [[EPICS_101#What_is_a_record.3F|record]], [[EPICS 101#What_is_a_database.3F|database]]).&lt;br /&gt;
* [[IOC 101]]: learn how to create your own IOC.&lt;br /&gt;
* [[Git_101|Git 101]]: git refresher (basic workflow, commands, and more).&lt;br /&gt;
&lt;br /&gt;
===Beamline Controls Documentation===&lt;br /&gt;
&lt;br /&gt;
* [[EPICS networking]]: basic overview of how to control the network paths used by EPICS IOCs and clients.&lt;br /&gt;
* [[Controls Software Documentation]]&lt;br /&gt;
* [[Hardware and IT Configuration]]&lt;br /&gt;
* [[APSU_PVs]]: Description of what process variables(PVs) have changed for PSS, EPS, and ID control for the APSU beamlines&lt;br /&gt;
** Mark Rivers has documented the process he used to find the relevant medm screens and the useful PVs for his beamline:&lt;br /&gt;
*** https://github.com/CARS-UChicago/GSECARS-EPICS/blob/master/docs/EPICS_Beamline_PVs.docx&lt;br /&gt;
*** https://github.com/CARS-UChicago/GSECARS-EPICS/blob/master/docs/EPICS_Beamline_PVs.pdf&lt;br /&gt;
&lt;br /&gt;
===Practical Beamline Controls Training (2023)===&lt;br /&gt;
&lt;br /&gt;
[[Practical_Beamline_Controls_Training#IOC_Basics|Session 1: IOC Basics]]&lt;br /&gt;
[[Practical_Beamline_Controls_Training#IOC_Deployment_.26_Troubleshooting|Session 2: IOC Deployment &amp;amp; Troubleshooting]]&lt;br /&gt;
&lt;br /&gt;
===Beamline Controls Technical Working Group information===&lt;br /&gt;
&lt;br /&gt;
The BC Technical Working (BCTWG) group meets monthly to review and gather feedback on possible changes in either the way BC delivers support or the technologies that BC supports. The BCTWG comprises the BC group plus interested stakeholders from XSD. In a nutshell, the main goal of the BCTWG is to improve communication between BC and its customers on topics of mutual interest.&lt;br /&gt;
&lt;br /&gt;
* Box folder with slides and meeting notes (ANL only): [https://anl.box.com/s/chcn7xauil93inay8ipinbxtcckc9k9f]&lt;br /&gt;
&lt;br /&gt;
* Current chairs:&lt;br /&gt;
** Tejas Guruswamy (XSD-DET)&lt;br /&gt;
** Keenan Lang (XSD-BC)&lt;br /&gt;
** Victoria Cooley (XSD-MPE)&lt;br /&gt;
&lt;br /&gt;
===Beamline Data Pipelines===&lt;br /&gt;
&lt;br /&gt;
* https://git.aps.anl.gov/groups/bdp-public/-/wikis/home&lt;br /&gt;
* https://git.aps.anl.gov/groups/bdp-public/-/wikis/Software-Containers&lt;/div&gt;</summary>
		<author><name>Jemian</name></author>
	</entry>
	<entry>
		<id>https://wiki-ext.aps.anl.gov/blc/index.php?title=Controls_Software_Documentation&amp;diff=813</id>
		<title>Controls Software Documentation</title>
		<link rel="alternate" type="text/html" href="https://wiki-ext.aps.anl.gov/blc/index.php?title=Controls_Software_Documentation&amp;diff=813"/>
		<updated>2026-03-18T19:56:38Z</updated>

		<summary type="html">&lt;p&gt;Jemian: Remove link to apsbss per management directions.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page exists to collect links to documentation about the instrument control system EPICS, its modules and related libraries (synApps, areaDetector), as used at the Advanced Photon Source.&lt;br /&gt;
&lt;br /&gt;
Documentation referenced should be appropriate for beamline scientists, as opposed to only EPICS developers.&lt;br /&gt;
New deployments should prefer EPICSv7, the latest release series.&lt;br /&gt;
&lt;br /&gt;
See also the extensive [https://epics-controls.org/resources-and-support/documents/training/ resources from past EPICS Collaboration meetings].&lt;br /&gt;
&lt;br /&gt;
==EPICS Base==&lt;br /&gt;
* [https://docs.epics-controls.org/en/latest/guides/EPICS_Intro.html Intro to EPICS]&lt;br /&gt;
* [https://docs.epics-controls.org/en/latest/guides/EPICS_Process_Database_Concepts.html EPICS Database Concepts]&lt;br /&gt;
* [https://docs.epics-controls.org/projects/how-tos/en/latest/getting-started/installation.html EPICS Base Getting Started (official)]&lt;br /&gt;
* [https://cmd-response.readthedocs.io/en/latest/epics/rpi_epics.html Installing EPICS on RaspberryPi]&lt;br /&gt;
&lt;br /&gt;
==synApps (aka EPICS Support)==&lt;br /&gt;
* [https://epics.anl.gov/bcda/synApps/synApps_docs_all.html synApps Collected Documentation]&lt;br /&gt;
* [https://epics.anl.gov/bcda/synApps/synApps.html synApps deployment instructions, including use of xxx template ioc]&lt;br /&gt;
&lt;br /&gt;
==areaDetector==&lt;br /&gt;
* [https://areadetector.github.io/areaDetector/ areaDetector Official Documentation]&lt;br /&gt;
&lt;br /&gt;
==Deploying, troubleshooting, and maintaining IOCs==&lt;br /&gt;
* [[Troubleshooting EPICS IOCs]]&lt;br /&gt;
* [https://docs2bm.readthedocs.io/en/latest/source/ops/item_000_0.html simDetector Install directions (2BM)]&lt;br /&gt;
* [https://epics-modules.github.io/xxx/overview.html The Basics of an IOC (XXX documentation)]&lt;br /&gt;
* [https://gist.github.com/keenanlang/e768774cbd0a367b96281939b8a2c9ba Creation of an IOC using mkioc]&lt;br /&gt;
* [https://wiki.aps.anl.gov/bcda/index.php/Category:TUTORIAL BCDA Tutorials (APS Internal)]&lt;br /&gt;
&lt;br /&gt;
==Pre-built IOCs==&lt;br /&gt;
===Docker images===&lt;br /&gt;
* EPICS Base 7.0.5, synApps 6.2: [https://github.com/prjemian/epics-docker/tree/main/v1.1/n3_synApps#readmemd standard xxx], [https://github.com/prjemian/epics-docker/tree/main/v1.1/n5_custom_synApps#readmemd customized]&lt;br /&gt;
* EPICS Base 7.0.5, synApps 6.2, area detector 3.10: [https://github.com/prjemian/epics-docker/tree/main/v1.1/n4_areaDetector#readmemd standard], [https://github.com/prjemian/epics-docker/tree/main/v1.1/n6_custom_areaDetector#readmemd custom]&lt;br /&gt;
===Virtual Machines===&lt;br /&gt;
* [https://github.com/BCDA-APS/epics-bluesky-vm/blob/main/install_vm.md APS Bluesky 101 training VM image.]&lt;br /&gt;
&lt;br /&gt;
==Maintaining Documentation==&lt;br /&gt;
* [https://bctwg.readthedocs.io/en/latest/index.html ReadTheDocs tutorial and example site]&lt;br /&gt;
&lt;br /&gt;
==Bluesky==&lt;br /&gt;
===Bluesky Framework===&lt;br /&gt;
* Documentation:&lt;br /&gt;
** General documentation: https://blueskyproject.io/&lt;br /&gt;
** General repository: https://github.com/bluesky&lt;br /&gt;
** bluesky-specific documentation: https://blueskyproject.io/bluesky/&lt;br /&gt;
* Python packages:&lt;br /&gt;
** bluesky source: https://github.com/bluesky/bluesky&lt;br /&gt;
** ophyd source: https://github.com/bluesky/ophyd&lt;br /&gt;
** databroker source: https://github.com/bluesky/databroker&lt;br /&gt;
* Trainings:&lt;br /&gt;
** NSLS-II Sandbox for tutorials: https://try.nsls2.bnl.gov&lt;br /&gt;
*** Try Bluesky in your internet browser (no local python required for this)&lt;br /&gt;
*** Sandbox is publicly accessible&lt;br /&gt;
** Also: https://blueskyproject.io/tutorials/&lt;br /&gt;
* hklpy:&lt;br /&gt;
** [https://blueskyproject.io/hklpy/ Bluesky's diffractometer support]&lt;br /&gt;
** [https://blueskyproject.io/hklpy/examples/index.html Diffractometer examples]&lt;br /&gt;
* Queue server:&lt;br /&gt;
** [https://blueskyproject.io/bluesky-queueserver/ queueserver - Server for queueing plans]&lt;br /&gt;
** [https://blueskyproject.io/bluesky-queueserver-api/ API documentation]&lt;br /&gt;
* Tiled:&lt;br /&gt;
** [https://blueskyproject.io/tiled/ Data server for databroker and directories with data files]&lt;br /&gt;
** [https://github.com/BCDA-APS/tiled-template Template for creating a local tiled data server at APS]&lt;br /&gt;
&lt;br /&gt;
===Bluesky at APS===&lt;br /&gt;
* Documentation:&lt;br /&gt;
** Status of Bluesky at the APS: [https://anl.box.com/s/yh6yp0dihz5xz89hphxc4qlit2d8ngs7 P. Jemian Talk 2022-09-19]&lt;br /&gt;
** [https://bcda-aps.github.io/bluesky_training/instrument/_install_new_instrument.html Installation Steps]&lt;br /&gt;
** apstools: [https://bcda-aps.github.io/apstools/latest/index.html Guides, How-Tos, and other examples]&lt;br /&gt;
** bluesky training: [https://bcda-aps.github.io/bluesky_training/index.html Getting started with Bluesky]&lt;br /&gt;
* Source code:&lt;br /&gt;
** apstools: [https://github.com/BCDA-APS/apstools https://github.com/BCDA-APS/apstools]&lt;br /&gt;
** bluesky training: [https://github.com/BCDA-APS/bluesky_training https://github.com/BCDA-APS/bluesky_training]&lt;br /&gt;
&lt;br /&gt;
===Python Display Manager PyDM===&lt;br /&gt;
* [https://slaclab.github.io/pydm/ PyDM Documentation]&lt;br /&gt;
* [https://github.com/BCDA-APS/adl2pydm adl2pydm - Convert MEDM's .adl files to PyDM's .ui format]&lt;br /&gt;
&lt;br /&gt;
==Python support==&lt;br /&gt;
===Channel Access===&lt;br /&gt;
* [https://pyepics.github.io/pyepics/ PyEpics - Python interface for Channel Access based on libca and libCom.]&lt;br /&gt;
* [https://caproto.github.io/caproto/v0.8.1/ caproto - Python interface for Channel Access in pure Python.]&lt;br /&gt;
===PV Access===&lt;br /&gt;
* [https://mdavidsaver.github.io/p4p/ p4p - Python interface for PV Access]&lt;br /&gt;
* [https://github.com/epics-base/pvaPy pvapy - Python interface for PV Access, also provides CA interface]&lt;br /&gt;
===General===&lt;br /&gt;
* [https://bcdamenu.readthedocs.io/ bcdamenu - GUI menu to beam line software, such as synoptic display.]&lt;br /&gt;
* [https://github.com/EPICS-synApps/support/tree/master/utils/mdaPythonUtils mdaPythonUtils - Read .mda data files into Python.]&lt;br /&gt;
* [https://github.com/prjemian/pvMail PvMail - Watch an EPICS PV. Send email when it changes from 0 to 1.]&lt;br /&gt;
* [https://github.com/BCDA-APS/pvview pvView - Display one or more EPICS PVs in a PyDM GUI window as a table.]&lt;br /&gt;
* [https://github.com/BCDA-APS/pvWebMonitor pvWebMonitor - Post EPICS PVs to read-only (static) web site.]&lt;br /&gt;
* [https://prjemian.github.io/punx/ punx - Python Utilities for NeXus HDF5 files: validation, structure, hierarchy.]&lt;br /&gt;
* [https://prjemian.github.io/pyRestTable/ pyRestTable - Format a nice table in reST (reStructuredText) from Python.]&lt;br /&gt;
* [https://prjemian.github.io/pysumreg/ pysumreg - Statistics of list of (x,y) pairs from calculator-style summation registers.]&lt;br /&gt;
* [https://github.com/prjemian/spec2nexus/ spec2nexus - Read SPEC data files into Python, write NeXus data file.]&lt;/div&gt;</summary>
		<author><name>Jemian</name></author>
	</entry>
	<entry>
		<id>https://wiki-ext.aps.anl.gov/blc/index.php?title=IOC_101&amp;diff=801</id>
		<title>IOC 101</title>
		<link rel="alternate" type="text/html" href="https://wiki-ext.aps.anl.gov/blc/index.php?title=IOC_101&amp;diff=801"/>
		<updated>2025-02-27T20:33:36Z</updated>

		<summary type="html">&lt;p&gt;Jemian: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
== What is an IOC ==&lt;br /&gt;
&lt;br /&gt;
For a basic description, see [https://wiki-ext.aps.anl.gov/blc/index.php?title=EPICS_101#What_is_an_IOC.3F Epics 101]&lt;br /&gt;
[[File:EPICS_basics_PV_diagram.png|right|thumb|700px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== How does one create an IOC? ==&lt;br /&gt;
&lt;br /&gt;
There are multiple ways to create an IOC, but no one does it from scratch:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== The EPICS base approach ===&lt;br /&gt;
&lt;br /&gt;
Not recommended: it creates a bare bones IOC but requires more knowledge of the EPICS build system to get started:&lt;br /&gt;
::'''&amp;lt;code&amp;gt;makeBaseApp.pl&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* Must be run multiple times&lt;br /&gt;
* Creates IOC contents in the current directory&lt;br /&gt;
* synApps support needs to be added manually&lt;br /&gt;
&lt;br /&gt;
=== The synApps approach ===&lt;br /&gt;
&lt;br /&gt;
It is based on the ''xxx'' module and designed to give you a usable IOC with as little effort as possible:&lt;br /&gt;
:::'''&amp;lt;code&amp;gt;/APSshare/bin/mkioc&amp;lt;/code&amp;gt;'''&lt;br /&gt;
 &lt;br /&gt;
* A single command leaves you with an IOC you can build:&lt;br /&gt;
&lt;br /&gt;
 $/APSshare/bin/mkioc -n -f -s 6-2-1 kmp&lt;br /&gt;
 &lt;br /&gt;
 Usage: mkioc [options] ioc_name&lt;br /&gt;
 -h            print this message&lt;br /&gt;
 -v            print the version&lt;br /&gt;
 -f            create a fresh git repo without an xxx remote&lt;br /&gt;
 -g            default to creating gitlab repo and pushing ioc&lt;br /&gt;
 -n            default to not creating gitlab repo and pushing ioc&lt;br /&gt;
 -s &amp;lt;version&amp;gt;  use a specific synApps version&lt;br /&gt;
&lt;br /&gt;
* Creates a top-level IOC directory in the current directory&lt;br /&gt;
* Common synApps support is included by default (common records/modules such as '''alive''', '''sscan''', '''calc'''...) &lt;br /&gt;
* '''&amp;lt;code&amp;gt;mkioc&amp;lt;/code&amp;gt;''' will ask you questions if you run it without options&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Note&amp;lt;/u&amp;gt;: The BCDA convention is to name development IOCs using the developer's initials (here we will use either ''xxx'' or ''kmp'').&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== IOC Layout ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Overview ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The IOC layout can be overwhelming and confusing to those who aren’t yet familiar with it. The EPICS build system creates many directories, making it harder to find the important directories.&lt;br /&gt;
Important files are often buried multiple directories down from the top-level. It is helpful to look at subsets of the IOC directory. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;Note&amp;lt;/u&amp;gt;: &lt;br /&gt;
* '''build''': building an IOC is the action of compiling i.e. generating the binary &amp;lt;code&amp;gt;bin/rhel#-x86_64/xxxApp&amp;lt;/code&amp;gt; (plus other build products as described below) by using the command '''&amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt;'''.&lt;br /&gt;
* '''run''': running an IOC is the action of running the binary along with a startup script of iocsh commands (usually called '''&amp;lt;code&amp;gt;st.cmd&amp;lt;/code&amp;gt;''')&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;Note&amp;lt;/u&amp;gt;: &lt;br /&gt;
* Any change in the build configuration ('''&amp;lt;span style=&amp;quot;color: orange&amp;quot;&amp;gt;Orange folders&amp;lt;/span&amp;gt;''') requires to recompile the IOC by issuing a '''&amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt;'''. &lt;br /&gt;
* Any change in the runtime configuration ('''&amp;lt;span style=&amp;quot;color: green&amp;quot;&amp;gt;Green folders&amp;lt;/span&amp;gt;''') requires to reboot the IOC.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:IOCtree.jpg|right|thumb|300px|xxx IOC tree]]&lt;br /&gt;
&lt;br /&gt;
=== Build configuration ===&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color: orange&amp;quot;&amp;gt;Orange folders:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;xxx/configure&amp;lt;/code&amp;gt;''': &lt;br /&gt;
:contains the files that specify which versions of EPICS base and EPICS modules should be used when building the IOC.&lt;br /&gt;
* '''&amp;lt;code&amp;gt;xxx/xxxApp/Db&amp;lt;/code&amp;gt;''': &lt;br /&gt;
:contains local databases (and associated autosave files) and protocol files used by the IOC.&lt;br /&gt;
* '''&amp;lt;code&amp;gt;xxx/xxxApp/src&amp;lt;/code&amp;gt;''': &lt;br /&gt;
:contains the Makefile that determines all of the software that gets built into the IOC binary. ; local sequence programs and other EPICS support that needs to be compiled go here.&lt;br /&gt;
&lt;br /&gt;
=== Intermediate build directories ===&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color: lightgrey&amp;quot;&amp;gt;Grey folders:&amp;lt;/span&amp;gt; &amp;lt;br&amp;gt;''' The EPICS build system will generate '''&amp;lt;code&amp;gt;O.&amp;lt;/code&amp;gt;''' files (Common, EPICS HOST and TARGET architectures) in the configure, Db, and src directories (orange directories).  These directories are not needed after the IOC is built and can be removed with the '''&amp;lt;code&amp;gt;make clean&amp;lt;/code&amp;gt;''' command. If they are not removed, they can be safely ignored.  It is highly unlikely that you will ever need to look at any of the files in them.&lt;br /&gt;
&lt;br /&gt;
=== Build products ===&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color: red&amp;quot;&amp;gt;Red folders:&amp;lt;/span&amp;gt;'''&amp;lt;br&amp;gt; &lt;br /&gt;
The EPICS build system creates top level bin, db, dbd, and lib directories: &lt;br /&gt;
* '''&amp;lt;code&amp;gt;xxx/bin/rhel8-x86_64&amp;lt;/code&amp;gt;''':&lt;br /&gt;
:contains the architecture-specific IOC binary (or munch file for VxWorks IOCs).  &lt;br /&gt;
* '''&amp;lt;code&amp;gt;xxx/db&amp;lt;/code&amp;gt;''': &lt;br /&gt;
:contains installed database files which may or may not be used, since many IOCs reference the databases in the '''&amp;lt;code&amp;gt;Db&amp;lt;/code&amp;gt;''' directory instead.  &lt;br /&gt;
* '''&amp;lt;code&amp;gt;xxx/dbd&amp;lt;/code&amp;gt;''': &lt;br /&gt;
:contains a single database definition file to be loaded by the IOC. &lt;br /&gt;
* '''&amp;lt;code&amp;gt;xxx/lib/rhel8-x86_64&amp;lt;/code&amp;gt;''': &lt;br /&gt;
:contains architecture-specific files for EPICS modules, but should be empty for the IOC.&amp;lt;br&amp;gt;&lt;br /&gt;
The build system creates an '''&amp;lt;code&amp;gt;envPaths&amp;lt;/code&amp;gt;''' file in the startup directory '''&amp;lt;code&amp;gt;iocBoot/iocxxx&amp;lt;/code&amp;gt;''', which contains the locations of the modules defined in the '''&amp;lt;code&amp;gt;RELEASE&amp;lt;/code&amp;gt;''' file.&lt;br /&gt;
&lt;br /&gt;
=== Startup directory ===&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color: green&amp;quot;&amp;gt;Green folders:&amp;lt;/span&amp;gt;'''  &amp;lt;br&amp;gt;&lt;br /&gt;
The '''&amp;lt;code&amp;gt;iocxxx&amp;lt;/code&amp;gt;''' directory is referred to as the '''startup''' directory.  It contains the '''&amp;lt;code&amp;gt;st.cmd&amp;lt;/code&amp;gt;''' file, which is the '''runtime configuration''' for the IOC (i.e. all the files the IOC needs to load to run/start).&lt;br /&gt;
The IOC’s config is often broken into separate '''&amp;lt;code&amp;gt;.iocsh&amp;lt;/code&amp;gt;''' (or '''&amp;lt;code&amp;gt;.cmd&amp;lt;/code&amp;gt;''') files so that support can be more easily commented out and to improve readability; '''&amp;lt;code&amp;gt;substitutions&amp;lt;/code&amp;gt;''' and '''&amp;lt;code&amp;gt;iocsh&amp;lt;/code&amp;gt;''' files usually reside in subdirectories to reduce clutter in the startup directory.&lt;br /&gt;
&lt;br /&gt;
=== Startup scripts ===&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color: blue&amp;quot;&amp;gt;Blue folders:&amp;lt;/span&amp;gt;'''  &amp;lt;br&amp;gt;&lt;br /&gt;
The top-level IOC directory '''&amp;lt;code&amp;gt;xxx&amp;lt;/code&amp;gt;''' contains scripts that start medm &amp;amp; caQtDM.&lt;br /&gt;
The startup directory &amp;lt;code&amp;gt;'''softioc'''&amp;lt;/code&amp;gt; subdirectory contains a bash script which simplifies managing the IOC on Linux.&lt;br /&gt;
Windows IOCs: the startup directory contains batch files to start the IOC.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Note&amp;lt;/u&amp;gt;: The startup directory can reside elsewhere.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== How does support get into an IOC? ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Quick overview ===&lt;br /&gt;
&lt;br /&gt;
[[File:EPICS_basics_linking_diagrams.png|right|thumb|800px]]&lt;br /&gt;
* '''&amp;lt;code&amp;gt;configure/RELEASE&amp;lt;/code&amp;gt;''':&lt;br /&gt;
** Defines the locations of EPICS base and EPICS modules&lt;br /&gt;
** Often includes other RELEASE files&lt;br /&gt;
** '''&amp;lt;u&amp;gt;Note&amp;lt;/u&amp;gt;: already included when using &amp;lt;code&amp;gt;mkioc&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;xxxApp/src/Makefile&amp;lt;/code&amp;gt;''':&lt;br /&gt;
** Specifies which database definitions ('''&amp;lt;code&amp;gt;dbd&amp;lt;/code&amp;gt;''') to include&lt;br /&gt;
** Specifies which libraries should be included in the IOC binary&lt;br /&gt;
** Specifies which local code should be included in the IOC binary&lt;br /&gt;
** Libraries will not be included unless an associated '''&amp;lt;code&amp;gt;dbd&amp;lt;/code&amp;gt;''' file is included&lt;br /&gt;
** The order of the libraries is important (single-pass linker)&lt;br /&gt;
** '''&amp;lt;u&amp;gt;Note&amp;lt;/u&amp;gt;: unless you are adding a non-synApps module or an uncommon motor driver, you should not need to modify the &amp;lt;code&amp;gt;Makefile&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;iocBoot/iocxxx/st.cmd&amp;lt;/code&amp;gt;''':&lt;br /&gt;
** That is the runtime configuration file, i.e. the primary IOC config file that is sourced when the IOC is started: determines all the things that gets loaded (e.g. ''I want 7 motor records, with these names, and this resolution, etc...'')&lt;br /&gt;
** Name can vary slightly based on how the IOC was created&lt;br /&gt;
** '''&amp;lt;u&amp;gt;Note&amp;lt;/u&amp;gt;: this is the file that you will very likely modify'''&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Startup script &amp;lt;code&amp;gt;st.cmd&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
Legacy IOCs often have monolithic '''&amp;lt;code&amp;gt;st.cmd&amp;lt;/code&amp;gt;''' files. Newer IOCs source more '''&amp;lt;code&amp;gt;.iocsh&amp;lt;/code&amp;gt;''' files from EPICS modules, which makes it easier to keep an IOC's config up-to-date.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt; envPaths&lt;br /&gt;
 &lt;br /&gt;
 dbLoadDatabase(&amp;quot;../../dbd/iocxxxLinux.dbd&amp;quot;)&lt;br /&gt;
 iocxxxLinux_registerRecordDeviceDriver(pdbbase)&lt;br /&gt;
 &lt;br /&gt;
 ### Databases are loaded&lt;br /&gt;
 ### Drivers are initialized/configured here&lt;br /&gt;
 &lt;br /&gt;
 iocInit&lt;br /&gt;
 &lt;br /&gt;
 ### Sequence programs &amp;amp; autosave are started here&lt;br /&gt;
 &lt;br /&gt;
 dbl &amp;gt; dbl-all.txt&lt;br /&gt;
 &lt;br /&gt;
 date&lt;br /&gt;
&lt;br /&gt;
We can break it up into 3 functional zones:&lt;br /&gt;
* '''Zone 1''' - before '''&amp;lt;code&amp;gt;dbLoadDatabase&amp;lt;/code&amp;gt;''':  it is usually dedicated to setting-up the environment (e.g. defines environment variables and paths to EPICS modules).&lt;br /&gt;
* '''Zone 2''' - after '''&amp;lt;code&amp;gt;dbLoadDatabase&amp;lt;/code&amp;gt;''' &amp;amp; before '''&amp;lt;code&amp;gt;iocInit&amp;lt;/code&amp;gt;''':  this is were most of the software is loaded (e.g. databases and substitutions template are loaded here, drivers are initialized and configured).&lt;br /&gt;
* '''Zone 3''' - after '''&amp;lt;code&amp;gt;iocInit&amp;lt;/code&amp;gt;''': this zone is mostly empty thanks to '''&amp;lt;code&amp;gt;doAfterIocInit&amp;lt;/code&amp;gt;''' from the '''&amp;lt;code&amp;gt;std&amp;lt;/code&amp;gt;''' module (sequence programs and autosave get initialized here, but the calls that do the initializing appear much earlier in the startup)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Note&amp;lt;/u&amp;gt;: PVs are available during '''&amp;lt;code&amp;gt;iocInit&amp;lt;/code&amp;gt;''', even though the IOC is still starting up.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Autosave ===&lt;br /&gt;
&lt;br /&gt;
'''autosave''' is a synApps module that provides seamless reboot functionality. It is mostly automatic when '''&amp;lt;code&amp;gt;mkioc&amp;lt;/code&amp;gt;''' is used. &lt;br /&gt;
PVs are saved while the IOC is running and loaded during '''&amp;lt;code&amp;gt;iocInit&amp;lt;/code&amp;gt;'''.  &lt;br /&gt;
Autosaved values overwrite database defaults.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:IOC_autosave.jpg|right|thumb|300px]]&lt;br /&gt;
&lt;br /&gt;
In ''xxx''-based IOCs, created using '''&amp;lt;code&amp;gt;mkioc&amp;lt;/code&amp;gt;''', autosave is included by default: '''&amp;lt;code&amp;gt;common.iocsh&amp;lt;/code&amp;gt;''' contains all the necessary configuration, and you will only need to modify it if you want to customize something. It also includes an '''autosaveBuild''' feature: every loaded database with associated req files ('''&amp;lt;code&amp;gt;_settings.req&amp;lt;/code&amp;gt;''') are automatically added to '''&amp;lt;code&amp;gt;autosave/built_position.req&amp;lt;/code&amp;gt;''' and '''&amp;lt;code&amp;gt;autosave/built_settings.req&amp;lt;/code&amp;gt;''', so long as they use the correct naming convention, i.e. the '''&amp;lt;code&amp;gt;_settings.req&amp;lt;/code&amp;gt;''' uses the same prefix as the database.&amp;lt;br&amp;gt;&lt;br /&gt;
The legacy request files, '''&amp;lt;code&amp;gt;autosave_position.req&amp;lt;/code&amp;gt;''' and '''&amp;lt;code&amp;gt;autosave_settings.req&amp;lt;/code&amp;gt;''' (that live outside the '''&amp;lt;code&amp;gt;autosave&amp;lt;/code&amp;gt;''' directory) are reserved for things added manually (often empty).&lt;br /&gt;
Multiple '''&amp;lt;code&amp;gt;.sav&amp;lt;/code&amp;gt;''' files can be created:&lt;br /&gt;
* Default:&lt;br /&gt;
** '''&amp;lt;code&amp;gt;.sav&amp;lt;/code&amp;gt;''' &amp;amp; '''&amp;lt;code&amp;gt;.savB&amp;lt;/code&amp;gt;'''&lt;br /&gt;
** actually restored when the IOC restarts&lt;br /&gt;
* Periodic:&lt;br /&gt;
** '''&amp;lt;code&amp;gt;.sav0&amp;lt;/code&amp;gt;''', '''&amp;lt;code&amp;gt;.sav1&amp;lt;/code&amp;gt;''', '''&amp;lt;code&amp;gt;.sav2&amp;lt;/code&amp;gt;''', …&lt;br /&gt;
** overwritten cyclically; if the default one do not exist, those ones get restored. &lt;br /&gt;
* Dated:&lt;br /&gt;
** '''&amp;lt;code&amp;gt;.sav-230109-134502&amp;lt;/code&amp;gt;'''&lt;br /&gt;
** written once at boot time&lt;br /&gt;
&lt;br /&gt;
The 1st half of '''&amp;lt;code&amp;gt;common.iocsh&amp;lt;/code&amp;gt;''' sets up autosave:&lt;br /&gt;
[https://github.com/epics-modules/xxx/blob/master/iocBoot/iocxxx/common.iocsh#L1-L46 https://github.com/epics-modules/xxx/blob/master/iocBoot/iocxxx/common.iocsh#L1-L46]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== How to build &amp;amp; clean a Linux IOC ===&lt;br /&gt;
&lt;br /&gt;
* Confirm the RHEL version&lt;br /&gt;
** &amp;lt;code&amp;gt; '''uname -r''' → 3.10.0-1160.62.1.'''el7'''.x86_64&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt; '''cat /etc/redhat-release''' → Red Hat Enterprise Linux Server release '''7.9'''&amp;lt;/code&amp;gt;&lt;br /&gt;
* Set &amp;lt;code&amp;gt; EPICS_HOST_ARCH&amp;lt;/code&amp;gt;  environment variable&lt;br /&gt;
** bash: &amp;lt;code&amp;gt;'''export EPICS_HOST_ARCH=rhel7-x86_64'''&amp;lt;/code&amp;gt;&lt;br /&gt;
** tcsh: &amp;lt;code&amp;gt;'''setenv EPICS_HOST_ARCH rhel7-x86_64'''&amp;lt;/code&amp;gt;&lt;br /&gt;
* Initiate the build in the top-level IOC directory:&lt;br /&gt;
** &amp;lt;code&amp;gt;'''make'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Remove intermediate build dirs (for the current &amp;lt;code&amp;gt; EPICS_HOST_ARCH&amp;lt;/code&amp;gt;):&lt;br /&gt;
** &amp;lt;code&amp;gt;'''make clean'''&amp;lt;/code&amp;gt; &lt;br /&gt;
* Remove all intermediate build dirs and top-level build directories to start fresh:&lt;br /&gt;
** &amp;lt;code&amp;gt;'''make distclean'''&amp;lt;/code&amp;gt;&lt;br /&gt;
* Show all make options:&lt;br /&gt;
** &amp;lt;code&amp;gt;'''make help'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Running an IOC ==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Use the script ===&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Create an alias ====&lt;br /&gt;
&lt;br /&gt;
Create an alias for the script (assuming PWD = IOC’s top-level dir)&lt;br /&gt;
:&amp;lt;code&amp;gt;$ '''alias kmp=${PWD}/iocBoot/iockmp/softioc/kmp.sh'''&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;$ '''kmp''' &amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;Usage: kmp.sh {console|restart|run|start|caqtdm|medm|status|stop|usage}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Noteworthy arguments:&lt;br /&gt;
* '''&amp;lt;code&amp;gt;run&amp;lt;/code&amp;gt;''': Runs the IOC in the current terminal (doesn't return the command prompt). Useful for troubleshooting.  Problematic for normal operation.&lt;br /&gt;
* '''&amp;lt;code&amp;gt;start&amp;lt;/code&amp;gt;''': Runs the IOC in the background (returns the command prompt) using screen or procServ.&lt;br /&gt;
* '''&amp;lt;code&amp;gt;status&amp;lt;/code&amp;gt;''': Tells you if the IOC is running and refuses to start if it is.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Note&amp;lt;/u&amp;gt;: &lt;br /&gt;
* Use the full path to the IOC’s start script so the alias can be run from any directory (bash syntax shown).&lt;br /&gt;
* &amp;lt;code&amp;gt;EPICS_HOST_ARCH&amp;lt;/code&amp;gt; needs to still be set otherwise the IOC will not start (unless the &amp;lt;code&amp;gt;EPICS_HOST_ARCH&amp;lt;/code&amp;gt; is hard-coded in the start script).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Start caQtDM ====&lt;br /&gt;
&lt;br /&gt;
:'''&amp;lt;code&amp;gt;kmp caqtdm &amp;amp;&amp;lt;/code&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Note&amp;lt;/u&amp;gt;: the ampersand is needed for synApps_6_2_1 IOCs, but it won’t be needed in the future because it was added to the '''&amp;lt;code&amp;gt;start_caQtDM_xxx&amp;lt;/code&amp;gt;''' script.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Start the IOC ====&lt;br /&gt;
&lt;br /&gt;
Starts the IOC in the background (using screen or procServ):&lt;br /&gt;
&lt;br /&gt;
:'''&amp;lt;code&amp;gt;kmp start&amp;lt;/code&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
IOCs are usually run in screen or procServ so that: &lt;br /&gt;
* the window in which they’re started can be closed&lt;br /&gt;
* multiple people can connect to them&lt;br /&gt;
* [procServ] allows other user accounts to restart an IOC&lt;br /&gt;
* [procServ] allows users to connect to Windows IOCs&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Confirm the IOC is running ====&lt;br /&gt;
&lt;br /&gt;
:'''&amp;lt;code&amp;gt;kmp status&amp;lt;/code&amp;gt;'''&lt;br /&gt;
:&amp;lt;code&amp;gt;kmp is running (pid=1281733) in a screen session (pid=1281732)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Note&amp;lt;/u&amp;gt;: bugs in the deployed copy of '''&amp;lt;code&amp;gt;xxx.sh&amp;lt;/code&amp;gt;''' may prevent it from detecting an IOC is running.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Connecting to an IOC’s shell ===&lt;br /&gt;
&lt;br /&gt;
There are many ways to do it:&lt;br /&gt;
&lt;br /&gt;
* Manually connect to an IOC running in screen from the IOC’s host&lt;br /&gt;
::&amp;lt;code&amp;gt;$ '''screen -x kmp'''&amp;lt;/code&amp;gt;&lt;br /&gt;
::The -x option will connect even if someone is already connected to the screen session.  &lt;br /&gt;
::The -r option only succeeds if no one is connected to the session.&lt;br /&gt;
&lt;br /&gt;
* Connect to an IOC running in screen or procServ from the IOC’s host&lt;br /&gt;
::&amp;lt;code&amp;gt;$ '''kmp console'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Connect to an IOC running in screen or procServ with logging '''from any host'''&lt;br /&gt;
::&amp;lt;code&amp;gt;$ '''/APSshare/bin/iocConsole.py iockmp'''&amp;lt;/code&amp;gt;&lt;br /&gt;
::&amp;lt;u&amp;gt;Note&amp;lt;/u&amp;gt;: iocConsole.py requires ssh access which beamline accounts don't have by default&lt;br /&gt;
&lt;br /&gt;
* Manually connect to an IOC running in procServ from the IOC’s subnet&lt;br /&gt;
::&amp;lt;code&amp;gt;$ '''telnet s100bcda 53127'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Disconnecting from an IOC’s shell ===&lt;br /&gt;
&lt;br /&gt;
* '''Close the terminal''' that is connected to the screen or procServ session&lt;br /&gt;
** Disconnects from both screen &amp;amp; procServ&lt;br /&gt;
** Kills an IOC running outside of screen &amp;amp; procServ&lt;br /&gt;
* '''&amp;lt;code&amp;gt;Ctrl+a&amp;lt;/code&amp;gt;''', '''&amp;lt;code&amp;gt;Ctrl+d&amp;lt;/code&amp;gt;'''&lt;br /&gt;
** Disconnects from both screen &amp;amp; procServ&lt;br /&gt;
** Kills an IOC running outside of screen &amp;amp; procServ&lt;br /&gt;
* '''&amp;lt;code&amp;gt;Ctrl+a, d&amp;lt;/code&amp;gt;'''&lt;br /&gt;
** Only disconnects from screen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== IOC shell commands ===&lt;br /&gt;
&lt;br /&gt;
See [https://wiki-ext.aps.anl.gov/blc/index.php?title=EPICS_Cheat_Sheet EPICS Cheat Sheet]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Where does EPICS support reside at the APS ==&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:IOC_Support.jpg|center|thumb|500px]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== What's next? ==&lt;br /&gt;
For step by step instructions to create your own IOC, go to [https://git.aps.anl.gov/practical_beamline_controls_training/session_2/instructions IOC Deployment &amp;amp; Troubleshooting].&lt;/div&gt;</summary>
		<author><name>Jemian</name></author>
	</entry>
	<entry>
		<id>https://wiki-ext.aps.anl.gov/blc/index.php?title=Beamline_Controls&amp;diff=585</id>
		<title>Beamline Controls</title>
		<link rel="alternate" type="text/html" href="https://wiki-ext.aps.anl.gov/blc/index.php?title=Beamline_Controls&amp;diff=585"/>
		<updated>2023-06-13T18:57:28Z</updated>

		<summary type="html">&lt;p&gt;Jemian: /* Beamline Data Pipelines */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;WIKI for the APS Beamline Controls Community, maintained by the Beamline Controls Technical Working Group.&amp;lt;br /&amp;gt;&lt;br /&gt;
This wiki exists to collect the output of the working group, including documentation on beamline controls software and hardware useful for APS beamline scientists and resident users.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Beamline Controls Documentation===&lt;br /&gt;
&lt;br /&gt;
* [[EPICS_Cheat_Sheet|EPICS Cheat Sheet]]: Channel Access command-lines, noteworthy record fields &amp;amp; IOC shell commands.&lt;br /&gt;
* [[EPICS_101|EPICS 101]]: definition of basic EPICS components ([https://wiki-ext.aps.anl.gov/blc/index.php?title=EPICS_101#What_is_an_IOC.3F IOC], [https://wiki-ext.aps.anl.gov/blc/index.php?title=EPICS_101#What_is_a_PV.3F PV], [https://wiki-ext.aps.anl.gov/blc/index.php?title=EPICS_101#What_is_a_record.3F record], [https://wiki-ext.aps.anl.gov/blc/index.php?title=EPICS_101#What_is_a_databases.3F database]).&lt;br /&gt;
* [[IOC_101|IOC 101]]: learn how to create your own IOC.&lt;br /&gt;
* [[Controls Software Documentation]]&lt;br /&gt;
* [[Hardware and IT Configuration]]&lt;br /&gt;
&lt;br /&gt;
===Practical Beamline Controls Training (2023)===&lt;br /&gt;
&lt;br /&gt;
[[Practical_Beamline_Controls_Training#IOC_Basics|Session 1: IOC Basics]]&lt;br /&gt;
&lt;br /&gt;
[[Practical_Beamline_Controls_Training#IOC_Deployment_.26_Troubleshooting|Session 2: IOC Deployment &amp;amp; Troubleshooting]]&lt;br /&gt;
&lt;br /&gt;
===Beamline Controls Technical Working Group information===&lt;br /&gt;
&lt;br /&gt;
The BC Technical Working (BCTWG) group meets monthly to review and gather feedback on possible changes in either the way BC delivers support or the technologies that BC supports. The BCTWG comprises the BC group plus interested stakeholders from XSD. In a nutshell, the main goal of the BCTWG is to improve communication between BC and its customers on topics of mutual interest.&lt;br /&gt;
&lt;br /&gt;
* Box folder with slides and meeting notes (ANL only): [https://anl.box.com/s/chcn7xauil93inay8ipinbxtcckc9k9f]&lt;br /&gt;
&lt;br /&gt;
* Current chairs:&lt;br /&gt;
** Kevin Peterson (XSD-BC)&lt;br /&gt;
** Tejas Guruswamy (XSD-DET)&lt;br /&gt;
** Andrew Chuang (XSD-MPE)&lt;br /&gt;
&lt;br /&gt;
===Beamline Data Pipelines===&lt;br /&gt;
&lt;br /&gt;
* https://git.aps.anl.gov/groups/bdp-public/-/wikis/home&lt;/div&gt;</summary>
		<author><name>Jemian</name></author>
	</entry>
	<entry>
		<id>https://wiki-ext.aps.anl.gov/blc/index.php?title=Beamline_Controls&amp;diff=584</id>
		<title>Beamline Controls</title>
		<link rel="alternate" type="text/html" href="https://wiki-ext.aps.anl.gov/blc/index.php?title=Beamline_Controls&amp;diff=584"/>
		<updated>2023-06-06T18:28:42Z</updated>

		<summary type="html">&lt;p&gt;Jemian: add BDP project link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;WIKI for the APS Beamline Controls Community, maintained by the Beamline Controls Technical Working Group.&amp;lt;br /&amp;gt;&lt;br /&gt;
This wiki exists to collect the output of the working group, including documentation on beamline controls software and hardware useful for APS beamline scientists and resident users.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Beamline Controls Documentation===&lt;br /&gt;
&lt;br /&gt;
* [[EPICS_Cheat_Sheet|EPICS Cheat Sheet]]: Channel Access command-lines, noteworthy record fields &amp;amp; IOC shell commands.&lt;br /&gt;
* [[EPICS_101|EPICS 101]]: definition of basic EPICS components ([https://wiki-ext.aps.anl.gov/blc/index.php?title=EPICS_101#What_is_an_IOC.3F IOC], [https://wiki-ext.aps.anl.gov/blc/index.php?title=EPICS_101#What_is_a_PV.3F PV], [https://wiki-ext.aps.anl.gov/blc/index.php?title=EPICS_101#What_is_a_record.3F record], [https://wiki-ext.aps.anl.gov/blc/index.php?title=EPICS_101#What_is_a_databases.3F database]).&lt;br /&gt;
* [[IOC_101|IOC 101]]: learn how to create your own IOC.&lt;br /&gt;
* [[Controls Software Documentation]]&lt;br /&gt;
* [[Hardware and IT Configuration]]&lt;br /&gt;
&lt;br /&gt;
===Practical Beamline Controls Training (2023)===&lt;br /&gt;
&lt;br /&gt;
[[Practical_Beamline_Controls_Training#IOC_Basics|Session 1: IOC Basics]]&lt;br /&gt;
&lt;br /&gt;
[[Practical_Beamline_Controls_Training#IOC_Deployment_.26_Troubleshooting|Session 2: IOC Deployment &amp;amp; Troubleshooting]]&lt;br /&gt;
&lt;br /&gt;
===Beamline Controls Technical Working Group information===&lt;br /&gt;
&lt;br /&gt;
The BC Technical Working (BCTWG) group meets monthly to review and gather feedback on possible changes in either the way BC delivers support or the technologies that BC supports. The BCTWG comprises the BC group plus interested stakeholders from XSD. In a nutshell, the main goal of the BCTWG is to improve communication between BC and its customers on topics of mutual interest.&lt;br /&gt;
&lt;br /&gt;
* Box folder with slides and meeting notes (ANL only): [https://anl.box.com/s/chcn7xauil93inay8ipinbxtcckc9k9f]&lt;br /&gt;
&lt;br /&gt;
* Current chairs:&lt;br /&gt;
** Kevin Peterson (XSD-BC)&lt;br /&gt;
** Tejas Guruswamy (XSD-DET)&lt;br /&gt;
** Andrew Chuang (XSD-MPE)&lt;br /&gt;
&lt;br /&gt;
===Beamline Data Pipelines===&lt;br /&gt;
&lt;br /&gt;
* https://git.aps.anl.gov/BDP-Project/documentation/-/wikis/Overview&lt;/div&gt;</summary>
		<author><name>Jemian</name></author>
	</entry>
	<entry>
		<id>https://wiki-ext.aps.anl.gov/blc/index.php?title=Controls_Software_Documentation&amp;diff=41</id>
		<title>Controls Software Documentation</title>
		<link rel="alternate" type="text/html" href="https://wiki-ext.aps.anl.gov/blc/index.php?title=Controls_Software_Documentation&amp;diff=41"/>
		<updated>2022-12-08T21:30:19Z</updated>

		<summary type="html">&lt;p&gt;Jemian: docker IOCs and training VM&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page exists to collect links to documentation about the instrument control system EPICS, its modules and related libraries (synApps, areaDetector), as used at the Advanced Photon Source.&lt;br /&gt;
&lt;br /&gt;
Documentation referenced should be appropriate for beamline scientists, as opposed to only EPICS developers.&lt;br /&gt;
New deployments should prefer EPICSv7, the latest release series.&lt;br /&gt;
&lt;br /&gt;
See also the extensive [https://epics-controls.org/resources-and-support/documents/training/ resources from past EPICS Collaboration meetings].&lt;br /&gt;
&lt;br /&gt;
==EPICS Base==&lt;br /&gt;
* [https://docs.epics-controls.org/en/latest/guides/EPICS_Intro.html Intro to EPICS]&lt;br /&gt;
* [https://docs.epics-controls.org/en/latest/guides/EPICS_Process_Database_Concepts.html EPICS Database Concepts]&lt;br /&gt;
* [https://docs.epics-controls.org/projects/how-tos/en/latest/getting-started/installation.html EPICS Base Getting Started (official)]&lt;br /&gt;
* [https://cmd-response.readthedocs.io/en/latest/epics/rpi_epics.html Installing EPICS on RaspberryPi]&lt;br /&gt;
&lt;br /&gt;
==synApps (aka EPICS Support)==&lt;br /&gt;
* [https://epics.anl.gov/bcda/synApps/synApps_docs_all.html synApps Collected Documentation]&lt;br /&gt;
* [https://epics.anl.gov/bcda/synApps/synApps.html synApps deployment instructions, including use of xxx template ioc]&lt;br /&gt;
&lt;br /&gt;
==areaDetector==&lt;br /&gt;
* [https://areadetector.github.io/master/index.html areaDetector Official Documentation]&lt;br /&gt;
&lt;br /&gt;
==Deploying, troubleshooting, and maintaining IOCs==&lt;br /&gt;
* [[Troubleshooting EPICS IOCs]]&lt;br /&gt;
* [https://docs2bm.readthedocs.io/en/latest/source/ops/item_000_0.html simDetector Install directions (2BM)]&lt;br /&gt;
* [https://epics-modules.github.io/xxx/overview.html The Basics of an IOC (XXX documentation)]&lt;br /&gt;
* [https://gist.github.com/keenanlang/e768774cbd0a367b96281939b8a2c9ba Creation of an IOC using mkioc]&lt;br /&gt;
* [https://wiki.aps.anl.gov/bcda/index.php/Category:TUTORIAL BCDA Tutorials (APS Internal)]&lt;br /&gt;
&lt;br /&gt;
==Pre-built IOCs==&lt;br /&gt;
===Docker images===&lt;br /&gt;
* EPICS Base 7.0.5, synApps 6.2: [https://github.com/prjemian/epics-docker/tree/main/v1.1/n3_synApps#readmemd standard xxx], [https://github.com/prjemian/epics-docker/tree/main/v1.1/n5_custom_synApps#readmemd customized]&lt;br /&gt;
* EPICS Base 7.0.5, synApps 6.2, area detector 3.10: [https://github.com/prjemian/epics-docker/tree/main/v1.1/n4_areaDetector#readmemd standard], [https://github.com/prjemian/epics-docker/tree/main/v1.1/n6_custom_areaDetector#readmemd custom]&lt;br /&gt;
===Virtual Machines===&lt;br /&gt;
* [https://github.com/BCDA-APS/epics-bluesky-vm/blob/main/install_vm.md APS Bluesky 101 training VM image.]&lt;br /&gt;
&lt;br /&gt;
==Maintaining Documentation==&lt;br /&gt;
* [https://bctwg.readthedocs.io/en/latest/index.html ReadTheDocs tutorial and example site]&lt;br /&gt;
&lt;br /&gt;
==APS ESAF &amp;amp; Proposal - Read-only interface==&lt;br /&gt;
* [https://bcda-aps.github.io/apsbss/ apsbss - Read-only interface to information from APS Proposal and ESAF (experiment safety approval form) databases.]&lt;br /&gt;
&lt;br /&gt;
==Bluesky==&lt;br /&gt;
* [https://blueskyproject.io Bluesky home page]&lt;br /&gt;
* [https://try.nsls2.bnl.gov Try Bluesky in a web browser (from NSLS-II)]&lt;br /&gt;
* [https://bcda-aps.github.io/apstools apstools - Various Python tools for use with Bluesky at the APS.], [https://bcda-aps.github.io/apstools/examples/index.html Guides, How-Tos, and other examples.] [https://github.com/BCDA-APS/bluesky_training/blob/main/APS_Bluesky_101.md APS Bluesky 101 (from 2021).]&lt;br /&gt;
* [https://blueskyproject.io/hklpy/ hklpy: Bluesky's diffractometer support], [https://blueskyproject.io/hklpy/examples/index.html Diffractometer examples.]&lt;br /&gt;
* [https://github.com/BCDA-APS/bluesky_training Bluesky training for APS users]&lt;br /&gt;
* [https://github.com/BCDA-APS/bluesky_training/tree/main/bluesky Template for new instrument description. (Includes configuration for IPython console, Jupyter notebook, and bluesky-queueserver.]&lt;br /&gt;
* [https://github.com/BCDA-APS/use_bluesky#use_bluesky Installation Steps for APS users]&lt;br /&gt;
* [https://blueskyproject.io/bluesky-queueserver/ queueserver - Server for queueing plans.], [https://blueskyproject.io/bluesky-queueserver-api/ API documentation]&lt;br /&gt;
* [https://blueskyproject.io/tiled/ tiled - Data server for databroker and directories with data files.], [https://github.com/BCDA-APS/tiled-template Template for creating a local tiled data server at APS.]&lt;br /&gt;
* [https://slaclab.github.io/pydm/ PyDM - Python Display Manager]&lt;br /&gt;
* [https://github.com/BCDA-APS/adl2pydm adl2pydm - Convert MEDM's .adl files to PyDM's .ui format.]&lt;br /&gt;
&lt;br /&gt;
==Python support==&lt;br /&gt;
===Channel Access===&lt;br /&gt;
* [https://pyepics.github.io/pyepics/ PyEpics - Python interface for Channel Access based on libca and libCom.]&lt;br /&gt;
* [https://caproto.github.io/caproto/v0.8.1/ caproto - Python interface for Channel Access in pure Python.]&lt;br /&gt;
===PV Access===&lt;br /&gt;
* [https://mdavidsaver.github.io/p4p/ p4p - Python interface for PV Access]&lt;br /&gt;
* [https://github.com/epics-base/pvaPy pvapy - Python interface for PV Access, also provides CA interface]&lt;br /&gt;
===General===&lt;br /&gt;
* [https://bcdamenu.readthedocs.io/ bcdamenu - GUI menu to beam line software, such as synoptic display.]&lt;br /&gt;
* [https://github.com/EPICS-synApps/support/tree/master/utils/mdaPythonUtils mdaPythonUtils - Read .mda data files into Python.]&lt;br /&gt;
* [https://github.com/prjemian/pvMail PvMail - Watch an EPICS PV. Send email when it changes from 0 to 1.]&lt;br /&gt;
* [https://github.com/BCDA-APS/pvview pvView - Display one or more EPICS PVs in a PyDM GUI window as a table.]&lt;br /&gt;
* [https://github.com/BCDA-APS/pvWebMonitor pvWebMonitor - Post EPICS PVs to read-only (static) web site.]&lt;br /&gt;
* [https://prjemian.github.io/punx/ punx - Python Utilities for NeXus HDF5 files: validation, structure, hierarchy.]&lt;br /&gt;
* [https://prjemian.github.io/pyRestTable/ pyRestTable - Format a nice table in reST (reStructuredText) from Python.]&lt;br /&gt;
* [https://prjemian.github.io/pysumreg/ pysumreg - Statistics of list of (x,y) pairs from calculator-style summation registers.]&lt;br /&gt;
* [https://github.com/prjemian/spec2nexus/ spec2nexus - Read SPEC data files into Python, write NeXus data file.]&lt;/div&gt;</summary>
		<author><name>Jemian</name></author>
	</entry>
	<entry>
		<id>https://wiki-ext.aps.anl.gov/blc/index.php?title=Controls_Software_Documentation&amp;diff=40</id>
		<title>Controls Software Documentation</title>
		<link rel="alternate" type="text/html" href="https://wiki-ext.aps.anl.gov/blc/index.php?title=Controls_Software_Documentation&amp;diff=40"/>
		<updated>2022-12-08T21:18:28Z</updated>

		<summary type="html">&lt;p&gt;Jemian: /* EPICS Base */ Installing EPICS on RaspberryPi&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page exists to collect links to documentation about the instrument control system EPICS, its modules and related libraries (synApps, areaDetector), as used at the Advanced Photon Source.&lt;br /&gt;
&lt;br /&gt;
Documentation referenced should be appropriate for beamline scientists, as opposed to only EPICS developers.&lt;br /&gt;
New deployments should prefer EPICSv7, the latest release series.&lt;br /&gt;
&lt;br /&gt;
See also the extensive [https://epics-controls.org/resources-and-support/documents/training/ resources from past EPICS Collaboration meetings].&lt;br /&gt;
&lt;br /&gt;
==EPICS Base==&lt;br /&gt;
* [https://docs.epics-controls.org/en/latest/guides/EPICS_Intro.html Intro to EPICS]&lt;br /&gt;
* [https://docs.epics-controls.org/en/latest/guides/EPICS_Process_Database_Concepts.html EPICS Database Concepts]&lt;br /&gt;
* [https://docs.epics-controls.org/projects/how-tos/en/latest/getting-started/installation.html EPICS Base Getting Started (official)]&lt;br /&gt;
* [https://cmd-response.readthedocs.io/en/latest/epics/rpi_epics.html Installing EPICS on RaspberryPi]&lt;br /&gt;
&lt;br /&gt;
==synApps (aka EPICS Support)==&lt;br /&gt;
* [https://epics.anl.gov/bcda/synApps/synApps_docs_all.html synApps Collected Documentation]&lt;br /&gt;
* [https://epics.anl.gov/bcda/synApps/synApps.html synApps deployment instructions, including use of xxx template ioc]&lt;br /&gt;
&lt;br /&gt;
==areaDetector==&lt;br /&gt;
* [https://areadetector.github.io/master/index.html areaDetector Official Documentation]&lt;br /&gt;
&lt;br /&gt;
==Deploying, troubleshooting, and maintaining IOCs==&lt;br /&gt;
* [[Troubleshooting EPICS IOCs]]&lt;br /&gt;
* [https://docs2bm.readthedocs.io/en/latest/source/ops/item_000_0.html simDetector Install directions (2BM)]&lt;br /&gt;
* [https://epics-modules.github.io/xxx/overview.html The Basics of an IOC (XXX documentation)]&lt;br /&gt;
* [https://gist.github.com/keenanlang/e768774cbd0a367b96281939b8a2c9ba Creation of an IOC using mkioc]&lt;br /&gt;
* [https://wiki.aps.anl.gov/bcda/index.php/Category:TUTORIAL BCDA Tutorials (APS Internal)]&lt;br /&gt;
==Maintaining Documentation==&lt;br /&gt;
* [https://bctwg.readthedocs.io/en/latest/index.html ReadTheDocs tutorial and example site]&lt;br /&gt;
&lt;br /&gt;
==APS ESAF &amp;amp; Proposal - Read-only interface==&lt;br /&gt;
* [https://bcda-aps.github.io/apsbss/ apsbss - Read-only interface to information from APS Proposal and ESAF (experiment safety approval form) databases.]&lt;br /&gt;
&lt;br /&gt;
==Bluesky==&lt;br /&gt;
* [https://blueskyproject.io Bluesky home page]&lt;br /&gt;
* [https://try.nsls2.bnl.gov Try Bluesky in a web browser (from NSLS-II)]&lt;br /&gt;
* [https://bcda-aps.github.io/apstools apstools - Various Python tools for use with Bluesky at the APS.], [https://bcda-aps.github.io/apstools/examples/index.html Guides, How-Tos, and other examples.]&lt;br /&gt;
* [https://blueskyproject.io/hklpy/ hklpy: Bluesky's diffractometer support], [https://blueskyproject.io/hklpy/examples/index.html Diffractometer examples.]&lt;br /&gt;
* [https://github.com/BCDA-APS/bluesky_training Bluesky training for APS users]&lt;br /&gt;
* [https://github.com/BCDA-APS/bluesky_training/tree/main/bluesky Template for new instrument description. (Includes configuration for IPython console, Jupyter notebook, and bluesky-queueserver.]&lt;br /&gt;
* [https://github.com/BCDA-APS/use_bluesky#use_bluesky Installation Steps for APS users]&lt;br /&gt;
* [https://blueskyproject.io/bluesky-queueserver/ queueserver - Server for queueing plans.], [https://blueskyproject.io/bluesky-queueserver-api/ API documentation]&lt;br /&gt;
* [https://blueskyproject.io/tiled/ tiled - Data server for databroker and directories with data files.], [https://github.com/BCDA-APS/tiled-template Template for creating a local tiled data server at APS.]&lt;br /&gt;
* [https://slaclab.github.io/pydm/ PyDM - Python Display Manager]&lt;br /&gt;
* [https://github.com/BCDA-APS/adl2pydm adl2pydm - Convert MEDM's .adl files to PyDM's .ui format.]&lt;br /&gt;
&lt;br /&gt;
==Python support==&lt;br /&gt;
===Channel Access===&lt;br /&gt;
* [https://pyepics.github.io/pyepics/ PyEpics - Python interface for Channel Access based on libca and libCom.]&lt;br /&gt;
* [https://caproto.github.io/caproto/v0.8.1/ caproto - Python interface for Channel Access in pure Python.]&lt;br /&gt;
===PV Access===&lt;br /&gt;
* [https://mdavidsaver.github.io/p4p/ p4p - Python interface for PV Access]&lt;br /&gt;
* [https://github.com/epics-base/pvaPy pvapy - Python interface for PV Access, also provides CA interface]&lt;br /&gt;
===General===&lt;br /&gt;
* [https://bcdamenu.readthedocs.io/ bcdamenu - GUI menu to beam line software, such as synoptic display.]&lt;br /&gt;
* [https://github.com/EPICS-synApps/support/tree/master/utils/mdaPythonUtils mdaPythonUtils - Read .mda data files into Python.]&lt;br /&gt;
* [https://github.com/prjemian/pvMail PvMail - Watch an EPICS PV. Send email when it changes from 0 to 1.]&lt;br /&gt;
* [https://github.com/BCDA-APS/pvview pvView - Display one or more EPICS PVs in a PyDM GUI window as a table.]&lt;br /&gt;
* [https://github.com/BCDA-APS/pvWebMonitor pvWebMonitor - Post EPICS PVs to read-only (static) web site.]&lt;br /&gt;
* [https://prjemian.github.io/punx/ punx - Python Utilities for NeXus HDF5 files: validation, structure, hierarchy.]&lt;br /&gt;
* [https://prjemian.github.io/pyRestTable/ pyRestTable - Format a nice table in reST (reStructuredText) from Python.]&lt;br /&gt;
* [https://prjemian.github.io/pysumreg/ pysumreg - Statistics of list of (x,y) pairs from calculator-style summation registers.]&lt;br /&gt;
* [https://github.com/prjemian/spec2nexus/ spec2nexus - Read SPEC data files into Python, write NeXus data file.]&lt;/div&gt;</summary>
		<author><name>Jemian</name></author>
	</entry>
	<entry>
		<id>https://wiki-ext.aps.anl.gov/blc/index.php?title=Controls_Software_Documentation&amp;diff=39</id>
		<title>Controls Software Documentation</title>
		<link rel="alternate" type="text/html" href="https://wiki-ext.aps.anl.gov/blc/index.php?title=Controls_Software_Documentation&amp;diff=39"/>
		<updated>2022-12-08T21:17:36Z</updated>

		<summary type="html">&lt;p&gt;Jemian: /* General */ bcdamenu&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page exists to collect links to documentation about the instrument control system EPICS, its modules and related libraries (synApps, areaDetector), as used at the Advanced Photon Source.&lt;br /&gt;
&lt;br /&gt;
Documentation referenced should be appropriate for beamline scientists, as opposed to only EPICS developers.&lt;br /&gt;
New deployments should prefer EPICSv7, the latest release series.&lt;br /&gt;
&lt;br /&gt;
See also the extensive [https://epics-controls.org/resources-and-support/documents/training/ resources from past EPICS Collaboration meetings].&lt;br /&gt;
&lt;br /&gt;
==EPICS Base==&lt;br /&gt;
* [https://docs.epics-controls.org/en/latest/guides/EPICS_Intro.html Intro to EPICS]&lt;br /&gt;
* [https://docs.epics-controls.org/en/latest/guides/EPICS_Process_Database_Concepts.html EPICS Database Concepts]&lt;br /&gt;
* [https://docs.epics-controls.org/projects/how-tos/en/latest/getting-started/installation.html EPICS Base Getting Started (official)]&lt;br /&gt;
&lt;br /&gt;
==synApps (aka EPICS Support)==&lt;br /&gt;
* [https://epics.anl.gov/bcda/synApps/synApps_docs_all.html synApps Collected Documentation]&lt;br /&gt;
* [https://epics.anl.gov/bcda/synApps/synApps.html synApps deployment instructions, including use of xxx template ioc]&lt;br /&gt;
&lt;br /&gt;
==areaDetector==&lt;br /&gt;
* [https://areadetector.github.io/master/index.html areaDetector Official Documentation]&lt;br /&gt;
&lt;br /&gt;
==Deploying, troubleshooting, and maintaining IOCs==&lt;br /&gt;
* [[Troubleshooting EPICS IOCs]]&lt;br /&gt;
* [https://docs2bm.readthedocs.io/en/latest/source/ops/item_000_0.html simDetector Install directions (2BM)]&lt;br /&gt;
* [https://epics-modules.github.io/xxx/overview.html The Basics of an IOC (XXX documentation)]&lt;br /&gt;
* [https://gist.github.com/keenanlang/e768774cbd0a367b96281939b8a2c9ba Creation of an IOC using mkioc]&lt;br /&gt;
* [https://wiki.aps.anl.gov/bcda/index.php/Category:TUTORIAL BCDA Tutorials (APS Internal)]&lt;br /&gt;
==Maintaining Documentation==&lt;br /&gt;
* [https://bctwg.readthedocs.io/en/latest/index.html ReadTheDocs tutorial and example site]&lt;br /&gt;
&lt;br /&gt;
==APS ESAF &amp;amp; Proposal - Read-only interface==&lt;br /&gt;
* [https://bcda-aps.github.io/apsbss/ apsbss - Read-only interface to information from APS Proposal and ESAF (experiment safety approval form) databases.]&lt;br /&gt;
&lt;br /&gt;
==Bluesky==&lt;br /&gt;
* [https://blueskyproject.io Bluesky home page]&lt;br /&gt;
* [https://try.nsls2.bnl.gov Try Bluesky in a web browser (from NSLS-II)]&lt;br /&gt;
* [https://bcda-aps.github.io/apstools apstools - Various Python tools for use with Bluesky at the APS.], [https://bcda-aps.github.io/apstools/examples/index.html Guides, How-Tos, and other examples.]&lt;br /&gt;
* [https://blueskyproject.io/hklpy/ hklpy: Bluesky's diffractometer support], [https://blueskyproject.io/hklpy/examples/index.html Diffractometer examples.]&lt;br /&gt;
* [https://github.com/BCDA-APS/bluesky_training Bluesky training for APS users]&lt;br /&gt;
* [https://github.com/BCDA-APS/bluesky_training/tree/main/bluesky Template for new instrument description. (Includes configuration for IPython console, Jupyter notebook, and bluesky-queueserver.]&lt;br /&gt;
* [https://github.com/BCDA-APS/use_bluesky#use_bluesky Installation Steps for APS users]&lt;br /&gt;
* [https://blueskyproject.io/bluesky-queueserver/ queueserver - Server for queueing plans.], [https://blueskyproject.io/bluesky-queueserver-api/ API documentation]&lt;br /&gt;
* [https://blueskyproject.io/tiled/ tiled - Data server for databroker and directories with data files.], [https://github.com/BCDA-APS/tiled-template Template for creating a local tiled data server at APS.]&lt;br /&gt;
* [https://slaclab.github.io/pydm/ PyDM - Python Display Manager]&lt;br /&gt;
* [https://github.com/BCDA-APS/adl2pydm adl2pydm - Convert MEDM's .adl files to PyDM's .ui format.]&lt;br /&gt;
&lt;br /&gt;
==Python support==&lt;br /&gt;
===Channel Access===&lt;br /&gt;
* [https://pyepics.github.io/pyepics/ PyEpics - Python interface for Channel Access based on libca and libCom.]&lt;br /&gt;
* [https://caproto.github.io/caproto/v0.8.1/ caproto - Python interface for Channel Access in pure Python.]&lt;br /&gt;
===PV Access===&lt;br /&gt;
* [https://mdavidsaver.github.io/p4p/ p4p - Python interface for PV Access]&lt;br /&gt;
* [https://github.com/epics-base/pvaPy pvapy - Python interface for PV Access, also provides CA interface]&lt;br /&gt;
===General===&lt;br /&gt;
* [https://bcdamenu.readthedocs.io/ bcdamenu - GUI menu to beam line software, such as synoptic display.]&lt;br /&gt;
* [https://github.com/EPICS-synApps/support/tree/master/utils/mdaPythonUtils mdaPythonUtils - Read .mda data files into Python.]&lt;br /&gt;
* [https://github.com/prjemian/pvMail PvMail - Watch an EPICS PV. Send email when it changes from 0 to 1.]&lt;br /&gt;
* [https://github.com/BCDA-APS/pvview pvView - Display one or more EPICS PVs in a PyDM GUI window as a table.]&lt;br /&gt;
* [https://github.com/BCDA-APS/pvWebMonitor pvWebMonitor - Post EPICS PVs to read-only (static) web site.]&lt;br /&gt;
* [https://prjemian.github.io/punx/ punx - Python Utilities for NeXus HDF5 files: validation, structure, hierarchy.]&lt;br /&gt;
* [https://prjemian.github.io/pyRestTable/ pyRestTable - Format a nice table in reST (reStructuredText) from Python.]&lt;br /&gt;
* [https://prjemian.github.io/pysumreg/ pysumreg - Statistics of list of (x,y) pairs from calculator-style summation registers.]&lt;br /&gt;
* [https://github.com/prjemian/spec2nexus/ spec2nexus - Read SPEC data files into Python, write NeXus data file.]&lt;/div&gt;</summary>
		<author><name>Jemian</name></author>
	</entry>
	<entry>
		<id>https://wiki-ext.aps.anl.gov/blc/index.php?title=Controls_Software_Documentation&amp;diff=38</id>
		<title>Controls Software Documentation</title>
		<link rel="alternate" type="text/html" href="https://wiki-ext.aps.anl.gov/blc/index.php?title=Controls_Software_Documentation&amp;diff=38"/>
		<updated>2022-12-08T21:17:05Z</updated>

		<summary type="html">&lt;p&gt;Jemian: /* Python support */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page exists to collect links to documentation about the instrument control system EPICS, its modules and related libraries (synApps, areaDetector), as used at the Advanced Photon Source.&lt;br /&gt;
&lt;br /&gt;
Documentation referenced should be appropriate for beamline scientists, as opposed to only EPICS developers.&lt;br /&gt;
New deployments should prefer EPICSv7, the latest release series.&lt;br /&gt;
&lt;br /&gt;
See also the extensive [https://epics-controls.org/resources-and-support/documents/training/ resources from past EPICS Collaboration meetings].&lt;br /&gt;
&lt;br /&gt;
==EPICS Base==&lt;br /&gt;
* [https://docs.epics-controls.org/en/latest/guides/EPICS_Intro.html Intro to EPICS]&lt;br /&gt;
* [https://docs.epics-controls.org/en/latest/guides/EPICS_Process_Database_Concepts.html EPICS Database Concepts]&lt;br /&gt;
* [https://docs.epics-controls.org/projects/how-tos/en/latest/getting-started/installation.html EPICS Base Getting Started (official)]&lt;br /&gt;
&lt;br /&gt;
==synApps (aka EPICS Support)==&lt;br /&gt;
* [https://epics.anl.gov/bcda/synApps/synApps_docs_all.html synApps Collected Documentation]&lt;br /&gt;
* [https://epics.anl.gov/bcda/synApps/synApps.html synApps deployment instructions, including use of xxx template ioc]&lt;br /&gt;
&lt;br /&gt;
==areaDetector==&lt;br /&gt;
* [https://areadetector.github.io/master/index.html areaDetector Official Documentation]&lt;br /&gt;
&lt;br /&gt;
==Deploying, troubleshooting, and maintaining IOCs==&lt;br /&gt;
* [[Troubleshooting EPICS IOCs]]&lt;br /&gt;
* [https://docs2bm.readthedocs.io/en/latest/source/ops/item_000_0.html simDetector Install directions (2BM)]&lt;br /&gt;
* [https://epics-modules.github.io/xxx/overview.html The Basics of an IOC (XXX documentation)]&lt;br /&gt;
* [https://gist.github.com/keenanlang/e768774cbd0a367b96281939b8a2c9ba Creation of an IOC using mkioc]&lt;br /&gt;
* [https://wiki.aps.anl.gov/bcda/index.php/Category:TUTORIAL BCDA Tutorials (APS Internal)]&lt;br /&gt;
==Maintaining Documentation==&lt;br /&gt;
* [https://bctwg.readthedocs.io/en/latest/index.html ReadTheDocs tutorial and example site]&lt;br /&gt;
&lt;br /&gt;
==APS ESAF &amp;amp; Proposal - Read-only interface==&lt;br /&gt;
* [https://bcda-aps.github.io/apsbss/ apsbss - Read-only interface to information from APS Proposal and ESAF (experiment safety approval form) databases.]&lt;br /&gt;
&lt;br /&gt;
==Bluesky==&lt;br /&gt;
* [https://blueskyproject.io Bluesky home page]&lt;br /&gt;
* [https://try.nsls2.bnl.gov Try Bluesky in a web browser (from NSLS-II)]&lt;br /&gt;
* [https://bcda-aps.github.io/apstools apstools - Various Python tools for use with Bluesky at the APS.], [https://bcda-aps.github.io/apstools/examples/index.html Guides, How-Tos, and other examples.]&lt;br /&gt;
* [https://blueskyproject.io/hklpy/ hklpy: Bluesky's diffractometer support], [https://blueskyproject.io/hklpy/examples/index.html Diffractometer examples.]&lt;br /&gt;
* [https://github.com/BCDA-APS/bluesky_training Bluesky training for APS users]&lt;br /&gt;
* [https://github.com/BCDA-APS/bluesky_training/tree/main/bluesky Template for new instrument description. (Includes configuration for IPython console, Jupyter notebook, and bluesky-queueserver.]&lt;br /&gt;
* [https://github.com/BCDA-APS/use_bluesky#use_bluesky Installation Steps for APS users]&lt;br /&gt;
* [https://blueskyproject.io/bluesky-queueserver/ queueserver - Server for queueing plans.], [https://blueskyproject.io/bluesky-queueserver-api/ API documentation]&lt;br /&gt;
* [https://blueskyproject.io/tiled/ tiled - Data server for databroker and directories with data files.], [https://github.com/BCDA-APS/tiled-template Template for creating a local tiled data server at APS.]&lt;br /&gt;
* [https://slaclab.github.io/pydm/ PyDM - Python Display Manager]&lt;br /&gt;
* [https://github.com/BCDA-APS/adl2pydm adl2pydm - Convert MEDM's .adl files to PyDM's .ui format.]&lt;br /&gt;
&lt;br /&gt;
==Python support==&lt;br /&gt;
===Channel Access===&lt;br /&gt;
* [https://pyepics.github.io/pyepics/ PyEpics - Python interface for Channel Access based on libca and libCom.]&lt;br /&gt;
* [https://caproto.github.io/caproto/v0.8.1/ caproto - Python interface for Channel Access in pure Python.]&lt;br /&gt;
===PV Access===&lt;br /&gt;
* [https://mdavidsaver.github.io/p4p/ p4p - Python interface for PV Access]&lt;br /&gt;
* [https://github.com/epics-base/pvaPy pvapy - Python interface for PV Access, also provides CA interface]&lt;br /&gt;
===General===&lt;br /&gt;
* [https://bcdamenu.readthedocs.io/ - GUI menu to beam line software, such as synoptic display.]&lt;br /&gt;
* [https://github.com/EPICS-synApps/support/tree/master/utils/mdaPythonUtils mdaPythonUtils - Read .mda data files into Python.]&lt;br /&gt;
* [https://github.com/prjemian/pvMail PvMail - Watch an EPICS PV. Send email when it changes from 0 to 1.]&lt;br /&gt;
* [https://github.com/BCDA-APS/pvview pvView - Display one or more EPICS PVs in a PyDM GUI window as a table.]&lt;br /&gt;
* [https://github.com/BCDA-APS/pvWebMonitor pvWebMonitor - Post EPICS PVs to read-only (static) web site.]&lt;br /&gt;
* [https://prjemian.github.io/punx/ punx - Python Utilities for NeXus HDF5 files: validation, structure, hierarchy.]&lt;br /&gt;
* [https://prjemian.github.io/pyRestTable/ pyRestTable - Format a nice table in reST (reStructuredText) from Python.]&lt;br /&gt;
* [https://prjemian.github.io/pysumreg/ pysumreg - Statistics of list of (x,y) pairs from calculator-style summation registers.]&lt;br /&gt;
* [https://github.com/prjemian/spec2nexus/ spec2nexus - Read SPEC data files into Python, write NeXus data file.]&lt;/div&gt;</summary>
		<author><name>Jemian</name></author>
	</entry>
	<entry>
		<id>https://wiki-ext.aps.anl.gov/blc/index.php?title=Controls_Software_Documentation&amp;diff=37</id>
		<title>Controls Software Documentation</title>
		<link rel="alternate" type="text/html" href="https://wiki-ext.aps.anl.gov/blc/index.php?title=Controls_Software_Documentation&amp;diff=37"/>
		<updated>2022-12-08T21:06:36Z</updated>

		<summary type="html">&lt;p&gt;Jemian: /* Bluesky */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page exists to collect links to documentation about the instrument control system EPICS, its modules and related libraries (synApps, areaDetector), as used at the Advanced Photon Source.&lt;br /&gt;
&lt;br /&gt;
Documentation referenced should be appropriate for beamline scientists, as opposed to only EPICS developers.&lt;br /&gt;
New deployments should prefer EPICSv7, the latest release series.&lt;br /&gt;
&lt;br /&gt;
See also the extensive [https://epics-controls.org/resources-and-support/documents/training/ resources from past EPICS Collaboration meetings].&lt;br /&gt;
&lt;br /&gt;
==EPICS Base==&lt;br /&gt;
* [https://docs.epics-controls.org/en/latest/guides/EPICS_Intro.html Intro to EPICS]&lt;br /&gt;
* [https://docs.epics-controls.org/en/latest/guides/EPICS_Process_Database_Concepts.html EPICS Database Concepts]&lt;br /&gt;
* [https://docs.epics-controls.org/projects/how-tos/en/latest/getting-started/installation.html EPICS Base Getting Started (official)]&lt;br /&gt;
&lt;br /&gt;
==synApps (aka EPICS Support)==&lt;br /&gt;
* [https://epics.anl.gov/bcda/synApps/synApps_docs_all.html synApps Collected Documentation]&lt;br /&gt;
* [https://epics.anl.gov/bcda/synApps/synApps.html synApps deployment instructions, including use of xxx template ioc]&lt;br /&gt;
&lt;br /&gt;
==areaDetector==&lt;br /&gt;
* [https://areadetector.github.io/master/index.html areaDetector Official Documentation]&lt;br /&gt;
&lt;br /&gt;
==Deploying, troubleshooting, and maintaining IOCs==&lt;br /&gt;
* [[Troubleshooting EPICS IOCs]]&lt;br /&gt;
* [https://docs2bm.readthedocs.io/en/latest/source/ops/item_000_0.html simDetector Install directions (2BM)]&lt;br /&gt;
* [https://epics-modules.github.io/xxx/overview.html The Basics of an IOC (XXX documentation)]&lt;br /&gt;
* [https://gist.github.com/keenanlang/e768774cbd0a367b96281939b8a2c9ba Creation of an IOC using mkioc]&lt;br /&gt;
* [https://wiki.aps.anl.gov/bcda/index.php/Category:TUTORIAL BCDA Tutorials (APS Internal)]&lt;br /&gt;
==Maintaining Documentation==&lt;br /&gt;
* [https://bctwg.readthedocs.io/en/latest/index.html ReadTheDocs tutorial and example site]&lt;br /&gt;
&lt;br /&gt;
==APS ESAF &amp;amp; Proposal - Read-only interface==&lt;br /&gt;
* [https://bcda-aps.github.io/apsbss/ apsbss - Read-only interface to information from APS Proposal and ESAF (experiment safety approval form) databases.]&lt;br /&gt;
&lt;br /&gt;
==Bluesky==&lt;br /&gt;
* [https://blueskyproject.io Bluesky home page]&lt;br /&gt;
* [https://try.nsls2.bnl.gov Try Bluesky in a web browser (from NSLS-II)]&lt;br /&gt;
* [https://bcda-aps.github.io/apstools apstools - Various Python tools for use with Bluesky at the APS.], [https://bcda-aps.github.io/apstools/examples/index.html Guides, How-Tos, and other examples.]&lt;br /&gt;
* [https://blueskyproject.io/hklpy/ hklpy: Bluesky's diffractometer support], [https://blueskyproject.io/hklpy/examples/index.html Diffractometer examples.]&lt;br /&gt;
* [https://github.com/BCDA-APS/bluesky_training Bluesky training for APS users]&lt;br /&gt;
* [https://github.com/BCDA-APS/bluesky_training/tree/main/bluesky Template for new instrument description. (Includes configuration for IPython console, Jupyter notebook, and bluesky-queueserver.]&lt;br /&gt;
* [https://github.com/BCDA-APS/use_bluesky#use_bluesky Installation Steps for APS users]&lt;br /&gt;
* [https://blueskyproject.io/bluesky-queueserver/ queueserver - Server for queueing plans.], [https://blueskyproject.io/bluesky-queueserver-api/ API documentation]&lt;br /&gt;
* [https://blueskyproject.io/tiled/ tiled - Data server for databroker and directories with data files.], [https://github.com/BCDA-APS/tiled-template Template for creating a local tiled data server at APS.]&lt;br /&gt;
* [https://slaclab.github.io/pydm/ PyDM - Python Display Manager]&lt;br /&gt;
* [https://github.com/BCDA-APS/adl2pydm adl2pydm - Convert MEDM's .adl files to PyDM's .ui format.]&lt;br /&gt;
&lt;br /&gt;
==Python support==&lt;br /&gt;
* [https://pyepics.github.io/pyepics/ PyEpics - Python interface for Channel Access based on libca and libCom.]&lt;br /&gt;
* [https://caproto.github.io/caproto/v0.8.1/ caproto - Python interface for Channel Access in pure Python.]&lt;br /&gt;
* [https://mdavidsaver.github.io/p4p/ p4p - Python interface for PV Access]&lt;br /&gt;
* [https://github.com/epics-base/pvaPy pvapy - Python interface for PV Access]&lt;br /&gt;
* [https://github.com/EPICS-synApps/support/tree/master/utils/mdaPythonUtils mdaPythonUtils - Read .mda data files into Python.]&lt;br /&gt;
* [https://github.com/prjemian/pvMail PvMail - Watch an EPICS PV. Send email when it changes from 0 to 1.]&lt;br /&gt;
* [https://github.com/BCDA-APS/pvWebMonitor pvWebMonitor - Post EPICS PVs to read-only (static) web site.]&lt;br /&gt;
* [https://prjemian.github.io/punx/ punx - Python Utilities for NeXus HDF5 files: validation, structure, hierarchy.]&lt;br /&gt;
* [https://prjemian.github.io/pyRestTable/ pyRestTable - Format a nice table in reST (reStructuredText) from Python.]&lt;br /&gt;
* [https://github.com/prjemian/spec2nexus/ spec2nexus - Read SPEC data files into Python, write NeXus data file.]&lt;/div&gt;</summary>
		<author><name>Jemian</name></author>
	</entry>
	<entry>
		<id>https://wiki-ext.aps.anl.gov/blc/index.php?title=Controls_Software_Documentation&amp;diff=36</id>
		<title>Controls Software Documentation</title>
		<link rel="alternate" type="text/html" href="https://wiki-ext.aps.anl.gov/blc/index.php?title=Controls_Software_Documentation&amp;diff=36"/>
		<updated>2022-12-08T21:02:07Z</updated>

		<summary type="html">&lt;p&gt;Jemian: /* Bluesky */  PyDM&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page exists to collect links to documentation about the instrument control system EPICS, its modules and related libraries (synApps, areaDetector), as used at the Advanced Photon Source.&lt;br /&gt;
&lt;br /&gt;
Documentation referenced should be appropriate for beamline scientists, as opposed to only EPICS developers.&lt;br /&gt;
New deployments should prefer EPICSv7, the latest release series.&lt;br /&gt;
&lt;br /&gt;
See also the extensive [https://epics-controls.org/resources-and-support/documents/training/ resources from past EPICS Collaboration meetings].&lt;br /&gt;
&lt;br /&gt;
==EPICS Base==&lt;br /&gt;
* [https://docs.epics-controls.org/en/latest/guides/EPICS_Intro.html Intro to EPICS]&lt;br /&gt;
* [https://docs.epics-controls.org/en/latest/guides/EPICS_Process_Database_Concepts.html EPICS Database Concepts]&lt;br /&gt;
* [https://docs.epics-controls.org/projects/how-tos/en/latest/getting-started/installation.html EPICS Base Getting Started (official)]&lt;br /&gt;
&lt;br /&gt;
==synApps (aka EPICS Support)==&lt;br /&gt;
* [https://epics.anl.gov/bcda/synApps/synApps_docs_all.html synApps Collected Documentation]&lt;br /&gt;
* [https://epics.anl.gov/bcda/synApps/synApps.html synApps deployment instructions, including use of xxx template ioc]&lt;br /&gt;
&lt;br /&gt;
==areaDetector==&lt;br /&gt;
* [https://areadetector.github.io/master/index.html areaDetector Official Documentation]&lt;br /&gt;
&lt;br /&gt;
==Deploying, troubleshooting, and maintaining IOCs==&lt;br /&gt;
* [[Troubleshooting EPICS IOCs]]&lt;br /&gt;
* [https://docs2bm.readthedocs.io/en/latest/source/ops/item_000_0.html simDetector Install directions (2BM)]&lt;br /&gt;
* [https://epics-modules.github.io/xxx/overview.html The Basics of an IOC (XXX documentation)]&lt;br /&gt;
* [https://gist.github.com/keenanlang/e768774cbd0a367b96281939b8a2c9ba Creation of an IOC using mkioc]&lt;br /&gt;
* [https://wiki.aps.anl.gov/bcda/index.php/Category:TUTORIAL BCDA Tutorials (APS Internal)]&lt;br /&gt;
==Maintaining Documentation==&lt;br /&gt;
* [https://bctwg.readthedocs.io/en/latest/index.html ReadTheDocs tutorial and example site]&lt;br /&gt;
&lt;br /&gt;
==APS ESAF &amp;amp; Proposal - Read-only interface==&lt;br /&gt;
* [https://bcda-aps.github.io/apsbss/ apsbss - Read-only interface to information from APS Proposal and ESAF (experiment safety approval form) databases.]&lt;br /&gt;
&lt;br /&gt;
==Bluesky==&lt;br /&gt;
* [https://blueskyproject.io Bluesky home page]&lt;br /&gt;
* [https://try.nsls2.bnl.gov Try Bluesky in a web browser (from NSLS-II)]&lt;br /&gt;
* [https://bcda-aps.github.io/apstools apstools - Various Python tools for use with Bluesky at the APS.], [https://bcda-aps.github.io/apstools/examples/index.html Guides, How-Tos, and other examples.]&lt;br /&gt;
* [https://blueskyproject.io/hklpy/ hklpy: Bluesky's diffractometer support], [https://blueskyproject.io/hklpy/examples/index.html Diffractometer examples.]&lt;br /&gt;
* [https://github.com/BCDA-APS/bluesky_training Bluesky training for APS users]&lt;br /&gt;
* [https://github.com/BCDA-APS/bluesky_training/tree/main/bluesky Template for new instrument description. (Includes configuration for IPython console, Jupyter notebook, and bluesky-queueserver.]&lt;br /&gt;
* [https://github.com/BCDA-APS/use_bluesky#use_bluesky Installation Steps for APS users]&lt;br /&gt;
* [https://github.com/BCDA-APS/tiled-template Template for creating a local tiled data server]&lt;br /&gt;
* [https://slaclab.github.io/pydm/ PyDM - Python Display Manager]&lt;br /&gt;
* [https://github.com/BCDA-APS/adl2pydm adl2pydm - Convert MEDM's .adl files to PyDM's .ui format.]&lt;br /&gt;
&lt;br /&gt;
==Python support==&lt;br /&gt;
* [https://pyepics.github.io/pyepics/ PyEpics - Python interface for Channel Access based on libca and libCom.]&lt;br /&gt;
* [https://caproto.github.io/caproto/v0.8.1/ caproto - Python interface for Channel Access in pure Python.]&lt;br /&gt;
* [https://mdavidsaver.github.io/p4p/ p4p - Python interface for PV Access]&lt;br /&gt;
* [https://github.com/epics-base/pvaPy pvapy - Python interface for PV Access]&lt;br /&gt;
* [https://github.com/EPICS-synApps/support/tree/master/utils/mdaPythonUtils mdaPythonUtils - Read .mda data files into Python.]&lt;br /&gt;
* [https://github.com/prjemian/pvMail PvMail - Watch an EPICS PV. Send email when it changes from 0 to 1.]&lt;br /&gt;
* [https://github.com/BCDA-APS/pvWebMonitor pvWebMonitor - Post EPICS PVs to read-only (static) web site.]&lt;br /&gt;
* [https://prjemian.github.io/punx/ punx - Python Utilities for NeXus HDF5 files: validation, structure, hierarchy.]&lt;br /&gt;
* [https://prjemian.github.io/pyRestTable/ pyRestTable - Format a nice table in reST (reStructuredText) from Python.]&lt;br /&gt;
* [https://github.com/prjemian/spec2nexus/ spec2nexus - Read SPEC data files into Python, write NeXus data file.]&lt;/div&gt;</summary>
		<author><name>Jemian</name></author>
	</entry>
	<entry>
		<id>https://wiki-ext.aps.anl.gov/blc/index.php?title=Controls_Software_Documentation&amp;diff=35</id>
		<title>Controls Software Documentation</title>
		<link rel="alternate" type="text/html" href="https://wiki-ext.aps.anl.gov/blc/index.php?title=Controls_Software_Documentation&amp;diff=35"/>
		<updated>2022-12-08T21:00:34Z</updated>

		<summary type="html">&lt;p&gt;Jemian: /* Python support */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page exists to collect links to documentation about the instrument control system EPICS, its modules and related libraries (synApps, areaDetector), as used at the Advanced Photon Source.&lt;br /&gt;
&lt;br /&gt;
Documentation referenced should be appropriate for beamline scientists, as opposed to only EPICS developers.&lt;br /&gt;
New deployments should prefer EPICSv7, the latest release series.&lt;br /&gt;
&lt;br /&gt;
See also the extensive [https://epics-controls.org/resources-and-support/documents/training/ resources from past EPICS Collaboration meetings].&lt;br /&gt;
&lt;br /&gt;
==EPICS Base==&lt;br /&gt;
* [https://docs.epics-controls.org/en/latest/guides/EPICS_Intro.html Intro to EPICS]&lt;br /&gt;
* [https://docs.epics-controls.org/en/latest/guides/EPICS_Process_Database_Concepts.html EPICS Database Concepts]&lt;br /&gt;
* [https://docs.epics-controls.org/projects/how-tos/en/latest/getting-started/installation.html EPICS Base Getting Started (official)]&lt;br /&gt;
&lt;br /&gt;
==synApps (aka EPICS Support)==&lt;br /&gt;
* [https://epics.anl.gov/bcda/synApps/synApps_docs_all.html synApps Collected Documentation]&lt;br /&gt;
* [https://epics.anl.gov/bcda/synApps/synApps.html synApps deployment instructions, including use of xxx template ioc]&lt;br /&gt;
&lt;br /&gt;
==areaDetector==&lt;br /&gt;
* [https://areadetector.github.io/master/index.html areaDetector Official Documentation]&lt;br /&gt;
&lt;br /&gt;
==Deploying, troubleshooting, and maintaining IOCs==&lt;br /&gt;
* [[Troubleshooting EPICS IOCs]]&lt;br /&gt;
* [https://docs2bm.readthedocs.io/en/latest/source/ops/item_000_0.html simDetector Install directions (2BM)]&lt;br /&gt;
* [https://epics-modules.github.io/xxx/overview.html The Basics of an IOC (XXX documentation)]&lt;br /&gt;
* [https://gist.github.com/keenanlang/e768774cbd0a367b96281939b8a2c9ba Creation of an IOC using mkioc]&lt;br /&gt;
* [https://wiki.aps.anl.gov/bcda/index.php/Category:TUTORIAL BCDA Tutorials (APS Internal)]&lt;br /&gt;
==Maintaining Documentation==&lt;br /&gt;
* [https://bctwg.readthedocs.io/en/latest/index.html ReadTheDocs tutorial and example site]&lt;br /&gt;
&lt;br /&gt;
==APS ESAF &amp;amp; Proposal - Read-only interface==&lt;br /&gt;
* [https://bcda-aps.github.io/apsbss/ apsbss - Read-only interface to information from APS Proposal and ESAF (experiment safety approval form) databases.]&lt;br /&gt;
&lt;br /&gt;
==Bluesky==&lt;br /&gt;
* [https://blueskyproject.io Bluesky home page]&lt;br /&gt;
* [https://try.nsls2.bnl.gov Try Bluesky in a web browser (from NSLS-II)]&lt;br /&gt;
* [https://bcda-aps.github.io/apstools apstools - Various Python tools for use with Bluesky at the APS.], [https://bcda-aps.github.io/apstools/examples/index.html Guides, How-Tos, and other examples.]&lt;br /&gt;
* [https://blueskyproject.io/hklpy/ hklpy: Bluesky's diffractometer support], [https://blueskyproject.io/hklpy/examples/index.html Diffractometer examples.]&lt;br /&gt;
* [https://github.com/BCDA-APS/bluesky_training Bluesky training for APS users]&lt;br /&gt;
* [https://github.com/BCDA-APS/bluesky_training/tree/main/bluesky Template for new instrument description. (Includes configuration for IPython console, Jupyter notebook, and bluesky-queueserver.]&lt;br /&gt;
* [https://github.com/BCDA-APS/use_bluesky#use_bluesky Installation Steps for APS users]&lt;br /&gt;
* [https://github.com/BCDA-APS/tiled-template Template for creating a local tiled data server]&lt;br /&gt;
&lt;br /&gt;
==Python support==&lt;br /&gt;
* [https://pyepics.github.io/pyepics/ PyEpics - Python interface for Channel Access based on libca and libCom.]&lt;br /&gt;
* [https://caproto.github.io/caproto/v0.8.1/ caproto - Python interface for Channel Access in pure Python.]&lt;br /&gt;
* [https://mdavidsaver.github.io/p4p/ p4p - Python interface for PV Access]&lt;br /&gt;
* [https://github.com/epics-base/pvaPy pvapy - Python interface for PV Access]&lt;br /&gt;
* [https://github.com/EPICS-synApps/support/tree/master/utils/mdaPythonUtils mdaPythonUtils - Read .mda data files into Python.]&lt;br /&gt;
* [https://github.com/prjemian/pvMail PvMail - Watch an EPICS PV. Send email when it changes from 0 to 1.]&lt;br /&gt;
* [https://github.com/BCDA-APS/pvWebMonitor pvWebMonitor - Post EPICS PVs to read-only (static) web site.]&lt;br /&gt;
* [https://prjemian.github.io/punx/ punx - Python Utilities for NeXus HDF5 files: validation, structure, hierarchy.]&lt;br /&gt;
* [https://prjemian.github.io/pyRestTable/ pyRestTable - Format a nice table in reST (reStructuredText) from Python.]&lt;br /&gt;
* [https://github.com/prjemian/spec2nexus/ spec2nexus - Read SPEC data files into Python, write NeXus data file.]&lt;/div&gt;</summary>
		<author><name>Jemian</name></author>
	</entry>
	<entry>
		<id>https://wiki-ext.aps.anl.gov/blc/index.php?title=Controls_Software_Documentation&amp;diff=34</id>
		<title>Controls Software Documentation</title>
		<link rel="alternate" type="text/html" href="https://wiki-ext.aps.anl.gov/blc/index.php?title=Controls_Software_Documentation&amp;diff=34"/>
		<updated>2022-12-08T20:54:38Z</updated>

		<summary type="html">&lt;p&gt;Jemian: /* Bluesky */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page exists to collect links to documentation about the instrument control system EPICS, its modules and related libraries (synApps, areaDetector), as used at the Advanced Photon Source.&lt;br /&gt;
&lt;br /&gt;
Documentation referenced should be appropriate for beamline scientists, as opposed to only EPICS developers.&lt;br /&gt;
New deployments should prefer EPICSv7, the latest release series.&lt;br /&gt;
&lt;br /&gt;
See also the extensive [https://epics-controls.org/resources-and-support/documents/training/ resources from past EPICS Collaboration meetings].&lt;br /&gt;
&lt;br /&gt;
==EPICS Base==&lt;br /&gt;
* [https://docs.epics-controls.org/en/latest/guides/EPICS_Intro.html Intro to EPICS]&lt;br /&gt;
* [https://docs.epics-controls.org/en/latest/guides/EPICS_Process_Database_Concepts.html EPICS Database Concepts]&lt;br /&gt;
* [https://docs.epics-controls.org/projects/how-tos/en/latest/getting-started/installation.html EPICS Base Getting Started (official)]&lt;br /&gt;
&lt;br /&gt;
==synApps (aka EPICS Support)==&lt;br /&gt;
* [https://epics.anl.gov/bcda/synApps/synApps_docs_all.html synApps Collected Documentation]&lt;br /&gt;
* [https://epics.anl.gov/bcda/synApps/synApps.html synApps deployment instructions, including use of xxx template ioc]&lt;br /&gt;
&lt;br /&gt;
==areaDetector==&lt;br /&gt;
* [https://areadetector.github.io/master/index.html areaDetector Official Documentation]&lt;br /&gt;
&lt;br /&gt;
==Deploying, troubleshooting, and maintaining IOCs==&lt;br /&gt;
* [[Troubleshooting EPICS IOCs]]&lt;br /&gt;
* [https://docs2bm.readthedocs.io/en/latest/source/ops/item_000_0.html simDetector Install directions (2BM)]&lt;br /&gt;
* [https://epics-modules.github.io/xxx/overview.html The Basics of an IOC (XXX documentation)]&lt;br /&gt;
* [https://gist.github.com/keenanlang/e768774cbd0a367b96281939b8a2c9ba Creation of an IOC using mkioc]&lt;br /&gt;
* [https://wiki.aps.anl.gov/bcda/index.php/Category:TUTORIAL BCDA Tutorials (APS Internal)]&lt;br /&gt;
==Maintaining Documentation==&lt;br /&gt;
* [https://bctwg.readthedocs.io/en/latest/index.html ReadTheDocs tutorial and example site]&lt;br /&gt;
&lt;br /&gt;
==APS ESAF &amp;amp; Proposal - Read-only interface==&lt;br /&gt;
* [https://bcda-aps.github.io/apsbss/ apsbss - Read-only interface to information from APS Proposal and ESAF (experiment safety approval form) databases.]&lt;br /&gt;
&lt;br /&gt;
==Bluesky==&lt;br /&gt;
* [https://blueskyproject.io Bluesky home page]&lt;br /&gt;
* [https://try.nsls2.bnl.gov Try Bluesky in a web browser (from NSLS-II)]&lt;br /&gt;
* [https://bcda-aps.github.io/apstools apstools - Various Python tools for use with Bluesky at the APS.], [https://bcda-aps.github.io/apstools/examples/index.html Guides, How-Tos, and other examples.]&lt;br /&gt;
* [https://blueskyproject.io/hklpy/ hklpy: Bluesky's diffractometer support], [https://blueskyproject.io/hklpy/examples/index.html Diffractometer examples.]&lt;br /&gt;
* [https://github.com/BCDA-APS/bluesky_training Bluesky training for APS users]&lt;br /&gt;
* [https://github.com/BCDA-APS/bluesky_training/tree/main/bluesky Template for new instrument description. (Includes configuration for IPython console, Jupyter notebook, and bluesky-queueserver.]&lt;br /&gt;
* [https://github.com/BCDA-APS/use_bluesky#use_bluesky Installation Steps for APS users]&lt;br /&gt;
* [https://github.com/BCDA-APS/tiled-template Template for creating a local tiled data server]&lt;br /&gt;
&lt;br /&gt;
==Python support==&lt;br /&gt;
* [https://pyepics.github.io/pyepics/ PyEpics - Python interface for Channel Access based on libca and libCom.]&lt;br /&gt;
* [https://caproto.github.io/caproto/v0.8.1/ caproto - Python interface for Channel Access in pure Python.]&lt;br /&gt;
* [https://mdavidsaver.github.io/p4p/ p4p - Python interface for PV Access]&lt;br /&gt;
* [https://github.com/epics-base/pvaPy pvapy - Python interface for PV Access]&lt;br /&gt;
* [https://github.com/EPICS-synApps/support/tree/master/utils/mdaPythonUtils mdaPythonUtils - Read .mda data files into Python.]&lt;br /&gt;
* [https://github.com/prjemian/pvMail PvMail - Watch an EPICS PV. Send email when it changes from 0 to 1.]&lt;br /&gt;
* [https://github.com/BCDA-APS/pvWebMonitor pvWebMonitor - Post EPICS PVs to read-only (static) web site.]&lt;br /&gt;
* [https://prjemian.github.io/punx/ punx - Python Utilities for NeXus HDF5 files: validation, structure, hierarchy.]&lt;br /&gt;
* [https://github.com/prjemian/spec2nexus/ spec2nexus - Read SPEC data files into Python, write NeXus data file.]&lt;/div&gt;</summary>
		<author><name>Jemian</name></author>
	</entry>
	<entry>
		<id>https://wiki-ext.aps.anl.gov/blc/index.php?title=Controls_Software_Documentation&amp;diff=33</id>
		<title>Controls Software Documentation</title>
		<link rel="alternate" type="text/html" href="https://wiki-ext.aps.anl.gov/blc/index.php?title=Controls_Software_Documentation&amp;diff=33"/>
		<updated>2022-12-08T20:52:57Z</updated>

		<summary type="html">&lt;p&gt;Jemian: /* Bluesky */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page exists to collect links to documentation about the instrument control system EPICS, its modules and related libraries (synApps, areaDetector), as used at the Advanced Photon Source.&lt;br /&gt;
&lt;br /&gt;
Documentation referenced should be appropriate for beamline scientists, as opposed to only EPICS developers.&lt;br /&gt;
New deployments should prefer EPICSv7, the latest release series.&lt;br /&gt;
&lt;br /&gt;
See also the extensive [https://epics-controls.org/resources-and-support/documents/training/ resources from past EPICS Collaboration meetings].&lt;br /&gt;
&lt;br /&gt;
==EPICS Base==&lt;br /&gt;
* [https://docs.epics-controls.org/en/latest/guides/EPICS_Intro.html Intro to EPICS]&lt;br /&gt;
* [https://docs.epics-controls.org/en/latest/guides/EPICS_Process_Database_Concepts.html EPICS Database Concepts]&lt;br /&gt;
* [https://docs.epics-controls.org/projects/how-tos/en/latest/getting-started/installation.html EPICS Base Getting Started (official)]&lt;br /&gt;
&lt;br /&gt;
==synApps (aka EPICS Support)==&lt;br /&gt;
* [https://epics.anl.gov/bcda/synApps/synApps_docs_all.html synApps Collected Documentation]&lt;br /&gt;
* [https://epics.anl.gov/bcda/synApps/synApps.html synApps deployment instructions, including use of xxx template ioc]&lt;br /&gt;
&lt;br /&gt;
==areaDetector==&lt;br /&gt;
* [https://areadetector.github.io/master/index.html areaDetector Official Documentation]&lt;br /&gt;
&lt;br /&gt;
==Deploying, troubleshooting, and maintaining IOCs==&lt;br /&gt;
* [[Troubleshooting EPICS IOCs]]&lt;br /&gt;
* [https://docs2bm.readthedocs.io/en/latest/source/ops/item_000_0.html simDetector Install directions (2BM)]&lt;br /&gt;
* [https://epics-modules.github.io/xxx/overview.html The Basics of an IOC (XXX documentation)]&lt;br /&gt;
* [https://gist.github.com/keenanlang/e768774cbd0a367b96281939b8a2c9ba Creation of an IOC using mkioc]&lt;br /&gt;
* [https://wiki.aps.anl.gov/bcda/index.php/Category:TUTORIAL BCDA Tutorials (APS Internal)]&lt;br /&gt;
==Maintaining Documentation==&lt;br /&gt;
* [https://bctwg.readthedocs.io/en/latest/index.html ReadTheDocs tutorial and example site]&lt;br /&gt;
&lt;br /&gt;
==APS ESAF &amp;amp; Proposal - Read-only interface==&lt;br /&gt;
* [https://bcda-aps.github.io/apsbss/ apsbss - Read-only interface to information from APS Proposal and ESAF (experiment safety approval form) databases.]&lt;br /&gt;
&lt;br /&gt;
==Bluesky==&lt;br /&gt;
* [https://blueskyproject.io Bluesky home page]&lt;br /&gt;
* [https://try.nsls2.bnl.gov Try Bluesky in a web browser (from NSLS-II)]&lt;br /&gt;
* [https://bcda-aps.github.io/apstools apstools - Various Python tools for use with Bluesky at the APS.]&lt;br /&gt;
* [https://bcda-aps.github.io/apstools/examples/index.html apstools: Guides, How-Tos, and other examples.]&lt;br /&gt;
* [https://blueskyproject.io/hklpy/ hklpy: Bluesky's diffractometer support]&lt;br /&gt;
* [https://blueskyproject.io/hklpy/examples/index.html Diffractometer examples]&lt;br /&gt;
* [https://github.com/BCDA-APS/bluesky_training Bluesky training for APS users]&lt;br /&gt;
* [https://github.com/BCDA-APS/bluesky_training/tree/main/bluesky Template for new instrument description. (Includes configuration for IPython console, Jupyter notebook, and bluesky-queueserver.]&lt;br /&gt;
* [https://github.com/BCDA-APS/use_bluesky#use_bluesky Installation Steps for APS users]&lt;br /&gt;
* [https://github.com/BCDA-APS/tiled-template Template for creating a local tiled data server]&lt;br /&gt;
&lt;br /&gt;
==Python support==&lt;br /&gt;
* [https://pyepics.github.io/pyepics/ PyEpics - Python interface for Channel Access based on libca and libCom.]&lt;br /&gt;
* [https://caproto.github.io/caproto/v0.8.1/ caproto - Python interface for Channel Access in pure Python.]&lt;br /&gt;
* [https://mdavidsaver.github.io/p4p/ p4p - Python interface for PV Access]&lt;br /&gt;
* [https://github.com/epics-base/pvaPy pvapy - Python interface for PV Access]&lt;br /&gt;
* [https://github.com/EPICS-synApps/support/tree/master/utils/mdaPythonUtils mdaPythonUtils - Read .mda data files into Python.]&lt;br /&gt;
* [https://github.com/prjemian/pvMail PvMail - Watch an EPICS PV. Send email when it changes from 0 to 1.]&lt;br /&gt;
* [https://github.com/BCDA-APS/pvWebMonitor pvWebMonitor - Post EPICS PVs to read-only (static) web site.]&lt;br /&gt;
* [https://prjemian.github.io/punx/ punx - Python Utilities for NeXus HDF5 files: validation, structure, hierarchy.]&lt;br /&gt;
* [https://github.com/prjemian/spec2nexus/ spec2nexus - Read SPEC data files into Python, write NeXus data file.]&lt;/div&gt;</summary>
		<author><name>Jemian</name></author>
	</entry>
	<entry>
		<id>https://wiki-ext.aps.anl.gov/blc/index.php?title=Controls_Software_Documentation&amp;diff=32</id>
		<title>Controls Software Documentation</title>
		<link rel="alternate" type="text/html" href="https://wiki-ext.aps.anl.gov/blc/index.php?title=Controls_Software_Documentation&amp;diff=32"/>
		<updated>2022-12-08T20:49:54Z</updated>

		<summary type="html">&lt;p&gt;Jemian: /* Python support */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page exists to collect links to documentation about the instrument control system EPICS, its modules and related libraries (synApps, areaDetector), as used at the Advanced Photon Source.&lt;br /&gt;
&lt;br /&gt;
Documentation referenced should be appropriate for beamline scientists, as opposed to only EPICS developers.&lt;br /&gt;
New deployments should prefer EPICSv7, the latest release series.&lt;br /&gt;
&lt;br /&gt;
See also the extensive [https://epics-controls.org/resources-and-support/documents/training/ resources from past EPICS Collaboration meetings].&lt;br /&gt;
&lt;br /&gt;
==EPICS Base==&lt;br /&gt;
* [https://docs.epics-controls.org/en/latest/guides/EPICS_Intro.html Intro to EPICS]&lt;br /&gt;
* [https://docs.epics-controls.org/en/latest/guides/EPICS_Process_Database_Concepts.html EPICS Database Concepts]&lt;br /&gt;
* [https://docs.epics-controls.org/projects/how-tos/en/latest/getting-started/installation.html EPICS Base Getting Started (official)]&lt;br /&gt;
&lt;br /&gt;
==synApps (aka EPICS Support)==&lt;br /&gt;
* [https://epics.anl.gov/bcda/synApps/synApps_docs_all.html synApps Collected Documentation]&lt;br /&gt;
* [https://epics.anl.gov/bcda/synApps/synApps.html synApps deployment instructions, including use of xxx template ioc]&lt;br /&gt;
&lt;br /&gt;
==areaDetector==&lt;br /&gt;
* [https://areadetector.github.io/master/index.html areaDetector Official Documentation]&lt;br /&gt;
&lt;br /&gt;
==Deploying, troubleshooting, and maintaining IOCs==&lt;br /&gt;
* [[Troubleshooting EPICS IOCs]]&lt;br /&gt;
* [https://docs2bm.readthedocs.io/en/latest/source/ops/item_000_0.html simDetector Install directions (2BM)]&lt;br /&gt;
* [https://epics-modules.github.io/xxx/overview.html The Basics of an IOC (XXX documentation)]&lt;br /&gt;
* [https://gist.github.com/keenanlang/e768774cbd0a367b96281939b8a2c9ba Creation of an IOC using mkioc]&lt;br /&gt;
* [https://wiki.aps.anl.gov/bcda/index.php/Category:TUTORIAL BCDA Tutorials (APS Internal)]&lt;br /&gt;
==Maintaining Documentation==&lt;br /&gt;
* [https://bctwg.readthedocs.io/en/latest/index.html ReadTheDocs tutorial and example site]&lt;br /&gt;
&lt;br /&gt;
==APS ESAF &amp;amp; Proposal - Read-only interface==&lt;br /&gt;
* [https://bcda-aps.github.io/apsbss/ apsbss - Read-only interface to information from APS Proposal and ESAF (experiment safety approval form) databases.]&lt;br /&gt;
&lt;br /&gt;
==Bluesky==&lt;br /&gt;
* [https://blueskyproject.io Bluesky home page]&lt;br /&gt;
* [https://try.nsls2.bnl.gov Try Bluesky in a web browser (from NSLS-II)]&lt;br /&gt;
* [https://bcda-aps.github.io/apstools apstools - Various Python tools for use with Bluesky at the APS.]&lt;br /&gt;
* [https://bcda-aps.github.io/apstools/examples/index.html apstools: Guides, How-Tos, and other examples.]&lt;br /&gt;
* [https://blueskyproject.io/hklpy/ hklpy: Bluesky's diffractometer support]&lt;br /&gt;
* [https://blueskyproject.io/hklpy/examples/index.html Diffractometer examples]&lt;br /&gt;
* [https://github.com/BCDA-APS/bluesky_training Bluesky training for APS users]&lt;br /&gt;
* [https://github.com/BCDA-APS/bluesky_training/tree/main/bluesky Template for new instrument description.]&lt;br /&gt;
* [https://github.com/BCDA-APS/use_bluesky#use_bluesky Installation Steps for APS users]&lt;br /&gt;
* [https://github.com/BCDA-APS/tiled-template Template for creating a local tiled data server]&lt;br /&gt;
&lt;br /&gt;
==Python support==&lt;br /&gt;
* [https://pyepics.github.io/pyepics/ PyEpics - Python interface for Channel Access based on libca and libCom.]&lt;br /&gt;
* [https://caproto.github.io/caproto/v0.8.1/ caproto - Python interface for Channel Access in pure Python.]&lt;br /&gt;
* [https://mdavidsaver.github.io/p4p/ p4p - Python interface for PV Access]&lt;br /&gt;
* [https://github.com/epics-base/pvaPy pvapy - Python interface for PV Access]&lt;br /&gt;
* [https://github.com/EPICS-synApps/support/tree/master/utils/mdaPythonUtils mdaPythonUtils - Read .mda data files into Python.]&lt;br /&gt;
* [https://github.com/prjemian/pvMail PvMail - Watch an EPICS PV. Send email when it changes from 0 to 1.]&lt;br /&gt;
* [https://github.com/BCDA-APS/pvWebMonitor pvWebMonitor - Post EPICS PVs to read-only (static) web site.]&lt;br /&gt;
* [https://prjemian.github.io/punx/ punx - Python Utilities for NeXus HDF5 files: validation, structure, hierarchy.]&lt;br /&gt;
* [https://github.com/prjemian/spec2nexus/ spec2nexus - Read SPEC data files into Python, write NeXus data file.]&lt;/div&gt;</summary>
		<author><name>Jemian</name></author>
	</entry>
	<entry>
		<id>https://wiki-ext.aps.anl.gov/blc/index.php?title=Controls_Software_Documentation&amp;diff=31</id>
		<title>Controls Software Documentation</title>
		<link rel="alternate" type="text/html" href="https://wiki-ext.aps.anl.gov/blc/index.php?title=Controls_Software_Documentation&amp;diff=31"/>
		<updated>2022-12-08T20:49:25Z</updated>

		<summary type="html">&lt;p&gt;Jemian: /* Python client support */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page exists to collect links to documentation about the instrument control system EPICS, its modules and related libraries (synApps, areaDetector), as used at the Advanced Photon Source.&lt;br /&gt;
&lt;br /&gt;
Documentation referenced should be appropriate for beamline scientists, as opposed to only EPICS developers.&lt;br /&gt;
New deployments should prefer EPICSv7, the latest release series.&lt;br /&gt;
&lt;br /&gt;
See also the extensive [https://epics-controls.org/resources-and-support/documents/training/ resources from past EPICS Collaboration meetings].&lt;br /&gt;
&lt;br /&gt;
==EPICS Base==&lt;br /&gt;
* [https://docs.epics-controls.org/en/latest/guides/EPICS_Intro.html Intro to EPICS]&lt;br /&gt;
* [https://docs.epics-controls.org/en/latest/guides/EPICS_Process_Database_Concepts.html EPICS Database Concepts]&lt;br /&gt;
* [https://docs.epics-controls.org/projects/how-tos/en/latest/getting-started/installation.html EPICS Base Getting Started (official)]&lt;br /&gt;
&lt;br /&gt;
==synApps (aka EPICS Support)==&lt;br /&gt;
* [https://epics.anl.gov/bcda/synApps/synApps_docs_all.html synApps Collected Documentation]&lt;br /&gt;
* [https://epics.anl.gov/bcda/synApps/synApps.html synApps deployment instructions, including use of xxx template ioc]&lt;br /&gt;
&lt;br /&gt;
==areaDetector==&lt;br /&gt;
* [https://areadetector.github.io/master/index.html areaDetector Official Documentation]&lt;br /&gt;
&lt;br /&gt;
==Deploying, troubleshooting, and maintaining IOCs==&lt;br /&gt;
* [[Troubleshooting EPICS IOCs]]&lt;br /&gt;
* [https://docs2bm.readthedocs.io/en/latest/source/ops/item_000_0.html simDetector Install directions (2BM)]&lt;br /&gt;
* [https://epics-modules.github.io/xxx/overview.html The Basics of an IOC (XXX documentation)]&lt;br /&gt;
* [https://gist.github.com/keenanlang/e768774cbd0a367b96281939b8a2c9ba Creation of an IOC using mkioc]&lt;br /&gt;
* [https://wiki.aps.anl.gov/bcda/index.php/Category:TUTORIAL BCDA Tutorials (APS Internal)]&lt;br /&gt;
==Maintaining Documentation==&lt;br /&gt;
* [https://bctwg.readthedocs.io/en/latest/index.html ReadTheDocs tutorial and example site]&lt;br /&gt;
&lt;br /&gt;
==APS ESAF &amp;amp; Proposal - Read-only interface==&lt;br /&gt;
* [https://bcda-aps.github.io/apsbss/ apsbss - Read-only interface to information from APS Proposal and ESAF (experiment safety approval form) databases.]&lt;br /&gt;
&lt;br /&gt;
==Bluesky==&lt;br /&gt;
* [https://blueskyproject.io Bluesky home page]&lt;br /&gt;
* [https://try.nsls2.bnl.gov Try Bluesky in a web browser (from NSLS-II)]&lt;br /&gt;
* [https://bcda-aps.github.io/apstools apstools - Various Python tools for use with Bluesky at the APS.]&lt;br /&gt;
* [https://bcda-aps.github.io/apstools/examples/index.html apstools: Guides, How-Tos, and other examples.]&lt;br /&gt;
* [https://blueskyproject.io/hklpy/ hklpy: Bluesky's diffractometer support]&lt;br /&gt;
* [https://blueskyproject.io/hklpy/examples/index.html Diffractometer examples]&lt;br /&gt;
* [https://github.com/BCDA-APS/bluesky_training Bluesky training for APS users]&lt;br /&gt;
* [https://github.com/BCDA-APS/bluesky_training/tree/main/bluesky Template for new instrument description.]&lt;br /&gt;
* [https://github.com/BCDA-APS/use_bluesky#use_bluesky Installation Steps for APS users]&lt;br /&gt;
* [https://github.com/BCDA-APS/tiled-template Template for creating a local tiled data server]&lt;br /&gt;
&lt;br /&gt;
==Python support==&lt;br /&gt;
* [https://pyepics.github.io/pyepics/ PyEpics - Python interface for Channel Access based on libca and libCom.]&lt;br /&gt;
* [https://caproto.github.io/caproto/v0.8.1/ caproto - Python interface for Channel Access in pure Python.]&lt;br /&gt;
* [https://mdavidsaver.github.io/p4p/ p4p - Python interface for PV Access]&lt;br /&gt;
* [https://github.com/epics-base/pvaPy pvapy - Python interface for PV Access]&lt;br /&gt;
* [https://github.com/EPICS-synApps/support/tree/master/utils/mdaPythonUtils mdaPythonUtils - Read .mda data files into Python.]&lt;br /&gt;
* [https://github.com/prjemian/pvMail PvMail - Watch an EPICS PV. Send email when it changes from 0 to 1.]&lt;br /&gt;
* [https://github.com/BCDA-APS/pvWebMonitor pvWebMonitor - Post EPICS PVs to read-only (static) web site.]&lt;br /&gt;
* [https://prjemian.github.io/punx/ Python Utilities for NeXus HDF5 files: validation, structure, hierarchy.]&lt;br /&gt;
* [https://github.com/prjemian/spec2nexus/ spec2nexus - Read SPEC data files into Python, write NeXus data file.]&lt;/div&gt;</summary>
		<author><name>Jemian</name></author>
	</entry>
	<entry>
		<id>https://wiki-ext.aps.anl.gov/blc/index.php?title=Controls_Software_Documentation&amp;diff=30</id>
		<title>Controls Software Documentation</title>
		<link rel="alternate" type="text/html" href="https://wiki-ext.aps.anl.gov/blc/index.php?title=Controls_Software_Documentation&amp;diff=30"/>
		<updated>2022-12-08T20:49:03Z</updated>

		<summary type="html">&lt;p&gt;Jemian: EPICS client support in Python&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page exists to collect links to documentation about the instrument control system EPICS, its modules and related libraries (synApps, areaDetector), as used at the Advanced Photon Source.&lt;br /&gt;
&lt;br /&gt;
Documentation referenced should be appropriate for beamline scientists, as opposed to only EPICS developers.&lt;br /&gt;
New deployments should prefer EPICSv7, the latest release series.&lt;br /&gt;
&lt;br /&gt;
See also the extensive [https://epics-controls.org/resources-and-support/documents/training/ resources from past EPICS Collaboration meetings].&lt;br /&gt;
&lt;br /&gt;
==EPICS Base==&lt;br /&gt;
* [https://docs.epics-controls.org/en/latest/guides/EPICS_Intro.html Intro to EPICS]&lt;br /&gt;
* [https://docs.epics-controls.org/en/latest/guides/EPICS_Process_Database_Concepts.html EPICS Database Concepts]&lt;br /&gt;
* [https://docs.epics-controls.org/projects/how-tos/en/latest/getting-started/installation.html EPICS Base Getting Started (official)]&lt;br /&gt;
&lt;br /&gt;
==synApps (aka EPICS Support)==&lt;br /&gt;
* [https://epics.anl.gov/bcda/synApps/synApps_docs_all.html synApps Collected Documentation]&lt;br /&gt;
* [https://epics.anl.gov/bcda/synApps/synApps.html synApps deployment instructions, including use of xxx template ioc]&lt;br /&gt;
&lt;br /&gt;
==areaDetector==&lt;br /&gt;
* [https://areadetector.github.io/master/index.html areaDetector Official Documentation]&lt;br /&gt;
&lt;br /&gt;
==Deploying, troubleshooting, and maintaining IOCs==&lt;br /&gt;
* [[Troubleshooting EPICS IOCs]]&lt;br /&gt;
* [https://docs2bm.readthedocs.io/en/latest/source/ops/item_000_0.html simDetector Install directions (2BM)]&lt;br /&gt;
* [https://epics-modules.github.io/xxx/overview.html The Basics of an IOC (XXX documentation)]&lt;br /&gt;
* [https://gist.github.com/keenanlang/e768774cbd0a367b96281939b8a2c9ba Creation of an IOC using mkioc]&lt;br /&gt;
* [https://wiki.aps.anl.gov/bcda/index.php/Category:TUTORIAL BCDA Tutorials (APS Internal)]&lt;br /&gt;
==Maintaining Documentation==&lt;br /&gt;
* [https://bctwg.readthedocs.io/en/latest/index.html ReadTheDocs tutorial and example site]&lt;br /&gt;
&lt;br /&gt;
==APS ESAF &amp;amp; Proposal - Read-only interface==&lt;br /&gt;
* [https://bcda-aps.github.io/apsbss/ apsbss - Read-only interface to information from APS Proposal and ESAF (experiment safety approval form) databases.]&lt;br /&gt;
&lt;br /&gt;
==Bluesky==&lt;br /&gt;
* [https://blueskyproject.io Bluesky home page]&lt;br /&gt;
* [https://try.nsls2.bnl.gov Try Bluesky in a web browser (from NSLS-II)]&lt;br /&gt;
* [https://bcda-aps.github.io/apstools apstools - Various Python tools for use with Bluesky at the APS.]&lt;br /&gt;
* [https://bcda-aps.github.io/apstools/examples/index.html apstools: Guides, How-Tos, and other examples.]&lt;br /&gt;
* [https://blueskyproject.io/hklpy/ hklpy: Bluesky's diffractometer support]&lt;br /&gt;
* [https://blueskyproject.io/hklpy/examples/index.html Diffractometer examples]&lt;br /&gt;
* [https://github.com/BCDA-APS/bluesky_training Bluesky training for APS users]&lt;br /&gt;
* [https://github.com/BCDA-APS/bluesky_training/tree/main/bluesky Template for new instrument description.]&lt;br /&gt;
* [https://github.com/BCDA-APS/use_bluesky#use_bluesky Installation Steps for APS users]&lt;br /&gt;
* [https://github.com/BCDA-APS/tiled-template Template for creating a local tiled data server]&lt;br /&gt;
&lt;br /&gt;
==Python client support==&lt;br /&gt;
* [https://pyepics.github.io/pyepics/ PyEpics - Python interface for Channel Access based on libca and libCom.]&lt;br /&gt;
* [https://caproto.github.io/caproto/v0.8.1/ caproto - Python interface for Channel Access in pure Python.]&lt;br /&gt;
* [https://mdavidsaver.github.io/p4p/ p4p - Python interface for PV Access]&lt;br /&gt;
* [https://github.com/epics-base/pvaPy pvapy - Python interface for PV Access]&lt;br /&gt;
* [https://github.com/EPICS-synApps/support/tree/master/utils/mdaPythonUtils mdaPythonUtils - Read .mda data files into Python.]&lt;br /&gt;
* [https://github.com/prjemian/pvMail PvMail - Watch an EPICS PV. Send email when it changes from 0 to 1.]&lt;br /&gt;
* [https://github.com/BCDA-APS/pvWebMonitor pvWebMonitor - Post EPICS PVs to read-only (static) web site.]&lt;br /&gt;
* [https://prjemian.github.io/punx/ Python Utilities for NeXus HDF5 files: validation, structure, hierarchy.]&lt;br /&gt;
* [https://github.com/prjemian/spec2nexus/ spec2nexus - Read SPEC data files into Python, write NeXus data file.]&lt;/div&gt;</summary>
		<author><name>Jemian</name></author>
	</entry>
	<entry>
		<id>https://wiki-ext.aps.anl.gov/blc/index.php?title=Controls_Software_Documentation&amp;diff=29</id>
		<title>Controls Software Documentation</title>
		<link rel="alternate" type="text/html" href="https://wiki-ext.aps.anl.gov/blc/index.php?title=Controls_Software_Documentation&amp;diff=29"/>
		<updated>2022-12-08T20:34:56Z</updated>

		<summary type="html">&lt;p&gt;Jemian: /* Bluesky */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page exists to collect links to documentation about the instrument control system EPICS, its modules and related libraries (synApps, areaDetector), as used at the Advanced Photon Source.&lt;br /&gt;
&lt;br /&gt;
Documentation referenced should be appropriate for beamline scientists, as opposed to only EPICS developers.&lt;br /&gt;
New deployments should prefer EPICSv7, the latest release series.&lt;br /&gt;
&lt;br /&gt;
See also the extensive [https://epics-controls.org/resources-and-support/documents/training/ resources from past EPICS Collaboration meetings].&lt;br /&gt;
&lt;br /&gt;
==EPICS Base==&lt;br /&gt;
* [https://docs.epics-controls.org/en/latest/guides/EPICS_Intro.html Intro to EPICS]&lt;br /&gt;
* [https://docs.epics-controls.org/en/latest/guides/EPICS_Process_Database_Concepts.html EPICS Database Concepts]&lt;br /&gt;
* [https://docs.epics-controls.org/projects/how-tos/en/latest/getting-started/installation.html EPICS Base Getting Started (official)]&lt;br /&gt;
&lt;br /&gt;
==synApps (aka EPICS Support)==&lt;br /&gt;
* [https://epics.anl.gov/bcda/synApps/synApps_docs_all.html synApps Collected Documentation]&lt;br /&gt;
* [https://epics.anl.gov/bcda/synApps/synApps.html synApps deployment instructions, including use of xxx template ioc]&lt;br /&gt;
&lt;br /&gt;
==areaDetector==&lt;br /&gt;
* [https://areadetector.github.io/master/index.html areaDetector Official Documentation]&lt;br /&gt;
&lt;br /&gt;
==Deploying, troubleshooting, and maintaining IOCs==&lt;br /&gt;
* [[Troubleshooting EPICS IOCs]]&lt;br /&gt;
* [https://docs2bm.readthedocs.io/en/latest/source/ops/item_000_0.html simDetector Install directions (2BM)]&lt;br /&gt;
* [https://epics-modules.github.io/xxx/overview.html The Basics of an IOC (XXX documentation)]&lt;br /&gt;
* [https://gist.github.com/keenanlang/e768774cbd0a367b96281939b8a2c9ba Creation of an IOC using mkioc]&lt;br /&gt;
* [https://wiki.aps.anl.gov/bcda/index.php/Category:TUTORIAL BCDA Tutorials (APS Internal)]&lt;br /&gt;
==Maintaining Documentation==&lt;br /&gt;
* [https://bctwg.readthedocs.io/en/latest/index.html ReadTheDocs tutorial and example site]&lt;br /&gt;
&lt;br /&gt;
==APS ESAF &amp;amp; Proposal - Read-only interface==&lt;br /&gt;
* [https://bcda-aps.github.io/apsbss/ apsbss - Read-only interface to information from APS Proposal and ESAF (experiment safety approval form) databases.]&lt;br /&gt;
&lt;br /&gt;
==Bluesky==&lt;br /&gt;
* [https://blueskyproject.io Bluesky home page]&lt;br /&gt;
* [https://try.nsls2.bnl.gov Try Bluesky in a web browser (from NSLS-II)]&lt;br /&gt;
* [https://bcda-aps.github.io/apstools apstools - Various Python tools for use with Bluesky at the APS.]&lt;br /&gt;
* [https://bcda-aps.github.io/apstools/examples/index.html apstools: Guides, How-Tos, and other examples.]&lt;br /&gt;
* [https://blueskyproject.io/hklpy/ hklpy: Bluesky's diffractometer support]&lt;br /&gt;
* [https://blueskyproject.io/hklpy/examples/index.html Diffractometer examples]&lt;br /&gt;
* [https://github.com/BCDA-APS/bluesky_training Bluesky training for APS users]&lt;br /&gt;
* [https://github.com/BCDA-APS/bluesky_training/tree/main/bluesky Template for new instrument description.]&lt;br /&gt;
* [https://github.com/BCDA-APS/use_bluesky#use_bluesky Installation Steps for APS users]&lt;br /&gt;
* [https://github.com/BCDA-APS/tiled-template Template for creating a local tiled data server]&lt;/div&gt;</summary>
		<author><name>Jemian</name></author>
	</entry>
	<entry>
		<id>https://wiki-ext.aps.anl.gov/blc/index.php?title=Controls_Software_Documentation&amp;diff=28</id>
		<title>Controls Software Documentation</title>
		<link rel="alternate" type="text/html" href="https://wiki-ext.aps.anl.gov/blc/index.php?title=Controls_Software_Documentation&amp;diff=28"/>
		<updated>2022-12-08T20:31:26Z</updated>

		<summary type="html">&lt;p&gt;Jemian: /* APS ESAF &amp;amp; Proposal */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page exists to collect links to documentation about the instrument control system EPICS, its modules and related libraries (synApps, areaDetector), as used at the Advanced Photon Source.&lt;br /&gt;
&lt;br /&gt;
Documentation referenced should be appropriate for beamline scientists, as opposed to only EPICS developers.&lt;br /&gt;
New deployments should prefer EPICSv7, the latest release series.&lt;br /&gt;
&lt;br /&gt;
See also the extensive [https://epics-controls.org/resources-and-support/documents/training/ resources from past EPICS Collaboration meetings].&lt;br /&gt;
&lt;br /&gt;
==EPICS Base==&lt;br /&gt;
* [https://docs.epics-controls.org/en/latest/guides/EPICS_Intro.html Intro to EPICS]&lt;br /&gt;
* [https://docs.epics-controls.org/en/latest/guides/EPICS_Process_Database_Concepts.html EPICS Database Concepts]&lt;br /&gt;
* [https://docs.epics-controls.org/projects/how-tos/en/latest/getting-started/installation.html EPICS Base Getting Started (official)]&lt;br /&gt;
&lt;br /&gt;
==synApps (aka EPICS Support)==&lt;br /&gt;
* [https://epics.anl.gov/bcda/synApps/synApps_docs_all.html synApps Collected Documentation]&lt;br /&gt;
* [https://epics.anl.gov/bcda/synApps/synApps.html synApps deployment instructions, including use of xxx template ioc]&lt;br /&gt;
&lt;br /&gt;
==areaDetector==&lt;br /&gt;
* [https://areadetector.github.io/master/index.html areaDetector Official Documentation]&lt;br /&gt;
&lt;br /&gt;
==Deploying, troubleshooting, and maintaining IOCs==&lt;br /&gt;
* [[Troubleshooting EPICS IOCs]]&lt;br /&gt;
* [https://docs2bm.readthedocs.io/en/latest/source/ops/item_000_0.html simDetector Install directions (2BM)]&lt;br /&gt;
* [https://epics-modules.github.io/xxx/overview.html The Basics of an IOC (XXX documentation)]&lt;br /&gt;
* [https://gist.github.com/keenanlang/e768774cbd0a367b96281939b8a2c9ba Creation of an IOC using mkioc]&lt;br /&gt;
* [https://wiki.aps.anl.gov/bcda/index.php/Category:TUTORIAL BCDA Tutorials (APS Internal)]&lt;br /&gt;
==Maintaining Documentation==&lt;br /&gt;
* [https://bctwg.readthedocs.io/en/latest/index.html ReadTheDocs tutorial and example site]&lt;br /&gt;
&lt;br /&gt;
==APS ESAF &amp;amp; Proposal - Read-only interface==&lt;br /&gt;
* [https://bcda-aps.github.io/apsbss/ apsbss - Read-only interface to information from APS Proposal and ESAF (experiment safety approval form) databases.]&lt;br /&gt;
&lt;br /&gt;
==Bluesky==&lt;br /&gt;
* [https://blueskyproject.io Bluesky home page]&lt;br /&gt;
* [https://try.nsls2.bnl.gov Try Bluesky in a web browser (from NSLS-II)]&lt;br /&gt;
* [https://bcda-aps.github.io/apstools apstools - Various Python tools for use with Bluesky at the APS.]&lt;br /&gt;
* [https://bcda-aps.github.io/apstools/examples/index.html apstools: Guides, How-Tos, and other examples.]&lt;br /&gt;
* [https://blueskyproject.io/hklpy/ hklpy: Bluesky's diffractometer support]&lt;br /&gt;
* [https://blueskyproject.io/hklpy/examples/index.html Diffractometer examples]&lt;br /&gt;
* [https://github.com/BCDA-APS/bluesky_training Bluesky training for APS users]&lt;br /&gt;
* [https://github.com/BCDA-APS/use_bluesky#use_bluesky Installation Steps for APS users]&lt;/div&gt;</summary>
		<author><name>Jemian</name></author>
	</entry>
	<entry>
		<id>https://wiki-ext.aps.anl.gov/blc/index.php?title=Controls_Software_Documentation&amp;diff=27</id>
		<title>Controls Software Documentation</title>
		<link rel="alternate" type="text/html" href="https://wiki-ext.aps.anl.gov/blc/index.php?title=Controls_Software_Documentation&amp;diff=27"/>
		<updated>2022-12-08T20:30:52Z</updated>

		<summary type="html">&lt;p&gt;Jemian: add bluesky content&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page exists to collect links to documentation about the instrument control system EPICS, its modules and related libraries (synApps, areaDetector), as used at the Advanced Photon Source.&lt;br /&gt;
&lt;br /&gt;
Documentation referenced should be appropriate for beamline scientists, as opposed to only EPICS developers.&lt;br /&gt;
New deployments should prefer EPICSv7, the latest release series.&lt;br /&gt;
&lt;br /&gt;
See also the extensive [https://epics-controls.org/resources-and-support/documents/training/ resources from past EPICS Collaboration meetings].&lt;br /&gt;
&lt;br /&gt;
==EPICS Base==&lt;br /&gt;
* [https://docs.epics-controls.org/en/latest/guides/EPICS_Intro.html Intro to EPICS]&lt;br /&gt;
* [https://docs.epics-controls.org/en/latest/guides/EPICS_Process_Database_Concepts.html EPICS Database Concepts]&lt;br /&gt;
* [https://docs.epics-controls.org/projects/how-tos/en/latest/getting-started/installation.html EPICS Base Getting Started (official)]&lt;br /&gt;
&lt;br /&gt;
==synApps (aka EPICS Support)==&lt;br /&gt;
* [https://epics.anl.gov/bcda/synApps/synApps_docs_all.html synApps Collected Documentation]&lt;br /&gt;
* [https://epics.anl.gov/bcda/synApps/synApps.html synApps deployment instructions, including use of xxx template ioc]&lt;br /&gt;
&lt;br /&gt;
==areaDetector==&lt;br /&gt;
* [https://areadetector.github.io/master/index.html areaDetector Official Documentation]&lt;br /&gt;
&lt;br /&gt;
==Deploying, troubleshooting, and maintaining IOCs==&lt;br /&gt;
* [[Troubleshooting EPICS IOCs]]&lt;br /&gt;
* [https://docs2bm.readthedocs.io/en/latest/source/ops/item_000_0.html simDetector Install directions (2BM)]&lt;br /&gt;
* [https://epics-modules.github.io/xxx/overview.html The Basics of an IOC (XXX documentation)]&lt;br /&gt;
* [https://gist.github.com/keenanlang/e768774cbd0a367b96281939b8a2c9ba Creation of an IOC using mkioc]&lt;br /&gt;
* [https://wiki.aps.anl.gov/bcda/index.php/Category:TUTORIAL BCDA Tutorials (APS Internal)]&lt;br /&gt;
==Maintaining Documentation==&lt;br /&gt;
* [https://bctwg.readthedocs.io/en/latest/index.html ReadTheDocs tutorial and example site]&lt;br /&gt;
&lt;br /&gt;
==APS ESAF &amp;amp; Proposal==&lt;br /&gt;
* [https://bcda-aps.github.io/apsbss/ apsbss - Read-only interface to information from APS Proposal and ESAF (experiment safety approval form) databases.]&lt;br /&gt;
&lt;br /&gt;
==Bluesky==&lt;br /&gt;
* [https://blueskyproject.io Bluesky home page]&lt;br /&gt;
* [https://try.nsls2.bnl.gov Try Bluesky in a web browser (from NSLS-II)]&lt;br /&gt;
* [https://bcda-aps.github.io/apstools apstools - Various Python tools for use with Bluesky at the APS.]&lt;br /&gt;
* [https://bcda-aps.github.io/apstools/examples/index.html apstools: Guides, How-Tos, and other examples.]&lt;br /&gt;
* [https://blueskyproject.io/hklpy/ hklpy: Bluesky's diffractometer support]&lt;br /&gt;
* [https://blueskyproject.io/hklpy/examples/index.html Diffractometer examples]&lt;br /&gt;
* [https://github.com/BCDA-APS/bluesky_training Bluesky training for APS users]&lt;br /&gt;
* [https://github.com/BCDA-APS/use_bluesky#use_bluesky Installation Steps for APS users]&lt;/div&gt;</summary>
		<author><name>Jemian</name></author>
	</entry>
</feed>