Environment Variables

Client Environment Variables

Variable

Default

Description

CAPROTO_DEFAULT_TIMEOUT

2.0

The default timeout to use for client connections and reading.

CAPROTO_STRING_ENCODING

“latin-1”

The default string encoding to use.

CAPROTO_CLIENT_AUTOMONITOR_MAXLENGTH

65536

Toggle automatic monitoring of PVs based on this.

CAPROTO_CLIENT_BEACON_MARGIN_SEC

1

The margin after EPICS_CA_CONN_TMO for beacons to arrive (seconds).

CAPROTO_CLIENT_EVENT_ADD_BATCH_MAX_BYTES

2**16 = 65536

Requests are batched when sent on the wire if they are under this threshold.

CAPROTO_CLIENT_MAX_RETRY_SEARCHES_INTERVAL_SEC

5

Retry searches for PVs at this interval, in seconds.

CAPROTO_CLIENT_MIN_RETRY_SEARCHES_INTERVAL_SEC

0.03

Minimum interval for retrying searches, in seconds.

CAPROTO_CLIENT_RESTART_SUBS_PERIOD_SEC

0.1

After a circuit reconnection, wait this number of seconds and then re-activate previous subscriptions.

CAPROTO_CLIENT_RETRY_RETIRED_SEARCHES_INTERVAL_SEC

60

For the searches older than SEARCH_RETIREMENT_AGE, we adopt a slower period to minimize network traffic. We only resend every RETRY_RETIRED_SEARCHES_INTERVAL or, again, whenever new searches are added.

CAPROTO_CLIENT_SEARCH_RETIREMENT_AGE_SEC

480

We then frequently retry the unanswered searches that are younger than SEARCH_RETIREMENT_AGE, backing off from an interval of MIN_RETRY_SEARCHES_INTERVAL to MAX_RETRY_SEARCHES_INTERVAL. The interval is reset to MIN_RETRY_SEARCHES_INTERVAL each time new searches are added. Units are in seconds.

EPICS_CA_ADDR_LIST

‘’

The client address list.

EPICS_CA_AUTO_ADDR_LIST

‘YES’

Whether or not to automatically determine the address list.

EPICS_CA_CONN_TMO

30.0

Connection timeout.

EPICS_CA_BEACON_PERIOD

15.0

Beacon broadcast period.

EPICS_CA_REPEATER_PORT

5065

Port for the repeater.

EPICS_CA_SERVER_PORT

5064

Default port for the server.

EPICS_CA_MAX_ARRAY_BYTES

16384

Max bytes as a client. Caproto does not support this.

EPICS_CA_MAX_SEARCH_PERIOD

300

Maximum search period.

EPICS_TS_MIN_WEST

360

Caproto does not support this.

Server Environment Variables

Variable

Default

Description

EPICS_CAS_SERVER_PORT

5064

Default server port.

EPICS_CAS_AUTO_BEACON_ADDR_LIST

‘YES’

Automatically determine beacon address lists.

EPICS_CAS_BEACON_ADDR_LIST

‘’

Manual beacon address list.

EPICS_CAS_BEACON_PERIOD

15.0

Beacon broadcast period.

EPICS_CAS_BEACON_PORT

5065

Beacon UDP port.

EPICS_CAS_INTF_ADDR_LIST

‘’

Interfaces to listen on.

EPICS_CAS_IGNORE_ADDR_LIST

‘’

Interfaces to ignore.

CAPROTO_SERVER_HIGH_LOAD_TIMEOUT_SEC

0.01

Tuning this parameters will affect the server’s performance under high load. If the queue of subscriptions to has a new update ready within this timeout, we consider ourselves under high load and trade accept some latency for some efficiency.

CAPROTO_SERVER_HIGH_LOAD_EVENT_TIME_THRESHOLD_SEC

0.1

If events are toggled by the client, subscriptions values get garbage- collected. It’s not a high load situation. Let’s warn only if we’re relatively sure that it wasn’t due to recent event toggling. You probably shouldn’t need to change this.

CAPROTO_SERVER_HIGH_LOAD_WARN_LATENCY_SEC

0.03

Warn the user if packets are delayed by more than this amount: 30ms. Set to 0 to disable the warning entirely.

CAPROTO_SERVER_SUB_BATCH_THRESH

2 ** 16

When a batch of subscription updates has this many bytes or more, send it.

CAPROTO_SERVER_MAX_LATENCY_SEC

1.0

Tune this to change the max time between packets, in seconds. If it’s too high, the client will experience long gaps when the server is under load. If it’s too low, the overall latency will be higher because the server will have to waste time bundling many small packets.

CAPROTO_SERVER_WRITE_LOCK_TIMEOUT_SEC

0.001

If a Read[Notify]Request or EventAddRequest is received, wait for up to this many seconds for the currently-processing Write[Notify]Request to finish.

Shared Environment Variables

CAPROTO_STALE_SEARCH_EXPIRATION_SEC

10.0

How long, in seconds, after which to consider searches for PVs “stale”.

CAPROTO_RESPONSIVENESS_TIMEOUT_SEC

5

How long to wait between EchoRequest and EchoResponse before concluding that server is unresponsive, in seconds.

CAPROTO_MAX_TOTAL_SUBSCRIPTION_BACKLOG

10000

Total per circuit (not per subscription), by default.

CAPROTO_SUBSCRIPTION_BACKLOG_WARN_THRESHOLD_ELEMENTS

15000000

If any channel has would have over this many elements when its subscription queue is full, warn about it. If you have a 1,000,000 element array, the warning would hapen at a subscription backlog of 16, as 16 * 1,000,000 is above this default threshold.

CAPROTO_SUBSCRIPTION_BACKLOG_REDUCE_AT_WARN_LEVEL

“y” (“y”, “yes”, “1”, or “true”)

Automatically reduce subscription backlog for PVs that meet the warning threshold.

CAPROTO_MIN_SUBSCRIPTION_BACKLOG

10

This is the default minimum, if we find ourselves above that threshold.

CAPROTO_MAX_SUBSCRIPTION_BACKLOG

1000

This is the default, per subscription.

CAPROTO_MAX_COMMAND_BACKLOG

10000

This is the maximum number of commands caproto will keep in a queue for sending out to clients. This typically should not need adjustment.

IOC Helper Environment Variables

Variable

Default

Description

ENGINEER

“”

The engineer to report as owner of the IOC.

LOCATION

“”

The location to report in IOC stats.