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.

eg. 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 url=jdbc:oracle:thin:user/password@//172.31.73.122:1521/prod

PostgreSQL example url=jdbc:postgresql://localhost/archive

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
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 [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. timeout_secs=120 With PostgreSQL, the setQueryTimeout API is not implemented, and calling it results in an exception. Setting the timeout to 0 disables calls to setQueryTimeout.

org.csstudio.archive/use_array_blob = true

Use a blob to read/write array samples?

The original SAMPLE table did not contain an ARRAY_VAL column for the array blob data, but instead used a separate ARRAY_VAL table. 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 setting

org.phoebus.pv/default=ca

determines the default type when no prefix is provided.

With EPICS IOCs from release 7 on, the PVs “xxx”, “ca://xxx” and “pva://xxx” all refer to the same record “xxx” on 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://..” or “pva://..” 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

equivalent_pv_prefixes=ca, pva

When adding a PV “pva://xxx” to the configuration, we check if the archive already contains a channel “xxx”, “ca://xxx” or “pva://xxx”. If any of them are found, the -import will consider “pva://xxx” as a duplicate.

When importing a PV “pva://xxx” into a sample engine configuration that already contains the channel “ca://xxx” or “xxx”, the channel will be renamed, so that engine will from now on use “pva://xxx”.

When importing a PV “pva://xxx” into a configuration that already contains a different engine setup with the channel “ca://xxx” or “xxx”, the channel will by default rename unchanged, so “ca://xxx” or “xxx” will remain in their original engine setup, “pva://xxx” will be skipped.

When using -import with the additional -steal_channels option, the existing “…xxx” channel will be renamed to “pva://xxx” and moved to the imported engine configuration.

When equivalent_pv_prefixes is empty, any PV name is used as is without looking for equivalent names. So “xxx”, “ca://xxx” and “pva://xxx” can 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://..”. Existing “xxx” or “ca://xxx” channels can thus be renamed to “pva://xxx” while retaining their sample history.

Note that the data browser has a similar equivalent_pv_prefixes setting 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, buffer overruns 24h = 24*60*60 = 86400

org.csstudio.archive/log_overrun = 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 24*60*60 = 86400 = 1 day

org.csstudio.archive.ts[source]
org.csstudio.archive.ts/user = report

User and password for reading archived data

org.csstudio.archive.ts/password = $report
org.csstudio.archive.ts/timeout_secs = 120

Timeout [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

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.

org.csstudio.display.builder.editor/hidden_widget_types = linear-meter,gauge,clock,digital_clock

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 undo stack. Defaults to 50 if not set.

org.csstudio.display.builder.model[source]
org.csstudio.display.builder.model/class_files = examples:classes.bcf

Widget classes One or more *.bcf files, separated by ‘;’ Defaults to built-in copy of examples/classes.bcf

org.csstudio.display.builder.model/color_files = examples:color.def

Named colors One or more *.def files, separated by ‘;’ Defaults to built-in copy of examples/color.def

org.csstudio.display.builder.model/font_files = examples:font.def

Named fonts One or more *.def files, 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 [ms] for loading files: Displays, but also color, font, widget class files

org.csstudio.display.builder.model/cache_timeout = 60

Timeout [sec] for caching files loaded from a URL

org.csstudio.display.builder.model/legacy_font_calibration = 1.01

‘BOY’ *.opi files 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.SWTFontCalibation

can 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 *.opi files and for example finding a “TextUpdate” widget that has no <pv_name>, it will be changed into a “Label” widget 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 “Group” widget), 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/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=4 Hz

org.csstudio.display.builder.representation/image_update_delay = 250

Pause between updates of image plots Limit to 250ms=4 Hz

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 [ms]

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 that for historic reasons tool tips are also influenced by the property org.csstudio.display.builder.disable_tooltips. When true, 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 ‘;’. python_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@work” -> “be@home

Patches are applied in the order they’re listed in the preference, i.e. later patches are applied to names already patched by earlier ones.

Example: Remove PVManager’s longString modifier, ‘some_pv {“longString”:true}’ -> ‘some_pv’ turn constant formula into constant local variable, ‘=42’ -> ‘loc://const42(42)’ as well as constant name into constant local var, ‘=”Fred”’ -> ‘loc://strFred(“Fred”)’

org.csstudio.display.builder.runtime/update_throttle = 250

PV update throttle in millisecs 250ms = 4 Hz

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 into {auto_converter_dir}/vac1.edl

With auto_converter_strip=/path/to/original, it will be converted into {auto_converter_dir}/vacuum/segment1/vac1.edl

org.csstudio.display.converter.edm/colors_list =

EDM colors.list file Must be defined to use converter. May be a file system path or 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,… EDMFontPattern is regular expression for the name used by EDM

Patterns 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 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 an *.edl file, converter will try each path in the order listed in the file. Lines starting with “#” are ignored.

When the edm_paths_config is left empty, the converter won’t find files.

org.csstudio.display.converter.edm/stp_path_patch_pattern =

Pattern and replacement for patching paths to *.stp (StripTool) files

‘Shell Command’ buttons in EDM that invoke a command of the form

StripTool /some/path/to/plot.stp

are converted into ActionButtons which open the /some/path/to/plot.stp file. 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:

stp_path_patch_pattern=^(/) 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 =
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. 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 [millisecs] 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: true to enable the automatic calculation of the min/max Y-axis, or false to 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
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: AREA, ERROR_BARS, SINGLE_LINE, AREA_DIRECT, SINGLE_LINE_DIRECT, SQUARES, …

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 that 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://xxx” and “pva://xxx” all refer to the same record “xxx” on the IOC.

When the plot requests “pva://xxx”, the archive might still trace that channel as “ca://xxx” or “xxx”. Alternatively, the archive might already track the channel as “pva://xxx” while data browser plots still use “ca://xxx” or just “xxx”. This preference setting instructs the data browser to try all equivalent variants. If any types are listed, just “xxx” without any prefix will also be checked in addition to the listed types.

The default of setting of “ca, pva” supports the seamless transition between the key protocols.

When equivalent_pv_prefixes is 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/

It is a 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”. “false” to 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 false as 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: use DESC field, 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 (when ‘false’).

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_name will be used as the default for newly opened tools, and if config_names is 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

org.phoebus.applications.alarm/alarm_menu_max_items = 10

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 [ms]

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 0 for 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: Icon, PV, Description, Alarm Severity, Alarm Message, Alarm Time, Alarm Value, PV Severity, PV 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 heartbeat_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 acknowleded, a message “There are 47 active alarms” will be issued

Format is HH:MM:SS, for example 00:15:00 to 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

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 ms 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. examples of audio file URL’s, they can be local or remote files. file:/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 (not the elasticsearch port as it was prior to Phoebus 4.0)

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 and size

org.phoebus.applications.console/font_size = 14
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.

org.phoebus.applications.filebrowser/show_hidden = false

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_STRING has a length limit of 40 chars. Since EPICS base R3.14.11, reading fields with an added ‘$’ returns their value as a char[] 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

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-L is a shortcut for INPA, INPB, INPC, …, INPL The syntax INP001-128 is a shortcut for INP001, INP002, …, INP128 The 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-9” or “01-42”, NOT “1-42”. For characters, only single-char “A-Z” is supported, NOT “AA-ZZ”, where it’s also unclear if that should turn into AA, AB, AC, .., AZ, BA, BB, BC, .., ZZ or AA, BB, .., ZZ

bigASub is a CSIRO/ASCAP record type, doesn’t hurt to add that to the shared configuration

scalcout is a bit unfortunate since there is no shortcut for INAA-INLL.

alarm record has INP1-10. 1-9 handled by pattern, INP10 listed

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)
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_KEY or default value ‘a’

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 ms. 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 ms) 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.

If declared add a date automatically in the name of the snapshot “Take Snapshot” 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 IOCs FROM_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 client SERVICE_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 ms) used by the Jersey client

org.phoebus.applications.saveandrestore.client/httpClient.connectTimeout = 5000

Connect timeout in (ms) used by the Jersey client

org.phoebus.applications.update[source]
org.phoebus.applications.update/delay = 10

Time to wait [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_url is 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 current_version=2018-06-18 13:10

org.phoebus.applications.update/update_url =

Location where updates can be found

The file:, http: or https: URL is checked. If it exists, and its modification time is after current_version, the updated distribution is downloaded and the current Locations.install() is replaced.

Location may include system properties and $(arch) will be replaced by “linux”, “mac” or “win” to allow locations specific to each architecture.

update_url=https://controlssoftware.sns.ornl.gov/css_phoebus/nightly/product-sns-$(arch).zip

org.phoebus.applications.update/gitlab_package_name = phoebus-$(arch)

gitlab_api_url=https://HOST/api/v4 gitlab_project_id=

gitlab_token=

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 into install_location without creating yet another subdir

ZIP that’s packaged for Windows, including JDK:

product-sns-0.0.1/* jdk/*

=> Remove ‘product-sns-*’ from entry name,

skip ‘jdk’.

ZIP that’s packaged for Mac: Either

phoebus.app/product-sns-0.0.1/* => Remove …/ phoebus.app/jdk/* => Skip phoebus.app/Contents/* => Skip

or:

CSS_Phoebus.app/product-sns-0.0.1/* => Remove …/ CSS_Phoebus.app/jdk/* => Skip CSS_Phoebus.app/Contents/* => Skip

Example: phoebus.app/ - Strip Mac “phoebus.app/” from entries

so they look more like the Windows example

phoebus-[^/]+/ - Strip phoebus product name from ZIP entry

jdk/.* - 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 and password for reading archived data

org.phoebus.archive.reader.rdb/password = $archive
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 [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 setQueryTimeout API is not implemented. timeout_secs=0

org.phoebus.archive.reader.rdb/use_array_blob = true

Use a BLOB to read array samples?

The original SAMPLE table did not contain an ARRAY_VAL column for the array blob data, but instead used a separate ARRAY_VAL table. 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.

org.phoebus.archive.reader.rdb/starttime_function =

MySQL: stored_procedure=archive.get_browser_data

PostgreSQL stored_procedure=public.get_browser_data

Oracle: stored_procedure=chan_arch.archive_reader_pkg.get_browser_data starttime_function=SELECT chan_arch.archive_reader_pkg.get_actual_start_time (?, ?, ?) FROM DUAL

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://xxx” and “pva://xxx” all refer to the same record “xxx” on the IOC.

When the plot requests “pva://xxx”, the archive might still trace that channel as “ca://xxx” or “xxx”. Alternatively, the archive might already track the channel as “pva://xxx” while data browser plots still use “ca://xxx” or just “xxx”. This preference setting instructs the data browser to try all equivalent variants. If any types are listed, just “xxx” without any prefix will also be checked in addition to the listed types.

The default of setting of “ca, pva” supports the seamless transition between the key protocols.

When equivalent_pv_prefixes is 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 and password for connecting to the mail host, usually left empty

org.phoebus.email/password =
org.phoebus.email/from =

Default address to be used for From: if it is left empty then the last used from address is used

org.phoebus.framework.autocomplete[source]
org.phoebus.framework.autocomplete/enable_loc_pv_proposals = true

Enable the built-in PV proposal providers?

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

Site-specific proposal providers can be added via PVProposalProvider SPI, 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 files 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 external_app_image=Image Viewer,png|jpg|gif|jpeg,eog

Start ‘firefox’ to view PDFs external_app_pdf=PDF Viewer,pdf,firefox

Example for some site-specific tool that opens ‘alog’ files 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 $HOME or %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 default logbooks for new log entries.

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. 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 false user 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.

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.

org.phoebus.logbook.olog.ui/hidden_properties = Log Entry Group

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. e.g. 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 log_attribute_desc=classpath:my_attr.properties. In this example the my_attr.properties file must be bundled as a classpath resource in the package org.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

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 “LogEntryLevel” field 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 credentials for olog

org.phoebus.olog.api/password = ****
org.phoebus.olog.api/debug = false

Enable debugging of http request and resposnsed

org.phoebus.olog.api/connectTimeout = 0

The connection timeout for the Jersey client, in ms. 0 = infinite.

org.phoebus.olog.es.api[source]
org.phoebus.olog.es.api/olog_url = http://localhost:8080/Olog

The olog url

org.phoebus.olog.es.api/connectTimeout = 0

The connection timeout for HttpClient, in ms. 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[source]
org.phoebus.pv/default = ca

Default PV Type

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_env” is “true”, JCA falls back to the EPICS_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? 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_PROPERTY subscription supported to monitor for changes in units, limits etc?

org.phoebus.pv.ca/monitor_mask = VALUE

Mask to use for subscriptions 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_LIST environment variable. It is only used when use_env is 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_LIST environment variable, but expects a value of true or false instead of YES or NO. It is only used when use_env is 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_BYTES environment variable, but expects a value of true or false instead of YES or NO. This setting is only used when use_env is 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_TMO environment variable. It is only used when use_env is 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_BYTES environment variable. It is only used when use_env is false. and ca_auto_array_bytes is false.

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_PERIOD environment variable. It is only used when use_env is 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_TTL environment variable. It is only used when use_env is 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_SERVERS environment variable. It is only used when use_env is 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_PORT environment variable. It is only used when use_env is 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_env is 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_PROPERTY be 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/monitor_mask = DBE_VALUE|DBE_ALARM

Mask that shall be used when registering monitors for DBR_TIME_* values.

This can be a combination of DBE_ALARM, DBE_ARCHIVE, DBE_PROPERTY, and DBE_VALUE, where multiple flags can be combined using the ?|? character.

org.phoebus.pv.jackie/rtyp_value_only = false

Shall PVs referencing a record?s RTYP field 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_STRING for the RTYP field results in invalid data being returned by the server. In this case, this setting should be changed to true.

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. If false, 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/tag” PVs 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_LIST etc. 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.

PVAccess address list

PVAccess auto address list - true/false

Name servers used for TCP name resolution

The following parameters should best be left at their default.

For details, see PVASettings in PV Access library.

Port used for UDP name searches and beacons

PV server’s first TCP port

Connection timeout in seconds

TCP socket creation timeout in seconds

Maximum number of array elements shown when printing data

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.saveandrestore.util[source]
org.phoebus.saveandrestore.util/connectionTimeout = 5000

connection timeout (in ms) when taking snapshot

org.phoebus.saveandrestore.util/writeTimeout = 5000

write timeout (in ms) when restoring snapshot

org.phoebus.security[source]

Authorization file

If left empty, the built-in core/security/authorization.conf is 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/authorization_file =

Use built-in core/security/authorization.conf

Use authorization.conf in the install location authorization_file=authorization.conf

org.phoebus.security/secure_store_target = FILE

Secure store underlying implementation. Can be ‘FILE’ or ‘IN_MEMORY’

org.phoebus.ui[source]
org.phoebus.ui/splash = true

Show the splash screen? Can also be set via ‘-splash’ resp. ‘-nosplash’ command 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/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 is comma-separated list with sub-text of default application names. For example, “run, exe” would pick “display_runtime” over “display_editor”, and “foo_executor” over “foo_creator”. The patterns “edit, creat” would inversely open the editor-type apps.

This makes the display_runtime and the 3d_viewer default apps, using display_editor and a potentially configured text editor for *.shp files secondary

org.phoebus.ui/hide_spi_menu = org.phoebus.ui.monitoring.FreezeUI

Hide SPI-provided menu entries 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 buttons “Home, Top Resources, Layouts, Add Layouts” cannot be changed, but they can be suppressed by adding “!”, for example “Home, !Top Resources, !Layouts, !Add Layouts”.

The special entry “Add Layouts” is NOT added to the toolbar by default. It can be added to the toolbar by specifying “Add 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 items:

Home, Top Resources, Layouts, *

Default buttons, then assert that File Browser comes next:

Home, 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 [millisec], 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_dir instead 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/ok_severity_text_color = 0,255,0

Color for text and the background for ‘OK’ alarm severity (R,G,B or R,G,B,A values in range 0..255)

org.phoebus.ui/ok_severity_background_color = 255,255,255
org.phoebus.ui/minor_severity_text_color = 255,128,0

Color for text and the background for ‘MINOR’ alarm severity

org.phoebus.ui/minor_severity_background_color = 255,255,255
org.phoebus.ui/major_severity_text_color = 255,0,0

Color for text and the background for ‘MAJOR’ alarm severity

org.phoebus.ui/major_severity_background_color = 255,255,255
org.phoebus.ui/invalid_severity_text_color = 255,0,255

Color for text and the background for ‘INVALID’ alarm severity

org.phoebus.ui/invalid_severity_background_color = 255,255,255
org.phoebus.ui/undefined_severity_text_color = 200,0,200,200

Color for text and the background for ‘UNDEFINED’ alarm severity

org.phoebus.ui/undefined_severity_background_color = 255,255,255
org.phoebus.ui/alarm_area_panel_ok_severity_text_color = 255,255,255

Color Configuration for the application “Alarm Area Panel” (R,G,B or R,G,B,A values in range 0..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
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.

Valid options are:

“” (the empty string) or “NONE” - The default caching behavior: caching is DISABLED, and the cache hint is set to “CacheHint.DEFAULT”. “DEFAULT” - Caching is ENABLED, and the cache hint is set to “CacheHint.DEFAULT”. “SPEED” - Based on very limited testing, this option seems to work the best as a workaround for the excessive VRAM usage. “QUALITY” “SCALE” - This option has been observed to cause graphical errors on several systems: rotated widgets have been observed to be translated instead of rotated. “ROTATE” “SCALE_AND_ROTATE”

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 that this applies to all scopes/applications prompting for credentials. See also setting org.phoebus.security/secure_store_target