# caproto.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