From 5273feef6c41e772b1f0bf879a0925be2181f2d5 Mon Sep 17 00:00:00 2001 From: smathis Date: Thu, 24 Jul 2025 12:00:18 +0200 Subject: [PATCH] Fixed wrong description of IOC startup script --- README.md | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index cb80f51..3825dc7 100644 --- a/README.md +++ b/README.md @@ -62,30 +62,28 @@ To find out which version of sinqMotor is needed by a driver, refer to its Makef ### IOC startup script -An EPICS IOC for motor control at SINQ is started by executing a script with the IOC shell. In its simplest form, an IOC for two controllers is a file looking like this: +An EPICS IOC for motor control at SINQ is started by executing a script with the IOC shell. In its simplest form, an IOC for two controllers run by "exampleDriver" is a file looking like this: ``` #!/usr/local/bin/iocsh # Load libraries needed for the IOC -require sinqMotor, 1.0.0 -require actualDriver, 1.2.0 +require exampleDriver, 1.0.0 # Define environment variables used later to parametrize the individual controllers epicsEnvSet("TOP","/ioc/sinq-ioc/sinqtest-ioc/") epicsEnvSet("INSTR","SQ:SINQTEST:") # Include other scripts for the controllers 1 and 2 -< actualDriver.cmd -< actualDriver.cmd +< exampleDriver1.cmd +< exampleDriver2.cmd iocInit() ``` -The first line is a so-called shebang which instructs Linux to execute the file with the executable located at the given path - the IOC shell in this case. The controller script "mcu1.cmd" looks like this: -The script for controller 1 ("turboPmac1.cmd") for a Turbo PMAC (see https://git.psi.ch/sinq-epics-modules/turboPmac) has the following structure. The scripts for other controller types can be found in the README.md of their respective repositories. +The first line is a so-called shebang which instructs Linux to execute the file with the executable located at the given path - the IOC shell in this case. The files `exampleDriver1.cmd` or `exampleDriver2` then look like this: ``` # Define the name of the controller and the corresponding port -epicsEnvSet("DRIVER_PORT","actualDriver1") +epicsEnvSet("DRIVER_PORT","exampleDriver1") epicsEnvSet("IP_PORT","p$(DRIVER_PORT)") # Create the TCP/IP socket used to talk with the controller. The socket can be adressed from within the IOC shell via the port name @@ -116,11 +114,11 @@ setForcedFastPolls("$(DRIVER_PORT)", 10); setThresholdComTimeout("$(DRIVER_PORT)", 300, 10); # Parametrize the EPICS record database with the substitution file named after the motor controller. -epicsEnvSet("SINQDBPATH","$(sinqMotor_DB)/sinqMotor.db") +epicsEnvSet("SINQDBPATH","$(exampleDriver_DB)/sinqMotor.db") dbLoadTemplate("$(TOP)/$(DRIVER_PORT).substitutions", "INSTR=$(INSTR)$(DRIVER_PORT):,CONTROLLER=$(DRIVER_PORT)") -epicsEnvSet("SINQDBPATH","$(actualDriver_DB)/turboPmac.db") +epicsEnvSet("SINQDBPATH","$(exampleDriver_DB)/turboPmac.db") dbLoadTemplate("$(TOP)/$(DRIVER_PORT).substitutions", "INSTR=$(INSTR)$(DRIVER_PORT):,CONTROLLER=$(DRIVER_PORT)") -dbLoadRecords("$(sinqMotor_DB)/asynRecord.db","P=$(INSTR)$(DRIVER_PORT),PORT=$(IP_PORT)") +dbLoadRecords("$(exampleDriver_DB)/asynRecord.db","P=$(INSTR)$(DRIVER_PORT),PORT=$(IP_PORT)") ``` ### Substitution file