Preferences Listing
The following preference settings are available for the various application features. To use them in your settings file, remember to prefix each setting with the package name.
For example,
for the drop_failed_archives preference in the trends.databrowser3 section
(package name org.csstudio.trends.databrowser3) add a line like:
org.csstudio.trends.databrowser3/drop_failed_archives=true
- org.csstudio.archive[source]
- org.csstudio.archive/url = jdbc:mysql://localhost/archive?rewriteBatchedStatements=true
RDB URL for archived data
Oracle example:org.csstudio.archive/url=jdbc:oracle:thin:user/password@//172.31.73.122:1521/prod
PostgreSQL example:org.csstudio.archive/url=jdbc:postgresql://localhost/archive
The default value is a MySQL example
- org.csstudio.archive/user = archive
RDB user and password.
Some applications also provide command-line option to override.
- org.csstudio.archive/password = $archive
RDB password.
Some applications also provide command-line option to override.
- org.csstudio.archive/schema =
Schema name. Used with an added “.” as prefix for table names. For now this is only used with Oracle URLs and ignored for MySQL
- org.csstudio.archive/timeout_secs = 0
Timeout in seconds for certain SQL queries
Fundamentally, the SQL queries for data take as long as they take and any artificial timeout just breaks queries that would otherwise have returned OK few seconds after the timeout.
We’ve seen Oracle lockups, though, that caused JDBC to hang forever because the SAMPLE table was locked. No error/exception, just hanging.
A timeout is used for operations other than getting the actual data, for example the channel id-by-name query which should return within a shot time, to catch that type of RDB lockup.
org.csstudio.archive/timeout_secs=120
With PostgreSQL, the
setQueryTimeoutAPI is not implemented, and calling it results in an exception. Setting the timeout to 0 disables calls tosetQueryTimeout.
- org.csstudio.archive/use_array_blob = true
Use a blob to read/write array samples?
The original
SAMPLEtable did not contain anARRAY_VALcolumn for the array blob data, but instead used a separateARRAY_VALtable.When running against an old database, this parameter must be set to
false.
- org.csstudio.archive/write_sample_table = sample
Name of sample table for writing
- org.csstudio.archive/max_text_sample_length = 80
Maximum length of text samples written to
SAMPLE.STR_VAL
- org.csstudio.archive/use_postgres_copy = false
Use postgres copy instead of insert
- org.csstudio.archive/equivalent_pv_prefixes = ca, pva
Channel names use a prefix
ca://,pva://,loc://, … to select the type of PV or network protocol. The preference settingorg.phoebus.pv/default=ca
determines the default type when no prefix is provided.
With EPICS IOCs from release 7 on, the PVs
xxx,ca://xxxandpva://xxxall refer to the same recordxxxon the IOC.The archive configuration stores the PV name as given. It is used as such when connecting to the live data source, resulting in
ca://..orpva://..connections as requested. Samples are written to the archive under that channel name.This archive engine preference setting establishes one or more prefixes as equal when importing an engine configuration. For example, assume
org.csstudio.archive/equivalent_pv_prefixes=ca, pva
When adding a PV
pva://xxxto the configuration, we check if the archive already contains a channelxxx,ca://xxxorpva://xxx. If any of them are found, the-importwill considerpva://xxxas a duplicate.When importing a PV
pva://xxxinto a sample engine configuration that already contains the channelca://xxxorxxx, the channel will be renamed, so that engine will from now on usepva://xxx.When importing a PV
pva://xxxinto a configuration that already contains a different engine setup with the channelca://xxxorxxx, the channel will by default rename unchanged, soca://xxxorxxxwill remain in their original engine setup,pva://xxxwill be skipped.When using
-importwith the additional-steal_channelsoption, the existing...xxxchannel will be renamed topva://xxxand moved to the imported engine configuration.When
equivalent_pv_prefixesis empty, any PV name is used as is without looking for equivalent names. Soxxx,ca://xxxandpva://xxxcan then all be imported as separate channels, which is likely wrong because it would simply store data from the same underlying record more than once.This default should be the most practical setting when adding EPICS 7 IOCs and starting to transition towards
pva://... Existingxxxorca://xxxchannels can thus be renamed topva://xxxwhile retaining their sample history.Note that the data browser has a similar
equivalent_pv_prefixessetting to search for a channel name in several variants.
- org.csstudio.archive/log_trouble_samples = 86400
Seconds between log messages for Not-a-Number, futuristic, back-in-time values.
\(24h = 24*60*60 = 86400\)
- org.csstudio.archive/log_overrun = 86400
Seconds between log messages buffer overruns.
\(24h = 24*60*60 = 86400\)
- org.csstudio.archive/write_period = 30
Write period in seconds.
- org.csstudio.archive/max_repeats = 60
Maximum number of repeat counts for scanned channels.
- org.csstudio.archive/batch_size = 500
Write batch size.
- org.csstudio.archive/buffer_reserve = 2.0
Buffer reserve (N times what’s ideally needed).
- org.csstudio.archive/ignored_future = 86400
Samples with time stamps this far ahead of the local time are ignored \(24h = 24*60*60 = 86400\)
- org.csstudio.archive.ts[source]
- org.csstudio.archive.ts/user = report
User for reading archived data
- org.csstudio.archive.ts/password = $report
Password for reading archived data
- org.csstudio.archive.ts/timeout_secs = 120
Timeout in seconds for certain SQL queries, 0 to disable timeout.
Fundamentally, the SQL queries for data take as long as they take and any artificial timeout just breaks queries that would otherwise have returned OK a few seconds after the timeout.
A timeout is used for operations other than getting the actual data, for example the channel id-by-name query which should return within a short time.
- org.csstudio.archive.ts/fetch_size = 10000
JDBC Statement ‘fetch size’:
Number of samples to read in one network transfer.
Speed tends to increase with fetch size. On the other hand, bigger numbers can result in
java.lang.OutOfMemoryError.
- org.csstudio.display.builder.editor[source]
Widget types to hide from the palette
- Format:
Comma separated list of widget types that will not be shown in the palette.
Existing displays that use these widgets can still be edited and executed, but widgets do not appear in the palette to discourage adding them to new displays.
The default value is hiding widgets where representation has not been imported because of dependencies.
- org.csstudio.display.builder.editor/new_display_template = examples:/initial.bob
GUI Menu action Applications / Display / New Display opens the following template
- org.csstudio.display.builder.editor/undo_stack_size = 50
Size of the undo stack.
- org.csstudio.display.builder.model[source]
- org.csstudio.display.builder.model/class_files = examples:classes.bcf
Widget classes
- Format:
One or more
name.bcffiles, separated by;
Defaults to the built-in copy of
examples/classes.bcf
- org.csstudio.display.builder.model/color_files = examples:color.def
Named colors
- Format:
One or more
name.deffiles, separated by;
Defaults to built-in copy of
examples/color.def
- org.csstudio.display.builder.model/font_files = examples:font.def
Named fonts
- Format:
One or more
name.deffiles, separated by;
Defaults to built-in copy of
examples/font.def
- org.csstudio.display.builder.model/macros =
Global macros, used for all displays.
Displays start with these macros, and can then add new macros or overwrite the values of these macros.
- Format:
Entries where the XML tag name is the macro name, and the XML content is the macro value.
The macro name must be a valid XML tag name:
Must start with character
May then contain characters or numbers
May also contain underscores
E.g.:
macros=<EXAMPLE_MACRO>Value from Preferences</EXAMPLE_MACRO><TEST>true</TEST>
- org.csstudio.display.builder.model/read_timeout = 10000
Timeout in milliseconds for loading files: Displays, but also color, font, widget class files
- org.csstudio.display.builder.model/cache_timeout = 60
Timeout in seconds for caching files loaded from a URL
- org.csstudio.display.builder.model/legacy_font_calibration = 1.01
‘BOY’
display.opifiles provide the font size in ‘points’. All other positions and sizes are in ‘pixels’.A point is meant to represent 1/72th of an inch. The actual on-screen size display settings. Plugging a different monitor into the computer can potentially change the DPI settings of the graphics driver, resulting in different font sizes. The display builder uses fonts in pixels to avoid such changes.
When reading legacy display files, we do not know the DPI scaling that was used to create the display. This factor is used to translate legacy font sizes from ‘points’ into ‘pixel’:
legacy_points = pixel * legacy_font_calibration
The test program
org.csstudio.display.builder.representation.swt.SWTFontCalibationcan be used to obtain the factor when executed on the original platform where the legacy display files were created.When loading legacy files, increasing the legacy_font_calibration will result in smaller fonts in the display builder
- org.csstudio.display.builder.model/max_reparse_iterations = 5000
Maximum re-parse operations.
When reading legacy
display.opifiles and for example finding aTextUpdatewidget that has no<pv_name>, it will be changed into aLabelwidget and then re-parsed.If more than a certain number of re-parse operations are triggered within one ‘level’ of the file (number of widgets at the root of the display, or number of childred for a
Groupwidget), the parser assumes that it entered an infinite re-parse loop and aborts.
- org.csstudio.display.builder.model/with_comments = false
Create display file with comments?
- org.csstudio.display.builder.model/skip_defaults = true
When writing a display file, skip properties that are still at default values?
- org.csstudio.display.builder.model/enable_saved_on_comments = false
Add a comment containing the date, time, and username when saving an OPI in the Display Editor.
- org.csstudio.display.builder.model/enable_svg_rendering_resolution_factor = false
Enable the “SVG Rendering Resolution Factor” widget property to the Symbol and Picture widgets.
This functionality can enable a sharper image when zooming in, at the expense of a quadratic increase in memory consumption. E.g., by setting the SVG rendering resolution factor to 2.0, an SVG can be rendered at twice the width and twice the height, but the memory required to represent the image grows by a factor of four.
- org.csstudio.display.builder.representation[source]
Representation Tuning.
The representation ‘throttles’ updates to widgets. When a widget requests an update, a little accumulation time allows more updates to accumulate before actually performing the queued update requests on the UI thread.
An update delay then suppresses further updates to prevent flooding the UI thread.
Update runs that last longer than a threshold can be logged
- org.csstudio.display.builder.representation/update_accumulation_time = 20
Time waited after a trigger to allow for more updates to accumulate
- org.csstudio.display.builder.representation/update_delay = 100
Pause between updates to prevent flooding the UI thread
- org.csstudio.display.builder.representation/performance_log_period_secs = 5
Period in seconds for logging update performance
- org.csstudio.display.builder.representation/performance_log_threshold_ms = 20
UI thread durations above this threshold are logged
- org.csstudio.display.builder.representation/plot_update_delay = 250
Pause between updates of plots (XY, lines).
Limit to \(250ms = 4Hz\)
- org.csstudio.display.builder.representation/image_update_delay = 250
Pause between updates of image plots.
Limit to \(250ms = 4Hz\)
- org.csstudio.display.builder.representation/tooltip_length = 200
Length limit for tool tips.
Tool tips that are too long can be a problem on some window systems.
- org.csstudio.display.builder.representation/embedded_timeout = 5000
Timeout for load / unload of Embedded Widget content, in milliseconds.
- org.csstudio.display.builder.representation.javafx[source]
- org.csstudio.display.builder.representation.javafx/inc_dec_slider = true
When clicking on the ‘slider’ widget ‘track’, should the value increment/decrement, matching the behavior of EDM, BOY, …?
Otherwise, jump to the clicked value right away.
- org.csstudio.display.builder.representation.javafx/tooltip_delay_ms = 250
How does mouse need to hover until tool tip appears?
- org.csstudio.display.builder.representation.javafx/tooltip_display_sec = 30
Once displayed, how long does the tool tip remain visible?
Note
For historic reasons tool tips are also influenced by the property
org.csstudio.display.builder.disable_tooltips. Whentrue, tool tips are disabled.- org.csstudio.display.builder.representation.javafx/pick_on_bounds = false
Determines whether the mouse can interact with the bounds of the symbol widget. If
false, interaction is limited to the visible area of the element.
- org.csstudio.display.builder.runtime[source]
- org.csstudio.display.builder.runtime/python_path =
Search path for Jython scripts used by the display runtime.
Note that format depends on the OS. On UNIX systems, path entries are separated by
:, on Windows by;.Examplepython_path=/home/controls/displays/scripts:/home/fred/my_scripts
- org.csstudio.display.builder.runtime/pv_name_patches = \\{"longString":true\\}"@@^="([a-zA-Z]+)"@loc://str$1("$1")
PV Name Patches
Translate PV names based on regular expression pattern and replacement
- Format:
pattern@replacement@pattern@replacement
Setting must contain a sequence of pattern & replacement pairs, all separated by
@.The regular expression for the pattern can includes
( )groups, which are then used in the replacement via$1,$2, …If the item separator character
@itself is required within the pattern or replacement, use[@]to distinguish it from the item separator, i.e.[@]work@[@]home
will patch
be@worktobe@homePatches are applied in the order they’re listed in the preference, i.e. later patches are applied to names already patched by earlier ones.
The default value leads to the following substitutions:
- Remove PVManager’s longString modifier:
some_pv {"longString":true}->some_pv- Turn constant formula into constant local variable:
=42->loc://const42(42)- Turn constant name into constant local var:
="Fred"->loc://strFred("Fred")
- org.csstudio.display.builder.runtime/update_throttle = 250
PV update throttle in milliseconds.
\(250ms = 4Hz\)
- org.csstudio.display.builder.runtime/probe_display = examples:/probe.bob
“Probe Display”
Added to context menu for ProcessVariables, invoked with macro PV set to the PV name.
When left empty, the “Probe Display” context menu entry is disabled.
- org.csstudio.display.builder.runtime/default_zoom_factor = 100
Default zoom factor (percentage) of display runtime window
- org.csstudio.display.converter.edm[source]
- org.csstudio.display.converter.edm/auto_converter_dir =
Path to the directory where the auto-converter will generate auto-converted files.
May include system properties like
$(user.home).Target directory must be in the file system. The folder is created if it doesn’t exist.
When left empty, the auto-converter is disabled.
- org.csstudio.display.converter.edm/auto_converter_strip =
Path (prefix) that will be stripped from the original EDM file name before converting.
When empty, the complete path will be stripped.
For example, assume we need to convert
/path/to/original/vacuum/segment1/vac1.edl.With an empty
auto_converter_strip, this will be converted intoauto_converter_dir/vac1.edl.With
auto_converter_strip=/path/to/original, it will be converted intoauto_converter_dir/vacuum/segment1/vac1.edl.
- org.csstudio.display.converter.edm/colors_list =
EDM
colors.listfile.Must be defined to use converter. May be a file system path or an
http://link
- org.csstudio.display.converter.edm/font_mappings = helvetica=Liberation Sans,courier=Liberation Mono,times=Liberation Serif,.*=Liberation Sans
Font mappings
- Format:
EDMFontPattern=DisplayBuilderFont,Pattern=Font,...
EDMFontPatternis regular expression for the name used by EDMPatterns are checked in the order in which they’re listed in here, so a catch-all
.*pattern should be at the end
- org.csstudio.display.converter.edm/edm_paths_config =
Path to text file that lists EDM search paths.
May be a file system path or an
http://link.In the file, each line in the text file contains a path, which may be a file system path or a
http://link.When trying to open a
display.edlfile, converter will try each path in the order listed in the file.Lines starting with
#are ignored.When the
edm_paths_configis left empty, the converter won’t find files.
- org.csstudio.display.converter.edm/stp_path_patch_pattern =
Pattern for patching paths to
name.stp(StripTool) files.‘Shell Command’ buttons in EDM that invoke a command of the form:
StripTool /some/path/to/plot.stp
are converted into
ActionButtonswhich open the/some/path/to/plot.stpfile. Data Browser will then open the file when the action is invoked.The following regular expression pattern and replacement can be used to patch
/some/path/to/plot.stp. By default, both are empty, so the path remains unchanged.Example for transforming all absolute paths into a web location:
org.csstudio.display.converter.edm/stp_path_patch_pattern=^(/) org.csstudio.display.converter.edm/stp_path_patch_replacement=https://my_web_server/stripcharts$1
Note how the pattern may include group markers (…) and the replacement can reference them via \(1, \)2, …
- org.csstudio.display.converter.edm/stp_path_patch_replacement =
Replacement for patching paths to
name.stp(StripTool) files.See
stp_path_patch_patternfor more information.
- org.csstudio.display.converter.edm/strip_close_button = true
Strip “close” buttons which are not needed in Phoebus tabs and windows
- org.csstudio.javafx.rtplot[source]
- org.csstudio.javafx.rtplot/shady_future = 128, 128, 128, 128
Coloring used to shade plot region beyond ‘now’ in time-based plots.
- Format:
RGBA (all values 0…255)
Painted on on top of grid, before traces are drawn.
Half-transparent, average of black & white, works for both white and black backgrounds
If you prefer a rose-colored future:
shady_future=255, 128, 128, 25
If you prefer to not highlight the plot region beyond ‘now’:
shady_future=128, 128, 128, 0
- org.csstudio.scan.client[source]
- org.csstudio.scan.client/host = localhost
Name of host where scan server is running
- org.csstudio.scan.client/port = 4810
TCP port of scan server REST interface
- org.csstudio.scan.client/poll_period = 1000
Poll period in milliseconds of the scan client (scan monitor, plot, …)
- org.csstudio.scan.ui[source]
- org.csstudio.scan.ui/monitor_status = false
Show scan monitor status bar?
- org.csstudio.trends.databrowser3[source]
- org.csstudio.trends.databrowser3/use_auto_scale = false
Default auto scale value.
Possible values are:
trueto enable the automatic calculation of the min/max Y-axisfalseto use min/max fixed values.
- org.csstudio.trends.databrowser3/time_span = 3600
Default time span displayed in plot in seconds
- org.csstudio.trends.databrowser3/scan_period = 0.0
Default scan period in seconds. 0 for ‘monitor’
- org.csstudio.trends.databrowser3/update_period = 3.0
Default plot update period in seconds
- org.csstudio.trends.databrowser3/live_buffer_size = 5000
… elements in live sample buffer
- org.csstudio.trends.databrowser3/line_width = 2
Default line width
- org.csstudio.trends.databrowser3/opacity = 40
Opacity of ‘area’:
- 0%:
Area totally transparent (invisible)
- 20%:
Area quite transparent
- 100%:
Area uses solid color
- org.csstudio.trends.databrowser3/trace_type = AREA
Default trace type for newly created traces.
Allowed values are defined by
org.csstudio.trends.databrowser3.model.TraceType:AREAERROR_BARSSINGLE_LINEAREA_DIRECTSINGLE_LINE_DIRECTSQUARES…
- org.csstudio.trends.databrowser3/archive_fetch_delay = 500
Delay in milliseconds that delays archive requests when the user moves the time axis to avoid a flurry of archive requests while interactively zooming and panning
- org.csstudio.trends.databrowser3/concurrent_requests = 1000
Number of concurrent archive fetch requests.
When more requests are necessary, the background jobs will wait until the previously submitted jobs complete, to limit the number of concurrent requests.
Ideally, the number can be high, but to limit the number of concurrent requests to for example an RDB, this value can be lowered.
Note that this does not apply to ‘exporting’ data in spreadsheet form, where data for N channels is still collected by reading from N concurrent archive readers.
- org.csstudio.trends.databrowser3/plot_bins = -3
Number of binned samples to request for optimized archive access.
Negative values scale the display width, i.e. -3 means: 3 times Display pixel width.
- org.csstudio.trends.databrowser3/urls = jdbc:mysql://localhost/archive|RDB*xnds://localhost/archive/cgi/ArchiveDataServer.cgi
Suggested data servers.
- Format:
<url>*<url>|<name>List of URLs, separated by
*.Each URL may be followed by an
|alias
RDB URLs:
jdbc:mysql://localhost/archive
Archive Appliance:
pbraw\://arcapp01.site.org:17668/retrieval
Channel Archiver Network Data Server:
xnds://localhost/archive/cgi/ArchiveDataServer.cgi
Channel Archiver index file (binary) or index.xml (list of indices):
cadf:/path/to/index cadf:/path/to/index.xml
- org.csstudio.trends.databrowser3/archives = jdbc:mysql://localhost/archive|RDB*xnds://localhost/archive/cgi/ArchiveDataServer.cgi
Default data sources for newly added channels Format: Same as
urls
- org.csstudio.trends.databrowser3/use_default_archives = false
When opening existing data browser plot, use archive data sources specified in the configuration file (original default) or ignore saved data sources and instead use the preference settings?
- org.csstudio.trends.databrowser3/drop_failed_archives = true
If there is an error in retrieving archived data, should that archive data source be dropped from the channel?
This is meant to avoid needless queries to archives that cannot be accessed.
Note
Archive data sources which clearly report a channel as “not found” will still be dropped. This option only configures if data sources which return an error (cannot connect, …) should be queried again for the given channel.
- org.csstudio.trends.databrowser3/equivalent_pv_prefixes = ca, pva
With EPICS IOCs from release 7 on, the PVs
xxx,ca://xxxandpva://xxxall refer to the same recordxxxon the IOC.When the plot requests
pva://xxx, the archive might still trace that channel asca://xxxorxxx. Alternatively, the archive might already track the channel aspva://xxxwhile data browser plots still useca://xxxor justxxx. This preference setting instructs the data browser to try all equivalent variants. If any types are listed, justxxxwithout any prefix will also be checked in addition to the listed types.The default of setting of
ca, pvasupports the seamless transition between the key protocols.When
equivalent_pv_prefixesis empty, the PV name is used as is without looking for any equivalent names.
- org.csstudio.trends.databrowser3/archive_rescale = STAGGER
Re-scale behavior when archived data arrives:
NONE,STAGGER
- org.csstudio.trends.databrowser3/time_span_shortcuts = 30 Minutes,-30 min|1 Hour,-1 hour|12 Hours,-12 hour|1 Day,-1 days|7 Days,-7 days
Shortcuts offered in the Time Axis configuration
- Format:
Text for shortcut,start_spec|Another shortcut,start_spec
- org.csstudio.trends.databrowser3/plt_repository = /opt/codac/opi/databrowser/
Path to the directory where the PLT files for WebDataBrowser are placed.
- org.csstudio.trends.databrowser3/automatic_history_refresh = true
Automatically refresh history data when the liver buffer is full.
This will prevent the horizontal lines in the shown data when the buffer is too small to cover the selected time range.
- org.csstudio.trends.databrowser3/scroll_step = 5
Scroll step, i.e. size of the ‘jump’ left when scrolling, in seconds. (was called
future_buffer)
- org.csstudio.trends.databrowser3/use_trace_names = true
Display the trace names on the Value Axis.
The default value is
true. Set it tofalseto not show the trace names on the Axis
- org.csstudio.trends.databrowser3/prompt_for_raw_data_request = true
Prompt / warn when trying to request raw data?
- org.csstudio.trends.databrowser3/prompt_for_visibility = true
Prompt / warn when making trace invisible?
- org.csstudio.trends.databrowser3/time_span_shortcuts = 30 Minutes,-30 min|1 Hour,-1 hour|12 Hours,-12 hour|1 Day,-1 days|7 Days,-7 days
Shortcuts offered in the Time Axis configuration
- Format:
Text for shortcut,start_spec|Another shortcut,start_spec
- org.csstudio.trends.databrowser3/config_dialog_supported = false
Determines if the plot runtime config dialog is supported.
Defaults to
falseas the Data Browser offers the same functionality through its configuration tabs.
- org.csstudio.trends.databrowser3/value_axis_label_policy = pv-name
Determines default value axis label policy.
Supported options:
pv-name: classic policy. Default if this property is not set or set to an unsupported value.pv-desc: useDESCfield, if available from PV and non-empty. Works only with pva.
- org.csstudio.trends.databrowser3/assign_pvs_from_clipboard_to_the_same_axis_by_default = false
Determines whether, by default, in the “Add PV(s) from the Clipboard”-window, the option to add all PVs to the same axis is enabled (when
true), or whether the option to add all PVs to different axes is enabled (whenfalse).
- org.phoebus.app.viewer3d[source]
- org.phoebus.app.viewer3d/read_timeout = 10000
Time out for reading from a URI
- org.phoebus.app.viewer3d/default_dir = $(user.home)
Default directory for the file chooser.
- org.phoebus.app.viewer3d/cone_faces = 8
Cone is approximated with these many faces.
- 3:
Triangular base, most minimalistic
- 8:
Looks pretty good
- Higher:
Approaches circular base, but adds CPU & memory usage and doesn’t really look much better
- org.phoebus.applications.alarm[source]
- org.phoebus.applications.alarm/server = localhost:9092
Kafka Server host:port
- org.phoebus.applications.alarm/kafka_properties =
A file to configure the properties of kafka clients
- org.phoebus.applications.alarm/config_name = Accelerator
Name of alarm tree root.
Configures the alarm configuration used by the alarm server. For the UI, it sets the default alarm configuration.
- org.phoebus.applications.alarm/config_names = Accelerator, Demo
Names of selectable alarm configurations for UI.
The
config_namewill be used as the default for newly opened tools, and ifconfig_namesis empty, it remains the only option.When one or more comma-separated configurations are listed, the UI shows the selected name and allows switching between them.
- org.phoebus.applications.alarm/connection_timeout = 30
Timeout in seconds for initial PV connection
- org.phoebus.applications.alarm/severity_pv_timeout = 5
Timeout in seconds for “sevrpv:” updates
Area Panel
- org.phoebus.applications.alarm/alarm_area_level = 2
Item level for alarm area view:
- 1:
Root element
- 2:
Top-level “area” elements just below root
- 3:
Show all the items at level 3
- org.phoebus.applications.alarm/alarm_area_column_count = 3
Number of columns in the alarm area view.
- org.phoebus.applications.alarm/alarm_area_gap = 5
Gap between alarm area panel items.
- org.phoebus.applications.alarm/alarm_area_font_size = 15
Font size for the alarm area view.
Limit for the number of context menu items.
Separately applied to the number of ‘guidance’, ‘display’ and ‘command’ menu entries.
- org.phoebus.applications.alarm/alarm_tree_startup_ms = 2000
Initial Alarm Tree UI update delay, in milliseconds.
The initial flurry of alarm tree updates can be slow to render. By allowing the alarm client to accumulate alarm tree information for a little time and then performing an initial bulk representation, the overall alarm tree startup can be faster, especially when the UI is viewed via a remote desktop.
Set to
0for original implementation where all alarm tree items are added to the model as they are received in initial flurry of updates.
- org.phoebus.applications.alarm/alarm_table_columns = Icon, PV, Description, Alarm Severity, Alarm Message, Alarm Time, Alarm Value, PV Severity, PV Message
Order of columns in alarm table.
Allows re-ordering as well as omitting columns
The supported columns are:
IconPVDescriptionAlarm SeverityAlarm MessageAlarm TimeAlarm ValuePV SeverityPV Message
- org.phoebus.applications.alarm/alarm_table_color_legacy_background = true
By default, the alarm table uses the common alarm severity colors for both the text color and the background of cells in the “Severity” column.
Older implementations always used the background to indicate alarm severity, and this options emulates that by using the alarm severity text(!) color for the background, automatically using black or white for the text based on brightness.
- org.phoebus.applications.alarm/alarm_table_max_rows = 2500
Alarm table row limit.
If there are more rows, they’re suppressed
- org.phoebus.applications.alarm/command_directory = $(user.home)
Directory used for executing commands.
May use Java system properties like this:
$(prop_name)
- org.phoebus.applications.alarm/annunciator_threshold = 3
The threshold of messages that must accumulate before the annunciator begins to simply state: “There are X Alarm messages.”
- org.phoebus.applications.alarm/annunciator_retention_count = 100
The number of messages the annunciator will retain before popping messages off the front of the message queue.
- org.phoebus.applications.alarm/idle_timeout = 10
Timeout in seconds at which server sends idle state updates for the ‘root’ element if there’s no real traffic.
Client will wait 3 times this long and then declare a timeout.
- org.phoebus.applications.alarm/automated_email_sender = Alarm Notifier <alarm_server@example.org>
Name of the sender, the ‘from’ field of automated email actions.
- org.phoebus.applications.alarm/automated_action_followup = mailto:, cmd:, infopv:
Comma-separated list of automated actions on which to follow up.
Options include
mailto:,cmd:
- org.phoebus.applications.alarm/heartbeat_pv =
Optional heartbeat PV.
When defined, alarm server will set it to 1 every heartbeat_secs
Exampleheartbeat_pv=Demo:AlarmServerHeartbeat
- org.phoebus.applications.alarm/heartbeat_secs = 10
Heartbeat PV period in seconds.
- org.phoebus.applications.alarm/nag_period = 00:15:00
Period for repeated annunciation.
If there are active alarms, i.e. alarms that have not been acknowledged, a message “There are 47 active alarms” will be issued.
- Format:
HH:MM:SS, for example00:15:00to nag every 15 minutes.
Set to 0 to disable
- org.phoebus.applications.alarm/connection_check_secs = 5
Connection validation period in seconds.
Server will check the Kafka connection at this period. After re-establishing the connection, it will re-send the state of every alarm tree item.
Set to 0 to disable.
- org.phoebus.applications.alarm/disable_notify_visible = false
To turn on disable notifications feature, set the value to
true
- org.phoebus.applications.alarm/shelving_options = 1 hour, 6 hours, 12 hours, 1 day, 7 days, 30 days
Options for the “Disable until…” shortcuts in the PV config dialog.
- Format:
comma separated, each option needs to comply with
TimeParser.parseTemporalAmount():30 seconds, 5 minutes, 1 hour, 6 hours, 1 day, 30 days, …
- org.phoebus.applications.alarm/macros = TOP=/home/controls/displays,WEBROOT=http://localhost/controls/displays
Macros for UI display, command or web links
- Format:
M1=Value1, M2=Value2
- org.phoebus.applications.alarm/max_block_ms = 10000
Max time in milliseconds a producer call will block.
- org.phoebus.applications.alarm.audio.annunciator[source]
The audio annunciator will play the audio files specified for the associated alarm severity levels.
Currently supported formats are AIFF and WAV files, which can be local or remote.
Examplesfile:/C:/tmp/audio/AudioFileWithWavFormat.wav https://wavlist.com/wav/brass1.wav
- org.phoebus.applications.alarm.audio.annunciator/alarm_sound_url =
Default alarm sound.
If we don’t want severity specific sounds only setting this one preference is enough.
- org.phoebus.applications.alarm.audio.annunciator/minor_alarm_sound_url =
- org.phoebus.applications.alarm.audio.annunciator/major_alarm_sound_url =
- org.phoebus.applications.alarm.audio.annunciator/invalid_alarm_sound_url =
- org.phoebus.applications.alarm.audio.annunciator/undefined_alarm_sound_url =
- org.phoebus.applications.alarm.audio.annunciator/volume = 100
Audio clip volume (0-100).
- org.phoebus.applications.alarm.audio.annunciator/max_alarm_duration = 10
Max alarm Duration in seconds.
- org.phoebus.applications.alarm.logging.ui[source]
- org.phoebus.applications.alarm.logging.ui/service_uri = http://localhost:9000
The URL of the REST API exposed by the alarm logger service.
Changed in version 4.0: Prior to the 4.0 release, this was the elasticsearch port.
- org.phoebus.applications.alarm.logging.ui/results_max_size = 10000
- org.phoebus.applications.console[source]
- org.phoebus.applications.console/output_line_limit = 100
Number of output lines to keep.
Older output is dropped.
- org.phoebus.applications.console/history_size = 20
Number of lines to keep in input history,
accessible via up/down cursor keys
- org.phoebus.applications.console/font_name = Liberation Mono
Font name.
- org.phoebus.applications.console/font_size = 14
Font size.
- org.phoebus.applications.console/prompt = >>>\
Prompt.
May include trailing space.
- org.phoebus.applications.console/prompt_info = Enter console command
Prompt (input field) info.
- org.phoebus.applications.console/shell = /usr/bin/python -i
‘Shell’ to execute.
Examples/usr/bin/python -i /usr/bin/python -i /path/to/some/initial_file.py /bin/bash
Value may include properties.
- org.phoebus.applications.console/directory = $(user.home)
Folder where the shell process should be started.
Value may include properties.
- org.phoebus.applications.errlog[source]
- org.phoebus.applications.errlog/max_lines = 500
Number of lines to keep in error log.
- org.phoebus.applications.eslog[source]
- org.phoebus.applications.eslog/es_url =
- org.phoebus.applications.eslog/es_index = messagelog
- org.phoebus.applications.eslog/jms_url =
- org.phoebus.applications.eslog/jms_topic = LOG
- org.phoebus.applications.filebrowser[source]
- org.phoebus.applications.filebrowser/default_root = $(user.home)
Initial root directory for newly opened file browser.
May use system properties like
$(user.home).At runtime, user can select a different base directory, but pressing the “Home” button reverts to this one.
Show hidden files (
File.isHidden)?
- org.phoebus.applications.imageviewer[source]
- org.phoebus.applications.imageviewer/watermark_text = W A T E R M A R K
Watermark text
- org.phoebus.applications.pvtable[source]
- org.phoebus.applications.pvtable/treat_byte_array_as_string = true
Should all
BYTE[]values be considered “long strings”?
- org.phoebus.applications.pvtable/show_units = true
Show the units when displaying values?
- org.phoebus.applications.pvtable/show_description = true
Show a “Description” column that reads
xxx.DESC?
- org.phoebus.applications.pvtable/tolerance = 0.1
Default tolerance for newly added items.
- org.phoebus.applications.pvtable/max_update_period = 500
Maximum update period for PVs in millisecs.
- org.phoebus.applications.pvtable/textarea_editor = false
Display a text area editor for add a pv list instead of single pv.
- org.phoebus.applications.pvtree[source]
- org.phoebus.applications.pvtree/read_long_fields = true
The channel access
DBR_STRINGhas a length limit of 40 chars.Since EPICS base R3.14.11, reading fields with an added
$returns their value as achar[]without length limitation.For older IOCs, this will however fail, so set this option only if all IOCs are at least version R3.14.11
- org.phoebus.applications.pvtree/fields = aai(INP);ai(INP);bi(INP);compress(INP);longin(INP);int64in(INP);mbbi(INP);mbbiDirect(INP);mbboDirect(INP);stringin(INP);lsi(INP);subArray(INP);waveform(INP);aao(DOL);ao(DOL);bo(DOL);fanout(DOL);longout(DOL);int64out(DOL);mbbo(DOL);stringout(DOL);sub(INPA-L);genSub(INPA-L);calc(INPA-L);calcout(INPA-L);aSub(INPA-U);seq(SELN);bigASub(INP001-128);scalcout(INPA-L,INAA,INBB,INCC,INDD,INEE,INFF,INGG,INHH,INII,INJJ,INKK,INLL);alarm(INP1-9,INP10)
For each record type, list the fields to read and trace as ‘links’.
- Format:
record_type (field1, field2) ; record_type (...)
Fields can simply be listed as
INP,DOL.The syntax
INPA-Lis a shortcut forINPA,INPB,INPC, …,INPLThe syntax
INP001-128is a shortcut forINP001,INP002, …,INP128The general syntax is
FIELDxxx-yyy, where xxx and yyy are the initial and final value. xxx and yyy need to be of the same length, i.e.1-9or01-42, NOT1-42.For characters, only single-char
A-Zis supported, NOTAA-ZZ, where it’s also unclear if that should turn intoAA,AB,AC, …,AZ,BA,BB,BC, …,ZZorAA,BB, …,ZZ.bigASubis a CSIRO/ASCAP record type, doesn’t hurt to add that to the shared configuration.scalcoutis a bit unfortunate since there is no shortcut forINAA-INLL.alarmrecord hasINP1-10.1-9handled by pattern,INP10listed
- org.phoebus.applications.pvtree/update_period = 0.5
Max update period in seconds.
- org.phoebus.applications.queueserver[source]
- org.phoebus.applications.queueserver/queue_server_url = http://localhost:60610
The queue server url.
- org.phoebus.applications.queueserver/api_key = $(BLUESKY_API_KEY)
API key for queue server authentication.
Uses environment variable
BLUESKY_API_KEYor default valuea
- org.phoebus.applications.queueserver/debug = false
Enable debugging of http request and responses.
- org.phoebus.applications.queueserver/connectTimeout = 5000
The connection timeout for the HTTP client, in milliseconds.
0 = infinite.
- org.phoebus.applications.saveandrestore[source]
- org.phoebus.applications.saveandrestore/sortSnapshotsTimeReversed = false
Sort snapshots in reverse order of created time.
Last item comes first.
- org.phoebus.applications.saveandrestore/readTimeout = 5000
Read timeout in milliseconds when taking snapshot.
- org.phoebus.applications.saveandrestore/search_result_page_size = 30
Limit used in “paginated” search, i.e. the number of search results per page
- org.phoebus.applications.saveandrestore/default_search_query = tags=golden
Default save-and-restore search query.
Used unless a saved query is located.
- org.phoebus.applications.saveandrestore/default_snapshot_name_date_format =
If declared add a date automatically in the name of the snapshot “Take Snapshot”
Exampleorg.phoebus.applications.saveandrestore/default_snapshot_name_date_format=yyyy-MM-dd HH:mm:ss
- org.phoebus.applications.saveandrestore/default_snapshot_mode = READ_PVS
Defines the default snapshot mode.
READ_PVS: the classic mode where PV values are read from IOCsFROM_ARCHIVER: PV values read from archiver at point in time selected by user
- org.phoebus.applications.saveandrestore/default_restore_mode = CLIENT_RESTORE
Defines the default restore mode.
CLIENT_RESTORE: the restore operation is performed by the clientSERVICE_RESTORE: the restore operation is performed by the server
- org.phoebus.applications.saveandrestore/allow_empty_descriptions = false
Allow leaving the description / comment field empty for Configs / (Composite) Snapshots.
- org.phoebus.applications.saveandrestore.client[source]
- org.phoebus.applications.saveandrestore.client/jmasar.service.url = http://localhost:8080/save-restore
The URL to the save-and-restore service.
- org.phoebus.applications.saveandrestore.client/httpClient.readTimeout = 5000
Read timeout in milliseconds used by the Jersey client.
- org.phoebus.applications.saveandrestore.client/httpClient.connectTimeout = 5000
Connect timeout in milliseconds used by the Jersey client.
- org.phoebus.applications.update[source]
- org.phoebus.applications.update/delay = 10
Time to wait, in seconds, for update check to allow more important tools to start.
- org.phoebus.applications.update/current_version =
Version time/date.
If the distribution found at the
update_urlis later than this date, an update will be performed.The updated distribution must contain a new value for the org.phoebus.applications.update/current_version setting.
By for example publishing updates with a ‘current_version’ that’s one month ahead, you can suppress minor updates for a month.
- Format:
YYYY-MM-DD HH:MM
Exampleorg.phoebus.applications.update/current_version=2018-06-18 13:10
- org.phoebus.applications.update/update_url =
Location where updates can be found.
The
file:,http:, orhttps:URL is checked. If it exists, and its modification time is aftercurrent_version, the updated distribution is downloaded and the currentLocations.install()is replaced.Location may include system properties and
$(arch)will be replaced bylinux,macorwinto allow locations specific to each architecture.Exampleorg.phoebus.applications.update/update_url=https://controlssoftware.sns.ornl.gov/css_phoebus/nightly/product-sns-$(arch).zip
- org.phoebus.applications.update/gitlab_api_url =
Path to the “V4 API” of your GitLab instance.
Exampleorg.phoebus.applications.update/gitlab_api_url=https://HOST/api/v4
- org.phoebus.applications.update/gitlab_project_id =
The numeric ID of the GitLab project.
- org.phoebus.applications.update/gitlab_package_name = phoebus-$(arch)
The package name used in the registry.
- org.phoebus.applications.update/gitlab_token =
Access token for the project’s API and registry.
Required if access to the gitlab project is not public.
- org.phoebus.applications.update/removals = CSS_Phoebus\\.app/Contents/.*,CSS_Phoebus\\.app/,phoebus\\.app/Contents/.*,phoebus\\.app/,phoebus-[^/]+/,product-[^/]+/,jdk/.*
List of regular expressions, comma-separated, which will be removed from the ZIP file entry.
If result is empty string, the entry is skipped.
The update ZIP file can have various formats.
- Basic ZIP file:
phoebus-{site, version}/*Remove
phoebus-.*from entry name to install content of zip intoinstall_locationwithout creating yet another subdir- ZIP that’s packaged for Windows, including JDK:
product-sns-0.0.1/*,jdk/*Remove
product-sns-*from entry name, skipjdk.- ZIP that’s packaged for Mac:
Either:
phoebus.app/product-sns-0.0.1/*: Remove.../phoebus.app/jdk/*: Skipphoebus.app/Contents/*: Skip
or:
CSS_Phoebus.app/product-sns-0.0.1/*: Remove.../CSS_Phoebus.app/jdk/*: SkipCSS_Phoebus.app/Contents/*: Skip
Examples:
phoebus\.app/: Strip Mac “phoebus.app/” from entries so they look more like the Windows examplephoebus-[^/]+/: Strip phoebus product name from ZIP entryjdk/.*: Remove complete jdk entry to skip it
- org.phoebus.archive.reader.appliance[source]
- org.phoebus.archive.reader.appliance/useStatisticsForOptimizedData = true
- org.phoebus.archive.reader.appliance/useNewOptimizedOperator = true
- org.phoebus.archive.reader.appliance/useHttps = false
Use ‘https://…’ instead of plain ‘http://…’?
- org.phoebus.archive.reader.channelarchiver[source]
- org.phoebus.archive.reader.channelarchiver/use_https = false
Use ‘https://…’ instead of plain ‘http://…’?
- org.phoebus.archive.reader.json[source]
- org.phoebus.archive.reader.json/honor_zero_precision = true
Shall a precision of zero for a floating-point value result in this value using a number format without fractional digits (
true) or shall it be treated as an indication that the value should be rendered with a default number of fractional digits (false)?
- org.phoebus.archive.reader.rdb[source]
- org.phoebus.archive.reader.rdb/user = archive
User for reading archived data
- org.phoebus.archive.reader.rdb/password = $archive
Password for reading archived data
- org.phoebus.archive.reader.rdb/prefix =
Table prefix.
For Oracle, this is typically the schema name, including
..
- org.phoebus.archive.reader.rdb/timeout_secs = 120
Timeout in seconds for certain SQL queries.
Fundamentally, the SQL queries for data take as long as they take and any artificial timeout just breaks queries that would otherwise have returned OK a few seconds after the timeout.
We’ve seen Oracle lockups, though, that caused JDBC to hang forever because the SAMPLE table was locked. No error/exception, just hanging.
A timeout is used for operations other than getting the actual data, for example the channel id-by-name query which should return within a shot time, to catch that type of RDB lockup.
Setting the timeout to 0 disables calls to setQueryTimeout, which may be required for PostgreSQL where the
setQueryTimeoutAPI is not implemented.
- org.phoebus.archive.reader.rdb/use_array_blob = true
Use a BLOB to read array samples?
The original
SAMPLEtable did not contain anARRAY_VALcolumn for the array blob data, but instead used a separateARRAY_VALtable. When running against an old database, this parameter must be set to false.
- org.phoebus.archive.reader.rdb/stored_procedure =
Use stored procedures and functions for ‘optimized’ data readout?
Set to procedure name, or nothing to disable stored procedure.
Examples
MySQLorg.phoebus.archive.reader.rdb/stored_procedure=archive.get_browser_data
PostgreSQLorg.phoebus.archive.reader.rdb/stored_procedure=public.get_browser_data
Oracleorg.phoebus.archive.reader.rdb/stored_procedure=chan_arch.archive_reader_pkg.get_browser_data org.phoebus.archive.reader.rdb/starttime_function=SELECT chan_arch.archive_reader_pkg.get_actual_start_time (?, ?, ?) FROM DUAL
- org.phoebus.archive.reader.rdb/starttime_function =
- org.phoebus.archive.reader.rdb/fetch_size = 1000
JDBC Statement ‘fetch size’: Number of samples to read in one network transfer.
For Oracle, the default is 10. Tests resulted in a speed increase up to fetch sizes of 1000. On the other hand, bigger numbers can result in
java.lang.OutOfMemoryError.
- org.phoebus.archive.reader.rdb/equivalent_pv_prefixes = ca, pva
With EPICS IOCs from release 7 on, the PVs
xxx,ca://xxxandpva://xxxall refer to the same recordxxxon the IOC.When the plot requests
pva://xxx, the archive might still trace that channel asca://xxxorxxx. Alternatively, the archive might already track the channel aspva://xxxwhile data browser plots still useca://xxxor justxxx.This preference setting instructs the data browser to try all equivalent variants. If any types are listed, just
xxxwithout any prefix will also be checked in addition to the listed types.The default of setting of
ca, pvasupports the seamless transition between the key protocols.When
equivalent_pv_prefixesis empty, the PV name is used as is without looking for any equivalent names.
- org.phoebus.channel.views.ui[source]
- org.phoebus.channel.views.ui/show_active_cb = false
Show the active PVs only?
- org.phoebus.channelfinder[source]
- org.phoebus.channelfinder/serviceURL = http://localhost:8080/ChannelFinder
- org.phoebus.channelfinder/username = admin
- org.phoebus.channelfinder/password = adminPass
- org.phoebus.channelfinder/rawFiltering = false
- org.phoebus.email[source]
- org.phoebus.email/mailhost = smtp.bnl.gov
SMTP host.
When set to
DISABLE, email support is disabled.
- org.phoebus.email/mailport = 25
SMTP port.
- org.phoebus.email/username =
User for connecting to the mail host, usually left empty
- org.phoebus.email/password =
Password for connecting to the mail host, usually left empty
- org.phoebus.email/from =
Default address to be used for From:.
If left empty then the last used From address is used.
- org.phoebus.framework.autocomplete[source]
Enable the built-in PV proposal providers?
- org.phoebus.framework.autocomplete/enable_loc_pv_proposals = true
- org.phoebus.framework.autocomplete/enable_sim_pv_proposals = true
- org.phoebus.framework.autocomplete/enable_sys_pv_proposals = true
- org.phoebus.framework.autocomplete/enable_pva_pv_proposals = true
- org.phoebus.framework.autocomplete/enable_mqtt_pv_proposals = false
- org.phoebus.framework.autocomplete/enable_formula_proposals = true
Note
Site-specific proposal providers can be added via
PVProposalProviderSPI, and disabled by removing the contribution.
- org.phoebus.framework.workbench[source]
External applications.
Defines applications to use for specific file extensions
Format
Each definition consists of
name, file extensions, command.Name is the name of the definition, used to register the application.
File extensions is a
|-separated list of file extensions (not including the ‘dot’).Command is the path to the command. The command will be invoked with the full path to the resource as an argument.
Each definition must use a key that starts with
external_app_Examples
Start ‘gedit’ for text filesorg.phoebus.framework.workbench/external_app_text=Text Editor,txt|dat|py|ini|db|xml|xsl|css|cmd|sh|st|log|out|md|shp,gedit
Start ‘eog’ for images, ‘firefox’ for PDF files::org.phoebus.framework.workbench/external_app_image=Image Viewer,png|jpg|gif|jpeg,eog
Start ‘firefox’ to view PDFsorg.phoebus.framework.workbench/external_app_pdf=PDF Viewer,pdf,firefox
Example for some site-specific tool that opens ‘alog’ filesorg.phoebus.framework.workbench/external_app_alog=Alignment Log,alog,/path/to/alog_viewer
- org.phoebus.framework.workbench/external_apps_directory = $(user.home)
Directory where external applications are started
May use system properties
$(user.home).
- org.phoebus.framework.workbench/phoebus_folder_name = $(phoebus.folder.name.preference)
Phoebus folder name by default
.phoebus.May use system properties
$(phoebus.folder.name.preference)
- org.phoebus.framework.workbench/phoebus_user = $(phoebus.user)
Phoebus user home directory path name by default
$HOMEor%USERPROFILE%.May use system properties
$(phoebus.folder.name.preference).
- org.phoebus.logbook[source]
- org.phoebus.logbook/logbook_factory = inmemory
Site specific log book client implementation name.
When empty, logbook submissions are disabled
- org.phoebus.logbook/auto_title = true
Determines if a log entry created from context menu (e.g. display or data browser) should auto generate a title (e.g. “Display Screenshot…”).
- org.phoebus.logbook/auto_body = true
Determines if a log entry created from context menu (e.g. display or data browser) should auto generate a body (e.g. “Display Screenshot…”).
- org.phoebus.logbook/auto_property = false
Determines if a log entry created from context menu (e.g. display or data browser) should auto generate properties (e.g. “resources.file”).
- org.phoebus.logbook.olog.ui[source]
- org.phoebus.logbook.olog.ui/default_logbooks = Scratch Pad
Comma-separated list of logbooks automatically associated with a new log entry.
- org.phoebus.logbook.olog.ui/default_logbook_query = desc=*&start=12 hours&end=now
The default query for logbook applications.
- org.phoebus.logbook.olog.ui/calendar_view_item_stylesheet = Agenda.css
Stylesheet for the items in the log calendar view.
- org.phoebus.logbook.olog.ui/level_field_name = Level:
Text to render for the “LogEntryLevel” field of a log entry.
The text is shown next to the drop-down below the password field.
Sites may wish to customize this with respect to its wording and its implied purpose.
- org.phoebus.logbook.olog.ui/markup_help = CommonmarkCheatsheet
Name of markup help.
Language resolution and file extension is handled on service.
- org.phoebus.logbook.olog.ui/web_client_root_URL =
Root URL of the Olog web client, if one exists.
Set this to the empty string to suppress rendering of the “Copy URL” button for a log entry.
- org.phoebus.logbook.olog.ui/log_entry_groups_support = false
Log entry groups support.
If set to
falseuser will not be able to create replies to log entries, and consequently UI elements and views related to log entry groups will not be shown.If set to
true, user may reply to log entries and create a log entry group from a selection of existing log entries.
- org.phoebus.logbook.olog.ui/log_entry_update_support = true
Log entry update support.
If set to false user will not be able to update log entries, and consequently UI elements and views related to updating log entry and viewing log history will not be displayed.
Comma separated list of “hidden” properties.
For instance, properties that serve internal business logic, but should not be rendered in the properties view.
- org.phoebus.logbook.olog.ui/log_entry_table_display_name =
Log Entry Table display name.
If non-empty it overrides default “Log Entry Table”.
- org.phoebus.logbook.olog.ui/log_entry_calendar_display_name =
Log Entry Calendar display name.
If non-empty it overrides default “Log Entry Calendar”
- org.phoebus.logbook.olog.ui/log_attribute_desc =
Log Entry property attribute types.
The preference should be a URL pointing to an attribute_type.properties file.
For example:
org.phoebus.logbook.olog.ui/log_attribute_desc=file:///C:/phoebus/app/logbook/olog/ui/src/main/resources/org/phoebus/logbook/olog/ui/log_property_attributes.properties
Classpath resource is supported if specified like this:
org.phoebus.logbook.olog.ui/log_attribute_desc=classpath:my_attr.properties
In this example the
my_attr.propertiesfile must be bundled as a classpath resource in the packageorg.phoebus.logbook.olog.ui. This optional file describing special types associated with some property attributes.
- org.phoebus.logbook.olog.ui/search_result_page_size = 30
Limit used in “paginated” search, i.e. the number of search results per page.
- Format:
value must be 1-999
User may override in the UI.
- org.phoebus.logbook.olog.ui/query_list_size = 15
Number of queries maintained by the
OlogQueryManager.To make sense: must be >= 5 and <=30.
- org.phoebus.logbook.olog.ui/search_help = SearchHelp
Name of the search help content.
Language resolution and file extension is handled on service.
- org.phoebus.logbook.olog.ui/show_log_watermark = true
Whether or not to show the watermark by default.
- org.phoebus.logbook.ui[source]
- org.phoebus.logbook.ui/default_logbooks = Scratch Pad
Comma-separated list of default logbooks for new log entries.
- org.phoebus.logbook.ui/default_logbook_query = search=*&start=12 hours&end=now
The default query for logbook applications.
- org.phoebus.logbook.ui/calendar_view_item_stylesheet = Agenda.css
Stylesheet for the items in the log calendar view.
- org.phoebus.logbook.ui/level_field_name = Level:
Text to render for the
LogEntryLevelfield of a log entry.Sites may wish to customize this with respect to its wording and its implied purpose.
- org.phoebus.olog.api[source]
- org.phoebus.olog.api/olog_url = localhost:9092
The Olog URL.
- org.phoebus.olog.api/username = user
User name credential for Olog.
- org.phoebus.olog.api/password = ****
User password credential for Olog
- org.phoebus.olog.api/debug = false
Enable debugging of HTTP requests and responses.
- org.phoebus.olog.api/connectTimeout = 0
The connection timeout for the Jersey client, in milliseconds.
0 = infinite.
- org.phoebus.olog.es.api[source]
- org.phoebus.olog.es.api/olog_url = http://localhost:8080/Olog
The Olog URL.
- Format:
http(s)://foo.com/Olog
Important
The
Ologpath element may not be omitted.
- org.phoebus.olog.es.api/connectTimeout = 0
The connection timeout for HttpClient, in milliseconds.
0 = infinite.
- org.phoebus.olog.es.api/permissive_hostname_verifier = true
Enable a permissive hostname verifier.
- org.phoebus.olog.es.api/levels = Urgent,Suggestion,Info,Request,Problem
Comma separated list of “Levels” in the create logbook entry UI.
Sites may wish to customize (and localize) this.
- org.phoebus.pv.archive[source]
- org.phoebus.pv.archive/archive_url = http://localhost:10068/retrieval
- org.phoebus.pv.ca[source]
By default, we use the following preferences settings, but when the System property
jca.use_envistrue, JCA falls back to theEPICS_CA_...environment variables.Sites that prefer to use the
EPICS_CA_...environment variables thus need to add-Djca.use_env=true
to their launcher script.
- org.phoebus.pv.ca/addr_list =
Channel Access address list.
- org.phoebus.pv.ca/auto_addr_list = true
- org.phoebus.pv.ca/max_array_bytes = 100000000
- org.phoebus.pv.ca/server_port = 5064
- org.phoebus.pv.ca/repeater_port = 5065
- org.phoebus.pv.ca/beacon_period = 15
- org.phoebus.pv.ca/connection_timeout = 30
- org.phoebus.pv.ca/variable_length_array = auto
Support variable length arrays?
- Format:
one of
auto,true,false
- org.phoebus.pv.ca/large_array_threshold = 100000
Connect at lower priority for arrays with more elements than this threshold.
- org.phoebus.pv.ca/dbe_property_supported = false
Is the
DBE_PROPERTYsubscription supported to monitor for changes in units, limits etc?
- org.phoebus.pv.ca/monitor_mask = VALUE
Mask to use for subscriptions.
- Format:
one of
VALUE,ALARM,ARCHIVE
- org.phoebus.pv.ca/name_servers =
Name server list.
- org.phoebus.pv.formula[source]
- org.phoebus.pv.formula/throttle_ms = 500
Update throttle for input PVs.
- org.phoebus.pv.jackie[source]
- org.phoebus.pv.jackie/ca_address_list =
List of servers that shall be queried via UDP when looking for channels.
This setting is equivalent to the
EPICS_CA_ADDR_LISTenvironment variable.It is only used when
use_envis false.
- org.phoebus.pv.jackie/ca_auto_address_list =
Shall the broadcast addresses of local interfaces automatically be added to the list of addresses that shall be used when looking for a channel?
This setting is equivalent to the
EPICS_CA_AUTO_ADDR_LISTenvironment variable, but expects a value oftrueorfalseinstead ofYESorNO.It is only used when
use_envis false.The default value is true.
- org.phoebus.pv.jackie/ca_auto_array_bytes =
Shall the size of values transferred via Channel Access be limited (
false) or not (true)?If false, the value of ca_max_array_bytes limits the size of serialized values that are transferred via Channel Access.
This setting is equivalent to the
EPICS_CA_AUTO_ARRAY_BYTESenvironment variable, but expects a value oftrueorfalseinstead ofYESorNO.This setting is only used when
use_envis false.The default value is
true.
- org.phoebus.pv.jackie/ca_echo_interval =
Interval between sending echo packages to a Channel Access server (in seconds).
This setting is equivalent to the
EPICS_CA_CONN_TMOenvironment variable.It is only used when
use_envis false.The default value is 30.
- org.phoebus.pv.jackie/ca_max_array_bytes =
Maximum size (in bytes) of a value that can be transferred via Channel Access.
This setting is equivalent to the
EPICS_CA_MAX_ARRAY_BYTESenvironment variable.It is only used when
use_envisfalseandca_auto_array_bytesisfalse.The default value is 16384.
- org.phoebus.pv.jackie/ca_max_search_period =
Interval of the longest search period (in seconds).
This setting is equivalent to the
EPICS_CA_MAX_SEARCH_PERIODenvironment variable.It is only used when
use_envis false.The default value (and smallest allowed value) is 60.
- org.phoebus.pv.jackie/ca_multicast_ttl =
TTL for UDP packets that are sent to multicast addresses.
This setting is equivalent to the
EPICS_CA_MCAST_TTLenvironment variable.It is only used when
use_envis false.The default value (and smallest allowed value) is 1. The greatest allowed value is 255.
- org.phoebus.pv.jackie/ca_name_servers =
List of servers that shall be queried via UDP when looking for channels.
This setting is equivalent to the
EPICS_CA_NAME_SERVERSenvironment variable.It is only used when
use_envis false.
- org.phoebus.pv.jackie/ca_repeater_port =
UDP port that is used when connecting to the Channel Access repeater.
This setting is equivalent to the
EPICS_CA_REPEATER_PORTenvironment variable.It is only used when
use_envis false.The default value is 5065.
- org.phoebus.pv.jackie/ca_server_port =
UDP and TCP port on which Channel Access servers are expected to listen.
This setting is used when sending search requests and when connecting to serves that did not explicitly specify a port in search responses.
It is only used when
use_envis false.The default value is 5064.
- org.phoebus.pv.jackie/charset =
Charset to use when encoding and decoding strings.
The default value is UTF-8.
- org.phoebus.pv.jackie/cid_block_reuse_time = 900000
Time that a CID is blocked from being used again in milliseconds.
After destroying a channel, the CID may not be reused for some time because there might still be late responses to old search requests, which would be used for the wrong channel if the CID was reused too early.
A value of 0 (or a negative value) means that CIDs can be reused immediately.
- org.phoebus.pv.jackie/dbe_property_supported = true
Shall meta-data monitors using
DBE_PROPERTYbe created?This ensures that the meta-data for PVs is updated when it changes on the server, but some servers do not correctly support using
DBE_PROPERTY. When experiencing problems with such a server, try setting this to false.
- org.phoebus.pv.jackie/honor_zero_precision = true
Shall a precision of zero for a floating-point value result in this value being rendered without a fractional digits (
true) or shall it be treated as an indication that the value should be rendered with a default number of fractional digits (false)?
- org.phoebus.pv.jackie/hostname =
Hostname that is sent to the Channel Access server.
If empty, the system’s hostname is determined automatically.
- org.phoebus.pv.jackie/long_conversion_mode = COERCE_AND_WARN
How to process write operations specifying a long value that is greater than 2147483647 or less than -2147483648. Possible settings are:
COERCE
COERCE_AND_WARN
CONVERT
CONVERT_AND_WARN
FAIL
TRUNCATE
TRUNCATE_AND_WARN
- org.phoebus.pv.jackie/monitor_mask = DBE_VALUE|DBE_ALARM
Mask that shall be used when registering monitors for DBR_TIME_* values.
- Format:
a combination of
DBE_ALARM,DBE_ARCHIVE,DBE_PROPERTY, andDBE_VALUE, separated by|.
- org.phoebus.pv.jackie/rtyp_value_only = false
Shall PVs referencing a record’s
RTYPfield be treated like any other PV (false) or shall the monitor registered for the channel request the value only, without any meta-data like a time-stamp (true)?In general, setting this to false is preferred, but there are certain versions of EPICS where requesting a
DBR_TIME_STRINGfor theRTYPfield results in invalid data being returned by the server. In this case, this setting should be changed totrue.
- org.phoebus.pv.jackie/use_env = true
Shall Channel Access client settings be read from the
CA_*environment variables?If true, the
ca_*settings from the preferences are ignored and the values from the process’s environment are used instead. Iffalse, the preferences are used and the environment variables are ignored.
- org.phoebus.pv.jackie/username =
Username that is sent to the Channel Access server.
If empty, the username for the current process is determined automatically.
- org.phoebus.pv.mqtt[source]
- org.phoebus.pv.mqtt/mqtt_broker = tcp://localhost:1883
MQTT Broker.
All
mqtt://some/tagPVs will use this broker.
- org.phoebus.pv.pva[source]
By default, these preference settings are empty, and the PVA library will then honor the commonly used environment variables like
EPICS_PVA_ADDR_LIST,EPICS_PVA_AUTO_ADDR_LISTetc.Defining preference values will override the environment variables which allows consolidating PVA settings with all the CS-Studio preference settings.
Network clients typically need to configure the first three settings to successfully connect to PVA servers on the local network.
- org.phoebus.pv.pva/epics_pva_addr_list =
PVAccess address list;
- org.phoebus.pv.pva/epics_pva_auto_addr_list =
PVAccess auto address list.
- Format:
trueorfalse
- org.phoebus.pv.pva/epics_pva_name_servers =
Name servers used for TCP name resolution.
Caution
The following parameters should best be left at their default.
For details, see
PVASettingsin PV Access library.- org.phoebus.pv.pva/epics_pva_broadcast_port =
Port used for UDP name searches and beacons.
- org.phoebus.pv.pva/epics_pva_server_port =
PV server’s first TCP port.
- org.phoebus.pv.pva/epics_pva_conn_tmo =
Connection timeout in seconds.
- org.phoebus.pv.pva/epics_pva_tcp_socket_tmo =
TCP socket creation timeout in seconds.
- org.phoebus.pv.pva/epics_pva_max_array_formatting =
Maximum number of array elements shown when printing data.
- org.phoebus.pv.pva/epics_pva_send_buffer_size =
TCP buffer size for sending data.
- org.phoebus.pv.pva/epics_pva_write_reply_timeout_ms = 1000
Timeout used by plain “put” type of write when checking success or failure.
Note
This is not used with
asyncWrite, the “put-callback” which returns a Future for awaiting the completion, but only with the plain “put” that returns ASAP.
- org.phoebus.pv.tango[source]
- org.phoebus.pv.tango/tango_host = $(TANGO_HOST)
Override TANGO_HOST system properties eg localhost:10000
- org.phoebus.saveandrestore.util[source]
- org.phoebus.saveandrestore.util/connectionTimeout = 5000
Connection timeout, in milliseconds, when taking snapshot.
- org.phoebus.saveandrestore.util/writeTimeout = 5000
Write timeout, in milliseconds, when restoring snapshot.
- org.phoebus.security[source]
- org.phoebus.security/authorization_file =
Authorization file
If left empty, the built-in
core/security/authorization.confis used.When specifying a plain file name like
authorization.conf, the install location (Locations.install()) is searched for that file name.The file name can also be an absolute path like
/some/path/auth.conf.Finally, the file name may use a system property like
$(auth_file)which in turn could be set to either BUILTIN, a file in the install location, or an absolute path.When set to an invalid file, the user will have no authorizations at all.
- org.phoebus.security/secure_store_target = FILE
Secure store underlying implementation.
- Format:
one of
FILEorIN_MEMORY
- org.phoebus.ui[source]
- org.phoebus.ui/splash = true
Show the splash screen?
Can also be set via
-splashresp.-nosplashcommand line options.
- org.phoebus.ui/welcome =
‘Welcome’ URL.
When left empty, the built-in welcome.html resource is used.
Site-specific products can set this to their desired URL, which may include Java system properties to bundle content with the product, for example:
org.phoebus.ui/welcome=file:$(phoebus.install)/welcome_to_hawkins_labs.html
- org.phoebus.ui/default_apps = run,3d,convert_edm
Default applications
When there are multiple applications that handle a resource, the setting determines the one used by default.
- Format:
comma-separated list with sub-text of default application names.
For example,
run, exewould pickdisplay_runtimeoverdisplay_editor, andfoo_executoroverfoo_creator.The patterns
edit, creatwould inversely open the editor-type apps.This makes the
display_runtimeand the3d_viewerdefault apps, usingdisplay_editorand a potentially configured text editor forname.shpfiles secondary.
Hide SPI-provided menu entries.
- Format:
comma-separated list of class names.
- org.phoebus.ui/top_resources = examples:/01_main.bob?app=display_runtime,Example Display | pv://?sim://sine&app=probe,Probe Example | pv://?sim://sine&loc://x(10)&app=pv_table,PV Table Example | http://www.google.com?app=web, Google
Top resources to show in “File” menu and toolbar
- Format:
uri1 | uri2,Display name 2 | uri3,Display name 3
- org.phoebus.ui/home_display = examples:/01_main.bob?app=display_runtime,Example Display
Home display file.
“Home display” button will navigate to this display.
- org.phoebus.ui/toolbar_entries = Home, Top Resources, Layouts, File Browser, *
Toolbar entries.
Apps like the file browser contribute a toolbar entry. This setting can control which toolbar entries are shown and for the most part also in which order.
- Format:
Comma-separated list of entries.
The special entry
*adds all remaining available toolbar entries. An entry starting with!removes that item from the available entries. The order of the initial buttonsHome, Top Resources, Layouts, Add Layoutscannot be changed, but they can be suppressed by adding!, for exampleHome, !Top Resources, !Layouts, !Add Layouts.The special entry
Add Layoutsis NOT added to the toolbar by default. It can be added to the toolbar by specifyingAdd Layouts.The strings in the list of entries MUST match what is returned from
ToolbarEntry#getId(). This allows for customization/localization of app name without the need to adjust the list.Examples
Default buttons, then all remaining available itemsHome, Top Resources, Layouts, *
Default buttons, then assert that File Browser comes nextHome, Top Resources, Layouts, File Browser, *
Only Home and File Browser:Home, !Top Resources, !Layouts, File Browser
- org.phoebus.ui/max_array_formatting = 256
How many array elements to show when formatting as text?
- org.phoebus.ui/ui_monitor_period = 500
UI Responsiveness Monitor Period.
Period between tests in milliseconds, i.e. the minimum detected UI freeze duration.
Set to 0 to disable.
- org.phoebus.ui/status_show_user = true
Show user ID in status bar?
- org.phoebus.ui/default_save_path =
Set default save path.
- org.phoebus.ui/layout_dir =
Set the path to a folder with default layouts.
- org.phoebus.ui/layout_default =
Set default layout at start absolutepath.
- org.phoebus.ui/save_layout_in_layout_dir = false
If enable layout are saved in
layout_dirinstead of default user location.
- org.phoebus.ui/print_landscape = true
Compute print scaling in ‘landscape’ mode?
Landscape mode is generally most suited for printouts of displays or plots, because the monitor tends to be ‘wide’.
At least on Mac OS X, however, the printing always appears to use portrait mode, so print layouts computed in landscape mode get cropped.
Details can also depend on the printer driver.
- org.phoebus.ui/cache_hint_for_picture_and_symbol_widgets =
When Picture- and/or Symbol widgets are present in an OPI, zooming in under Windows using the D3D graphics library can cause excessive VRAM usage. Setting a cache hint can work as a workaround. Since it has been observed that the cache hints also can cause graphical errors, the setting of a cache hint is a configurable option, which must explicitly be set to have effect.
The setting defaults to the default caching behavior.
- Format:
one of:
- The empty string or
NONE The default caching behavior: caching is DISABLED, and the cache hint is set to
CacheHint.DEFAULT.DEFAULTCaching is ENABLED, and the cache hint is set to
CacheHint.DEFAULT.SPEEDBased on very limited testing, this option seems to work the best as a workaround for the excessive VRAM usage.
SCALEThis option has been observed to cause graphical errors on several systems: rotated widgets have been observed to be translated instead of rotated.
or
QUALITY,ROTATE,SCALE_AND_ROTATE.- The empty string or
If an invalid option is entered, a warning is logged, and the default caching behavior is used (i.e., caching is DISABLED, and the cache hint is set to
CacheHint.DEFAULT).
- org.phoebus.ui/save_credentials = false
Whether or not to save user credentials to file or memory so they only have to be entered once.
Note
This applies to all scopes/applications prompting for credentials.
See also
The preference
org.phoebus.security/secure_store_target
- org.phoebus.ui/documentation_location =
Location of the Phoebus documentation
- org.phoebus.ui/window_title_format = CS-Studio: %s
How to format the window title. The string is formatted with the current active tab as argument. The default is
CS-Studio: %s, where%sis replaced by the name of the active tab.Setting it to just
%swill show only the active tab. Omitting the %s will always show a static title. When there is no active tab, thedefault_window_titleis used instead.
- org.phoebus.ui/default_window_title = CS-Studio
The window title when no active tab is open.
Colors
Colors are of the format
R,G,BorR,G,B,Avalues in range 0…255- org.phoebus.ui/ok_severity_text_color = 0,255,0
Color of the text for ‘OK’ alarm severity.
- org.phoebus.ui/ok_severity_background_color = 255,255,255
Color of the background for ‘OK’ alarm severity.
- org.phoebus.ui/minor_severity_text_color = 255,128,0
Color of the text for ‘MINOR’ alarm severity
- org.phoebus.ui/minor_severity_background_color = 255,255,255
Color of the background for ‘MINOR’ alarm severity
- org.phoebus.ui/major_severity_text_color = 255,0,0
Color of the text for ‘MAJOR’ alarm severity
- org.phoebus.ui/major_severity_background_color = 255,255,255
Color of the background for ‘MAJOR’ alarm severity
- org.phoebus.ui/invalid_severity_text_color = 255,0,255
Color of the text for ‘INVALID’ alarm severity
- org.phoebus.ui/invalid_severity_background_color = 255,255,255
Color of the background for ‘INVALID’ alarm severity
- org.phoebus.ui/undefined_severity_text_color = 200,0,200,200
Color of text for ‘UNDEFINED’ alarm severity
- org.phoebus.ui/undefined_severity_background_color = 255,255,255
Color of background for ‘UNDEFINED’ alarm severity
Color Configuration for the application “Alarm Area Panel”
- org.phoebus.ui/alarm_area_panel_ok_severity_text_color = 255,255,255
- org.phoebus.ui/alarm_area_panel_ok_severity_background_color = 0,255,0
- org.phoebus.ui/alarm_area_panel_minor_severity_text_color = 255,255,255
- org.phoebus.ui/alarm_area_panel_minor_severity_background_color = 255,128,0
- org.phoebus.ui/alarm_area_panel_major_severity_text_color = 255,255,255
- org.phoebus.ui/alarm_area_panel_major_severity_background_color = 255,0,0
- org.phoebus.ui/alarm_area_panel_invalid_severity_text_color = 255,255,255
- org.phoebus.ui/alarm_area_panel_invalid_severity_background_color = 255,0,255
- org.phoebus.ui/alarm_area_panel_undefined_severity_text_color = 192,192,192
- org.phoebus.ui/alarm_area_panel_undefined_severity_background_color = 200,0,200,200