caproto.ChannelChar

Inheritance diagram of ChannelChar
class caproto.ChannelChar(*, alarm=None, value=None, timestamp=None, max_length=None, string_encoding='latin-1', reported_record_type='caproto', report_as_string=False)[source]

8-bit encoded CHAR data plus metadata which can be sent over a channel.

Allows for simple access over CA to the first 40 characters as a DBR_STRING when report_as_string is set.

Parameters
valuestr

Initial starting data.

string_encodingstr, optional

The string encoding to use, defaults to ‘latin-1’.

timestampfloat, TimeStamp, or 2-tuple, optional

Timestamp to report for the current value. Supported options include time.time()-style UNIX timestamps, raw EPICS timestamps in the form of TimeStamp or (seconds_since_epoch, nanoseconds).

max_lengthint, optional

Maximum array length of the data.

string_encodingstr, optional

Encoding to use for strings, used when serializing and deserializing data.

reported_record_typestr, optional

Though this is not a record, the channel access protocol supports querying the record type. This can be set to mimic an actual record or be set to something arbitrary. Defaults to ‘caproto’.

unitsstr, optional

Engineering units indicator, which can be retrieved over channel access.

Methods

auth_read(hostname, username, data_type, *)

Get DBR data and native data, converted to a specific type

auth_write(hostname, username, data, …[, …])

Data write hook for clients.

calculate_length(value)

Calculate the number of elements given a value

check_access(hostname, username)

This always returns AccessRights.READ|AccessRights.WRITE.

is_compatible_array(value)

Check if the provided value is a compatible array.

post_state_change(state, new_value)

This is called by the server when it exits its StateUpdateContext.

pre_state_change(state, new_value)

This is called by the server when it enters its StateUpdateContext.

preprocess_value(value)

Pre-process values destined for verify_value and write

publish(flags)

Publish data to appropriate queues matching the SubscriptionSpec.

read(data_type)

Read out the ChannelData as data_type.

subscribe(queue, sub_spec, sub)

Subscribe a queue for the given subscription specification.

unsubscribe(queue, sub_spec)

Unsubscribe a queue for the given subscription specification.

update_fields(value)

This is a hook for subclasses to update field instance data.

verify_value(data)

Verify a value prior to it being written by CA or Python

write(*args[, flags])

Write data from native Python types.

write_from_dbr(*args[, flags])

Write data from a provided DBR data type.

write_metadata([publish, units, precision, …])

Write metadata, optionally publishing information to clients.

Attributes

alarm

The ChannelAlarm associated with this data

data_type

default_value

epics_timestamp

EPICS timestamp as (seconds, nanoseconds) since EPICS epoch.

length

The number of elements (length) of the current value

long_string_max_length

The maximum number of elements (length) of the current value

max_length

The number of elements (length) of the current value

severity

Alarm severity

status

Alarm status

timestamp

UNIX timestamp in seconds.

value

Read-only access to value data