From 8163d904be3321eb4eed414876a632a92635252f Mon Sep 17 00:00:00 2001 From: Kevin Peterson <kmpeters@anl.gov> Date: Thu, 8 Jun 2023 11:08:52 -0500 Subject: [PATCH] Minor tweaks and corrections --- 2-IOC-deployment.md | 7 ++++--- 3-Add-simulated-motors.md | 4 ++-- 4-Deploy-motorVMC.md | 15 +++++++-------- 5-Add-virtual-motors.md | 2 +- 4 files changed, 14 insertions(+), 14 deletions(-) diff --git a/2-IOC-deployment.md b/2-IOC-deployment.md index 14fc2aa..2e3c093 100644 --- a/2-IOC-deployment.md +++ b/2-IOC-deployment.md @@ -167,13 +167,14 @@ $ <details> <summary>what does this mean?</summary> -We are using a synApps release of EPICS, which is a set of pre-built support modules for EPICS. The ``SUPPORT`` variable is defined to point to the directory where the synApps support modules are installed: +We are using the 6.2.1 release of synApps, which is a collection of EPICS modules that are deployed and tested at the APS. The ``SUPPORT`` variable is defined to point to the directory where the synApps support modules are installed: **/APSshare/epics/synApps_6_2_1/support**. The ``-include`` directive is used to include the **configure/RELEASE** file from the synApps support module directory, which sets various EPICS-related environment variables, including ``EPICS_BASE``, as needed for building the IOC. Therefore, we do not need to explicitly set the ``EPICS_BASE`` variable in your **configure/RELEASE** file because it is already set in the synApps support module's **configure/RELEASE** file. +Note: The ``include`` directive specifies a required file; an error occurs if the file doesn't exist. The ``-include`` directive specifies an optional file that is included if it exists and ignored if it doesn't. </details> ### 2.6 Build the IOC (attempt #2) @@ -225,7 +226,7 @@ The **configure/CONFIG_SITE.local** file is used to specify local configuration The IOC build system will now use an alternative networking library instead of libnet, allowing the IOC to be built without requiring the installation of the net library. -**Note:** the linux command ``$ echo "LINUX_NET_INSTALLED = NO" > configure/CONFIG_SITE.local`` writes the text "LINUX_NET_INSTALLED = NO" to the **configure/CONFIG_SITE.local** file. If the file does not exist, the ``>`` sign creates the file and writes the output to it. If the file already exists, the ``>`` sign overwrites its contents with the new output. +**Note:** the linux command ``$ echo "LINUX_NET_INSTALLED = NO" > configure/CONFIG_SITE.local`` writes the text "LINUX_NET_INSTALLED = NO" to the **configure/CONFIG_SITE.local** file. If the file does not exist, the ``>`` sign creates the file and writes the output to it. If the file already exists, behavior is dependent on which shell is used. For bash, the ``>`` sign overwrites its contents with the new output. For tcsh, the ``>`` sign results in an error because the file already exists. </details> @@ -318,7 +319,7 @@ perl -CSD /APSshare/epics/base-7.0.4.1/bin/rhel8-x86_64/convertRelease.pl -t /ho <details> <summary>what does this mean?</summary> -Perl is a programming language commonly used for scripting and text processing. The command is essentially invoking the convertRelease.pl script and passing the path to the envPaths file as an argument. The script will process the envPaths file and perform any necessary conversions to set up the necessary environment variables. +Perl is a programming language commonly used for scripting and text processing. The command is essentially invoking the convertRelease.pl script and passing the path to the IOC's top-level directory as an argument. The script will process the IOC's configure/RELEASE file and use the contents to create the envPaths file. </details> diff --git a/3-Add-simulated-motors.md b/3-Add-simulated-motors.md index cbeb5d7..4a4bae6 100644 --- a/3-Add-simulated-motors.md +++ b/3-Add-simulated-motors.md @@ -58,7 +58,7 @@ index 34998d9..273bea4 100644 <details><summary>what does this mean?</summary> -The `motorSim.iocsh` script will be loaded when the `motors.iocsh` script is run, and the motor instance defined in the `motorSim.iocsh` script will be set up with the specified parameters (instance name, home position, number of axes, high and low limits, and substitution definitions). Thisis useful for running a simulation of your motor system for testing or development purposes. +The `motorSim.iocsh` script will be loaded when the `motors.iocsh` script is run, and the controller instance defined in the `motorSim.iocsh` script will be set up with the specified parameters (instance name, home position, number of axes, high and low limits, and substitution definitions). This is useful for running a simulation of your motor system for testing or development purposes. </details> @@ -151,7 +151,7 @@ index 588dda7..8fddfc1 100644 <summary>what does this mean?</summary> The `st.cmd.Linux` file is the IOC startup script which is responsible for initializing the EPICS environment, loading database definitions, and starting the IOC. -The command `source iocsh/motors.iocsh` is used to execute the `motors.iocsh` script in the current shell environment. +The command `< iocsh/motors.iocsh` is used to execute the `motors.iocsh` script in the current shell environment. After you make this modification and run the startup script, it will execute the commands in `motors.iocsh` as part of the IOC startup process, setting up the motor instance as specified in the `motors.iocsh` file. </details> diff --git a/4-Deploy-motorVMC.md b/4-Deploy-motorVMC.md index 6188c8a..3ff4a27 100644 --- a/4-Deploy-motorVMC.md +++ b/4-Deploy-motorVMC.md @@ -135,8 +135,7 @@ MOTOR_VMC=/home/beams/USERNAME/PET-S2/epics/synApps/support/motorVMC <summary>where is EPICS_BASE defined?</summary> The `EPICS_BASE` variable is not explicitly defined: it is defined in the motor -configuration file that is included with on line 2 of the **configure/RELEASE.local** -file `-include $(MOTOR)/modules/RELEASE.$(EPICS_HOST_ARCH).local`: +configuration file that is included with on line 2 of the **configure/RELEASE.local**: ``` $ cat ${MOTOR}/modules/RELEASE.${EPICS_HOST_ARCH}.local @@ -197,7 +196,7 @@ for compiling or building the IOC. - Building inside motor: When building inside motor, it implies that you are within the motor module's directory structure. The `$(TOP)` variable represents the top-level directory of -the motor module. In this case, the IOC is being built as part of the motor module +the motorVMC module. In this case, the IOC is being built as part of the motor module itself. The line `-include $(TOP)/../RELEASE.$(EPICS_HOST_ARCH).local` is included in the configure/RELEASE file. This line instructs the build system to include the generated release file from the motor module. The release file contains @@ -210,9 +209,8 @@ structure. It implies that you are building the IOC separately from the motor mo the `make` command is issued in the ${SUPPORT_DIR}/motorVMC directory. In this case, the line `-include $(TOP)/configure/RELEASE.local` is included in the **configure/RELEASE** file. This line instructs the build system to include the -**RELEASE.local** file from the motorVMC module. The **RELEASE.local** file typically -contains configuration information specific to the IOC being built outside the motor -module. +**RELEASE.local** file from the motorVMC module. The **RELEASE.local** file contains +paths to EPICS modules that are required to build motorVMC. </details> @@ -301,7 +299,7 @@ mounting configuration or symbolic links between different machines. To resolve this error, you can modify the `CHECK_RELEASE` setting to either `NO` or `WARN` in the **configure/CONFIG_SITE** file. This will disable or allow the build to continue despite the inconsistency detected. However, please note that it's -important to ensure the paths in the **RELEASE*** files accurately reflect the correct +important to ensure the paths in the **RELEASE** files accurately reflect the correct locations of the support applications to avoid potential issues during runtime. Just like the **RELEASE.local** file, the **CONFIG_SITE.local** file allows for local @@ -309,13 +307,14 @@ customization of the build configuration. The lines `-include $(TOP)/../CONFIG_SITE.local` and `-include $(TOP)/configure/CONFIG_SITE.local` in the **configure/CONFIG_SITE** file instruct the build system to include the **CONFIG_SITE.local** files if they exist in the specified locations. The `$(TOP)` - variable represents the top-level directory of the IOC. + variable represents the top-level directory of motorVMC. Note: the linux command `$ echo "CHECK_RELEASE = NO" > configure/CONFIG_SITE.local` writes the text "CHECK_RELEASE = NO" to the **configure/CONFIG_SITE.local** file. If the file does not exist, the `>` sign creates the file and writes the output to it. If the file already exists, the `>` sign overwrites its contents with the new output + (bash) or returns an error because the file already exists (tcsh). </details> diff --git a/5-Add-virtual-motors.md b/5-Add-virtual-motors.md index bc77ac4..a1b001e 100644 --- a/5-Add-virtual-motors.md +++ b/5-Add-virtual-motors.md @@ -126,7 +126,7 @@ endif - `$(PROD_NAME)_LIBS := vmc $($(PROD_NAME)_LIBS)`: - This expression assigns the value `vmc` as the first element in the `$(PROD_NAME)_LIBS` variable, and it appends the existing value of `$(PROD_NAME)_LIBS` after `vmc`. - `$(PROD_NAME)_LIBS` is a variable that holds the names of libraries the IOC application depends on. - - Note: the convention is to omit the `lib` prefix and the `.a` extension (this is requirement from the `gcc -l` [flag](https://stackoverflow.com/questions/6231206/lib-prefix-on-libraries)). + - Note: the convention is to omit the `lib` prefix and the `.a` extension (this is requirement from the **gcc** `-l` [flag](https://stackoverflow.com/questions/6231206/lib-prefix-on-libraries)). </details> -- GitLab