xxx Release Notes
Release 6-4
IOC Management
- Renamed
xxx.pltoioc.pl– the launcher script no longer needs to match the IOC name - Display manager launch commands (
medm,caqtdm,phoebus) moved from top-level start scripts into the softioc commands directory, making each IOC directory fully self-contained - Removed
start_MEDM_xxx,start_caQtDM_xxx,start_phoebus_xxxtop-level scripts – useioc.pl medm,ioc.pl caqtdm,ioc.pl phoebusinstead - Removed legacy
runandin-screen.shscripts – useioc.pl start/ioc.pl screen startinstead - Display-related environment variables (
IOC_DEFAULT_ADL,IOC_DEFAULT_UI,IOC_DEFAULT_BOB,IOC_DEFAULT_MACROS) now set automatically inioc.plbased onIOC_NAME - Added stale procServ info file detection with user prompt when starting an IOC; validates via PID check (same host) or TCP connect (remote host)
- Added 5-second timeout to procServ TCP connections to prevent hangs on unreachable hosts
- Fixed procServ
-Iinfo file written to wrong directory when using symlinks (GitHub issue #74) – now uses absolute paths - Added log file size watcher that truncates console log files when they exceed a configurable maximum (default 1 GB), keeping the most recent content
- Creating a second IOC from the template now requires only: copy the
iocBoot/iocxxxdirectory, editIOC_NAMEinsettings.iocsh, and runmake
Display Path Setup
setup_epics_commonrewritten in Perl with automatic screen directory discovery – no longer requires manually listing each module’s screen path- Screen directories are discovered by scanning all modules from
configure/RELEASEusing a depth-limited search modules/subdirectories (e.g., motor submodules) are automatically searchedautoconvert/directories are automatically appended when screen files are found- Performance optimized: depth-limited search completes in under 3 seconds vs ~20 seconds for full recursive scan
Gestalt Screens
- Completed the gestalt data file (
xxx.yml) to match all entries from the hand-crafted caQtDM screen - Fixed bugs in the gestalt data: MLL motor file/count mismatch, Slit #2 copy-paste errors, Table3/Table4 macro errors, Shutter file mismatch, ADGeniCam BlackflyS typo
- Added all previously missing entries: Direct I/O tab (12 entries), Devices tab (13 entries), Tools tab (11 entries), Detectors tab (8 entries), Motors tab (3 entries)
- Added Status/APS Ops bar below the tabbed group
- Layout updated to use
TabbedRepeatfor user-customizable tabs with 5-column grid
areaDetector Examples
- Standardized all 19 detector example scripts to use hardcoded
Image1port name for NDStdArrays (reverted from$(INSTANCE)Imageconvention) - Fixed ADDexela: NDStdArraysConfigure port name mismatch that broke the image plugin
- Fixed ADGeniCam:
$(PORT)changed to$(INSTANCE)in ADVimbaConfig and asynSetTraceIOMask - Fixed ADMarCCD:
mar345Configchanged tomarCCDConfig(copy-paste error) - Fixed ADEiger1X/2X: header comment TYPE default corrected from Int32 to Int8
- Fixed ADAdsc: added missing
set_requestfile_path - Added COLORS support to ADProsilica for color camera modes
- Added type-aware
EPICS_CA_MAX_ARRAY_BYTEScalculation to all 19 scripts (1.1x image size in bytes) - Cleaned up stale comments referencing simDetector in 12 scripts
Serial Device Examples
- Added 22 new device examples to
serial_devices.iocshfrom synApps ip and love modules - New devices include: ADAM 4018, Agilent E3631A, BK 9130, Eurotherm 2000-series, LakeShore 218/330/340, Love controllers, MKS 651C, Newport LAE500, Omega DP41, Oxford CS800, Pelco CM6700, Protura P201, SRS PTC10 (Ethernet with RTD/TC/TEC channels), SR830, US Digital X3
- Updated Eurotherm entry from old
dbLoadRecordsto newEurotherm2k.iocsh - Parameter values sourced from module authors’ own example IOCs
Other
- Added PVA server registration and core library linking
- Added PVAlive database and QSRV group
- Added BLEPS databases
- Added motorAcsMotion support
- Added PI GCS2 support
- Disabled EPICS base 7.0.8 iocsh history file by default
- Fixed remote command triggering on certain computers
- Various Windows compatibility fixes for procServ/screen commands
Release 6-3
- Added Scaler module
- Added LabJack module
- Added Xpress3 module
- Added Galil module
- vxWorks IOCs now automatically write out their bootParams on a successful boot
- xxx startup script converted to perl for cross-platform compatibility
- xxx startup script also no longer needs IOC_STARTUP_DIR to be set
- New AreaDetector example scripts
- Autosave .req search path automatically generated based on RELEASE file
Release 6-2-1
- Adjustments for scaler code being broken out from std module
Release 6-2
- Parts of common.iocsh that were likely to be changed moved out to settings.iocsh
Release 6-1
- autsaveBuild files are now built in the autosave directory so that the primary iocxxx directory doesn’t need to be open to be written by anyone.
- xxx.adl screen updated to match tab-style design of the .ui file.
Release 6-0
- Added lua scripting module
- Added SoftGlueZynq module
- Added Yokogawa DAU module
- Added dxpSitoro module
- iocBoot/iocvxWorks, iocBoot/iocLinux, etc: Condensed into single iocxxx directory
- st.cmd.Linux, st.cmd.vxWorks, etc: Individual startup scripts provided for each architecture
- All startup scripts using iocsh to eliminate most architectural differences
- Startup scripts rewritten to use iocshLoad capabilities of base-3.15
- xxx.ui updated to take full advantage of caQtDm widgets
- xxxApp/src/Makefile greatly simplified
- release.pl modified to fix an issue where it wasn’t checking optional includes
- softioc startup script now includes options to start medm and caQtDM
- MEDM and caQtDM startup scripts cleaned up
Release 5-8-3
- Changes to support caputRecorder
- Added GROUP env var for alive record
-
release.pl modified so that module definitions are processed in the order they occur. This allows, for example, the following:
include $(SUPPORT)/configure/RELEASE CAPUTRECORDER=$(SUPPORT)/caputRecorder-1-4-2
in which the CAPUTRECORDER definition overrides the definition in $(SUPPORT)/configure/RELEASE
Release 5-8
- Deleted xxxCommonInclude.dbd since it is no longer used.
- Many changes for areaDetector-2-0
- Use the alive module
- Added xxx.sh, a script to start/stop/restart a linux ioc in a screen session. Improved in-screen.sh and run scripts.
- Rewrote xxxApp/src/Makefile: .dbd users must come after sources, so required stuff is defined before it is used, but .lib users must come before sources, so required references are encountered before a library is searched. Added ifdefs for ETHERIP, ALIVE, DELAYGEN, and VAC modules.
- New configure/CONFIG from 3.14.12.4 makeBaseApp
- start_caQtDM: Added drag-and-drop workaround for caQtDM.
- iocBoot/iocvxWorks, iocLinux: Changed many .cmd files to use doAfterIocInit. Added commented out examples of using autosaveBuild. (AutosaveBuild requires either base 3.15.1, or a patched copy of base 3.14.12.)
- iocBoot/iocvxWorks/softGlue.cmd: Example of registered interrupt service routine.
- iocBoot/ioc*/calc.cmd: new file
- xxxApp/src/Makefile: changes to build with 3.15
- Many changes to use caputRecorder
Release 5-7-1
- iocBoot/iocLinux: new filter.substitutions from optics, added async_pid_slow.substitutions, scan1Menu.req
- iocBoot/iocvxWorks: new filter.substitutions from optics
Release 5-7
- string sequence records moved from std to calc module
- Added .ui files for caQtDM
- rewrote xxxApp/src/Makefile to build dbd file and specify link libraries according to what modules are defined in configure/RELEASE
- SIS38xx setup changed for mca-7-3-1
- Added configMenu for softGlue and scans.
- Added support for async_pid_slow, new XIA filter software
- Deleted vxStats (replaced by devIocStats)
Release 5-6
- Include areaDetector, dxp, modbus, softGlue
- configure/RELEASE changes
- CSS-BOY displays and .def files
- start_epics for bash, setup_epics improvements
- Added op/burt directory for interp, softGlue
- vxStats replaced by devIocStats
- Many changes to match new or modified features in external modules.
Release 5-5
- Added busy module, deleted ccd and pilatus modules
- Deleted iocxxxCygwinInclude.dbd, iocxxxWin32Include.dbd, iocxxx_solarisInclude.dbd – build the targets in Makefile instead.
- .dbd file changes to agree with synApps 5.5 module choices
- Additions for areaDetector
- added multilayer mono, FuncGen, softGlue to xxx.adl
Release 5-4
- Build modified to agree with 3.14.10 version of makeBaseApp.pl
- Use of genSub module replaced by use of aSub record from base 3.14.10.
- Use new busy module.
- iocSolaris: Added databases Io.db, ramp_tweak.db, pvHistory.db; must use ‘var’ to define variable
Release 5-3
- xxx/release.pl: Bug fix; “($macro) =” line was wrong. Support “include” entries without a macro.
- xxx/iocBoot/ioc*/*.substitutions: 3.14.9 will require macros in substitution files to be enclosed in quotes. Start now, since it’s already legal.
- xxx/iocBoot/iocCygwin/saveData.req: added basename section
- xxx/iocBoot/ioc*: Some databases and autosave-request files in synApps have been renamed so that the autosave-request file name can be autogenerated easily from the database name, e.g.: .db <–> _settings.req. This will permit utils/makeAutosaveFiles.py to work more comprehensively.
- xxx/iocBoot/ioc*/save_restore.cmd: Added modbus, pilatus, and vac to requestfile path; Added call to save_restoreSet_UseStatusPVs()
- xxx/iocBoot/ioc*/st.cmd: scans.db was split into standardScans.db and saveData.db, so it’s easier to load multiple scan databases.
- xxx/iocBoot/ioc*/interp_settings.req: moved to calc module (and modified there to agree with current interp database).
- unlisted changes in the build files to agree with changes in synApps.
Release 5-2
-
iocBoot/iocCygwin/* – Added examples for loading databases, specifying autosave PV’s, and invoking SNL programs, for orientation matrix, femto amplifier, and pf4dual slit.
-
pseudoMotor.db, sumDiff2D.db, and coordTrans2D.db are now in the motor module, and not in xxx. This affects some substitution files in iocBoot/ioc*.
-
Some synApps databases used to specify input/output message terminators, and no longer do this. Message terminators must be specified in serial.cmd.
-
Added examples for userArrayCalcs, pvHistory, XIA slit, string sequence, timer
-
Specified message terminators for Digitel in serial.cmd
-
Added example of setting system clock rate to iocvxWorks/st.cmd
-
Added new motor types to xxxApp/src/*
-
Scaler database loading has changed to accommodate asyn-based device support.
-
Modified substitutions files in iocBoot/ioc* to enclose in quotes any macro substitutions that themselves contain macro arguments (i.e., X=$(Y) -> X=”$(Y)”). This will be required in EPICS 3.14.9.
Release 5-1
-
Fixes to run from support directory on the gateway.
-
MPF is out; asyn is in
-
Don’t need to specify handshake PV in saveData.req. It’s now hardwired into saveData.
-
Split out many .cmd files from st.cmd
-
Multi-element mca setup now in device-specific files
-
Serial/GPIB config now in asynRecord.template, serial.cmd
-
serial_OI_Block, GPIB_OI_Block -> deviceCmdReply
Release 5-0
-
start_epics_xxx - added new modules to EPICS_DISPLAY_PATH. Added specification of EPICS_CA_MAX_ARRAY_BYTES
-
documentation/vme_address.html - table of VME addresses, interrupt vectors, etc.
-
iocxxx - split into iocUnix, iocvxWorks
-
st.cmd, xxxApp/src - changed xxx.dbd to iocxxx.dbd, xxx_registerRecordDeviceDriver to iocxxx_registerRecordDeviceDriver because c function name cannot begin with a number
-
st1.cmd - cd to topbin/../vxWorks-68040, so we don’t have to have a separate cdCommands file. Load xxx.munch instead of a bunch of separate files
-
st1.cmd - must configure dac before ip330PID
-
vxStats.substitutions - new file to work with vxStats module
-
pid*.substitutions, dac128V.substitutions - new files
-
xxx.adl - added vxStats, Keithley 2000; changes in mca, DAC
Suggestions and Comments to:
Keenan Lang : (klang@anl.gov)