Source code for caproto.server.records

'''
Contains PVGroups representing all fields of EPICS base records
'''
# **NOTE**
# This file is auto-generated.  Please edit the source Jinja templates instead.
# **NOTE**

import logging
import sys

from .server import PVGroup, pvproperty
from .._constants import MAX_ENUM_STRING_SIZE
from .._data import ChannelType
from .._dbr import AlarmSeverity
from . import menus

logger = logging.getLogger(__name__)
records = {}


def _link_parent_attribute(pvprop,
                           parent_attr_name,
                           *,
                           read_only=False,
                           use_setattr=False,
                           default=0):
    'Take a pvproperty and link its getter/putter to a parent attribute'

    @pvprop.getter
    async def getter(self, instance):
        return getattr(self.parent, parent_attr_name, default)

    if not read_only:
        if use_setattr:

            @pvprop.putter
            async def putter(self, instance, value):
                if hasattr(self.parent, parent_attr_name):
                    setattr(self.parent, parent_attr_name, value)

        else:

            @pvprop.putter
            async def putter(self, instance, value):
                kw = {parent_attr_name: value}
                await self.parent.write_metadata(**kw)

    return pvprop


def _link_enum_strings(pvprop, index):
    'Take a pvproperty and link its parent enum_strings[index]'

    @pvprop.getter
    async def getter(self, instance):
        try:
            return self.parent.enum_strings[index]
        except IndexError:
            return ''

    @pvprop.putter
    async def putter(self, instance, value):
        enum_strings = list(self.parent.enum_strings)

        if index >= len(enum_strings):
            missing_count = index - len(enum_strings) + 1
            enum_strings = enum_strings + [''] * missing_count

        old_enum = enum_strings[index]
        enum_strings[index] = str(value)[:MAX_ENUM_STRING_SIZE - 1]

        await self.parent.write_metadata(enum_strings=enum_strings)
        if self.parent.value in (old_enum, index):
            await self.parent.write(value=index)

    return pvprop


[docs]def register_record(cls): 'Register a record type to be used with pvproperty mock_record' assert issubclass(cls, PVGroup) records[cls._record_type] = cls logger.debug('Registered record type %r', cls._record_type) return cls
[docs]class RecordFieldGroup(PVGroup): _scan_rate_sec = None _dtype = None # to be set by subclasses has_val_field = True alarm_acknowledge_severity = pvproperty( name='ACKS', dtype=ChannelType.ENUM, enum_strings=menus.menuAlarmSevr.get_string_tuple(), doc='Alarm Ack Severity', read_only=True) alarm_acknowledge_transient = pvproperty( name='ACKT', dtype=ChannelType.ENUM, enum_strings=menus.menuYesNo.get_string_tuple(), doc='Alarm Ack Transient', read_only=True, value='YES') access_security_group = pvproperty(name='ASG', dtype=ChannelType.CHAR, max_length=29, report_as_string=True, doc='Access Security Group') description = pvproperty(name='DESC', dtype=ChannelType.CHAR, max_length=41, report_as_string=True, doc='Descriptor') disable = pvproperty(name='DISA', dtype=ChannelType.INT, doc='Disable') disable_putfield = pvproperty(name='DISP', dtype=ChannelType.CHAR, doc='Disable putField') disable_alarm_severity = pvproperty( name='DISS', dtype=ChannelType.ENUM, enum_strings=menus.menuAlarmSevr.get_string_tuple(), doc='Disable Alarm Sevrty') disable_value = pvproperty(name='DISV', dtype=ChannelType.INT, doc='Disable Value', value=1) device_type = pvproperty(name='DTYP', dtype=ChannelType.ENUM, enum_strings=menus.dtyp_base.get_string_tuple(), doc='Device Type') event_name = pvproperty(name='EVNT', dtype=ChannelType.CHAR, max_length=40, report_as_string=True, doc='Event Name') forward_link = pvproperty(name='FLNK', dtype=ChannelType.STRING, doc='Forward Process Link') lock_count = pvproperty(name='LCNT', dtype=ChannelType.CHAR, doc='Lock Count', read_only=True) record_name = pvproperty(name='NAME', dtype=ChannelType.CHAR, max_length=61, report_as_string=True, doc='Record Name', read_only=True) new_alarm_severity = pvproperty( name='NSEV', dtype=ChannelType.ENUM, enum_strings=menus.menuAlarmSevr.get_string_tuple(), doc='New Alarm Severity', read_only=True) new_alarm_status = pvproperty( name='NSTA', dtype=ChannelType.ENUM, enum_strings=menus.menuAlarmStat.get_string_tuple(), doc='New Alarm Status', read_only=True) record_active = pvproperty(name='PACT', dtype=ChannelType.CHAR, doc='Record active', read_only=True) scan_phase = pvproperty(name='PHAS', dtype=ChannelType.INT, doc='Scan Phase') process_at_iocinit = pvproperty( name='PINI', dtype=ChannelType.ENUM, enum_strings=menus.menuPini.get_string_tuple(), doc='Process at iocInit') scheduling_priority = pvproperty( name='PRIO', dtype=ChannelType.ENUM, enum_strings=menus.menuPriority.get_string_tuple(), doc='Scheduling Priority') process_record = pvproperty(name='PROC', dtype=ChannelType.CHAR, doc='Force Processing') dbputfield_process = pvproperty(name='PUTF', dtype=ChannelType.CHAR, doc='dbPutField process', read_only=True) reprocess = pvproperty(name='RPRO', dtype=ChannelType.CHAR, doc='Reprocess ', read_only=True) scan_rate = pvproperty(name='SCAN', dtype=ChannelType.ENUM, enum_strings=menus.menuScan.get_string_tuple(), doc='Scan Mechanism') scanning_disable = pvproperty(name='SDIS', dtype=ChannelType.STRING, doc='Scanning Disable') current_alarm_severity = pvproperty( name='SEVR', dtype=ChannelType.ENUM, enum_strings=menus.menuAlarmSevr.get_string_tuple(), doc='Alarm Severity', read_only=True) trace_processing = pvproperty(name='TPRO', dtype=ChannelType.CHAR, doc='Trace Processing') time_stamp_event = pvproperty(name='TSE', dtype=ChannelType.INT, doc='Time Stamp Event') time_stamp_link = pvproperty(name='TSEL', dtype=ChannelType.STRING, doc='Time Stamp Link') undefined = pvproperty(name='UDF', dtype=ChannelType.CHAR, doc='Undefined', value=chr(1)) alarm_status = pvproperty( name='STAT', dtype=ChannelType.ENUM, enum_strings=menus.menuAlarmStat.get_string_tuple(), doc='Alarm Status', read_only=True, value='NO_ALARM') undefined_alarm_severity = pvproperty( name='UDFS', dtype=ChannelType.ENUM, enum_strings=menus.menuAlarmSevr.get_string_tuple(), doc='Undefined Alarm Sevrty', value='INVALID') # -- Above is auto-generated -- # Add some handling onto the autogenerated code above: record_type = pvproperty(name='RTYP', dtype=ChannelType.STRING, read_only=True, doc='Record type') def __init__(self, prefix, **kw): super().__init__(prefix, **kw) parent = self.parent # set .NAME self.record_name._data['value'] = parent.pvname # set .RTYP self.record_type._data['value'] = self._record_type # automatic alarm handling self._alarm = parent.alarm self._alarm.connect(self) async def publish(self, flags): # if SubscriptionType.DBE_ALARM in flags: # TODO this needs tweaking - proof of concept at the moment await self.alarm_acknowledge_transient.write( self._alarm.must_acknowledge_transient) await self.alarm_acknowledge_severity.write( self._alarm.severity_to_acknowledge) await self.alarm_status.write(self._alarm.status) await self.current_alarm_severity.write(self._alarm.severity) # TODO: server single-char issue with caget? @scan_rate.putter async def scan_rate(self, instance, value): scan_string = (self.scan_rate.enum_strings[value] if isinstance( value, int) else value) if scan_string in ('I/O Intr', 'Passive', 'Event'): self._scan_rate_sec = 0 else: self._scan_rate_sec = float(scan_string.split(' ')[0]) if hasattr(self.parent, 'scan_rate'): self.parent.scan_rate = self._scan_rate_sec @property def scan_rate_sec(self): 'Record scan rate, in seconds (read-only)' return self._scan_rate_sec @process_record.putter async def process_record(self, instance, value): await self.parent.write(self.parent.value) _link_parent_attribute(description, '__doc__', use_setattr=True)
class _Limits(PVGroup): high_alarm_limit = pvproperty(name='HIGH', dtype=ChannelType.DOUBLE, doc='High Alarm Limit') high_severity = pvproperty( name='HSV', dtype=ChannelType.ENUM, enum_strings=menus.menuAlarmSevr.get_string_tuple(), doc='High Severity', value=menus.menuAlarmSevr.get_string_tuple()[ AlarmSeverity.MINOR_ALARM]) hihi_alarm_limit = pvproperty(name='HIHI', dtype=ChannelType.DOUBLE, doc='Hihi Alarm Limit') hihi_severity = pvproperty( name='HHSV', dtype=ChannelType.ENUM, enum_strings=menus.menuAlarmSevr.get_string_tuple(), doc='Hihi Severity', value=menus.menuAlarmSevr.get_string_tuple()[ AlarmSeverity.MAJOR_ALARM]) lolo_alarm_limit = pvproperty(name='LOLO', dtype=ChannelType.DOUBLE, doc='Lolo Alarm Limit') lolo_severity = pvproperty( name='LLSV', dtype=ChannelType.ENUM, enum_strings=menus.menuAlarmSevr.get_string_tuple(), doc='Lolo Severity', value=menus.menuAlarmSevr.get_string_tuple()[ AlarmSeverity.MAJOR_ALARM]) low_alarm_limit = pvproperty(name='LOW', dtype=ChannelType.DOUBLE, doc='Low Alarm Limit') low_severity = pvproperty( name='LSV', dtype=ChannelType.ENUM, enum_strings=menus.menuAlarmSevr.get_string_tuple(), doc='Low Severity', value=menus.menuAlarmSevr.get_string_tuple()[ AlarmSeverity.MINOR_ALARM]) high_operating_range = pvproperty(name='HOPR', dtype=ChannelType.DOUBLE, doc='High Operating Range') low_operating_range = pvproperty(name='LOPR', dtype=ChannelType.DOUBLE, doc='Low Operating Range') _link_parent_attribute(hihi_alarm_limit, 'upper_alarm_limit') _link_parent_attribute(lolo_alarm_limit, 'lower_alarm_limit') _link_parent_attribute(high_alarm_limit, 'upper_warning_limit') _link_parent_attribute(low_alarm_limit, 'lower_warning_limit') _link_parent_attribute(high_operating_range, 'upper_ctrl_limit') _link_parent_attribute(low_operating_range, 'lower_ctrl_limit') class _LimitsLong(PVGroup): high_alarm_limit = pvproperty(name='HIGH', dtype=ChannelType.LONG, doc='High Alarm Limit') high_severity = pvproperty( name='HSV', dtype=ChannelType.ENUM, enum_strings=menus.menuAlarmSevr.get_string_tuple(), doc='High Severity', value=menus.menuAlarmSevr.get_string_tuple()[ AlarmSeverity.MINOR_ALARM]) hihi_alarm_limit = pvproperty(name='HIHI', dtype=ChannelType.LONG, doc='Hihi Alarm Limit') hihi_severity = pvproperty( name='HHSV', dtype=ChannelType.ENUM, enum_strings=menus.menuAlarmSevr.get_string_tuple(), doc='Hihi Severity', value=menus.menuAlarmSevr.get_string_tuple()[ AlarmSeverity.MAJOR_ALARM]) lolo_alarm_limit = pvproperty(name='LOLO', dtype=ChannelType.LONG, doc='Lolo Alarm Limit') lolo_severity = pvproperty( name='LLSV', dtype=ChannelType.ENUM, enum_strings=menus.menuAlarmSevr.get_string_tuple(), doc='Lolo Severity', value=menus.menuAlarmSevr.get_string_tuple()[ AlarmSeverity.MAJOR_ALARM]) low_alarm_limit = pvproperty(name='LOW', dtype=ChannelType.LONG, doc='Low Alarm Limit') low_severity = pvproperty( name='LSV', dtype=ChannelType.ENUM, enum_strings=menus.menuAlarmSevr.get_string_tuple(), doc='Low Severity', value=menus.menuAlarmSevr.get_string_tuple()[ AlarmSeverity.MINOR_ALARM]) high_operating_range = pvproperty(name='HOPR', dtype=ChannelType.LONG, doc='High Operating Range') low_operating_range = pvproperty(name='LOPR', dtype=ChannelType.LONG, doc='Low Operating Range') _link_parent_attribute(hihi_alarm_limit, 'upper_alarm_limit') _link_parent_attribute(lolo_alarm_limit, 'lower_alarm_limit') _link_parent_attribute(high_alarm_limit, 'upper_warning_limit') _link_parent_attribute(low_alarm_limit, 'lower_warning_limit') _link_parent_attribute(high_operating_range, 'upper_ctrl_limit') _link_parent_attribute(low_operating_range, 'lower_ctrl_limit')
[docs]@register_record class AiFields(RecordFieldGroup, _Limits): _record_type = "ai" _dtype = ChannelType.DOUBLE # DTYP of .VAL has_val_field = True device_type = pvproperty(name='DTYP', dtype=ChannelType.ENUM, enum_strings=menus.dtyp_ai.get_string_tuple(), doc='Device Type') current_raw_value = pvproperty(name='RVAL', dtype=ChannelType.LONG, doc='Current Raw Value') initialized = pvproperty(name='INIT', dtype=ChannelType.INT, doc='Initialized?', read_only=True) last_val_monitored = pvproperty(name='MLST', dtype=ChannelType.DOUBLE, doc='Last Val Monitored', read_only=True) last_value_alarmed = pvproperty(name='LALM', dtype=ChannelType.DOUBLE, doc='Last Value Alarmed', read_only=True) last_value_archived = pvproperty(name='ALST', dtype=ChannelType.DOUBLE, doc='Last Value Archived', read_only=True) lastbreak_point = pvproperty(name='LBRK', dtype=ChannelType.INT, doc='LastBreak Point', read_only=True) previous_raw_value = pvproperty(name='ORAW', dtype=ChannelType.LONG, doc='Previous Raw Value', read_only=True) raw_offset = pvproperty(name='ROFF', dtype=ChannelType.LONG, doc='Raw Offset') simulation_mode = pvproperty( name='SIMM', dtype=ChannelType.ENUM, enum_strings=menus.menuSimm.get_string_tuple(), doc='Simulation Mode') simulation_value = pvproperty(name='SVAL', dtype=ChannelType.DOUBLE, doc='Simulation Value') alarm_deadband = pvproperty(name='HYST', dtype=ChannelType.DOUBLE, doc='Alarm Deadband') adjustment_offset = pvproperty(name='AOFF', dtype=ChannelType.DOUBLE, doc='Adjustment Offset') adjustment_slope = pvproperty(name='ASLO', dtype=ChannelType.DOUBLE, doc='Adjustment Slope', value=1) engineer_units_full = pvproperty(name='EGUF', dtype=ChannelType.DOUBLE, doc='Engineer Units Full') engineer_units_low = pvproperty(name='EGUL', dtype=ChannelType.DOUBLE, doc='Engineer Units Low') linearization = pvproperty( name='LINR', dtype=ChannelType.ENUM, enum_strings=menus.menuConvert.get_string_tuple(), doc='Linearization') raw_to_egu_offset = pvproperty(name='EOFF', dtype=ChannelType.DOUBLE, doc='Raw to EGU Offset') raw_to_egu_slope = pvproperty(name='ESLO', dtype=ChannelType.DOUBLE, doc='Raw to EGU Slope', value=1) smoothing = pvproperty(name='SMOO', dtype=ChannelType.DOUBLE, doc='Smoothing') archive_deadband = pvproperty(name='ADEL', dtype=ChannelType.DOUBLE, doc='Archive Deadband') display_precision = pvproperty(name='PREC', dtype=ChannelType.INT, doc='Display Precision') engineering_units = pvproperty(name='EGU', dtype=ChannelType.CHAR, max_length=16, report_as_string=True, doc='Engineering Units') monitor_deadband = pvproperty(name='MDEL', dtype=ChannelType.DOUBLE, doc='Monitor Deadband') input_specification = pvproperty(name='INP', dtype=ChannelType.STRING, doc='Input Specification') simulation_input_link = pvproperty(name='SIOL', dtype=ChannelType.STRING, doc='Simulation Input Link') simulation_mode_link = pvproperty(name='SIML', dtype=ChannelType.STRING, doc='Simulation Mode Link') simulation_mode_severity = pvproperty( name='SIMS', dtype=ChannelType.ENUM, enum_strings=menus.menuAlarmSevr.get_string_tuple(), doc='Simulation Mode Severity') alarm_filter_time_constant = pvproperty(name='AFTC', dtype=ChannelType.DOUBLE, doc='Alarm Filter Time Constant') alarm_filter_value = pvproperty(name='AFVL', dtype=ChannelType.DOUBLE, doc='Alarm Filter Value', read_only=True) prev_simulation_mode = pvproperty( name='OLDSIMM', dtype=ChannelType.ENUM, enum_strings=menus.menuSimm.get_string_tuple(), doc='Prev. Simulation Mode', read_only=True) sim_mode_async_delay = pvproperty(name='SDLY', dtype=ChannelType.DOUBLE, doc='Sim. Mode Async Delay', value=-1.0) sim_mode_scan = pvproperty(name='SSCN', dtype=ChannelType.ENUM, enum_strings=menus.menuScan.get_string_tuple(), doc='Sim. Mode Scan', value=0) # current_egu_value = pvproperty(name='VAL', # dtype=ChannelType.DOUBLE, # doc='Current EGU Value') _link_parent_attribute( display_precision, 'precision', ) _link_parent_attribute(archive_deadband, 'log_atol', use_setattr=True) _link_parent_attribute(monitor_deadband, 'value_atol', use_setattr=True)
[docs]@register_record class AsubFields(RecordFieldGroup): _record_type = "aSub" _dtype = ChannelType.LONG # DTYP of .VAL has_val_field = True device_type = pvproperty(name='DTYP', dtype=ChannelType.ENUM, enum_strings=menus.dtyp_aSub.get_string_tuple(), doc='Device Type') old_return_value = pvproperty(name='OVAL', dtype=ChannelType.LONG, doc='Old return value', read_only=True) display_precision = pvproperty(name='PREC', dtype=ChannelType.INT, doc='Display Precision') output_event_flag = pvproperty( name='EFLG', dtype=ChannelType.ENUM, enum_strings=menus.aSubEFLG.get_string_tuple(), doc='Output Event Flag', value=1) bad_return_severity = pvproperty( name='BRSV', dtype=ChannelType.ENUM, enum_strings=menus.menuAlarmSevr.get_string_tuple(), doc='Bad Return Severity') initialize_subr_name = pvproperty(name='INAM', dtype=ChannelType.CHAR, max_length=41, report_as_string=True, doc='Initialize Subr. Name', read_only=True) old_subr_name = pvproperty(name='ONAM', dtype=ChannelType.CHAR, max_length=41, report_as_string=True, doc='Old Subr. Name', read_only=True) process_subr_name = pvproperty(name='SNAM', dtype=ChannelType.CHAR, max_length=41, report_as_string=True, doc='Process Subr. Name') subr_input_enable = pvproperty( name='LFLG', dtype=ChannelType.ENUM, enum_strings=menus.aSubLFLG.get_string_tuple(), doc='Subr. Input Enable') subroutine_name_link = pvproperty(name='SUBL', dtype=ChannelType.STRING, doc='Subroutine Name Link', read_only=True) type_of_a = pvproperty(name='FTA', dtype=ChannelType.ENUM, enum_strings=menus.menuFtype.get_string_tuple(), doc='Type of A', read_only=True, value='DOUBLE') type_of_b = pvproperty(name='FTB', dtype=ChannelType.ENUM, enum_strings=menus.menuFtype.get_string_tuple(), doc='Type of B', read_only=True, value='DOUBLE') type_of_c = pvproperty(name='FTC', dtype=ChannelType.ENUM, enum_strings=menus.menuFtype.get_string_tuple(), doc='Type of C', read_only=True, value='DOUBLE') type_of_d = pvproperty(name='FTD', dtype=ChannelType.ENUM, enum_strings=menus.menuFtype.get_string_tuple(), doc='Type of D', read_only=True, value='DOUBLE') type_of_e = pvproperty(name='FTE', dtype=ChannelType.ENUM, enum_strings=menus.menuFtype.get_string_tuple(), doc='Type of E', read_only=True, value='DOUBLE') type_of_f = pvproperty(name='FTF', dtype=ChannelType.ENUM, enum_strings=menus.menuFtype.get_string_tuple(), doc='Type of F', read_only=True, value='DOUBLE') type_of_g = pvproperty(name='FTG', dtype=ChannelType.ENUM, enum_strings=menus.menuFtype.get_string_tuple(), doc='Type of G', read_only=True, value='DOUBLE') type_of_h = pvproperty(name='FTH', dtype=ChannelType.ENUM, enum_strings=menus.menuFtype.get_string_tuple(), doc='Type of H', read_only=True, value='DOUBLE') type_of_i = pvproperty(name='FTI', dtype=ChannelType.ENUM, enum_strings=menus.menuFtype.get_string_tuple(), doc='Type of I', read_only=True, value='DOUBLE') type_of_j = pvproperty(name='FTJ', dtype=ChannelType.ENUM, enum_strings=menus.menuFtype.get_string_tuple(), doc='Type of J', read_only=True, value='DOUBLE') type_of_k = pvproperty(name='FTK', dtype=ChannelType.ENUM, enum_strings=menus.menuFtype.get_string_tuple(), doc='Type of K', read_only=True, value='DOUBLE') type_of_l = pvproperty(name='FTL', dtype=ChannelType.ENUM, enum_strings=menus.menuFtype.get_string_tuple(), doc='Type of L', read_only=True, value='DOUBLE') type_of_m = pvproperty(name='FTM', dtype=ChannelType.ENUM, enum_strings=menus.menuFtype.get_string_tuple(), doc='Type of M', read_only=True, value='DOUBLE') type_of_n = pvproperty(name='FTN', dtype=ChannelType.ENUM, enum_strings=menus.menuFtype.get_string_tuple(), doc='Type of N', read_only=True, value='DOUBLE') type_of_o = pvproperty(name='FTO', dtype=ChannelType.ENUM, enum_strings=menus.menuFtype.get_string_tuple(), doc='Type of O', read_only=True, value='DOUBLE') type_of_p = pvproperty(name='FTP', dtype=ChannelType.ENUM, enum_strings=menus.menuFtype.get_string_tuple(), doc='Type of P', read_only=True, value='DOUBLE') type_of_q = pvproperty(name='FTQ', dtype=ChannelType.ENUM, enum_strings=menus.menuFtype.get_string_tuple(), doc='Type of Q', read_only=True, value='DOUBLE') type_of_r = pvproperty(name='FTR', dtype=ChannelType.ENUM, enum_strings=menus.menuFtype.get_string_tuple(), doc='Type of R', read_only=True, value='DOUBLE') type_of_s = pvproperty(name='FTS', dtype=ChannelType.ENUM, enum_strings=menus.menuFtype.get_string_tuple(), doc='Type of S', read_only=True, value='DOUBLE') type_of_t = pvproperty(name='FTT', dtype=ChannelType.ENUM, enum_strings=menus.menuFtype.get_string_tuple(), doc='Type of T', read_only=True, value='DOUBLE') type_of_u = pvproperty(name='FTU', dtype=ChannelType.ENUM, enum_strings=menus.menuFtype.get_string_tuple(), doc='Type of U', read_only=True, value='DOUBLE') type_of_vala = pvproperty(name='FTVA', dtype=ChannelType.ENUM, enum_strings=menus.menuFtype.get_string_tuple(), doc='Type of VALA', read_only=True, value='DOUBLE') type_of_valb = pvproperty(name='FTVB', dtype=ChannelType.ENUM, enum_strings=menus.menuFtype.get_string_tuple(), doc='Type of VALB', read_only=True, value='DOUBLE') type_of_valc = pvproperty(name='FTVC', dtype=ChannelType.ENUM, enum_strings=menus.menuFtype.get_string_tuple(), doc='Type of VALC', read_only=True, value='DOUBLE') type_of_vald = pvproperty(name='FTVD', dtype=ChannelType.ENUM, enum_strings=menus.menuFtype.get_string_tuple(), doc='Type of VALD', read_only=True, value='DOUBLE') type_of_vale = pvproperty(name='FTVE', dtype=ChannelType.ENUM, enum_strings=menus.menuFtype.get_string_tuple(), doc='Type of VALE', read_only=True, value='DOUBLE') type_of_valf = pvproperty(name='FTVF', dtype=ChannelType.ENUM, enum_strings=menus.menuFtype.get_string_tuple(), doc='Type of VALF', read_only=True, value='DOUBLE') type_of_valg = pvproperty(name='FTVG', dtype=ChannelType.ENUM, enum_strings=menus.menuFtype.get_string_tuple(), doc='Type of VALG', read_only=True, value='DOUBLE') type_of_valh = pvproperty(name='FTVH', dtype=ChannelType.ENUM, enum_strings=menus.menuFtype.get_string_tuple(), doc='Type of VALH', read_only=True, value='DOUBLE') type_of_vali = pvproperty(name='FTVI', dtype=ChannelType.ENUM, enum_strings=menus.menuFtype.get_string_tuple(), doc='Type of VALI', read_only=True, value='DOUBLE') type_of_valj = pvproperty(name='FTVJ', dtype=ChannelType.ENUM, enum_strings=menus.menuFtype.get_string_tuple(), doc='Type of VALJ', read_only=True, value='DOUBLE') type_of_valk = pvproperty(name='FTVK', dtype=ChannelType.ENUM, enum_strings=menus.menuFtype.get_string_tuple(), doc='Type of VALK', read_only=True, value='DOUBLE') type_of_vall = pvproperty(name='FTVL', dtype=ChannelType.ENUM, enum_strings=menus.menuFtype.get_string_tuple(), doc='Type of VALL', read_only=True, value='DOUBLE') type_of_valm = pvproperty(name='FTVM', dtype=ChannelType.ENUM, enum_strings=menus.menuFtype.get_string_tuple(), doc='Type of VALM', read_only=True, value='DOUBLE') type_of_valn = pvproperty(name='FTVN', dtype=ChannelType.ENUM, enum_strings=menus.menuFtype.get_string_tuple(), doc='Type of VALN', read_only=True, value='DOUBLE') type_of_valo = pvproperty(name='FTVO', dtype=ChannelType.ENUM, enum_strings=menus.menuFtype.get_string_tuple(), doc='Type of VALO', read_only=True, value='DOUBLE') type_of_valp = pvproperty(name='FTVP', dtype=ChannelType.ENUM, enum_strings=menus.menuFtype.get_string_tuple(), doc='Type of VALP', read_only=True, value='DOUBLE') type_of_valq = pvproperty(name='FTVQ', dtype=ChannelType.ENUM, enum_strings=menus.menuFtype.get_string_tuple(), doc='Type of VALQ', read_only=True, value='DOUBLE') type_of_valr = pvproperty(name='FTVR', dtype=ChannelType.ENUM, enum_strings=menus.menuFtype.get_string_tuple(), doc='Type of VALR', read_only=True, value='DOUBLE') type_of_vals = pvproperty(name='FTVS', dtype=ChannelType.ENUM, enum_strings=menus.menuFtype.get_string_tuple(), doc='Type of VALS', read_only=True, value='DOUBLE') type_of_valt = pvproperty(name='FTVT', dtype=ChannelType.ENUM, enum_strings=menus.menuFtype.get_string_tuple(), doc='Type of VALT', read_only=True, value='DOUBLE') type_of_valu = pvproperty(name='FTVU', dtype=ChannelType.ENUM, enum_strings=menus.menuFtype.get_string_tuple(), doc='Type of VALU', read_only=True, value='DOUBLE') input_link_a = pvproperty(name='INPA', dtype=ChannelType.STRING, doc='Input Link A') input_link_b = pvproperty(name='INPB', dtype=ChannelType.STRING, doc='Input Link B') input_link_c = pvproperty(name='INPC', dtype=ChannelType.STRING, doc='Input Link C') input_link_d = pvproperty(name='INPD', dtype=ChannelType.STRING, doc='Input Link D') input_link_e = pvproperty(name='INPE', dtype=ChannelType.STRING, doc='Input Link E') input_link_f = pvproperty(name='INPF', dtype=ChannelType.STRING, doc='Input Link F') input_link_g = pvproperty(name='INPG', dtype=ChannelType.STRING, doc='Input Link G') input_link_h = pvproperty(name='INPH', dtype=ChannelType.STRING, doc='Input Link H') input_link_i = pvproperty(name='INPI', dtype=ChannelType.STRING, doc='Input Link I') input_link_j = pvproperty(name='INPJ', dtype=ChannelType.STRING, doc='Input Link J') input_link_k = pvproperty(name='INPK', dtype=ChannelType.STRING, doc='Input Link K') input_link_l = pvproperty(name='INPL', dtype=ChannelType.STRING, doc='Input Link L') input_link_m = pvproperty(name='INPM', dtype=ChannelType.STRING, doc='Input Link M') input_link_n = pvproperty(name='INPN', dtype=ChannelType.STRING, doc='Input Link N') input_link_o = pvproperty(name='INPO', dtype=ChannelType.STRING, doc='Input Link O') input_link_p = pvproperty(name='INPP', dtype=ChannelType.STRING, doc='Input Link P') input_link_q = pvproperty(name='INPQ', dtype=ChannelType.STRING, doc='Input Link Q') input_link_r = pvproperty(name='INPR', dtype=ChannelType.STRING, doc='Input Link R') input_link_s = pvproperty(name='INPS', dtype=ChannelType.STRING, doc='Input Link S') input_link_t = pvproperty(name='INPT', dtype=ChannelType.STRING, doc='Input Link T') input_link_u = pvproperty(name='INPU', dtype=ChannelType.STRING, doc='Input Link U') num_elements_in_a = pvproperty(name='NEA', dtype=ChannelType.LONG, doc='Num. elements in A', read_only=True, value=1) num_elements_in_b = pvproperty(name='NEB', dtype=ChannelType.LONG, doc='Num. elements in B', read_only=True, value=1) num_elements_in_c = pvproperty(name='NEC', dtype=ChannelType.LONG, doc='Num. elements in C', read_only=True, value=1) num_elements_in_d = pvproperty(name='NED', dtype=ChannelType.LONG, doc='Num. elements in D', read_only=True, value=1) num_elements_in_e = pvproperty(name='NEE', dtype=ChannelType.LONG, doc='Num. elements in E', read_only=True, value=1) num_elements_in_f = pvproperty(name='NEF', dtype=ChannelType.LONG, doc='Num. elements in F', read_only=True, value=1) num_elements_in_g = pvproperty(name='NEG', dtype=ChannelType.LONG, doc='Num. elements in G', read_only=True, value=1) num_elements_in_h = pvproperty(name='NEH', dtype=ChannelType.LONG, doc='Num. elements in H', read_only=True, value=1) num_elements_in_i = pvproperty(name='NEI', dtype=ChannelType.LONG, doc='Num. elements in I', read_only=True, value=1) num_elements_in_j = pvproperty(name='NEJ', dtype=ChannelType.LONG, doc='Num. elements in J', read_only=True, value=1) num_elements_in_k = pvproperty(name='NEK', dtype=ChannelType.LONG, doc='Num. elements in K', read_only=True, value=1) num_elements_in_l = pvproperty(name='NEL', dtype=ChannelType.LONG, doc='Num. elements in L', read_only=True, value=1) num_elements_in_m = pvproperty(name='NEM', dtype=ChannelType.LONG, doc='Num. elements in M', read_only=True, value=1) num_elements_in_n = pvproperty(name='NEN', dtype=ChannelType.LONG, doc='Num. elements in N', read_only=True, value=1) num_elements_in_o = pvproperty(name='NEO', dtype=ChannelType.LONG, doc='Num. elements in O', read_only=True, value=1) num_elements_in_p = pvproperty(name='NEP', dtype=ChannelType.LONG, doc='Num. elements in P', read_only=True, value=1) num_elements_in_q = pvproperty(name='NEQ', dtype=ChannelType.LONG, doc='Num. elements in Q', read_only=True, value=1) num_elements_in_r = pvproperty(name='NER', dtype=ChannelType.LONG, doc='Num. elements in R', read_only=True, value=1) num_elements_in_s = pvproperty(name='NES', dtype=ChannelType.LONG, doc='Num. elements in S', read_only=True, value=1) num_elements_in_t = pvproperty(name='NET', dtype=ChannelType.LONG, doc='Num. elements in T', read_only=True, value=1) num_elements_in_u = pvproperty(name='NEU', dtype=ChannelType.LONG, doc='Num. elements in U', read_only=True, value=1) num_elements_in_vala = pvproperty(name='NEVA', dtype=ChannelType.LONG, doc='Num. elements in VALA', read_only=True, value=1) num_elements_in_valb = pvproperty(name='NEVB', dtype=ChannelType.LONG, doc='Num. elements in VALB', read_only=True, value=1) num_elements_in_valc = pvproperty(name='NEVC', dtype=ChannelType.LONG, doc='Num. elements in VALC', read_only=True, value=1) num_elements_in_vald = pvproperty(name='NEVD', dtype=ChannelType.LONG, doc='Num. elements in VALD', read_only=True, value=1) num_elements_in_vale = pvproperty(name='NEVE', dtype=ChannelType.LONG, doc='Num. elements in VALE', read_only=True, value=1) num_elements_in_valf = pvproperty(name='NEVF', dtype=ChannelType.LONG, doc='Num. elements in VALF', read_only=True, value=1) num_elements_in_valg = pvproperty(name='NEVG', dtype=ChannelType.LONG, doc='Num. elements in VALG', read_only=True, value=1) num_elements_in_vali = pvproperty(name='NEVI', dtype=ChannelType.LONG, doc='Num. elements in VALI', read_only=True, value=1) num_elements_in_valj = pvproperty(name='NEVJ', dtype=ChannelType.LONG, doc='Num. elements in VALJ', read_only=True, value=1) num_elements_in_valk = pvproperty(name='NEVK', dtype=ChannelType.LONG, doc='Num. elements in VALK', read_only=True, value=1) num_elements_in_vall = pvproperty(name='NEVL', dtype=ChannelType.LONG, doc='Num. elements in VALL', read_only=True, value=1) num_elements_in_valm = pvproperty(name='NEVM', dtype=ChannelType.LONG, doc='Num. elements in VALM', read_only=True, value=1) num_elements_in_valn = pvproperty(name='NEVN', dtype=ChannelType.LONG, doc='Num. elements in VALN', read_only=True, value=1) num_elements_in_valo = pvproperty(name='NEVO', dtype=ChannelType.LONG, doc='Num. elements in VALO', read_only=True, value=1) num_elements_in_valp = pvproperty(name='NEVP', dtype=ChannelType.LONG, doc='Num. elements in VALP', read_only=True, value=1) num_elements_in_valq = pvproperty(name='NEVQ', dtype=ChannelType.LONG, doc='Num. elements in VALQ', read_only=True, value=1) num_elements_in_valr = pvproperty(name='NEVR', dtype=ChannelType.LONG, doc='Num. elements in VALR', read_only=True, value=1) num_elements_in_vals = pvproperty(name='NEVS', dtype=ChannelType.LONG, doc='Num. elements in VALS', read_only=True, value=1) num_elements_in_valt = pvproperty(name='NEVT', dtype=ChannelType.LONG, doc='Num. elements in VALT', read_only=True, value=1) num_elements_in_valu = pvproperty(name='NEVU', dtype=ChannelType.LONG, doc='Num. elements in VALU', read_only=True, value=1) max_elements_in_a = pvproperty(name='NOA', dtype=ChannelType.LONG, doc='Max. elements in A', read_only=True, value=1) max_elements_in_b = pvproperty(name='NOB', dtype=ChannelType.LONG, doc='Max. elements in B', read_only=True, value=1) max_elements_in_c = pvproperty(name='NOC', dtype=ChannelType.LONG, doc='Max. elements in C', read_only=True, value=1) max_elements_in_d = pvproperty(name='NOD', dtype=ChannelType.LONG, doc='Max. elements in D', read_only=True, value=1) max_elements_in_e = pvproperty(name='NOE', dtype=ChannelType.LONG, doc='Max. elements in E', read_only=True, value=1) max_elements_in_f = pvproperty(name='NOF', dtype=ChannelType.LONG, doc='Max. elements in F', read_only=True, value=1) max_elements_in_g = pvproperty(name='NOG', dtype=ChannelType.LONG, doc='Max. elements in G', read_only=True, value=1) max_elements_in_h = pvproperty(name='NOH', dtype=ChannelType.LONG, doc='Max. elements in H', read_only=True, value=1) max_elements_in_i = pvproperty(name='NOI', dtype=ChannelType.LONG, doc='Max. elements in I', read_only=True, value=1) max_elements_in_j = pvproperty(name='NOJ', dtype=ChannelType.LONG, doc='Max. elements in J', read_only=True, value=1) max_elements_in_k = pvproperty(name='NOK', dtype=ChannelType.LONG, doc='Max. elements in K', read_only=True, value=1) max_elements_in_l = pvproperty(name='NOL', dtype=ChannelType.LONG, doc='Max. elements in L', read_only=True, value=1) max_elements_in_m = pvproperty(name='NOM', dtype=ChannelType.LONG, doc='Max. elements in M', read_only=True, value=1) max_elements_in_n = pvproperty(name='NON', dtype=ChannelType.LONG, doc='Max. elements in N', read_only=True, value=1) max_elements_in_o = pvproperty(name='NOO', dtype=ChannelType.LONG, doc='Max. elements in O', read_only=True, value=1) max_elements_in_p = pvproperty(name='NOP', dtype=ChannelType.LONG, doc='Max. elements in P', read_only=True, value=1) max_elements_in_q = pvproperty(name='NOQ', dtype=ChannelType.LONG, doc='Max. elements in Q', read_only=True, value=1) max_elements_in_r = pvproperty(name='NOR', dtype=ChannelType.LONG, doc='Max. elements in R', read_only=True, value=1) max_elements_in_s = pvproperty(name='NOS', dtype=ChannelType.LONG, doc='Max. elements in S', read_only=True, value=1) max_elements_in_t = pvproperty(name='NOT', dtype=ChannelType.LONG, doc='Max. elements in T', read_only=True, value=1) max_elements_in_u = pvproperty(name='NOU', dtype=ChannelType.LONG, doc='Max. elements in U', read_only=True, value=1) max_elements_in_vala = pvproperty(name='NOVA', dtype=ChannelType.LONG, doc='Max. elements in VALA', read_only=True, value=1) max_elements_in_valb = pvproperty(name='NOVB', dtype=ChannelType.LONG, doc='Max. elements in VALB', read_only=True, value=1) max_elements_in_valc = pvproperty(name='NOVC', dtype=ChannelType.LONG, doc='Max. elements in VALC', read_only=True, value=1) max_elements_in_vald = pvproperty(name='NOVD', dtype=ChannelType.LONG, doc='Max. elements in VALD', read_only=True, value=1) max_elements_in_vale = pvproperty(name='NOVE', dtype=ChannelType.LONG, doc='Max. elements in VALE', read_only=True, value=1) max_elements_in_valf = pvproperty(name='NOVF', dtype=ChannelType.LONG, doc='Max. elements in VALF', read_only=True, value=1) max_elements_in_valg = pvproperty(name='NOVG', dtype=ChannelType.LONG, doc='Max. elements in VALG', read_only=True, value=1) max_elements_in_valh = pvproperty(name='NOVH', dtype=ChannelType.LONG, doc='Max. elements in VAlH', read_only=True, value=1) max_elements_in_vali = pvproperty(name='NOVI', dtype=ChannelType.LONG, doc='Max. elements in VALI', read_only=True, value=1) max_elements_in_valj = pvproperty(name='NOVJ', dtype=ChannelType.LONG, doc='Max. elements in VALJ', read_only=True, value=1) max_elements_in_valk = pvproperty(name='NOVK', dtype=ChannelType.LONG, doc='Max. elements in VALK', read_only=True, value=1) max_elements_in_vall = pvproperty(name='NOVL', dtype=ChannelType.LONG, doc='Max. elements in VALL', read_only=True, value=1) max_elements_in_valm = pvproperty(name='NOVM', dtype=ChannelType.LONG, doc='Max. elements in VALM', read_only=True, value=1) max_elements_in_valn = pvproperty(name='NOVN', dtype=ChannelType.LONG, doc='Max. elements in VALN', read_only=True, value=1) max_elements_in_valo = pvproperty(name='NOVO', dtype=ChannelType.LONG, doc='Max. elements in VALO', read_only=True, value=1) max_elements_in_valp = pvproperty(name='NOVP', dtype=ChannelType.LONG, doc='Max. elements in VALP', read_only=True, value=1) max_elements_in_valq = pvproperty(name='NOVQ', dtype=ChannelType.LONG, doc='Max. elements in VALQ', read_only=True, value=1) max_elements_in_valr = pvproperty(name='NOVR', dtype=ChannelType.LONG, doc='Max. elements in VALR', read_only=True, value=1) max_elements_in_vals = pvproperty(name='NOVS', dtype=ChannelType.LONG, doc='Max. elements in VALS', read_only=True, value=1) max_elements_in_valt = pvproperty(name='NOVT', dtype=ChannelType.LONG, doc='Max. elements in VALT', read_only=True, value=1) max_elements_in_valu = pvproperty(name='NOVU', dtype=ChannelType.LONG, doc='Max. elements in VALU', read_only=True, value=1) num_elements_in_ovla = pvproperty(name='ONVA', dtype=ChannelType.LONG, doc='Num. elements in OVLA', read_only=True, value=1) num_elements_in_ovlb = pvproperty(name='ONVB', dtype=ChannelType.LONG, doc='Num. elements in OVLB', read_only=True, value=1) num_elements_in_ovlc = pvproperty(name='ONVC', dtype=ChannelType.LONG, doc='Num. elements in OVLC', read_only=True, value=1) num_elements_in_ovld = pvproperty(name='ONVD', dtype=ChannelType.LONG, doc='Num. elements in OVLD', read_only=True, value=1) num_elements_in_ovle = pvproperty(name='ONVE', dtype=ChannelType.LONG, doc='Num. elements in OVLE', read_only=True, value=1) num_elements_in_ovlf = pvproperty(name='ONVF', dtype=ChannelType.LONG, doc='Num. elements in OVLF', read_only=True, value=1) num_elements_in_ovlg = pvproperty(name='ONVG', dtype=ChannelType.LONG, doc='Num. elements in OVLG', read_only=True, value=1) num_elements_in_ovlh = pvproperty(name='ONVH', dtype=ChannelType.LONG, doc='Num. elements in VAlH', read_only=True, value=1) num_elements_in_ovli = pvproperty(name='ONVI', dtype=ChannelType.LONG, doc='Num. elements in OVLI', read_only=True, value=1) num_elements_in_ovlj = pvproperty(name='ONVJ', dtype=ChannelType.LONG, doc='Num. elements in OVLJ', read_only=True, value=1) num_elements_in_ovlk = pvproperty(name='ONVK', dtype=ChannelType.LONG, doc='Num. elements in OVLK', read_only=True, value=1) num_elements_in_ovll = pvproperty(name='ONVL', dtype=ChannelType.LONG, doc='Num. elements in OVLL', read_only=True, value=1) num_elements_in_ovlm = pvproperty(name='ONVM', dtype=ChannelType.LONG, doc='Num. elements in OVLM', read_only=True, value=1) num_elements_in_ovln = pvproperty(name='ONVN', dtype=ChannelType.LONG, doc='Num. elements in OVLN', read_only=True, value=1) num_elements_in_ovlo = pvproperty(name='ONVO', dtype=ChannelType.LONG, doc='Num. elements in OVLO', read_only=True, value=1) num_elements_in_ovlp = pvproperty(name='ONVP', dtype=ChannelType.LONG, doc='Num. elements in OVLP', read_only=True, value=1) num_elements_in_ovlq = pvproperty(name='ONVQ', dtype=ChannelType.LONG, doc='Num. elements in OVLQ', read_only=True, value=1) num_elements_in_ovlr = pvproperty(name='ONVR', dtype=ChannelType.LONG, doc='Num. elements in OVLR', read_only=True, value=1) num_elements_in_ovls = pvproperty(name='ONVS', dtype=ChannelType.LONG, doc='Num. elements in OVLS', read_only=True, value=1) num_elements_in_ovlt = pvproperty(name='ONVT', dtype=ChannelType.LONG, doc='Num. elements in OVLT', read_only=True, value=1) num_elements_in_ovlu = pvproperty(name='ONVU', dtype=ChannelType.LONG, doc='Num. elements in OVLU', read_only=True, value=1) output_link_a = pvproperty(name='OUTA', dtype=ChannelType.STRING, doc='Output Link A') output_link_b = pvproperty(name='OUTB', dtype=ChannelType.STRING, doc='Output Link B') output_link_c = pvproperty(name='OUTC', dtype=ChannelType.STRING, doc='Output Link C') output_link_d = pvproperty(name='OUTD', dtype=ChannelType.STRING, doc='Output Link D') output_link_e = pvproperty(name='OUTE', dtype=ChannelType.STRING, doc='Output Link E') output_link_f = pvproperty(name='OUTF', dtype=ChannelType.STRING, doc='Output Link F') output_link_g = pvproperty(name='OUTG', dtype=ChannelType.STRING, doc='Output Link G') output_link_h = pvproperty(name='OUTH', dtype=ChannelType.STRING, doc='Output Link H') output_link_i = pvproperty(name='OUTI', dtype=ChannelType.STRING, doc='Output Link I') output_link_j = pvproperty(name='OUTJ', dtype=ChannelType.STRING, doc='Output Link J') output_link_k = pvproperty(name='OUTK', dtype=ChannelType.STRING, doc='Output Link K') output_link_l = pvproperty(name='OUTL', dtype=ChannelType.STRING, doc='Output Link L') output_link_m = pvproperty(name='OUTM', dtype=ChannelType.STRING, doc='Output Link M') output_link_n = pvproperty(name='OUTN', dtype=ChannelType.STRING, doc='Output Link N') output_link_o = pvproperty(name='OUTO', dtype=ChannelType.STRING, doc='Output Link O') output_link_p = pvproperty(name='OUTP', dtype=ChannelType.STRING, doc='Output Link P') output_link_q = pvproperty(name='OUTQ', dtype=ChannelType.STRING, doc='Output Link Q') output_link_r = pvproperty(name='OUTR', dtype=ChannelType.STRING, doc='Output Link R') output_link_s = pvproperty(name='OUTS', dtype=ChannelType.STRING, doc='Output Link S') output_link_t = pvproperty(name='OUTT', dtype=ChannelType.STRING, doc='Output Link T') output_link_u = pvproperty(name='OUTU', dtype=ChannelType.STRING, doc='Output Link U') num_elements_in_valh = pvproperty(name='NEVH', dtype=ChannelType.LONG, doc='Num. elements in VAlH', read_only=True, value=1) # subr_return_value = pvproperty(name='VAL', # dtype=ChannelType.LONG, # doc='Subr. return value') _link_parent_attribute( display_precision, 'precision', )
[docs]@register_record class AaiFields(RecordFieldGroup): _record_type = "aai" _dtype = None # DTYP of .VAL has_val_field = False device_type = pvproperty(name='DTYP', dtype=ChannelType.ENUM, enum_strings=menus.dtyp_aai.get_string_tuple(), doc='Device Type') hash_of_onchange_data = pvproperty(name='HASH', dtype=ChannelType.LONG, doc='Hash of OnChange data.') number_elements_read = pvproperty(name='NORD', dtype=ChannelType.LONG, doc='Number elements read', read_only=True) simulation_mode = pvproperty( name='SIMM', dtype=ChannelType.ENUM, enum_strings=menus.menuYesNo.get_string_tuple(), doc='Simulation Mode') display_precision = pvproperty(name='PREC', dtype=ChannelType.INT, doc='Display Precision') input_specification = pvproperty(name='INP', dtype=ChannelType.STRING, doc='Input Specification') engineering_units = pvproperty(name='EGU', dtype=ChannelType.CHAR, max_length=16, report_as_string=True, doc='Engineering Units') high_operating_range = pvproperty(name='HOPR', dtype=ChannelType.DOUBLE, doc='High Operating Range') low_operating_range = pvproperty(name='LOPR', dtype=ChannelType.DOUBLE, doc='Low Operating Range') number_of_elements = pvproperty(name='NELM', dtype=ChannelType.LONG, doc='Number of Elements', read_only=True, value=1) field_type_of_value = pvproperty( name='FTVL', dtype=ChannelType.ENUM, enum_strings=menus.menuFtype.get_string_tuple(), doc='Field Type of Value', read_only=True) post_archive_monitors = pvproperty( name='APST', dtype=ChannelType.ENUM, enum_strings=menus.aaiPOST.get_string_tuple(), doc='Post Archive Monitors') post_value_monitors = pvproperty( name='MPST', dtype=ChannelType.ENUM, enum_strings=menus.aaiPOST.get_string_tuple(), doc='Post Value Monitors') simulation_mode_link = pvproperty(name='SIML', dtype=ChannelType.STRING, doc='Simulation Mode Link') simulation_input_link = pvproperty(name='SIOL', dtype=ChannelType.STRING, doc='Simulation Input Link') simulation_mode_severity = pvproperty( name='SIMS', dtype=ChannelType.ENUM, enum_strings=menus.menuAlarmSevr.get_string_tuple(), doc='Simulation Mode Severity') prev_simulation_mode = pvproperty( name='OLDSIMM', dtype=ChannelType.ENUM, enum_strings=menus.menuSimm.get_string_tuple(), doc='Prev. Simulation Mode', read_only=True) sim_mode_async_delay = pvproperty(name='SDLY', dtype=ChannelType.DOUBLE, doc='Sim. Mode Async Delay', value=-1.0) sim_mode_scan = pvproperty(name='SSCN', dtype=ChannelType.ENUM, enum_strings=menus.menuScan.get_string_tuple(), doc='Sim. Mode Scan', value=0) _link_parent_attribute( display_precision, 'precision', ) _link_parent_attribute( high_operating_range, 'upper_ctrl_limit', ) _link_parent_attribute( low_operating_range, 'lower_ctrl_limit', ) _link_parent_attribute(number_of_elements, 'max_length', use_setattr=True, read_only=True)
[docs]@register_record class AaoFields(RecordFieldGroup): _record_type = "aao" _dtype = None # DTYP of .VAL has_val_field = False device_type = pvproperty(name='DTYP', dtype=ChannelType.ENUM, enum_strings=menus.dtyp_aao.get_string_tuple(), doc='Device Type') hash_of_onchange_data = pvproperty(name='HASH', dtype=ChannelType.LONG, doc='Hash of OnChange data.') number_elements_read = pvproperty(name='NORD', dtype=ChannelType.LONG, doc='Number elements read', read_only=True) simulation_mode = pvproperty( name='SIMM', dtype=ChannelType.ENUM, enum_strings=menus.menuYesNo.get_string_tuple(), doc='Simulation Mode') display_precision = pvproperty(name='PREC', dtype=ChannelType.INT, doc='Display Precision') output_specification = pvproperty(name='OUT', dtype=ChannelType.STRING, doc='Output Specification') engineering_units = pvproperty(name='EGU', dtype=ChannelType.CHAR, max_length=16, report_as_string=True, doc='Engineering Units') high_operating_range = pvproperty(name='HOPR', dtype=ChannelType.DOUBLE, doc='High Operating Range') low_operating_range = pvproperty(name='LOPR', dtype=ChannelType.DOUBLE, doc='Low Operating Range') number_of_elements = pvproperty(name='NELM', dtype=ChannelType.LONG, doc='Number of Elements', read_only=True, value=1) field_type_of_value = pvproperty( name='FTVL', dtype=ChannelType.ENUM, enum_strings=menus.menuFtype.get_string_tuple(), doc='Field Type of Value', read_only=True) post_archive_monitors = pvproperty( name='APST', dtype=ChannelType.ENUM, enum_strings=menus.aaoPOST.get_string_tuple(), doc='Post Archive Monitors') post_value_monitors = pvproperty( name='MPST', dtype=ChannelType.ENUM, enum_strings=menus.aaoPOST.get_string_tuple(), doc='Post Value Monitors') simulation_mode_link = pvproperty(name='SIML', dtype=ChannelType.STRING, doc='Simulation Mode Link') simulation_output_link = pvproperty(name='SIOL', dtype=ChannelType.STRING, doc='Simulation Output Link') simulation_mode_severity = pvproperty( name='SIMS', dtype=ChannelType.ENUM, enum_strings=menus.menuAlarmSevr.get_string_tuple(), doc='Simulation Mode Severity') prev_simulation_mode = pvproperty( name='OLDSIMM', dtype=ChannelType.ENUM, enum_strings=menus.menuSimm.get_string_tuple(), doc='Prev. Simulation Mode', read_only=True) sim_mode_async_delay = pvproperty(name='SDLY', dtype=ChannelType.DOUBLE, doc='Sim. Mode Async Delay', value=-1.0) sim_mode_scan = pvproperty(name='SSCN', dtype=ChannelType.ENUM, enum_strings=menus.menuScan.get_string_tuple(), doc='Sim. Mode Scan', value=0) _link_parent_attribute( display_precision, 'precision', ) _link_parent_attribute( high_operating_range, 'upper_ctrl_limit', ) _link_parent_attribute( low_operating_range, 'lower_ctrl_limit', ) _link_parent_attribute(number_of_elements, 'max_length', use_setattr=True, read_only=True)
[docs]@register_record class AoFields(RecordFieldGroup, _Limits): _record_type = "ao" _dtype = ChannelType.DOUBLE # DTYP of .VAL has_val_field = True device_type = pvproperty(name='DTYP', dtype=ChannelType.ENUM, enum_strings=menus.dtyp_ao.get_string_tuple(), doc='Device Type') current_raw_value = pvproperty(name='RVAL', dtype=ChannelType.LONG, doc='Current Raw Value') initialized = pvproperty(name='INIT', dtype=ChannelType.INT, doc='Initialized?', read_only=True) last_val_monitored = pvproperty(name='MLST', dtype=ChannelType.DOUBLE, doc='Last Val Monitored', read_only=True) last_value_alarmed = pvproperty(name='LALM', dtype=ChannelType.DOUBLE, doc='Last Value Alarmed', read_only=True) last_value_archived = pvproperty(name='ALST', dtype=ChannelType.DOUBLE, doc='Last Value Archived', read_only=True) lastbreak_point = pvproperty(name='LBRK', dtype=ChannelType.INT, doc='LastBreak Point', read_only=True) output_value = pvproperty(name='OVAL', dtype=ChannelType.DOUBLE, doc='Output Value') prev_readback_value = pvproperty(name='ORBV', dtype=ChannelType.LONG, doc='Prev Readback Value', read_only=True) previous_raw_value = pvproperty(name='ORAW', dtype=ChannelType.LONG, doc='Previous Raw Value', read_only=True) previous_value = pvproperty(name='PVAL', dtype=ChannelType.DOUBLE, doc='Previous value', read_only=True) raw_offset = pvproperty(name='ROFF', dtype=ChannelType.LONG, doc='Raw Offset') readback_value = pvproperty(name='RBV', dtype=ChannelType.LONG, doc='Readback Value', read_only=True) simulation_mode = pvproperty( name='SIMM', dtype=ChannelType.ENUM, enum_strings=menus.menuYesNo.get_string_tuple(), doc='Simulation Mode') was_oval_modified = pvproperty(name='OMOD', dtype=ChannelType.CHAR, doc='Was OVAL modified?', read_only=True) alarm_deadband = pvproperty(name='HYST', dtype=ChannelType.DOUBLE, doc='Alarm Deadband') adjustment_offset = pvproperty(name='AOFF', dtype=ChannelType.DOUBLE, doc='Adjustment Offset') adjustment_slope = pvproperty(name='ASLO', dtype=ChannelType.DOUBLE, doc='Adjustment Slope') egu_to_raw_offset = pvproperty(name='EOFF', dtype=ChannelType.DOUBLE, doc='EGU to Raw Offset') egu_to_raw_slope = pvproperty(name='ESLO', dtype=ChannelType.DOUBLE, doc='EGU to Raw Slope', value=1) eng_units_full = pvproperty(name='EGUF', dtype=ChannelType.DOUBLE, doc='Eng Units Full') eng_units_low = pvproperty(name='EGUL', dtype=ChannelType.DOUBLE, doc='Eng Units Low') linearization = pvproperty( name='LINR', dtype=ChannelType.ENUM, enum_strings=menus.menuConvert.get_string_tuple(), doc='Linearization') archive_deadband = pvproperty(name='ADEL', dtype=ChannelType.DOUBLE, doc='Archive Deadband') display_precision = pvproperty(name='PREC', dtype=ChannelType.INT, doc='Display Precision') engineering_units = pvproperty(name='EGU', dtype=ChannelType.CHAR, max_length=16, report_as_string=True, doc='Engineering Units') monitor_deadband = pvproperty(name='MDEL', dtype=ChannelType.DOUBLE, doc='Monitor Deadband') simulation_mode_link = pvproperty(name='SIML', dtype=ChannelType.STRING, doc='Simulation Mode Link') simulation_output_link = pvproperty(name='SIOL', dtype=ChannelType.STRING, doc='Simulation Output Link') simulation_mode_severity = pvproperty( name='SIMS', dtype=ChannelType.ENUM, enum_strings=menus.menuAlarmSevr.get_string_tuple(), doc='Simulation Mode Severity') desired_output_loc = pvproperty(name='DOL', dtype=ChannelType.STRING, doc='Desired Output Loc') drive_high_limit = pvproperty(name='DRVH', dtype=ChannelType.DOUBLE, doc='Drive High Limit') drive_low_limit = pvproperty(name='DRVL', dtype=ChannelType.DOUBLE, doc='Drive Low Limit') invalid_output_action = pvproperty( name='IVOA', dtype=ChannelType.ENUM, enum_strings=menus.menuIvoa.get_string_tuple(), doc='INVALID output action') invalid_output_value = pvproperty(name='IVOV', dtype=ChannelType.DOUBLE, doc='INVALID output value') out_full_incremental = pvproperty( name='OIF', dtype=ChannelType.ENUM, enum_strings=menus.aoOIF.get_string_tuple(), doc='Out Full/Incremental') output_mode_select = pvproperty( name='OMSL', dtype=ChannelType.ENUM, enum_strings=menus.menuOmsl.get_string_tuple(), doc='Output Mode Select') output_rate_of_change = pvproperty(name='OROC', dtype=ChannelType.DOUBLE, doc='Output Rate of Change') output_specification = pvproperty(name='OUT', dtype=ChannelType.STRING, doc='Output Specification') prev_simulation_mode = pvproperty( name='OLDSIMM', dtype=ChannelType.ENUM, enum_strings=menus.menuSimm.get_string_tuple(), doc='Prev. Simulation Mode', read_only=True) sim_mode_async_delay = pvproperty(name='SDLY', dtype=ChannelType.DOUBLE, doc='Sim. Mode Async Delay', value=-1.0) sim_mode_scan = pvproperty(name='SSCN', dtype=ChannelType.ENUM, enum_strings=menus.menuScan.get_string_tuple(), doc='Sim. Mode Scan', value=0) # desired_output = pvproperty(name='VAL', # dtype=ChannelType.DOUBLE, # doc='Desired Output') _link_parent_attribute( display_precision, 'precision', ) _link_parent_attribute(archive_deadband, 'log_atol', use_setattr=True) _link_parent_attribute(monitor_deadband, 'value_atol', use_setattr=True)
[docs]@register_record class AsynFields(RecordFieldGroup): _record_type = "asyn" _dtype = ChannelType.LONG # DTYP of .VAL has_val_field = True device_type = pvproperty(name='DTYP', dtype=ChannelType.ENUM, enum_strings=menus.dtyp_asyn.get_string_tuple(), doc='Device Type') abort_queuerequest = pvproperty(name='AQR', dtype=ChannelType.CHAR, doc='Abort queueRequest') eom_reason = pvproperty( name='EOMR', dtype=ChannelType.ENUM, enum_strings=menus.asynEOMREASON.get_string_tuple(), doc='EOM reason', read_only=True) input = pvproperty(name='AINP', dtype=ChannelType.CHAR, max_length=40, report_as_string=True, doc='Input (response) string', read_only=True) input_binary_data = pvproperty(name='BINP', dtype=ChannelType.CHAR, doc='Input binary data') number_of_bytes_actually_written = pvproperty( name='NAWT', dtype=ChannelType.LONG, doc='Number of bytes actually written') number_of_bytes_read = pvproperty(name='NORD', dtype=ChannelType.LONG, doc='Number of bytes read', read_only=True) output_binary_data = pvproperty(name='BOUT', dtype=ChannelType.CHAR, doc='Output binary data') port_connect_disconnect = pvproperty( name='PCNCT', dtype=ChannelType.ENUM, enum_strings=menus.asynCONNECT.get_string_tuple(), doc='Port Connect/Disconnect') serial_poll_response = pvproperty(name='SPR', dtype=ChannelType.CHAR, doc='Serial poll response', read_only=True) translated_input_string = pvproperty(name='TINP', dtype=ChannelType.CHAR, max_length=40, report_as_string=True, doc='Translated input string', read_only=True) asynfloat64_input = pvproperty(name='F64INP', dtype=ChannelType.DOUBLE, doc='asynFloat64 input', read_only=True) asynfloat64_is_valid = pvproperty(name='F64IV', dtype=ChannelType.LONG, doc='asynFloat64 is valid') asyngpib_is_valid = pvproperty(name='GPIBIV', dtype=ChannelType.LONG, doc='asynGPIB is valid') asynint32_input = pvproperty(name='I32INP', dtype=ChannelType.LONG, doc='asynInt32 input', read_only=True) asynint32_is_valid = pvproperty(name='I32IV', dtype=ChannelType.LONG, doc='asynInt32 is valid') asynoctet_is_valid = pvproperty(name='OCTETIV', dtype=ChannelType.LONG, doc='asynOctet is valid') asynoption_is_valid = pvproperty(name='OPTIONIV', dtype=ChannelType.LONG, doc='asynOption is valid') asynuint32digital_input = pvproperty(name='UI32INP', dtype=ChannelType.LONG, doc='asynUInt32Digital input', read_only=True) asynuint32digital_is_valid = pvproperty(name='UI32IV', dtype=ChannelType.LONG, doc='asynUInt32Digital is valid') asynuser_reason = pvproperty(name='REASON', dtype=ChannelType.LONG, doc='asynUser->reason') trace_i_o_mask = pvproperty(name='TIOM', dtype=ChannelType.LONG, doc='Trace I/O mask') trace_io_ascii = pvproperty( name='TIB0', dtype=ChannelType.ENUM, enum_strings=menus.asynTRACE.get_string_tuple(), doc='Trace IO ASCII') trace_io_device = pvproperty( name='TB1', dtype=ChannelType.ENUM, enum_strings=menus.asynTRACE.get_string_tuple(), doc='Trace IO device') trace_io_driver = pvproperty( name='TB3', dtype=ChannelType.ENUM, enum_strings=menus.asynTRACE.get_string_tuple(), doc='Trace IO driver') trace_io_escape = pvproperty( name='TIB1', dtype=ChannelType.ENUM, enum_strings=menus.asynTRACE.get_string_tuple(), doc='Trace IO escape') trace_io_file = pvproperty(name='TFIL', dtype=ChannelType.CHAR, max_length=40, report_as_string=True, doc='Trace IO file') trace_io_filter = pvproperty( name='TB2', dtype=ChannelType.ENUM, enum_strings=menus.asynTRACE.get_string_tuple(), doc='Trace IO filter') trace_io_hex = pvproperty(name='TIB2', dtype=ChannelType.ENUM, enum_strings=menus.asynTRACE.get_string_tuple(), doc='Trace IO hex') trace_io_truncate_size = pvproperty(name='TSIZ', dtype=ChannelType.LONG, doc='Trace IO truncate size') trace_info_port = pvproperty( name='TINB1', dtype=ChannelType.ENUM, enum_strings=menus.asynTRACE.get_string_tuple(), doc='Trace Info Port') trace_info_source = pvproperty( name='TINB2', dtype=ChannelType.ENUM, enum_strings=menus.asynTRACE.get_string_tuple(), doc='Trace Info Source') trace_info_thread = pvproperty( name='TINB3', dtype=ChannelType.ENUM, enum_strings=menus.asynTRACE.get_string_tuple(), doc='Trace Info Thread') trace_info_time = pvproperty( name='TINB0', dtype=ChannelType.ENUM, enum_strings=menus.asynTRACE.get_string_tuple(), doc='Trace Info Time') trace_info_mask = pvproperty(name='TINM', dtype=ChannelType.LONG, doc='Trace Info mask') trace_error = pvproperty(name='TB0', dtype=ChannelType.ENUM, enum_strings=menus.asynTRACE.get_string_tuple(), doc='Trace error') trace_flow = pvproperty(name='TB4', dtype=ChannelType.ENUM, enum_strings=menus.asynTRACE.get_string_tuple(), doc='Trace flow') trace_mask = pvproperty(name='TMSK', dtype=ChannelType.LONG, doc='Trace mask') trace_warning = pvproperty(name='TB5', dtype=ChannelType.ENUM, enum_strings=menus.asynTRACE.get_string_tuple(), doc='Trace warning') autoconnect = pvproperty( name='AUCT', dtype=ChannelType.ENUM, enum_strings=menus.asynAUTOCONNECT.get_string_tuple(), doc='Autoconnect') long_baud_rate = pvproperty(name='LBAUD', dtype=ChannelType.LONG, doc='Baud rate') connect_disconnect = pvproperty( name='CNCT', dtype=ChannelType.ENUM, enum_strings=menus.asynCONNECT.get_string_tuple(), doc='Connect/Disconnect') data_bits = pvproperty(name='DBIT', dtype=ChannelType.ENUM, enum_strings=menus.serialDBIT.get_string_tuple(), doc='Data bits') driver_info_string = pvproperty(name='DRVINFO', dtype=ChannelType.CHAR, max_length=40, report_as_string=True, doc='Driver info string', value='') enable_disable = pvproperty( name='ENBL', dtype=ChannelType.ENUM, enum_strings=menus.asynENABLE.get_string_tuple(), doc='Enable/Disable') flow_control = pvproperty(name='FCTL', dtype=ChannelType.ENUM, enum_strings=menus.serialFCTL.get_string_tuple(), doc='Flow control') input_delimiter = pvproperty(name='IEOS', dtype=ChannelType.CHAR, max_length=40, report_as_string=True, doc='Input Delimiter') input_xon_xoff = pvproperty(name='IXOFF', dtype=ChannelType.ENUM, enum_strings=menus.serialIX.get_string_tuple(), doc='Input XON/XOFF') input_format = pvproperty(name='IFMT', dtype=ChannelType.ENUM, enum_strings=menus.asynFMT.get_string_tuple(), doc='Input format') interface = pvproperty(name='IFACE', dtype=ChannelType.ENUM, enum_strings=menus.asynINTERFACE.get_string_tuple(), doc='Interface') max_size_of_input_array = pvproperty(name='IMAX', dtype=ChannelType.LONG, doc='Max. size of input array', read_only=True, value=80) modem_control = pvproperty( name='MCTL', dtype=ChannelType.ENUM, enum_strings=menus.serialMCTL.get_string_tuple(), doc='Modem control') number_of_bytes_to_read = pvproperty(name='NRRD', dtype=ChannelType.LONG, doc='Number of bytes to read') output_xon_xoff = pvproperty( name='IXON', dtype=ChannelType.ENUM, enum_strings=menus.serialIX.get_string_tuple(), doc='Output XON/XOFF') parity = pvproperty(name='PRTY', dtype=ChannelType.ENUM, enum_strings=menus.serialPRTY.get_string_tuple(), doc='Parity') stop_bits = pvproperty(name='SBIT', dtype=ChannelType.ENUM, enum_strings=menus.serialSBIT.get_string_tuple(), doc='Stop bits') timeout = pvproperty(name='TMOT', dtype=ChannelType.DOUBLE, doc='Timeout (sec)', value=1.0) transaction_mode = pvproperty( name='TMOD', dtype=ChannelType.ENUM, enum_strings=menus.asynTMOD.get_string_tuple(), doc='Transaction mode') xon_any_character = pvproperty( name='IXANY', dtype=ChannelType.ENUM, enum_strings=menus.serialIX.get_string_tuple(), doc='XON=any character') asyn_address = pvproperty(name='ADDR', dtype=ChannelType.LONG, doc='asyn address', value=0) asyn_port = pvproperty(name='PORT', dtype=ChannelType.CHAR, max_length=40, report_as_string=True, doc='asyn port', value='') addressed_command = pvproperty( name='ACMD', dtype=ChannelType.ENUM, enum_strings=menus.gpibACMD.get_string_tuple(), doc='Addressed command') max_size_of_output_array = pvproperty(name='OMAX', dtype=ChannelType.LONG, doc='Max. size of output array', read_only=True, value=80) number_of_bytes_to_write = pvproperty(name='NOWT', dtype=ChannelType.LONG, doc='Number of bytes to write', value=80) output = pvproperty(name='AOUT', dtype=ChannelType.CHAR, max_length=40, report_as_string=True, doc='Output (command) string') output_delimiter = pvproperty(name='OEOS', dtype=ChannelType.CHAR, max_length=40, report_as_string=True, doc='Output delimiter') output_format = pvproperty(name='OFMT', dtype=ChannelType.ENUM, enum_strings=menus.asynFMT.get_string_tuple(), doc='Output format') universal_command = pvproperty( name='UCMD', dtype=ChannelType.ENUM, enum_strings=menus.gpibUCMD.get_string_tuple(), doc='Universal command') asynfloat64_output = pvproperty(name='F64OUT', dtype=ChannelType.DOUBLE, doc='asynFloat64 output') asynint32_output = pvproperty(name='I32OUT', dtype=ChannelType.LONG, doc='asynInt32 output') asynuint32digital_mask = pvproperty(name='UI32MASK', dtype=ChannelType.LONG, doc='asynUInt32Digital mask', value=4294967295) asynuint32digital_output = pvproperty(name='UI32OUT', dtype=ChannelType.LONG, doc='asynUInt32Digital output') host_info = pvproperty(name='HOSTINFO', dtype=ChannelType.CHAR, max_length=40, report_as_string=True, doc='host info', value='') disconnect_on_timeout = pvproperty( name='DRTO', dtype=ChannelType.ENUM, enum_strings=menus.ipDRTO.get_string_tuple(), doc='Disconnect on timeout') baud_rate = pvproperty(name='BAUD', dtype=ChannelType.ENUM, enum_strings=menus.serialBAUD.get_string_tuple(), doc='Baud rate')
# value_field = pvproperty(name='VAL', # dtype=ChannelType.LONG, # doc='Value field (unused)')
[docs]@register_record class BiFields(RecordFieldGroup): _record_type = "bi" _dtype = ChannelType.ENUM # DTYP of .VAL has_val_field = True device_type = pvproperty(name='DTYP', dtype=ChannelType.ENUM, enum_strings=menus.dtyp_bi.get_string_tuple(), doc='Device Type') hardware_mask = pvproperty(name='MASK', dtype=ChannelType.LONG, doc='Hardware Mask', read_only=True) last_value_alarmed = pvproperty(name='LALM', dtype=ChannelType.INT, doc='Last Value Alarmed', read_only=True) last_value_monitored = pvproperty(name='MLST', dtype=ChannelType.INT, doc='Last Value Monitored', read_only=True) raw_value = pvproperty(name='RVAL', dtype=ChannelType.LONG, doc='Raw Value') simulation_mode = pvproperty( name='SIMM', dtype=ChannelType.ENUM, enum_strings=menus.menuSimm.get_string_tuple(), doc='Simulation Mode') simulation_value = pvproperty(name='SVAL', dtype=ChannelType.LONG, doc='Simulation Value') prev_raw_value = pvproperty(name='ORAW', dtype=ChannelType.LONG, doc='prev Raw Value', read_only=True) zero_error_severity = pvproperty( name='ZSV', dtype=ChannelType.ENUM, enum_strings=menus.menuAlarmSevr.get_string_tuple(), doc='Zero Error Severity') one_error_severity = pvproperty( name='OSV', dtype=ChannelType.ENUM, enum_strings=menus.menuAlarmSevr.get_string_tuple(), doc='One Error Severity') change_of_state_svr = pvproperty( name='COSV', dtype=ChannelType.ENUM, enum_strings=menus.menuAlarmSevr.get_string_tuple(), doc='Change of State Svr') zero_name = pvproperty(name='ZNAM', dtype=ChannelType.CHAR, max_length=26, report_as_string=True, doc='Zero Name') one_name = pvproperty(name='ONAM', dtype=ChannelType.CHAR, max_length=26, report_as_string=True, doc='One Name') input_specification = pvproperty(name='INP', dtype=ChannelType.STRING, doc='Input Specification') simulation_input_link = pvproperty(name='SIOL', dtype=ChannelType.STRING, doc='Simulation Input Link') simulation_mode_link = pvproperty(name='SIML', dtype=ChannelType.STRING, doc='Simulation Mode Link') simulation_mode_severity = pvproperty( name='SIMS', dtype=ChannelType.ENUM, enum_strings=menus.menuAlarmSevr.get_string_tuple(), doc='Simulation Mode Severity') prev_simulation_mode = pvproperty( name='OLDSIMM', dtype=ChannelType.ENUM, enum_strings=menus.menuSimm.get_string_tuple(), doc='Prev. Simulation Mode', read_only=True) sim_mode_async_delay = pvproperty(name='SDLY', dtype=ChannelType.DOUBLE, doc='Sim. Mode Async Delay', value=-1.0) sim_mode_scan = pvproperty(name='SSCN', dtype=ChannelType.ENUM, enum_strings=menus.menuScan.get_string_tuple(), doc='Sim. Mode Scan', value=0) # current_value = pvproperty(name='VAL', # dtype=ChannelType.ENUM, # doc='Current Value') _link_enum_strings(zero_name, index=0) _link_enum_strings(one_name, index=1)
[docs]@register_record class BoFields(RecordFieldGroup): _record_type = "bo" _dtype = ChannelType.ENUM # DTYP of .VAL has_val_field = True device_type = pvproperty(name='DTYP', dtype=ChannelType.ENUM, enum_strings=menus.dtyp_bo.get_string_tuple(), doc='Device Type') hardware_mask = pvproperty(name='MASK', dtype=ChannelType.LONG, doc='Hardware Mask', read_only=True) last_value_alarmed = pvproperty(name='LALM', dtype=ChannelType.INT, doc='Last Value Alarmed', read_only=True) last_value_monitored = pvproperty(name='MLST', dtype=ChannelType.INT, doc='Last Value Monitored', read_only=True) prev_readback_value = pvproperty(name='ORBV', dtype=ChannelType.LONG, doc='Prev Readback Value', read_only=True) raw_value = pvproperty(name='RVAL', dtype=ChannelType.LONG, doc='Raw Value') readback_value = pvproperty(name='RBV', dtype=ChannelType.LONG, doc='Readback Value', read_only=True) simulation_mode = pvproperty( name='SIMM', dtype=ChannelType.ENUM, enum_strings=menus.menuYesNo.get_string_tuple(), doc='Simulation Mode') prev_raw_value = pvproperty(name='ORAW', dtype=ChannelType.LONG, doc='prev Raw Value', read_only=True) change_of_state_sevr = pvproperty( name='COSV', dtype=ChannelType.ENUM, enum_strings=menus.menuAlarmSevr.get_string_tuple(), doc='Change of State Sevr') one_error_severity = pvproperty( name='OSV', dtype=ChannelType.ENUM, enum_strings=menus.menuAlarmSevr.get_string_tuple(), doc='One Error Severity') zero_error_severity = pvproperty( name='ZSV', dtype=ChannelType.ENUM, enum_strings=menus.menuAlarmSevr.get_string_tuple(), doc='Zero Error Severity') one_name = pvproperty(name='ONAM', dtype=ChannelType.CHAR, max_length=26, report_as_string=True, doc='One Name') zero_name = pvproperty(name='ZNAM', dtype=ChannelType.CHAR, max_length=26, report_as_string=True, doc='Zero Name') simulation_mode_link = pvproperty(name='SIML', dtype=ChannelType.STRING, doc='Simulation Mode Link') simulation_output_link = pvproperty(name='SIOL', dtype=ChannelType.STRING, doc='Simulation Output Link') simulation_mode_severity = pvproperty( name='SIMS', dtype=ChannelType.ENUM, enum_strings=menus.menuAlarmSevr.get_string_tuple(), doc='Simulation Mode Severity') desired_output_loc = pvproperty(name='DOL', dtype=ChannelType.STRING, doc='Desired Output Loc') invalid_outpt_action = pvproperty( name='IVOA', dtype=ChannelType.ENUM, enum_strings=menus.menuIvoa.get_string_tuple(), doc='INVALID outpt action') invalid_output_value = pvproperty(name='IVOV', dtype=ChannelType.INT, doc='INVALID output value') output_mode_select = pvproperty( name='OMSL', dtype=ChannelType.ENUM, enum_strings=menus.menuOmsl.get_string_tuple(), doc='Output Mode Select') output_specification = pvproperty(name='OUT', dtype=ChannelType.STRING, doc='Output Specification') seconds_to_hold_high = pvproperty(name='HIGH', dtype=ChannelType.DOUBLE, doc='Seconds to Hold High') prev_simulation_mode = pvproperty( name='OLDSIMM', dtype=ChannelType.ENUM, enum_strings=menus.menuSimm.get_string_tuple(), doc='Prev. Simulation Mode', read_only=True) sim_mode_async_delay = pvproperty(name='SDLY', dtype=ChannelType.DOUBLE, doc='Sim. Mode Async Delay', value=-1.0) sim_mode_scan = pvproperty(name='SSCN', dtype=ChannelType.ENUM, enum_strings=menus.menuScan.get_string_tuple(), doc='Sim. Mode Scan', value=0) # current_value = pvproperty(name='VAL', # dtype=ChannelType.ENUM, # doc='Current Value') _link_enum_strings(zero_name, index=0) _link_enum_strings(one_name, index=1)
[docs]@register_record class CalcFields(RecordFieldGroup, _Limits): _record_type = "calc" _dtype = ChannelType.DOUBLE # DTYP of .VAL has_val_field = True device_type = pvproperty(name='DTYP', dtype=ChannelType.ENUM, enum_strings=menus.dtyp_calc.get_string_tuple(), doc='Device Type') last_val_monitored = pvproperty(name='MLST', dtype=ChannelType.DOUBLE, doc='Last Val Monitored', read_only=True) last_value_alarmed = pvproperty(name='LALM', dtype=ChannelType.DOUBLE, doc='Last Value Alarmed', read_only=True) last_value_archived = pvproperty(name='ALST', dtype=ChannelType.DOUBLE, doc='Last Value Archived', read_only=True) alarm_deadband = pvproperty(name='HYST', dtype=ChannelType.DOUBLE, doc='Alarm Deadband') calculation = pvproperty(name='CALC', dtype=ChannelType.CHAR, max_length=80, report_as_string=True, doc='Calculation', value=chr(0)) archive_deadband = pvproperty(name='ADEL', dtype=ChannelType.DOUBLE, doc='Archive Deadband') display_precision = pvproperty(name='PREC', dtype=ChannelType.INT, doc='Display Precision') monitor_deadband = pvproperty(name='MDEL', dtype=ChannelType.DOUBLE, doc='Monitor Deadband') engineering_units = pvproperty(name='EGU', dtype=ChannelType.CHAR, max_length=16, report_as_string=True, doc='Engineering Units') value_of_input_a = pvproperty(name='A', dtype=ChannelType.DOUBLE, doc='Value of Input A') alarm_filter_time_constant = pvproperty(name='AFTC', dtype=ChannelType.DOUBLE, doc='Alarm Filter Time Constant') alarm_filter_value = pvproperty(name='AFVL', dtype=ChannelType.DOUBLE, doc='Alarm Filter Value', read_only=True) value_of_input_b = pvproperty(name='B', dtype=ChannelType.DOUBLE, doc='Value of Input B') value_of_input_c = pvproperty(name='C', dtype=ChannelType.DOUBLE, doc='Value of Input C') value_of_input_d = pvproperty(name='D', dtype=ChannelType.DOUBLE, doc='Value of Input D') value_of_input_e = pvproperty(name='E', dtype=ChannelType.DOUBLE, doc='Value of Input E') value_of_input_f = pvproperty(name='F', dtype=ChannelType.DOUBLE, doc='Value of Input F') value_of_input_g = pvproperty(name='G', dtype=ChannelType.DOUBLE, doc='Value of Input G') value_of_input_h = pvproperty(name='H', dtype=ChannelType.DOUBLE, doc='Value of Input H') value_of_input_i = pvproperty(name='I', dtype=ChannelType.DOUBLE, doc='Value of Input I') input_a = pvproperty(name='INPA', dtype=ChannelType.STRING, doc='Input A') input_b = pvproperty(name='INPB', dtype=ChannelType.STRING, doc='Input B') input_c = pvproperty(name='INPC', dtype=ChannelType.STRING, doc='Input C') input_d = pvproperty(name='INPD', dtype=ChannelType.STRING, doc='Input D') input_e = pvproperty(name='INPE', dtype=ChannelType.STRING, doc='Input E') input_f = pvproperty(name='INPF', dtype=ChannelType.STRING, doc='Input F') input_g = pvproperty(name='INPG', dtype=ChannelType.STRING, doc='Input G') input_h = pvproperty(name='INPH', dtype=ChannelType.STRING, doc='Input H') input_i = pvproperty(name='INPI', dtype=ChannelType.STRING, doc='Input I') input_j = pvproperty(name='INPJ', dtype=ChannelType.STRING, doc='Input J') input_k = pvproperty(name='INPK', dtype=ChannelType.STRING, doc='Input K') input_l = pvproperty(name='INPL', dtype=ChannelType.STRING, doc='Input L') value_of_input_j = pvproperty(name='J', dtype=ChannelType.DOUBLE, doc='Value of Input J') value_of_input_k = pvproperty(name='K', dtype=ChannelType.DOUBLE, doc='Value of Input K') value_of_input_l = pvproperty(name='L', dtype=ChannelType.DOUBLE, doc='Value of Input L') prev_value_of_a = pvproperty(name='LA', dtype=ChannelType.DOUBLE, doc='Prev Value of A', read_only=True) prev_value_of_b = pvproperty(name='LB', dtype=ChannelType.DOUBLE, doc='Prev Value of B', read_only=True) prev_value_of_c = pvproperty(name='LC', dtype=ChannelType.DOUBLE, doc='Prev Value of C', read_only=True) prev_value_of_d = pvproperty(name='LD', dtype=ChannelType.DOUBLE, doc='Prev Value of D', read_only=True) prev_value_of_e = pvproperty(name='LE', dtype=ChannelType.DOUBLE, doc='Prev Value of E', read_only=True) prev_value_of_f = pvproperty(name='LF', dtype=ChannelType.DOUBLE, doc='Prev Value of F', read_only=True) prev_value_of_g = pvproperty(name='LG', dtype=ChannelType.DOUBLE, doc='Prev Value of G', read_only=True) prev_value_of_h = pvproperty(name='LH', dtype=ChannelType.DOUBLE, doc='Prev Value of H', read_only=True) prev_value_of_i = pvproperty(name='LI', dtype=ChannelType.DOUBLE, doc='Prev Value of I', read_only=True) prev_value_of_j = pvproperty(name='LJ', dtype=ChannelType.DOUBLE, doc='Prev Value of J', read_only=True) prev_value_of_k = pvproperty(name='LK', dtype=ChannelType.DOUBLE, doc='Prev Value of K', read_only=True) prev_value_of_l = pvproperty(name='LL', dtype=ChannelType.DOUBLE, doc='Prev Value of L', read_only=True) # result = pvproperty(name='VAL', # dtype=ChannelType.DOUBLE, # doc='Result') _link_parent_attribute( display_precision, 'precision', ) _link_parent_attribute(archive_deadband, 'log_atol', use_setattr=True) _link_parent_attribute(monitor_deadband, 'value_atol', use_setattr=True)
[docs]@register_record class CalcoutFields(RecordFieldGroup, _Limits): _record_type = "calcout" _dtype = ChannelType.DOUBLE # DTYP of .VAL has_val_field = True device_type = pvproperty( name='DTYP', dtype=ChannelType.ENUM, enum_strings=menus.dtyp_calcout.get_string_tuple(), doc='Device Type') calc_valid = pvproperty(name='CLCV', dtype=ChannelType.LONG, doc='CALC Valid') last_val_monitored = pvproperty(name='MLST', dtype=ChannelType.DOUBLE, doc='Last Val Monitored', read_only=True) last_value_alarmed = pvproperty(name='LALM', dtype=ChannelType.DOUBLE, doc='Last Value Alarmed', read_only=True) last_value_archived = pvproperty(name='ALST', dtype=ChannelType.DOUBLE, doc='Last Value Archived', read_only=True) ocal_valid = pvproperty(name='OCLV', dtype=ChannelType.LONG, doc='OCAL Valid') out_pv_status = pvproperty( name='OUTV', dtype=ChannelType.ENUM, enum_strings=menus.calcoutINAV.get_string_tuple(), doc='OUT PV Status', read_only=True) output_delay_active = pvproperty(name='DLYA', dtype=ChannelType.INT, doc='Output Delay Active', read_only=True) output_value = pvproperty(name='OVAL', dtype=ChannelType.DOUBLE, doc='Output Value') prev_value_of_oval = pvproperty(name='POVL', dtype=ChannelType.DOUBLE, doc='Prev Value of OVAL') previous_value = pvproperty(name='PVAL', dtype=ChannelType.DOUBLE, doc='Previous Value') alarm_deadband = pvproperty(name='HYST', dtype=ChannelType.DOUBLE, doc='Alarm Deadband') output_execute_delay = pvproperty(name='ODLY', dtype=ChannelType.DOUBLE, doc='Output Execute Delay') calculation = pvproperty(name='CALC', dtype=ChannelType.CHAR, max_length=80, report_as_string=True, doc='Calculation', value=chr(0)) output_calculation = pvproperty(name='OCAL', dtype=ChannelType.CHAR, max_length=80, report_as_string=True, doc='Output Calculation', value=chr(0)) output_data_opt = pvproperty( name='DOPT', dtype=ChannelType.ENUM, enum_strings=menus.calcoutDOPT.get_string_tuple(), doc='Output Data Opt') output_execute_opt = pvproperty( name='OOPT', dtype=ChannelType.ENUM, enum_strings=menus.calcoutOOPT.get_string_tuple(), doc='Output Execute Opt') event_to_issue = pvproperty(name='OEVT', dtype=ChannelType.CHAR, max_length=40, report_as_string=True, doc='Event To Issue') archive_deadband = pvproperty(name='ADEL', dtype=ChannelType.DOUBLE, doc='Archive Deadband') display_precision = pvproperty(name='PREC', dtype=ChannelType.INT, doc='Display Precision') monitor_deadband = pvproperty(name='MDEL', dtype=ChannelType.DOUBLE, doc='Monitor Deadband') engineering_units = pvproperty(name='EGU', dtype=ChannelType.CHAR, max_length=16, report_as_string=True, doc='Engineering Units') invalid_output_action = pvproperty( name='IVOA', dtype=ChannelType.ENUM, enum_strings=menus.menuIvoa.get_string_tuple(), doc='INVALID output action') invalid_output_value = pvproperty(name='IVOV', dtype=ChannelType.DOUBLE, doc='INVALID output value') output_specification = pvproperty(name='OUT', dtype=ChannelType.STRING, doc='Output Specification') value_of_input_a = pvproperty(name='A', dtype=ChannelType.DOUBLE, doc='Value of Input A') value_of_input_b = pvproperty(name='B', dtype=ChannelType.DOUBLE, doc='Value of Input B') value_of_input_c = pvproperty(name='C', dtype=ChannelType.DOUBLE, doc='Value of Input C') value_of_input_d = pvproperty(name='D', dtype=ChannelType.DOUBLE, doc='Value of Input D') value_of_input_e = pvproperty(name='E', dtype=ChannelType.DOUBLE, doc='Value of Input E') value_of_input_f = pvproperty(name='F', dtype=ChannelType.DOUBLE, doc='Value of Input F') value_of_input_g = pvproperty(name='G', dtype=ChannelType.DOUBLE, doc='Value of Input G') value_of_input_h = pvproperty(name='H', dtype=ChannelType.DOUBLE, doc='Value of Input H') value_of_input_i = pvproperty(name='I', dtype=ChannelType.DOUBLE, doc='Value of Input I') inpa_pv_status = pvproperty( name='INAV', dtype=ChannelType.ENUM, enum_strings=menus.calcoutINAV.get_string_tuple(), doc='INPA PV Status', read_only=True, value=1) inpb_pv_status = pvproperty( name='INBV', dtype=ChannelType.ENUM, enum_strings=menus.calcoutINAV.get_string_tuple(), doc='INPB PV Status', read_only=True, value=1) inpc_pv_status = pvproperty( name='INCV', dtype=ChannelType.ENUM, enum_strings=menus.calcoutINAV.get_string_tuple(), doc='INPC PV Status', read_only=True, value=1) inpd_pv_status = pvproperty( name='INDV', dtype=ChannelType.ENUM, enum_strings=menus.calcoutINAV.get_string_tuple(), doc='INPD PV Status', read_only=True, value=1) inpe_pv_status = pvproperty( name='INEV', dtype=ChannelType.ENUM, enum_strings=menus.calcoutINAV.get_string_tuple(), doc='INPE PV Status', read_only=True, value=1) inpf_pv_status = pvproperty( name='INFV', dtype=ChannelType.ENUM, enum_strings=menus.calcoutINAV.get_string_tuple(), doc='INPF PV Status', read_only=True, value=1) inpg_pv_status = pvproperty( name='INGV', dtype=ChannelType.ENUM, enum_strings=menus.calcoutINAV.get_string_tuple(), doc='INPG PV Status', read_only=True, value=1) inph_pv_status = pvproperty( name='INHV', dtype=ChannelType.ENUM, enum_strings=menus.calcoutINAV.get_string_tuple(), doc='INPH PV Status', read_only=True, value=1) inpi_pv_status = pvproperty( name='INIV', dtype=ChannelType.ENUM, enum_strings=menus.calcoutINAV.get_string_tuple(), doc='INPI PV Status', read_only=True, value=1) inpj_pv_status = pvproperty( name='INJV', dtype=ChannelType.ENUM, enum_strings=menus.calcoutINAV.get_string_tuple(), doc='INPJ PV Status', read_only=True, value=1) inpk_pv_status = pvproperty( name='INKV', dtype=ChannelType.ENUM, enum_strings=menus.calcoutINAV.get_string_tuple(), doc='INPK PV Status', read_only=True, value=1) inpl_pv_status = pvproperty( name='INLV', dtype=ChannelType.ENUM, enum_strings=menus.calcoutINAV.get_string_tuple(), doc='INPL PV Status', read_only=True, value=1) input_a = pvproperty(name='INPA', dtype=ChannelType.STRING, doc='Input A') input_b = pvproperty(name='INPB', dtype=ChannelType.STRING, doc='Input B') input_c = pvproperty(name='INPC', dtype=ChannelType.STRING, doc='Input C') input_d = pvproperty(name='INPD', dtype=ChannelType.STRING, doc='Input D') input_e = pvproperty(name='INPE', dtype=ChannelType.STRING, doc='Input E') input_f = pvproperty(name='INPF', dtype=ChannelType.STRING, doc='Input F') input_g = pvproperty(name='INPG', dtype=ChannelType.STRING, doc='Input G') input_h = pvproperty(name='INPH', dtype=ChannelType.STRING, doc='Input H') input_i = pvproperty(name='INPI', dtype=ChannelType.STRING, doc='Input I') input_j = pvproperty(name='INPJ', dtype=ChannelType.STRING, doc='Input J') input_k = pvproperty(name='INPK', dtype=ChannelType.STRING, doc='Input K') input_l = pvproperty(name='INPL', dtype=ChannelType.STRING, doc='Input L') value_of_input_j = pvproperty(name='J', dtype=ChannelType.DOUBLE, doc='Value of Input J') value_of_input_k = pvproperty(name='K', dtype=ChannelType.DOUBLE, doc='Value of Input K') value_of_input_l = pvproperty(name='L', dtype=ChannelType.DOUBLE, doc='Value of Input L') prev_value_of_a = pvproperty(name='LA', dtype=ChannelType.DOUBLE, doc='Prev Value of A', read_only=True) prev_value_of_b = pvproperty(name='LB', dtype=ChannelType.DOUBLE, doc='Prev Value of B', read_only=True) prev_value_of_c = pvproperty(name='LC', dtype=ChannelType.DOUBLE, doc='Prev Value of C', read_only=True) prev_value_of_d = pvproperty(name='LD', dtype=ChannelType.DOUBLE, doc='Prev Value of D', read_only=True) prev_value_of_e = pvproperty(name='LE', dtype=ChannelType.DOUBLE, doc='Prev Value of E', read_only=True) prev_value_of_f = pvproperty(name='LF', dtype=ChannelType.DOUBLE, doc='Prev Value of F', read_only=True) prev_value_of_g = pvproperty(name='LG', dtype=ChannelType.DOUBLE, doc='Prev Value of G', read_only=True) prev_value_of_h = pvproperty(name='LH', dtype=ChannelType.DOUBLE, doc='Prev Value of H', read_only=True) prev_value_of_i = pvproperty(name='LI', dtype=ChannelType.DOUBLE, doc='Prev Value of I', read_only=True) prev_value_of_j = pvproperty(name='LJ', dtype=ChannelType.DOUBLE, doc='Prev Value of J', read_only=True) prev_value_of_k = pvproperty(name='LK', dtype=ChannelType.DOUBLE, doc='Prev Value of K', read_only=True) prev_value_of_l = pvproperty(name='LL', dtype=ChannelType.DOUBLE, doc='Prev Value of L', read_only=True) # result = pvproperty(name='VAL', # dtype=ChannelType.DOUBLE, # doc='Result') _link_parent_attribute( display_precision, 'precision', ) _link_parent_attribute(archive_deadband, 'log_atol', use_setattr=True) _link_parent_attribute(monitor_deadband, 'value_atol', use_setattr=True)
[docs]@register_record class CompressFields(RecordFieldGroup): _record_type = "compress" _dtype = None # DTYP of .VAL has_val_field = False device_type = pvproperty( name='DTYP', dtype=ChannelType.ENUM, enum_strings=menus.dtyp_compress.get_string_tuple(), doc='Device Type') compress_value_buffer = pvproperty(name='CVB', dtype=ChannelType.DOUBLE, doc='Compress Value Buffer', read_only=True) compressed_array_inx = pvproperty(name='INX', dtype=ChannelType.LONG, doc='Compressed Array Inx', read_only=True) number_used = pvproperty(name='NUSE', dtype=ChannelType.LONG, doc='Number Used', read_only=True) number_of_elements_in_working_buffer = pvproperty( name='INPN', dtype=ChannelType.LONG, doc='Number of elements in Working Buffer', read_only=True) old_number_used = pvproperty(name='OUSE', dtype=ChannelType.LONG, doc='Old Number Used', read_only=True) reset = pvproperty(name='RES', dtype=ChannelType.INT, doc='Reset') compression_algorithm = pvproperty( name='ALG', dtype=ChannelType.ENUM, enum_strings=menus.compressALG.get_string_tuple(), doc='Compression Algorithm') init_high_interest_lim = pvproperty(name='IHIL', dtype=ChannelType.DOUBLE, doc='Init High Interest Lim') init_low_interest_lim = pvproperty(name='ILIL', dtype=ChannelType.DOUBLE, doc='Init Low Interest Lim') input_specification = pvproperty(name='INP', dtype=ChannelType.STRING, doc='Input Specification') n_to_1_compression = pvproperty(name='N', dtype=ChannelType.LONG, doc='N to 1 Compression', value=1) number_of_values = pvproperty(name='NSAM', dtype=ChannelType.LONG, doc='Number of Values', read_only=True, value=1) display_precision = pvproperty(name='PREC', dtype=ChannelType.INT, doc='Display Precision') engineering_units = pvproperty(name='EGU', dtype=ChannelType.CHAR, max_length=16, report_as_string=True, doc='Engineering Units') high_operating_range = pvproperty(name='HOPR', dtype=ChannelType.DOUBLE, doc='High Operating Range') low_operating_range = pvproperty(name='LOPR', dtype=ChannelType.DOUBLE, doc='Low Operating Range') offset = pvproperty(name='OFF', dtype=ChannelType.LONG, doc='Offset', read_only=True) buffering_algorithm = pvproperty( name='BALG', dtype=ChannelType.ENUM, enum_strings=menus.bufferingALG.get_string_tuple(), doc='Buffering Algorithm') _link_parent_attribute( high_operating_range, 'upper_ctrl_limit', ) _link_parent_attribute( low_operating_range, 'lower_ctrl_limit', ) _link_parent_attribute( display_precision, 'precision', )
[docs]@register_record class DfanoutFields(RecordFieldGroup, _Limits): _record_type = "dfanout" _dtype = ChannelType.DOUBLE # DTYP of .VAL has_val_field = True device_type = pvproperty( name='DTYP', dtype=ChannelType.ENUM, enum_strings=menus.dtyp_dfanout.get_string_tuple(), doc='Device Type') last_val_monitored = pvproperty(name='MLST', dtype=ChannelType.DOUBLE, doc='Last Val Monitored', read_only=True) last_value_alarmed = pvproperty(name='LALM', dtype=ChannelType.DOUBLE, doc='Last Value Alarmed', read_only=True) last_value_archived = pvproperty(name='ALST', dtype=ChannelType.DOUBLE, doc='Last Value Archived', read_only=True) link_selection = pvproperty(name='SELN', dtype=ChannelType.INT, doc='Link Selection', value=1) alarm_deadband = pvproperty(name='HYST', dtype=ChannelType.DOUBLE, doc='Alarm Deadband') archive_deadband = pvproperty(name='ADEL', dtype=ChannelType.DOUBLE, doc='Archive Deadband') display_precision = pvproperty(name='PREC', dtype=ChannelType.INT, doc='Display Precision') monitor_deadband = pvproperty(name='MDEL', dtype=ChannelType.DOUBLE, doc='Monitor Deadband') engineering_units = pvproperty(name='EGU', dtype=ChannelType.CHAR, max_length=16, report_as_string=True, doc='Engineering Units') desired_output_loc = pvproperty(name='DOL', dtype=ChannelType.STRING, doc='Desired Output Loc') link_selection_loc = pvproperty(name='SELL', dtype=ChannelType.STRING, doc='Link Selection Loc') select_mechanism = pvproperty( name='SELM', dtype=ChannelType.ENUM, enum_strings=menus.dfanoutSELM.get_string_tuple(), doc='Select Mechanism') output_mode_select = pvproperty( name='OMSL', dtype=ChannelType.ENUM, enum_strings=menus.menuOmsl.get_string_tuple(), doc='Output Mode Select') output_spec_a = pvproperty(name='OUTA', dtype=ChannelType.STRING, doc='Output Spec A') output_spec_b = pvproperty(name='OUTB', dtype=ChannelType.STRING, doc='Output Spec B') output_spec_c = pvproperty(name='OUTC', dtype=ChannelType.STRING, doc='Output Spec C') output_spec_d = pvproperty(name='OUTD', dtype=ChannelType.STRING, doc='Output Spec D') output_spec_e = pvproperty(name='OUTE', dtype=ChannelType.STRING, doc='Output Spec E') output_spec_f = pvproperty(name='OUTF', dtype=ChannelType.STRING, doc='Output Spec F') output_spec_g = pvproperty(name='OUTG', dtype=ChannelType.STRING, doc='Output Spec G') output_spec_h = pvproperty(name='OUTH', dtype=ChannelType.STRING, doc='Output Spec H') # desired_output = pvproperty(name='VAL', # dtype=ChannelType.DOUBLE, # doc='Desired Output') _link_parent_attribute( display_precision, 'precision', ) _link_parent_attribute(archive_deadband, 'log_atol', use_setattr=True) _link_parent_attribute(monitor_deadband, 'value_atol', use_setattr=True)
[docs]@register_record class EventFields(RecordFieldGroup): _record_type = "event" _dtype = ChannelType.STRING # DTYP of .VAL has_val_field = True device_type = pvproperty(name='DTYP', dtype=ChannelType.ENUM, enum_strings=menus.dtyp_event.get_string_tuple(), doc='Device Type') simulation_mode = pvproperty( name='SIMM', dtype=ChannelType.ENUM, enum_strings=menus.menuYesNo.get_string_tuple(), doc='Simulation Mode') simulation_value = pvproperty(name='SVAL', dtype=ChannelType.CHAR, max_length=40, report_as_string=True, doc='Simulation Value') input_specification = pvproperty(name='INP', dtype=ChannelType.STRING, doc='Input Specification') sim_input_specifctn = pvproperty(name='SIOL', dtype=ChannelType.STRING, doc='Sim Input Specifctn') sim_mode_location = pvproperty(name='SIML', dtype=ChannelType.STRING, doc='Sim Mode Location') sim_mode_alarm_svrty = pvproperty( name='SIMS', dtype=ChannelType.ENUM, enum_strings=menus.menuAlarmSevr.get_string_tuple(), doc='Sim mode Alarm Svrty') prev_simulation_mode = pvproperty( name='OLDSIMM', dtype=ChannelType.ENUM, enum_strings=menus.menuSimm.get_string_tuple(), doc='Prev. Simulation Mode', read_only=True) sim_mode_async_delay = pvproperty(name='SDLY', dtype=ChannelType.DOUBLE, doc='Sim. Mode Async Delay', value=-1.0) sim_mode_scan = pvproperty(name='SSCN', dtype=ChannelType.ENUM, enum_strings=menus.menuScan.get_string_tuple(), doc='Sim. Mode Scan', value=0)
# event_name_to_post = pvproperty(name='VAL', # dtype=ChannelType.CHAR, # max_length=40,report_as_string=True,doc='Event Name To Post')
[docs]@register_record class FanoutFields(RecordFieldGroup): _record_type = "fanout" _dtype = ChannelType.LONG # DTYP of .VAL has_val_field = True device_type = pvproperty(name='DTYP', dtype=ChannelType.ENUM, enum_strings=menus.dtyp_fanout.get_string_tuple(), doc='Device Type') link_selection = pvproperty(name='SELN', dtype=ChannelType.INT, doc='Link Selection', value=1) forward_link_1 = pvproperty(name='LNK1', dtype=ChannelType.STRING, doc='Forward Link 1') forward_link_2 = pvproperty(name='LNK2', dtype=ChannelType.STRING, doc='Forward Link 2') forward_link_3 = pvproperty(name='LNK3', dtype=ChannelType.STRING, doc='Forward Link 3') forward_link_4 = pvproperty(name='LNK4', dtype=ChannelType.STRING, doc='Forward Link 4') forward_link_5 = pvproperty(name='LNK5', dtype=ChannelType.STRING, doc='Forward Link 5') forward_link_6 = pvproperty(name='LNK6', dtype=ChannelType.STRING, doc='Forward Link 6') link_selection_loc = pvproperty(name='SELL', dtype=ChannelType.STRING, doc='Link Selection Loc') select_mechanism = pvproperty( name='SELM', dtype=ChannelType.ENUM, enum_strings=menus.fanoutSELM.get_string_tuple(), doc='Select Mechanism') forward_link_0 = pvproperty(name='LNK0', dtype=ChannelType.STRING, doc='Forward Link 0') forward_link_7 = pvproperty(name='LNK7', dtype=ChannelType.STRING, doc='Forward Link 7') forward_link_8 = pvproperty(name='LNK8', dtype=ChannelType.STRING, doc='Forward Link 8') forward_link_9 = pvproperty(name='LNK9', dtype=ChannelType.STRING, doc='Forward Link 9') forward_link_10 = pvproperty(name='LNKA', dtype=ChannelType.STRING, doc='Forward Link 10') forward_link_11 = pvproperty(name='LNKB', dtype=ChannelType.STRING, doc='Forward Link 11') forward_link_12 = pvproperty(name='LNKC', dtype=ChannelType.STRING, doc='Forward Link 12') forward_link_13 = pvproperty(name='LNKD', dtype=ChannelType.STRING, doc='Forward Link 13') forward_link_14 = pvproperty(name='LNKE', dtype=ChannelType.STRING, doc='Forward Link 14') forward_link_15 = pvproperty(name='LNKF', dtype=ChannelType.STRING, doc='Forward Link 15') offset_for_specified = pvproperty(name='OFFS', dtype=ChannelType.INT, doc='Offset for Specified', value=0) shift_for_mask_mode = pvproperty(name='SHFT', dtype=ChannelType.INT, doc='Shift for Mask mode', value=-1)
# used_to_trigger = pvproperty(name='VAL', # dtype=ChannelType.LONG, # doc='Used to trigger')
[docs]@register_record class HistogramFields(RecordFieldGroup): _record_type = "histogram" _dtype = None # DTYP of .VAL has_val_field = False device_type = pvproperty( name='DTYP', dtype=ChannelType.ENUM, enum_strings=menus.dtyp_histogram.get_string_tuple(), doc='Device Type') collection_control = pvproperty( name='CMD', dtype=ChannelType.ENUM, enum_strings=menus.histogramCMD.get_string_tuple(), doc='Collection Control') collection_status = pvproperty(name='CSTA', dtype=ChannelType.INT, doc='Collection Status', read_only=True, value=1) counts_since_monitor = pvproperty(name='MCNT', dtype=ChannelType.INT, doc='Counts Since Monitor', read_only=True) element_width = pvproperty(name='WDTH', dtype=ChannelType.DOUBLE, doc='Element Width', read_only=True) signal_value = pvproperty(name='SGNL', dtype=ChannelType.DOUBLE, doc='Signal Value') simulation_mode = pvproperty( name='SIMM', dtype=ChannelType.ENUM, enum_strings=menus.menuYesNo.get_string_tuple(), doc='Simulation Mode') simulation_value = pvproperty(name='SVAL', dtype=ChannelType.DOUBLE, doc='Simulation Value') display_precision = pvproperty(name='PREC', dtype=ChannelType.INT, doc='Display Precision') high_operating_range = pvproperty(name='HOPR', dtype=ChannelType.LONG, doc='High Operating Range') low_operating_range = pvproperty(name='LOPR', dtype=ChannelType.LONG, doc='Low Operating Range') lower_signal_limit = pvproperty(name='LLIM', dtype=ChannelType.DOUBLE, doc='Lower Signal Limit ') monitor_count_deadband = pvproperty(name='MDEL', dtype=ChannelType.INT, doc='Monitor Count Deadband') monitor_seconds_dband = pvproperty(name='SDEL', dtype=ChannelType.DOUBLE, doc='Monitor Seconds Dband') num_of_array_elements = pvproperty(name='NELM', dtype=ChannelType.INT, doc='Num of Array Elements', read_only=True, value=1) upper_signal_limit = pvproperty(name='ULIM', dtype=ChannelType.DOUBLE, doc='Upper Signal Limit') signal_value_location = pvproperty(name='SVL', dtype=ChannelType.STRING, doc='Signal Value Location') simulation_input_link = pvproperty(name='SIOL', dtype=ChannelType.STRING, doc='Simulation Input Link') simulation_mode_link = pvproperty(name='SIML', dtype=ChannelType.STRING, doc='Simulation Mode Link') simulation_mode_severity = pvproperty( name='SIMS', dtype=ChannelType.ENUM, enum_strings=menus.menuAlarmSevr.get_string_tuple(), doc='Simulation Mode Severity') prev_simulation_mode = pvproperty( name='OLDSIMM', dtype=ChannelType.ENUM, enum_strings=menus.menuSimm.get_string_tuple(), doc='Prev. Simulation Mode', read_only=True) sim_mode_async_delay = pvproperty(name='SDLY', dtype=ChannelType.DOUBLE, doc='Sim. Mode Async Delay', value=-1.0) sim_mode_scan = pvproperty(name='SSCN', dtype=ChannelType.ENUM, enum_strings=menus.menuScan.get_string_tuple(), doc='Sim. Mode Scan', value=0) _link_parent_attribute( display_precision, 'precision', ) _link_parent_attribute( high_operating_range, 'upper_ctrl_limit', ) _link_parent_attribute( low_operating_range, 'lower_ctrl_limit', )
[docs]@register_record class LonginFields(RecordFieldGroup, _LimitsLong): _record_type = "longin" _dtype = ChannelType.LONG # DTYP of .VAL has_val_field = True device_type = pvproperty(name='DTYP', dtype=ChannelType.ENUM, enum_strings=menus.dtyp_longin.get_string_tuple(), doc='Device Type') last_val_monitored = pvproperty(name='MLST', dtype=ChannelType.LONG, doc='Last Val Monitored', read_only=True) last_value_alarmed = pvproperty(name='LALM', dtype=ChannelType.LONG, doc='Last Value Alarmed', read_only=True) last_value_archived = pvproperty(name='ALST', dtype=ChannelType.LONG, doc='Last Value Archived', read_only=True) simulation_mode = pvproperty( name='SIMM', dtype=ChannelType.ENUM, enum_strings=menus.menuYesNo.get_string_tuple(), doc='Simulation Mode') simulation_value = pvproperty(name='SVAL', dtype=ChannelType.LONG, doc='Simulation Value') alarm_deadband = pvproperty(name='HYST', dtype=ChannelType.LONG, doc='Alarm Deadband') archive_deadband = pvproperty(name='ADEL', dtype=ChannelType.LONG, doc='Archive Deadband') monitor_deadband = pvproperty(name='MDEL', dtype=ChannelType.LONG, doc='Monitor Deadband') engineering_units = pvproperty(name='EGU', dtype=ChannelType.CHAR, max_length=16, report_as_string=True, doc='Engineering Units') input_specification = pvproperty(name='INP', dtype=ChannelType.STRING, doc='Input Specification') sim_input_specifctn = pvproperty(name='SIOL', dtype=ChannelType.STRING, doc='Sim Input Specifctn') sim_mode_location = pvproperty(name='SIML', dtype=ChannelType.STRING, doc='Sim Mode Location') sim_mode_alarm_svrty = pvproperty( name='SIMS', dtype=ChannelType.ENUM, enum_strings=menus.menuAlarmSevr.get_string_tuple(), doc='Sim mode Alarm Svrty') alarm_filter_time_constant = pvproperty(name='AFTC', dtype=ChannelType.DOUBLE, doc='Alarm Filter Time Constant') alarm_filter_value = pvproperty(name='AFVL', dtype=ChannelType.DOUBLE, doc='Alarm Filter Value', read_only=True) prev_simulation_mode = pvproperty( name='OLDSIMM', dtype=ChannelType.ENUM, enum_strings=menus.menuSimm.get_string_tuple(), doc='Prev. Simulation Mode', read_only=True) sim_mode_async_delay = pvproperty(name='SDLY', dtype=ChannelType.DOUBLE, doc='Sim. Mode Async Delay', value=-1.0) sim_mode_scan = pvproperty(name='SSCN', dtype=ChannelType.ENUM, enum_strings=menus.menuScan.get_string_tuple(), doc='Sim. Mode Scan', value=0) # current_value = pvproperty(name='VAL', # dtype=ChannelType.LONG, # doc='Current value') _link_parent_attribute(archive_deadband, 'log_atol', use_setattr=True) _link_parent_attribute(monitor_deadband, 'value_atol', use_setattr=True)
[docs]@register_record class LongoutFields(RecordFieldGroup, _LimitsLong): _record_type = "longout" _dtype = ChannelType.LONG # DTYP of .VAL has_val_field = True device_type = pvproperty( name='DTYP', dtype=ChannelType.ENUM, enum_strings=menus.dtyp_longout.get_string_tuple(), doc='Device Type') last_val_monitored = pvproperty(name='MLST', dtype=ChannelType.LONG, doc='Last Val Monitored', read_only=True) last_value_alarmed = pvproperty(name='LALM', dtype=ChannelType.LONG, doc='Last Value Alarmed', read_only=True) last_value_archived = pvproperty(name='ALST', dtype=ChannelType.LONG, doc='Last Value Archived', read_only=True) simulation_mode = pvproperty( name='SIMM', dtype=ChannelType.ENUM, enum_strings=menus.menuYesNo.get_string_tuple(), doc='Simulation Mode') alarm_deadband = pvproperty(name='HYST', dtype=ChannelType.LONG, doc='Alarm Deadband') archive_deadband = pvproperty(name='ADEL', dtype=ChannelType.LONG, doc='Archive Deadband') monitor_deadband = pvproperty(name='MDEL', dtype=ChannelType.LONG, doc='Monitor Deadband') engineering_units = pvproperty(name='EGU', dtype=ChannelType.CHAR, max_length=16, report_as_string=True, doc='Engineering Units') sim_mode_location = pvproperty(name='SIML', dtype=ChannelType.STRING, doc='Sim Mode Location') sim_output_specifctn = pvproperty(name='SIOL', dtype=ChannelType.STRING, doc='Sim Output Specifctn') sim_mode_alarm_svrty = pvproperty( name='SIMS', dtype=ChannelType.ENUM, enum_strings=menus.menuAlarmSevr.get_string_tuple(), doc='Sim mode Alarm Svrty') desired_output_loc = pvproperty(name='DOL', dtype=ChannelType.STRING, doc='Desired Output Loc') drive_high_limit = pvproperty(name='DRVH', dtype=ChannelType.LONG, doc='Drive High Limit') drive_low_limit = pvproperty(name='DRVL', dtype=ChannelType.LONG, doc='Drive Low Limit') invalid_output_action = pvproperty( name='IVOA', dtype=ChannelType.ENUM, enum_strings=menus.menuIvoa.get_string_tuple(), doc='INVALID output action') invalid_output_value = pvproperty(name='IVOV', dtype=ChannelType.LONG, doc='INVALID output value') output_mode_select = pvproperty( name='OMSL', dtype=ChannelType.ENUM, enum_strings=menus.menuOmsl.get_string_tuple(), doc='Output Mode Select') output_specification = pvproperty(name='OUT', dtype=ChannelType.STRING, doc='Output Specification') prev_simulation_mode = pvproperty( name='OLDSIMM', dtype=ChannelType.ENUM, enum_strings=menus.menuSimm.get_string_tuple(), doc='Prev. Simulation Mode', read_only=True) sim_mode_async_delay = pvproperty(name='SDLY', dtype=ChannelType.DOUBLE, doc='Sim. Mode Async Delay', value=-1.0) sim_mode_scan = pvproperty(name='SSCN', dtype=ChannelType.ENUM, enum_strings=menus.menuScan.get_string_tuple(), doc='Sim. Mode Scan', value=0) # desired_output = pvproperty(name='VAL', # dtype=ChannelType.LONG, # doc='Desired Output') _link_parent_attribute(archive_deadband, 'log_atol', use_setattr=True) _link_parent_attribute(monitor_deadband, 'value_atol', use_setattr=True)
[docs]@register_record class MbbiFields(RecordFieldGroup): _record_type = "mbbi" _dtype = ChannelType.ENUM # DTYP of .VAL has_val_field = True device_type = pvproperty(name='DTYP', dtype=ChannelType.ENUM, enum_strings=menus.dtyp_mbbi.get_string_tuple(), doc='Device Type') hardware_mask = pvproperty(name='MASK', dtype=ChannelType.LONG, doc='Hardware Mask', read_only=True) last_value_alarmed = pvproperty(name='LALM', dtype=ChannelType.INT, doc='Last Value Alarmed', read_only=True) last_value_monitored = pvproperty(name='MLST', dtype=ChannelType.INT, doc='Last Value Monitored', read_only=True) prev_raw_value = pvproperty(name='ORAW', dtype=ChannelType.LONG, doc='Prev Raw Value', read_only=True) raw_value = pvproperty(name='RVAL', dtype=ChannelType.LONG, doc='Raw Value') simulation_mode = pvproperty( name='SIMM', dtype=ChannelType.ENUM, enum_strings=menus.menuSimm.get_string_tuple(), doc='Simulation Mode') states_defined = pvproperty(name='SDEF', dtype=ChannelType.INT, doc='States Defined', read_only=True) change_of_state_svr = pvproperty( name='COSV', dtype=ChannelType.ENUM, enum_strings=menus.menuAlarmSevr.get_string_tuple(), doc='Change of State Svr') number_of_bits = pvproperty(name='NOBT', dtype=ChannelType.INT, doc='Number of Bits', read_only=True) shift = pvproperty(name='SHFT', dtype=ChannelType.INT, doc='Shift') simulation_mode_severity = pvproperty( name='SIMS', dtype=ChannelType.ENUM, enum_strings=menus.menuAlarmSevr.get_string_tuple(), doc='Simulation Mode Severity') unknown_state_severity = pvproperty( name='UNSV', dtype=ChannelType.ENUM, enum_strings=menus.menuAlarmSevr.get_string_tuple(), doc='Unknown State Severity') input_specification = pvproperty(name='INP', dtype=ChannelType.STRING, doc='Input Specification') simulation_input_link = pvproperty(name='SIOL', dtype=ChannelType.STRING, doc='Simulation Input Link') simulation_value = pvproperty(name='SVAL', dtype=ChannelType.LONG, doc='Simulation Value') alarm_filter_time_constant = pvproperty(name='AFTC', dtype=ChannelType.DOUBLE, doc='Alarm Filter Time Constant') alarm_filter_value = pvproperty(name='AFVL', dtype=ChannelType.DOUBLE, doc='Alarm Filter Value', read_only=True) eight_string = pvproperty(name='EIST', dtype=ChannelType.CHAR, max_length=26, report_as_string=True, doc='Eight String') state_eight_severity = pvproperty( name='EISV', dtype=ChannelType.ENUM, enum_strings=menus.menuAlarmSevr.get_string_tuple(), doc='State Eight Severity') eight_value = pvproperty(name='EIVL', dtype=ChannelType.LONG, doc='Eight Value') eleven_string = pvproperty(name='ELST', dtype=ChannelType.CHAR, max_length=26, report_as_string=True, doc='Eleven String') state_eleven_severity = pvproperty( name='ELSV', dtype=ChannelType.ENUM, enum_strings=menus.menuAlarmSevr.get_string_tuple(), doc='State Eleven Severity') eleven_value = pvproperty(name='ELVL', dtype=ChannelType.LONG, doc='Eleven Value') fifteen_string = pvproperty(name='FFST', dtype=ChannelType.CHAR, max_length=26, report_as_string=True, doc='Fifteen String') state_fifteen_severity = pvproperty( name='FFSV', dtype=ChannelType.ENUM, enum_strings=menus.menuAlarmSevr.get_string_tuple(), doc='State Fifteen Severity') fifteen_value = pvproperty(name='FFVL', dtype=ChannelType.LONG, doc='Fifteen Value') four_string = pvproperty(name='FRST', dtype=ChannelType.CHAR, max_length=26, report_as_string=True, doc='Four String') state_four_severity = pvproperty( name='FRSV', dtype=ChannelType.ENUM, enum_strings=menus.menuAlarmSevr.get_string_tuple(), doc='State Four Severity') four_value = pvproperty(name='FRVL', dtype=ChannelType.LONG, doc='Four Value') fourteen_string = pvproperty(name='FTST', dtype=ChannelType.CHAR, max_length=26, report_as_string=True, doc='Fourteen String') state_fourteen_sevr = pvproperty( name='FTSV', dtype=ChannelType.ENUM, enum_strings=menus.menuAlarmSevr.get_string_tuple(), doc='State Fourteen Sevr') fourteen_value = pvproperty(name='FTVL', dtype=ChannelType.LONG, doc='Fourteen Value') five_string = pvproperty(name='FVST', dtype=ChannelType.CHAR, max_length=26, report_as_string=True, doc='Five String') state_five_severity = pvproperty( name='FVSV', dtype=ChannelType.ENUM, enum_strings=menus.menuAlarmSevr.get_string_tuple(), doc='State Five Severity') five_value = pvproperty(name='FVVL', dtype=ChannelType.LONG, doc='Five Value') nine_string = pvproperty(name='NIST', dtype=ChannelType.CHAR, max_length=26, report_as_string=True, doc='Nine String') state_nine_severity = pvproperty( name='NISV', dtype=ChannelType.ENUM, enum_strings=menus.menuAlarmSevr.get_string_tuple(), doc='State Nine Severity') nine_value = pvproperty(name='NIVL', dtype=ChannelType.LONG, doc='Nine Value') prev_simulation_mode = pvproperty( name='OLDSIMM', dtype=ChannelType.ENUM, enum_strings=menus.menuSimm.get_string_tuple(), doc='Prev. Simulation Mode', read_only=True) one_string = pvproperty(name='ONST', dtype=ChannelType.CHAR, max_length=26, report_as_string=True, doc='One String') state_one_severity = pvproperty( name='ONSV', dtype=ChannelType.ENUM, enum_strings=menus.menuAlarmSevr.get_string_tuple(), doc='State One Severity') one_value = pvproperty(name='ONVL', dtype=ChannelType.LONG, doc='One Value') sim_mode_async_delay = pvproperty(name='SDLY', dtype=ChannelType.DOUBLE, doc='Sim. Mode Async Delay', value=-1.0) simulation_mode_link = pvproperty(name='SIML', dtype=ChannelType.STRING, doc='Simulation Mode Link') sim_mode_scan = pvproperty(name='SSCN', dtype=ChannelType.ENUM, enum_strings=menus.menuScan.get_string_tuple(), doc='Sim. Mode Scan', value=0) seven_string = pvproperty(name='SVST', dtype=ChannelType.CHAR, max_length=26, report_as_string=True, doc='Seven String') state_seven_severity = pvproperty( name='SVSV', dtype=ChannelType.ENUM, enum_strings=menus.menuAlarmSevr.get_string_tuple(), doc='State Seven Severity') seven_value = pvproperty(name='SVVL', dtype=ChannelType.LONG, doc='Seven Value') six_string = pvproperty(name='SXST', dtype=ChannelType.CHAR, max_length=26, report_as_string=True, doc='Six String') state_six_severity = pvproperty( name='SXSV', dtype=ChannelType.ENUM, enum_strings=menus.menuAlarmSevr.get_string_tuple(), doc='State Six Severity') six_value = pvproperty(name='SXVL', dtype=ChannelType.LONG, doc='Six Value') ten_string = pvproperty(name='TEST', dtype=ChannelType.CHAR, max_length=26, report_as_string=True, doc='Ten String') state_ten_severity = pvproperty( name='TESV', dtype=ChannelType.ENUM, enum_strings=menus.menuAlarmSevr.get_string_tuple(), doc='State Ten Severity') ten_value = pvproperty(name='TEVL', dtype=ChannelType.LONG, doc='Ten Value') three_string = pvproperty(name='THST', dtype=ChannelType.CHAR, max_length=26, report_as_string=True, doc='Three String') state_three_severity = pvproperty( name='THSV', dtype=ChannelType.ENUM, enum_strings=menus.menuAlarmSevr.get_string_tuple(), doc='State Three Severity') three_value = pvproperty(name='THVL', dtype=ChannelType.LONG, doc='Three Value') thirteen_string = pvproperty(name='TTST', dtype=ChannelType.CHAR, max_length=26, report_as_string=True, doc='Thirteen String') state_thirteen_sevr = pvproperty( name='TTSV', dtype=ChannelType.ENUM, enum_strings=menus.menuAlarmSevr.get_string_tuple(), doc='State Thirteen Sevr') thirteen_value = pvproperty(name='TTVL', dtype=ChannelType.LONG, doc='Thirteen Value') twelve_string = pvproperty(name='TVST', dtype=ChannelType.CHAR, max_length=26, report_as_string=True, doc='Twelve String') state_twelve_severity = pvproperty( name='TVSV', dtype=ChannelType.ENUM, enum_strings=menus.menuAlarmSevr.get_string_tuple(), doc='State Twelve Severity') twelve_value = pvproperty(name='TVVL', dtype=ChannelType.LONG, doc='Twelve Value') two_string = pvproperty(name='TWST', dtype=ChannelType.CHAR, max_length=26, report_as_string=True, doc='Two String') state_two_severity = pvproperty( name='TWSV', dtype=ChannelType.ENUM, enum_strings=menus.menuAlarmSevr.get_string_tuple(), doc='State Two Severity') two_value = pvproperty(name='TWVL', dtype=ChannelType.LONG, doc='Two Value') zero_string = pvproperty(name='ZRST', dtype=ChannelType.CHAR, max_length=26, report_as_string=True, doc='Zero String') state_zero_severity = pvproperty( name='ZRSV', dtype=ChannelType.ENUM, enum_strings=menus.menuAlarmSevr.get_string_tuple(), doc='State Zero Severity') zero_value = pvproperty(name='ZRVL', dtype=ChannelType.LONG, doc='Zero Value') # current_value = pvproperty(name='VAL', # dtype=ChannelType.ENUM, # doc='Current Value') _link_enum_strings(zero_string, index=0) _link_enum_strings(one_string, index=1) _link_enum_strings(two_string, index=2) _link_enum_strings(three_string, index=3) _link_enum_strings(four_string, index=4) _link_enum_strings(five_string, index=5) _link_enum_strings(six_string, index=6) _link_enum_strings(seven_string, index=7) _link_enum_strings(eight_string, index=8) _link_enum_strings(nine_string, index=9) _link_enum_strings(ten_string, index=10) _link_enum_strings(eleven_string, index=11) _link_enum_strings(twelve_string, index=12) _link_enum_strings(thirteen_string, index=13) _link_enum_strings(fourteen_string, index=14) _link_enum_strings(fifteen_string, index=15)
[docs]@register_record class MbbidirectFields(RecordFieldGroup): _record_type = "mbbiDirect" _dtype = ChannelType.LONG # DTYP of .VAL has_val_field = True device_type = pvproperty( name='DTYP', dtype=ChannelType.ENUM, enum_strings=menus.dtyp_mbbiDirect.get_string_tuple(), doc='Device Type') bit_0 = pvproperty(name='B0', dtype=ChannelType.CHAR, doc='Bit 0') bit_1 = pvproperty(name='B1', dtype=ChannelType.CHAR, doc='Bit 1') bit_2 = pvproperty(name='B2', dtype=ChannelType.CHAR, doc='Bit 2') bit_3 = pvproperty(name='B3', dtype=ChannelType.CHAR, doc='Bit 3') bit_4 = pvproperty(name='B4', dtype=ChannelType.CHAR, doc='Bit 4') bit_5 = pvproperty(name='B5', dtype=ChannelType.CHAR, doc='Bit 5') bit_6 = pvproperty(name='B6', dtype=ChannelType.CHAR, doc='Bit 6') bit_7 = pvproperty(name='B7', dtype=ChannelType.CHAR, doc='Bit 7') bit_8 = pvproperty(name='B8', dtype=ChannelType.CHAR, doc='Bit 8') bit_9 = pvproperty(name='B9', dtype=ChannelType.CHAR, doc='Bit 9') bit_10 = pvproperty(name='BA', dtype=ChannelType.CHAR, doc='Bit 10') bit_11 = pvproperty(name='BB', dtype=ChannelType.CHAR, doc='Bit 11') bit_12 = pvproperty(name='BC', dtype=ChannelType.CHAR, doc='Bit 12') bit_13 = pvproperty(name='BD', dtype=ChannelType.CHAR, doc='Bit 13') bit_14 = pvproperty(name='BE', dtype=ChannelType.CHAR, doc='Bit 14') bit_15 = pvproperty(name='BF', dtype=ChannelType.CHAR, doc='Bit 15') hardware_mask = pvproperty(name='MASK', dtype=ChannelType.LONG, doc='Hardware Mask', read_only=True) last_value_monitored = pvproperty(name='MLST', dtype=ChannelType.LONG, doc='Last Value Monitored', read_only=True) prev_raw_value = pvproperty(name='ORAW', dtype=ChannelType.LONG, doc='Prev Raw Value', read_only=True) raw_value = pvproperty(name='RVAL', dtype=ChannelType.LONG, doc='Raw Value') simulation_mode = pvproperty( name='SIMM', dtype=ChannelType.ENUM, enum_strings=menus.menuSimm.get_string_tuple(), doc='Simulation Mode') simulation_value = pvproperty(name='SVAL', dtype=ChannelType.LONG, doc='Simulation Value') input_specification = pvproperty(name='INP', dtype=ChannelType.STRING, doc='Input Specification') number_of_bits = pvproperty(name='NOBT', dtype=ChannelType.INT, doc='Number of Bits', read_only=True) shift = pvproperty(name='SHFT', dtype=ChannelType.INT, doc='Shift') simulation_input_link = pvproperty(name='SIOL', dtype=ChannelType.STRING, doc='Simulation Input Link') simulation_mode_link = pvproperty(name='SIML', dtype=ChannelType.STRING, doc='Simulation Mode Link') simulation_mode_severity = pvproperty( name='SIMS', dtype=ChannelType.ENUM, enum_strings=menus.menuAlarmSevr.get_string_tuple(), doc='Simulation Mode Severity') bit_16 = pvproperty(name='B10', dtype=ChannelType.CHAR, doc='Bit 16') bit_17 = pvproperty(name='B11', dtype=ChannelType.CHAR, doc='Bit 17') bit_18 = pvproperty(name='B12', dtype=ChannelType.CHAR, doc='Bit 18') bit_19 = pvproperty(name='B13', dtype=ChannelType.CHAR, doc='Bit 19') bit_20 = pvproperty(name='B14', dtype=ChannelType.CHAR, doc='Bit 20') bit_21 = pvproperty(name='B15', dtype=ChannelType.CHAR, doc='Bit 21') bit_22 = pvproperty(name='B16', dtype=ChannelType.CHAR, doc='Bit 22') bit_23 = pvproperty(name='B17', dtype=ChannelType.CHAR, doc='Bit 23') bit_24 = pvproperty(name='B18', dtype=ChannelType.CHAR, doc='Bit 24') bit_25 = pvproperty(name='B19', dtype=ChannelType.CHAR, doc='Bit 25') bit_26 = pvproperty(name='B1A', dtype=ChannelType.CHAR, doc='Bit 26') bit_27 = pvproperty(name='B1B', dtype=ChannelType.CHAR, doc='Bit 27') bit_28 = pvproperty(name='B1C', dtype=ChannelType.CHAR, doc='Bit 28') bit_29 = pvproperty(name='B1D', dtype=ChannelType.CHAR, doc='Bit 29') bit_30 = pvproperty(name='B1E', dtype=ChannelType.CHAR, doc='Bit 30') bit_31 = pvproperty(name='B1F', dtype=ChannelType.CHAR, doc='Bit 31') prev_simulation_mode = pvproperty( name='OLDSIMM', dtype=ChannelType.ENUM, enum_strings=menus.menuSimm.get_string_tuple(), doc='Prev. Simulation Mode', read_only=True) sim_mode_async_delay = pvproperty(name='SDLY', dtype=ChannelType.DOUBLE, doc='Sim. Mode Async Delay', value=-1.0) sim_mode_scan = pvproperty(name='SSCN', dtype=ChannelType.ENUM, enum_strings=menus.menuScan.get_string_tuple(), doc='Sim. Mode Scan', value=0)
# current_value = pvproperty(name='VAL', # dtype=ChannelType.LONG, # doc='Current Value')
[docs]@register_record class MbboFields(RecordFieldGroup): _record_type = "mbbo" _dtype = ChannelType.ENUM # DTYP of .VAL has_val_field = True device_type = pvproperty(name='DTYP', dtype=ChannelType.ENUM, enum_strings=menus.dtyp_mbbo.get_string_tuple(), doc='Device Type') hardware_mask = pvproperty(name='MASK', dtype=ChannelType.LONG, doc='Hardware Mask', read_only=True) last_value_alarmed = pvproperty(name='LALM', dtype=ChannelType.INT, doc='Last Value Alarmed', read_only=True) last_value_monitored = pvproperty(name='MLST', dtype=ChannelType.INT, doc='Last Value Monitored', read_only=True) prev_raw_value = pvproperty(name='ORAW', dtype=ChannelType.LONG, doc='Prev Raw Value', read_only=True) raw_value = pvproperty(name='RVAL', dtype=ChannelType.LONG, doc='Raw Value') simulation_mode = pvproperty( name='SIMM', dtype=ChannelType.ENUM, enum_strings=menus.menuYesNo.get_string_tuple(), doc='Simulation Mode') states_defined = pvproperty(name='SDEF', dtype=ChannelType.INT, doc='States Defined', read_only=True) change_of_state_sevr = pvproperty( name='COSV', dtype=ChannelType.ENUM, enum_strings=menus.menuAlarmSevr.get_string_tuple(), doc='Change of State Sevr') number_of_bits = pvproperty(name='NOBT', dtype=ChannelType.INT, doc='Number of Bits', read_only=True) shift = pvproperty(name='SHFT', dtype=ChannelType.INT, doc='Shift') simulation_mode_severity = pvproperty( name='SIMS', dtype=ChannelType.ENUM, enum_strings=menus.menuAlarmSevr.get_string_tuple(), doc='Simulation Mode Severity') unknown_state_sevr = pvproperty( name='UNSV', dtype=ChannelType.ENUM, enum_strings=menus.menuAlarmSevr.get_string_tuple(), doc='Unknown State Sevr') prev_readback_value = pvproperty(name='ORBV', dtype=ChannelType.LONG, doc='Prev Readback Value', read_only=True) readback_value = pvproperty(name='RBV', dtype=ChannelType.LONG, doc='Readback Value', read_only=True) desired_output_loc = pvproperty(name='DOL', dtype=ChannelType.STRING, doc='Desired Output Loc') invalid_outpt_action = pvproperty( name='IVOA', dtype=ChannelType.ENUM, enum_strings=menus.menuIvoa.get_string_tuple(), doc='INVALID outpt action') invalid_output_value = pvproperty(name='IVOV', dtype=ChannelType.INT, doc='INVALID output value') output_mode_select = pvproperty( name='OMSL', dtype=ChannelType.ENUM, enum_strings=menus.menuOmsl.get_string_tuple(), doc='Output Mode Select') output_specification = pvproperty(name='OUT', dtype=ChannelType.STRING, doc='Output Specification') simulation_output_link = pvproperty(name='SIOL', dtype=ChannelType.STRING, doc='Simulation Output Link') eight_string = pvproperty(name='EIST', dtype=ChannelType.CHAR, max_length=26, report_as_string=True, doc='Eight String') state_eight_severity = pvproperty( name='EISV', dtype=ChannelType.ENUM, enum_strings=menus.menuAlarmSevr.get_string_tuple(), doc='State Eight Severity') eight_value = pvproperty(name='EIVL', dtype=ChannelType.LONG, doc='Eight Value') eleven_string = pvproperty(name='ELST', dtype=ChannelType.CHAR, max_length=26, report_as_string=True, doc='Eleven String') state_eleven_severity = pvproperty( name='ELSV', dtype=ChannelType.ENUM, enum_strings=menus.menuAlarmSevr.get_string_tuple(), doc='State Eleven Severity') eleven_value = pvproperty(name='ELVL', dtype=ChannelType.LONG, doc='Eleven Value') fifteen_string = pvproperty(name='FFST', dtype=ChannelType.CHAR, max_length=26, report_as_string=True, doc='Fifteen String') state_fifteen_sevr = pvproperty( name='FFSV', dtype=ChannelType.ENUM, enum_strings=menus.menuAlarmSevr.get_string_tuple(), doc='State Fifteen Sevr') fifteen_value = pvproperty(name='FFVL', dtype=ChannelType.LONG, doc='Fifteen Value') four_string = pvproperty(name='FRST', dtype=ChannelType.CHAR, max_length=26, report_as_string=True, doc='Four String') state_four_severity = pvproperty( name='FRSV', dtype=ChannelType.ENUM, enum_strings=menus.menuAlarmSevr.get_string_tuple(), doc='State Four Severity') four_value = pvproperty(name='FRVL', dtype=ChannelType.LONG, doc='Four Value') fourteen_string = pvproperty(name='FTST', dtype=ChannelType.CHAR, max_length=26, report_as_string=True, doc='Fourteen String') state_fourteen_sevr = pvproperty( name='FTSV', dtype=ChannelType.ENUM, enum_strings=menus.menuAlarmSevr.get_string_tuple(), doc='State Fourteen Sevr') fourteen_value = pvproperty(name='FTVL', dtype=ChannelType.LONG, doc='Fourteen Value') five_string = pvproperty(name='FVST', dtype=ChannelType.CHAR, max_length=26, report_as_string=True, doc='Five String') state_five_severity = pvproperty( name='FVSV', dtype=ChannelType.ENUM, enum_strings=menus.menuAlarmSevr.get_string_tuple(), doc='State Five Severity') five_value = pvproperty(name='FVVL', dtype=ChannelType.LONG, doc='Five Value') nine_string = pvproperty(name='NIST', dtype=ChannelType.CHAR, max_length=26, report_as_string=True, doc='Nine String') state_nine_severity = pvproperty( name='NISV', dtype=ChannelType.ENUM, enum_strings=menus.menuAlarmSevr.get_string_tuple(), doc='State Nine Severity') nine_value = pvproperty(name='NIVL', dtype=ChannelType.LONG, doc='Nine Value') prev_simulation_mode = pvproperty( name='OLDSIMM', dtype=ChannelType.ENUM, enum_strings=menus.menuSimm.get_string_tuple(), doc='Prev. Simulation Mode', read_only=True) one_string = pvproperty(name='ONST', dtype=ChannelType.CHAR, max_length=26, report_as_string=True, doc='One String') state_one_severity = pvproperty( name='ONSV', dtype=ChannelType.ENUM, enum_strings=menus.menuAlarmSevr.get_string_tuple(), doc='State One Severity') one_value = pvproperty(name='ONVL', dtype=ChannelType.LONG, doc='One Value') sim_mode_async_delay = pvproperty(name='SDLY', dtype=ChannelType.DOUBLE, doc='Sim. Mode Async Delay', value=-1.0) simulation_mode_link = pvproperty(name='SIML', dtype=ChannelType.STRING, doc='Simulation Mode Link') sim_mode_scan = pvproperty(name='SSCN', dtype=ChannelType.ENUM, enum_strings=menus.menuScan.get_string_tuple(), doc='Sim. Mode Scan', value=0) seven_string = pvproperty(name='SVST', dtype=ChannelType.CHAR, max_length=26, report_as_string=True, doc='Seven String') state_seven_severity = pvproperty( name='SVSV', dtype=ChannelType.ENUM, enum_strings=menus.menuAlarmSevr.get_string_tuple(), doc='State Seven Severity') seven_value = pvproperty(name='SVVL', dtype=ChannelType.LONG, doc='Seven Value') six_string = pvproperty(name='SXST', dtype=ChannelType.CHAR, max_length=26, report_as_string=True, doc='Six String') state_six_severity = pvproperty( name='SXSV', dtype=ChannelType.ENUM, enum_strings=menus.menuAlarmSevr.get_string_tuple(), doc='State Six Severity') six_value = pvproperty(name='SXVL', dtype=ChannelType.LONG, doc='Six Value') ten_string = pvproperty(name='TEST', dtype=ChannelType.CHAR, max_length=26, report_as_string=True, doc='Ten String') state_ten_severity = pvproperty( name='TESV', dtype=ChannelType.ENUM, enum_strings=menus.menuAlarmSevr.get_string_tuple(), doc='State Ten Severity') ten_value = pvproperty(name='TEVL', dtype=ChannelType.LONG, doc='Ten Value') three_string = pvproperty(name='THST', dtype=ChannelType.CHAR, max_length=26, report_as_string=True, doc='Three String') state_three_severity = pvproperty( name='THSV', dtype=ChannelType.ENUM, enum_strings=menus.menuAlarmSevr.get_string_tuple(), doc='State Three Severity') three_value = pvproperty(name='THVL', dtype=ChannelType.LONG, doc='Three Value') thirteen_string = pvproperty(name='TTST', dtype=ChannelType.CHAR, max_length=26, report_as_string=True, doc='Thirteen String') state_thirteen_sevr = pvproperty( name='TTSV', dtype=ChannelType.ENUM, enum_strings=menus.menuAlarmSevr.get_string_tuple(), doc='State Thirteen Sevr') thirteen_value = pvproperty(name='TTVL', dtype=ChannelType.LONG, doc='Thirteen Value') twelve_string = pvproperty(name='TVST', dtype=ChannelType.CHAR, max_length=26, report_as_string=True, doc='Twelve String') state_twelve_severity = pvproperty( name='TVSV', dtype=ChannelType.ENUM, enum_strings=menus.menuAlarmSevr.get_string_tuple(), doc='State Twelve Severity') twelve_value = pvproperty(name='TVVL', dtype=ChannelType.LONG, doc='Twelve Value') two_string = pvproperty(name='TWST', dtype=ChannelType.CHAR, max_length=26, report_as_string=True, doc='Two String') state_two_severity = pvproperty( name='TWSV', dtype=ChannelType.ENUM, enum_strings=menus.menuAlarmSevr.get_string_tuple(), doc='State Two Severity') two_value = pvproperty(name='TWVL', dtype=ChannelType.LONG, doc='Two Value') zero_string = pvproperty(name='ZRST', dtype=ChannelType.CHAR, max_length=26, report_as_string=True, doc='Zero String') state_zero_severity = pvproperty( name='ZRSV', dtype=ChannelType.ENUM, enum_strings=menus.menuAlarmSevr.get_string_tuple(), doc='State Zero Severity') zero_value = pvproperty(name='ZRVL', dtype=ChannelType.LONG, doc='Zero Value') # desired_value = pvproperty(name='VAL', # dtype=ChannelType.ENUM, # doc='Desired Value') _link_enum_strings(one_string, index=1) _link_enum_strings(two_string, index=2) _link_enum_strings(three_string, index=3) _link_enum_strings(four_string, index=4) _link_enum_strings(five_string, index=5) _link_enum_strings(six_string, index=6) _link_enum_strings(seven_string, index=7) _link_enum_strings(eight_string, index=8) _link_enum_strings(nine_string, index=9) _link_enum_strings(ten_string, index=10) _link_enum_strings(eleven_string, index=11) _link_enum_strings(twelve_string, index=12) _link_enum_strings(thirteen_string, index=13) _link_enum_strings(fourteen_string, index=14) _link_enum_strings(fifteen_string, index=15)
[docs]@register_record class MbbodirectFields(RecordFieldGroup): _record_type = "mbboDirect" _dtype = ChannelType.LONG # DTYP of .VAL has_val_field = True device_type = pvproperty( name='DTYP', dtype=ChannelType.ENUM, enum_strings=menus.dtyp_mbboDirect.get_string_tuple(), doc='Device Type') hardware_mask = pvproperty(name='MASK', dtype=ChannelType.LONG, doc='Hardware Mask', read_only=True) last_value_monitored = pvproperty(name='MLST', dtype=ChannelType.LONG, doc='Last Value Monitored', read_only=True) prev_raw_value = pvproperty(name='ORAW', dtype=ChannelType.LONG, doc='Prev Raw Value', read_only=True) prev_readback_value = pvproperty(name='ORBV', dtype=ChannelType.LONG, doc='Prev Readback Value', read_only=True) raw_value = pvproperty(name='RVAL', dtype=ChannelType.LONG, doc='Raw Value', read_only=True) readback_value = pvproperty(name='RBV', dtype=ChannelType.LONG, doc='Readback Value', read_only=True) simulation_mode = pvproperty( name='SIMM', dtype=ChannelType.ENUM, enum_strings=menus.menuYesNo.get_string_tuple(), doc='Simulation Mode') bit_0 = pvproperty(name='B0', dtype=ChannelType.CHAR, doc='Bit 0') bit_1 = pvproperty(name='B1', dtype=ChannelType.CHAR, doc='Bit 1') bit_2 = pvproperty(name='B2', dtype=ChannelType.CHAR, doc='Bit 2') bit_3 = pvproperty(name='B3', dtype=ChannelType.CHAR, doc='Bit 3') bit_4 = pvproperty(name='B4', dtype=ChannelType.CHAR, doc='Bit 4') bit_5 = pvproperty(name='B5', dtype=ChannelType.CHAR, doc='Bit 5') bit_6 = pvproperty(name='B6', dtype=ChannelType.CHAR, doc='Bit 6') bit_7 = pvproperty(name='B7', dtype=ChannelType.CHAR, doc='Bit 7') bit_10 = pvproperty(name='BA', dtype=ChannelType.CHAR, doc='Bit 10') bit_11 = pvproperty(name='BB', dtype=ChannelType.CHAR, doc='Bit 11') bit_12 = pvproperty(name='BC', dtype=ChannelType.CHAR, doc='Bit 12') bit_13 = pvproperty(name='BD', dtype=ChannelType.CHAR, doc='Bit 13') bit_14 = pvproperty(name='BE', dtype=ChannelType.CHAR, doc='Bit 14') bit_15 = pvproperty(name='BF', dtype=ChannelType.CHAR, doc='Bit 15') bit_8 = pvproperty(name='B8', dtype=ChannelType.CHAR, doc='Bit 8') bit_9 = pvproperty(name='B9', dtype=ChannelType.CHAR, doc='Bit 9') desired_output_loc = pvproperty(name='DOL', dtype=ChannelType.STRING, doc='Desired Output Loc') invalid_outpt_action = pvproperty( name='IVOA', dtype=ChannelType.ENUM, enum_strings=menus.menuIvoa.get_string_tuple(), doc='INVALID outpt action') invalid_output_value = pvproperty(name='IVOV', dtype=ChannelType.LONG, doc='INVALID output value') number_of_bits = pvproperty(name='NOBT', dtype=ChannelType.INT, doc='Number of Bits', read_only=True) output_mode_select = pvproperty( name='OMSL', dtype=ChannelType.ENUM, enum_strings=menus.menuOmsl.get_string_tuple(), doc='Output Mode Select') output_specification = pvproperty(name='OUT', dtype=ChannelType.STRING, doc='Output Specification') shift = pvproperty(name='SHFT', dtype=ChannelType.INT, doc='Shift') simulation_mode_link = pvproperty(name='SIML', dtype=ChannelType.STRING, doc='Simulation Mode Link') simulation_output_link = pvproperty(name='SIOL', dtype=ChannelType.STRING, doc='Simulation Output Link') simulation_mode_severity = pvproperty( name='SIMS', dtype=ChannelType.ENUM, enum_strings=menus.menuAlarmSevr.get_string_tuple(), doc='Simulation Mode Severity') bit_16 = pvproperty(name='B10', dtype=ChannelType.CHAR, doc='Bit 16') bit_17 = pvproperty(name='B11', dtype=ChannelType.CHAR, doc='Bit 17') bit_18 = pvproperty(name='B12', dtype=ChannelType.CHAR, doc='Bit 18') bit_19 = pvproperty(name='B13', dtype=ChannelType.CHAR, doc='Bit 19') bit_20 = pvproperty(name='B14', dtype=ChannelType.CHAR, doc='Bit 20') bit_21 = pvproperty(name='B15', dtype=ChannelType.CHAR, doc='Bit 21') bit_22 = pvproperty(name='B16', dtype=ChannelType.CHAR, doc='Bit 22') bit_23 = pvproperty(name='B17', dtype=ChannelType.CHAR, doc='Bit 23') bit_24 = pvproperty(name='B18', dtype=ChannelType.CHAR, doc='Bit 24') bit_25 = pvproperty(name='B19', dtype=ChannelType.CHAR, doc='Bit 25') bit_26 = pvproperty(name='B1A', dtype=ChannelType.CHAR, doc='Bit 26') bit_27 = pvproperty(name='B1B', dtype=ChannelType.CHAR, doc='Bit 27') bit_28 = pvproperty(name='B1C', dtype=ChannelType.CHAR, doc='Bit 28') bit_29 = pvproperty(name='B1D', dtype=ChannelType.CHAR, doc='Bit 29') bit_30 = pvproperty(name='B1E', dtype=ChannelType.CHAR, doc='Bit 30') bit_31 = pvproperty(name='B1F', dtype=ChannelType.CHAR, doc='Bit 31') prev_simulation_mode = pvproperty( name='OLDSIMM', dtype=ChannelType.ENUM, enum_strings=menus.menuSimm.get_string_tuple(), doc='Prev. Simulation Mode', read_only=True) sim_mode_async_delay = pvproperty(name='SDLY', dtype=ChannelType.DOUBLE, doc='Sim. Mode Async Delay', value=-1.0) sim_mode_scan = pvproperty(name='SSCN', dtype=ChannelType.ENUM, enum_strings=menus.menuScan.get_string_tuple(), doc='Sim. Mode Scan', value=0)
# word = pvproperty(name='VAL', # dtype=ChannelType.LONG, # doc='Word')
[docs]@register_record class MotorFields(RecordFieldGroup, _Limits): _record_type = "motor" _dtype = ChannelType.DOUBLE # DTYP of .VAL has_val_field = True device_type = pvproperty(name='DTYP', dtype=ChannelType.ENUM, enum_strings=menus.dtyp_motor.get_string_tuple(), doc='Device Type') at_home = pvproperty(name='ATHM', dtype=ChannelType.INT, doc='At HOME', read_only=True) card_number = pvproperty(name='CARD', dtype=ChannelType.INT, doc='Card Number', read_only=True) code_version = pvproperty(name='VERS', dtype=ChannelType.FLOAT, doc='Code Version', read_only=True, value=1) dial_desired_value = pvproperty(name='DVAL', dtype=ChannelType.DOUBLE, doc='Dial Desired Value (EGU') dial_readback_value = pvproperty(name='DRBV', dtype=ChannelType.DOUBLE, doc='Dial Readback Value', read_only=True) difference_dval_drbv = pvproperty(name='DIFF', dtype=ChannelType.DOUBLE, doc='Difference dval-drbv', read_only=True) difference_rval_rrbv = pvproperty(name='RDIF', dtype=ChannelType.LONG, doc='Difference rval-rrbv', read_only=True) direction_of_travel = pvproperty(name='TDIR', dtype=ChannelType.INT, doc='Direction of Travel', read_only=True) freeze_offset = pvproperty(name='FOF', dtype=ChannelType.INT, doc='Freeze Offset') home_forward = pvproperty(name='HOMF', dtype=ChannelType.INT, doc='Home Forward') home_reverse = pvproperty(name='HOMR', dtype=ChannelType.INT, doc='Home Reverse') jog_motor_forward = pvproperty(name='JOGF', dtype=ChannelType.INT, doc='Jog motor Forward') jog_motor_reverse = pvproperty(name='JOGR', dtype=ChannelType.INT, doc='Jog motor Reverse') last_dial_des_val = pvproperty(name='LDVL', dtype=ChannelType.DOUBLE, doc='Last Dial Des Val (EGU)', read_only=True) last_raw_des_val = pvproperty(name='LRVL', dtype=ChannelType.LONG, doc='Last Raw Des Val (steps', read_only=True) last_rel_value = pvproperty(name='LRLV', dtype=ChannelType.DOUBLE, doc='Last Rel Value (EGU)', read_only=True) last_spmg = pvproperty(name='LSPG', dtype=ChannelType.ENUM, enum_strings=menus.motorSPMG.get_string_tuple(), doc='Last SPMG', read_only=True, value=3) last_user_des_val = pvproperty(name='LVAL', dtype=ChannelType.DOUBLE, doc='Last User Des Val (EGU)', read_only=True) last_val_monitored = pvproperty(name='MLST', dtype=ChannelType.DOUBLE, doc='Last Val Monitored', read_only=True) last_value_archived = pvproperty(name='ALST', dtype=ChannelType.DOUBLE, doc='Last Value Archived', read_only=True) limit_violation = pvproperty(name='LVIO', dtype=ChannelType.INT, doc='Limit violation', read_only=True, value=1) monitor_mask_more = pvproperty(name='NMAP', dtype=ChannelType.LONG, doc='Monitor Mask (more)', read_only=True) motion_in_progress = pvproperty(name='MIP', dtype=ChannelType.INT, doc='Motion In Progress', read_only=True) motor_status = pvproperty(name='MSTA', dtype=ChannelType.LONG, doc='Motor Status', read_only=True) motor_is_moving = pvproperty(name='MOVN', dtype=ChannelType.INT, doc='Motor is moving', read_only=True) post_process_command = pvproperty(name='PP', dtype=ChannelType.INT, doc='Post process command', read_only=True, value=0) ran_out_of_retries = pvproperty(name='MISS', dtype=ChannelType.INT, doc='Ran out of retries', read_only=True) raw_desired_value = pvproperty(name='RVAL', dtype=ChannelType.LONG, doc='Raw Desired Value (step') raw_encoder_position = pvproperty(name='REP', dtype=ChannelType.LONG, doc='Raw Encoder Position', read_only=True) raw_high_limit_switch = pvproperty(name='RHLS', dtype=ChannelType.INT, doc='Raw High Limit Switch', read_only=True) raw_low_limit_switch = pvproperty(name='RLLS', dtype=ChannelType.INT, doc='Raw Low Limit Switch', read_only=True) raw_motor_position = pvproperty(name='RMP', dtype=ChannelType.LONG, doc='Raw Motor Position', read_only=True) raw_readback_value = pvproperty(name='RRBV', dtype=ChannelType.LONG, doc='Raw Readback Value', read_only=True) raw_cmnd_direction = pvproperty(name='CDIR', dtype=ChannelType.INT, doc='Raw cmnd direction', read_only=True) relative_value = pvproperty(name='RLV', dtype=ChannelType.DOUBLE, doc='Relative Value (EGU)') retry_count = pvproperty(name='RCNT', dtype=ChannelType.INT, doc='Retry count', read_only=True) set_set_mode = pvproperty(name='SSET', dtype=ChannelType.INT, doc='Set SET Mode') set_use_mode = pvproperty(name='SUSE', dtype=ChannelType.INT, doc='Set USE Mode') set_use_switch = pvproperty(name='SET', dtype=ChannelType.ENUM, enum_strings=menus.motorSET.get_string_tuple(), doc='Set/Use Switch') stop = pvproperty(name='STOP', dtype=ChannelType.INT, doc='Stop') stop_pause_move_go = pvproperty( name='SPMG', dtype=ChannelType.ENUM, enum_strings=menus.motorSPMG.get_string_tuple(), doc='Stop/Pause/Move/Go', value=3) sync_position = pvproperty(name='SYNC', dtype=ChannelType.INT, doc='Sync position') tweak_motor_forward = pvproperty(name='TWF', dtype=ChannelType.INT, doc='Tweak motor Forward') tweak_motor_reverse = pvproperty(name='TWR', dtype=ChannelType.INT, doc='Tweak motor Reverse') user_high_limit = pvproperty(name='HLM', dtype=ChannelType.DOUBLE, doc='User High Limit') user_high_limit_switch = pvproperty(name='HLS', dtype=ChannelType.INT, doc='User High Limit Switch', read_only=True) user_low_limit = pvproperty(name='LLM', dtype=ChannelType.DOUBLE, doc='User Low Limit') user_low_limit_switch = pvproperty(name='LLS', dtype=ChannelType.INT, doc='User Low Limit Switch', read_only=True) user_offset = pvproperty(name='OFF', dtype=ChannelType.DOUBLE, doc='User Offset (EGU)') user_readback_value = pvproperty(name='RBV', dtype=ChannelType.DOUBLE, doc='User Readback Value', read_only=True) variable_offset = pvproperty(name='VOF', dtype=ChannelType.INT, doc='Variable Offset') archive_deadband = pvproperty(name='ADEL', dtype=ChannelType.DOUBLE, doc='Archive Deadband') bl_distance = pvproperty(name='BDST', dtype=ChannelType.DOUBLE, doc='BL Distance (EGU)') bl_seconds_to_velocity = pvproperty(name='BACC', dtype=ChannelType.DOUBLE, doc='BL Seconds to Velocity', value=0.5) bl_speed = pvproperty(name='SBAK', dtype=ChannelType.DOUBLE, doc='BL Speed (RPS)') bl_velocity = pvproperty(name='BVEL', dtype=ChannelType.DOUBLE, doc='BL Velocity (EGU/s)') base_speed = pvproperty(name='SBAS', dtype=ChannelType.DOUBLE, doc='Base Speed (RPS)') base_velocity = pvproperty(name='VBAS', dtype=ChannelType.DOUBLE, doc='Base Velocity (EGU/s)') dmov_input_link = pvproperty(name='DINP', dtype=ChannelType.STRING, doc='DMOV Input Link') derivative_gain = pvproperty(name='DCOF', dtype=ChannelType.DOUBLE, doc='Derivative Gain', value=0) desired_output_loc = pvproperty(name='DOL', dtype=ChannelType.STRING, doc='Desired Output Loc') dial_high_limit = pvproperty(name='DHLM', dtype=ChannelType.DOUBLE, doc='Dial High Limit') dial_low_limit = pvproperty(name='DLLM', dtype=ChannelType.DOUBLE, doc='Dial Low Limit') display_precision = pvproperty(name='PREC', dtype=ChannelType.INT, doc='Display Precision') done_moving_to_value = pvproperty(name='DMOV', dtype=ChannelType.INT, doc='Done moving to value', read_only=True, value=1) egu_s_per_revolution = pvproperty(name='UREV', dtype=ChannelType.DOUBLE, doc="EGU's per Revolution") enable_control = pvproperty( name='CNEN', dtype=ChannelType.ENUM, enum_strings=menus.motorTORQ.get_string_tuple(), doc='Enable control') encoder_step_size = pvproperty(name='ERES', dtype=ChannelType.DOUBLE, doc='Encoder Step Size (EGU)') engineering_units = pvproperty(name='EGU', dtype=ChannelType.CHAR, max_length=16, report_as_string=True, doc='Engineering Units') hw_limit_violation_svr = pvproperty( name='HLSV', dtype=ChannelType.ENUM, enum_strings=menus.menuAlarmSevr.get_string_tuple(), doc='HW Limit Violation Svr') home_velocity = pvproperty(name='HVEL', dtype=ChannelType.DOUBLE, doc='Home Velocity (EGU/s)') integral_gain = pvproperty(name='ICOF', dtype=ChannelType.DOUBLE, doc='Integral Gain', value=0) jog_accel = pvproperty(name='JAR', dtype=ChannelType.DOUBLE, doc='Jog Accel. (EGU/s^2)') jog_velocity = pvproperty(name='JVEL', dtype=ChannelType.DOUBLE, doc='Jog Velocity (EGU/s)') max_retry_count = pvproperty(name='RTRY', dtype=ChannelType.INT, doc='Max retry count', value=10) max_speed = pvproperty(name='SMAX', dtype=ChannelType.DOUBLE, doc='Max. Speed (RPS)') max_velocity = pvproperty(name='VMAX', dtype=ChannelType.DOUBLE, doc='Max. Velocity (EGU/s)') monitor_deadband = pvproperty(name='MDEL', dtype=ChannelType.DOUBLE, doc='Monitor Deadband') motor_step_size = pvproperty(name='MRES', dtype=ChannelType.DOUBLE, doc='Motor Step Size (EGU)') move_fraction = pvproperty(name='FRAC', dtype=ChannelType.FLOAT, doc='Move Fraction', value=1) ntm_deadband_factor = pvproperty(name='NTMF', dtype=ChannelType.INT, doc='NTM Deadband Factor', value=2) new_target_monitor = pvproperty( name='NTM', dtype=ChannelType.ENUM, enum_strings=menus.menuYesNo.get_string_tuple(), doc='New Target Monitor', value='YES') offset_freeze_switch = pvproperty( name='FOFF', dtype=ChannelType.ENUM, enum_strings=menus.motorFOFF.get_string_tuple(), doc='Offset-Freeze Switch') output_mode_select = pvproperty( name='OMSL', dtype=ChannelType.ENUM, enum_strings=menus.menuOmsl.get_string_tuple(), doc='Output Mode Select') output_specification = pvproperty(name='OUT', dtype=ChannelType.STRING, doc='Output Specification') post_move_commands = pvproperty(name='POST', dtype=ChannelType.CHAR, max_length=40, report_as_string=True, doc='Post-move commands') pre_move_commands = pvproperty(name='PREM', dtype=ChannelType.CHAR, max_length=40, report_as_string=True, doc='Pre-move commands') proportional_gain = pvproperty(name='PCOF', dtype=ChannelType.DOUBLE, doc='Proportional Gain', value=0) rmp_input_link = pvproperty(name='RINP', dtype=ChannelType.STRING, doc='RMP Input Link') raw_velocity = pvproperty(name='RVEL', dtype=ChannelType.LONG, doc='Raw Velocity', read_only=True) readback_location = pvproperty(name='RDBL', dtype=ChannelType.STRING, doc='Readback Location') readback_outlink = pvproperty(name='RLNK', dtype=ChannelType.STRING, doc='Readback OutLink') readback_step_size = pvproperty(name='RRES', dtype=ChannelType.DOUBLE, doc='Readback Step Size (EGU') readback_settle_time = pvproperty(name='DLY', dtype=ChannelType.DOUBLE, doc='Readback settle time (s)') retry_deadband = pvproperty(name='RDBD', dtype=ChannelType.DOUBLE, doc='Retry Deadband (EGU)') retry_mode = pvproperty(name='RMOD', dtype=ChannelType.ENUM, enum_strings=menus.motorRMOD.get_string_tuple(), doc='Retry Mode', value='Default') stop_outlink = pvproperty(name='STOO', dtype=ChannelType.STRING, doc='STOP OutLink') seconds_to_velocity = pvproperty(name='ACCL', dtype=ChannelType.DOUBLE, doc='Seconds to Velocity', value=0.2) soft_channel_position_lock = pvproperty( name='LOCK', dtype=ChannelType.ENUM, enum_strings=menus.menuYesNo.get_string_tuple(), doc='Soft Channel Position Lock', value='NO') speed = pvproperty(name='S', dtype=ChannelType.DOUBLE, doc='Speed (revolutions/sec)') startup_commands = pvproperty(name='INIT', dtype=ChannelType.CHAR, max_length=40, report_as_string=True, doc='Startup commands') status_update = pvproperty(name='STUP', dtype=ChannelType.ENUM, enum_strings=menus.motorSTUP.get_string_tuple(), doc='Status Update', value='OFF') steps_per_revolution = pvproperty(name='SREV', dtype=ChannelType.LONG, doc='Steps per Revolution', value=200) tweak_step_size = pvproperty(name='TWV', dtype=ChannelType.DOUBLE, doc='Tweak Step Size (EGU)') use_encoder_if_present = pvproperty( name='UEIP', dtype=ChannelType.ENUM, enum_strings=menus.motorUEIP.get_string_tuple(), doc='Use Encoder If Present') use_rdbl_link_if_presen = pvproperty( name='URIP', dtype=ChannelType.ENUM, enum_strings=menus.motorUEIP.get_string_tuple(), doc='Use RDBL Link If Presen') user_direction = pvproperty(name='DIR', dtype=ChannelType.ENUM, enum_strings=menus.motorDIR.get_string_tuple(), doc='User Direction') velocity = pvproperty(name='VELO', dtype=ChannelType.DOUBLE, doc='Velocity (EGU/s)') ignore_set_field = pvproperty(name='IGSET', dtype=ChannelType.INT, doc='Ignore SET field') setpoint_deadband = pvproperty(name='SPDB', dtype=ChannelType.DOUBLE, doc='Setpoint Deadband (EGU)') monitor_mask = pvproperty(name='MMAP', dtype=ChannelType.LONG, doc='Monitor Mask', read_only=True) # user_desired_value = pvproperty(name='VAL', # dtype=ChannelType.DOUBLE, # doc='User Desired Value (EGU') _link_parent_attribute( display_precision, 'precision', ) _link_parent_attribute(archive_deadband, 'log_atol', use_setattr=True) _link_parent_attribute(monitor_deadband, 'value_atol', use_setattr=True)
[docs]@register_record class PermissiveFields(RecordFieldGroup): _record_type = "permissive" _dtype = ChannelType.LONG # DTYP of .VAL has_val_field = True device_type = pvproperty( name='DTYP', dtype=ChannelType.ENUM, enum_strings=menus.dtyp_permissive.get_string_tuple(), doc='Device Type') old_flag = pvproperty(name='OFLG', dtype=ChannelType.INT, doc='Old Flag', read_only=True) old_status = pvproperty(name='OVAL', dtype=ChannelType.INT, doc='Old Status', read_only=True) wait_flag = pvproperty(name='WFLG', dtype=ChannelType.INT, doc='Wait Flag') button_label = pvproperty(name='LABL', dtype=ChannelType.CHAR, max_length=20, report_as_string=True, doc='Button Label')
# status = pvproperty(name='VAL', # dtype=ChannelType.INT, # doc='Status')
[docs]@register_record class SelFields(RecordFieldGroup, _Limits): _record_type = "sel" _dtype = ChannelType.DOUBLE # DTYP of .VAL has_val_field = True device_type = pvproperty(name='DTYP', dtype=ChannelType.ENUM, enum_strings=menus.dtyp_sel.get_string_tuple(), doc='Device Type') index_value = pvproperty(name='SELN', dtype=ChannelType.INT, doc='Index value') last_index_monitored = pvproperty(name='NLST', dtype=ChannelType.INT, doc='Last Index Monitored', read_only=True) last_val_monitored = pvproperty(name='MLST', dtype=ChannelType.DOUBLE, doc='Last Val Monitored', read_only=True) last_value_alarmed = pvproperty(name='LALM', dtype=ChannelType.DOUBLE, doc='Last Value Alarmed', read_only=True) last_value_archived = pvproperty(name='ALST', dtype=ChannelType.DOUBLE, doc='Last Value Archived', read_only=True) alarm_deadband = pvproperty(name='HYST', dtype=ChannelType.DOUBLE, doc='Alarm Deadband') archive_deadband = pvproperty(name='ADEL', dtype=ChannelType.DOUBLE, doc='Archive Deadband') display_precision = pvproperty(name='PREC', dtype=ChannelType.INT, doc='Display Precision') monitor_deadband = pvproperty(name='MDEL', dtype=ChannelType.DOUBLE, doc='Monitor Deadband') engineering_units = pvproperty(name='EGU', dtype=ChannelType.CHAR, max_length=16, report_as_string=True, doc='Engineering Units') index_value_location = pvproperty(name='NVL', dtype=ChannelType.STRING, doc='Index Value Location') select_mechanism = pvproperty( name='SELM', dtype=ChannelType.ENUM, enum_strings=menus.selSELM.get_string_tuple(), doc='Select Mechanism') value_of_input_a = pvproperty(name='A', dtype=ChannelType.DOUBLE, doc='Value of Input A') value_of_input_b = pvproperty(name='B', dtype=ChannelType.DOUBLE, doc='Value of Input B') value_of_input_c = pvproperty(name='C', dtype=ChannelType.DOUBLE, doc='Value of Input C') value_of_input_d = pvproperty(name='D', dtype=ChannelType.DOUBLE, doc='Value of Input D') value_of_input_e = pvproperty(name='E', dtype=ChannelType.DOUBLE, doc='Value of Input E') value_of_input_f = pvproperty(name='F', dtype=ChannelType.DOUBLE, doc='Value of Input F') value_of_input_g = pvproperty(name='G', dtype=ChannelType.DOUBLE, doc='Value of Input G') value_of_input_h = pvproperty(name='H', dtype=ChannelType.DOUBLE, doc='Value of Input H') value_of_input_i = pvproperty(name='I', dtype=ChannelType.DOUBLE, doc='Value of Input I') input_a = pvproperty(name='INPA', dtype=ChannelType.STRING, doc='Input A') input_b = pvproperty(name='INPB', dtype=ChannelType.STRING, doc='Input B') input_c = pvproperty(name='INPC', dtype=ChannelType.STRING, doc='Input C') input_d = pvproperty(name='INPD', dtype=ChannelType.STRING, doc='Input D') input_e = pvproperty(name='INPE', dtype=ChannelType.STRING, doc='Input E') input_f = pvproperty(name='INPF', dtype=ChannelType.STRING, doc='Input F') input_g = pvproperty(name='INPG', dtype=ChannelType.STRING, doc='Input G') input_h = pvproperty(name='INPH', dtype=ChannelType.STRING, doc='Input H') input_i = pvproperty(name='INPI', dtype=ChannelType.STRING, doc='Input I') input_j = pvproperty(name='INPJ', dtype=ChannelType.STRING, doc='Input J') input_k = pvproperty(name='INPK', dtype=ChannelType.STRING, doc='Input K') input_l = pvproperty(name='INPL', dtype=ChannelType.STRING, doc='Input L') value_of_input_j = pvproperty(name='J', dtype=ChannelType.DOUBLE, doc='Value of Input J') value_of_input_k = pvproperty(name='K', dtype=ChannelType.DOUBLE, doc='Value of Input K') value_of_input_l = pvproperty(name='L', dtype=ChannelType.DOUBLE, doc='Value of Input L') prev_value_of_a = pvproperty(name='LA', dtype=ChannelType.DOUBLE, doc='Prev Value of A', read_only=True) prev_value_of_b = pvproperty(name='LB', dtype=ChannelType.DOUBLE, doc='Prev Value of B', read_only=True) prev_value_of_c = pvproperty(name='LC', dtype=ChannelType.DOUBLE, doc='Prev Value of C', read_only=True) prev_value_of_d = pvproperty(name='LD', dtype=ChannelType.DOUBLE, doc='Prev Value of D', read_only=True) prev_value_of_e = pvproperty(name='LE', dtype=ChannelType.DOUBLE, doc='Prev Value of E', read_only=True) prev_value_of_f = pvproperty(name='LF', dtype=ChannelType.DOUBLE, doc='Prev Value of F', read_only=True) prev_value_of_g = pvproperty(name='LG', dtype=ChannelType.DOUBLE, doc='Prev Value of G', read_only=True) prev_value_of_h = pvproperty(name='LH', dtype=ChannelType.DOUBLE, doc='Prev Value of H', read_only=True) prev_value_of_i = pvproperty(name='LI', dtype=ChannelType.DOUBLE, doc='Prev Value of I', read_only=True) prev_value_of_j = pvproperty(name='LJ', dtype=ChannelType.DOUBLE, doc='Prev Value of J', read_only=True) prev_value_of_k = pvproperty(name='LK', dtype=ChannelType.DOUBLE, doc='Prev Value of K', read_only=True) prev_value_of_l = pvproperty(name='LL', dtype=ChannelType.DOUBLE, doc='Prev Value of L', read_only=True) # result = pvproperty(name='VAL', # dtype=ChannelType.DOUBLE, # doc='Result',read_only=True) _link_parent_attribute( display_precision, 'precision', ) _link_parent_attribute(archive_deadband, 'log_atol', use_setattr=True) _link_parent_attribute(monitor_deadband, 'value_atol', use_setattr=True)
[docs]@register_record class SeqFields(RecordFieldGroup): _record_type = "seq" _dtype = ChannelType.LONG # DTYP of .VAL has_val_field = True device_type = pvproperty(name='DTYP', dtype=ChannelType.ENUM, enum_strings=menus.dtyp_seq.get_string_tuple(), doc='Device Type') value_1 = pvproperty(name='DO1', dtype=ChannelType.DOUBLE, doc='Value 1') value_10 = pvproperty(name='DOA', dtype=ChannelType.DOUBLE, doc='Value 10') value_2 = pvproperty(name='DO2', dtype=ChannelType.DOUBLE, doc='Value 2') value_3 = pvproperty(name='DO3', dtype=ChannelType.DOUBLE, doc='Value 3') value_4 = pvproperty(name='DO4', dtype=ChannelType.DOUBLE, doc='Value 4') value_5 = pvproperty(name='DO5', dtype=ChannelType.DOUBLE, doc='Value 5') value_6 = pvproperty(name='DO6', dtype=ChannelType.DOUBLE, doc='Value 6') value_7 = pvproperty(name='DO7', dtype=ChannelType.DOUBLE, doc='Value 7') value_8 = pvproperty(name='DO8', dtype=ChannelType.DOUBLE, doc='Value 8') value_9 = pvproperty(name='DO9', dtype=ChannelType.DOUBLE, doc='Value 9') link_selection = pvproperty(name='SELN', dtype=ChannelType.INT, doc='Link Selection', value=1) display_precision = pvproperty(name='PREC', dtype=ChannelType.INT, doc='Display Precision') link_selection_loc = pvproperty(name='SELL', dtype=ChannelType.STRING, doc='Link Selection Loc') select_mechanism = pvproperty( name='SELM', dtype=ChannelType.ENUM, enum_strings=menus.seqSELM.get_string_tuple(), doc='Select Mechanism') delay_1 = pvproperty(name='DLY1', dtype=ChannelType.DOUBLE, doc='Delay 1') delay_2 = pvproperty(name='DLY2', dtype=ChannelType.DOUBLE, doc='Delay 2') delay_3 = pvproperty(name='DLY3', dtype=ChannelType.DOUBLE, doc='Delay 3') input_link_2 = pvproperty(name='DOL2', dtype=ChannelType.STRING, doc='Input link 2') input_link_3 = pvproperty(name='DOL3', dtype=ChannelType.STRING, doc='Input link 3') input_link1 = pvproperty(name='DOL1', dtype=ChannelType.STRING, doc='Input link1') output_link_1 = pvproperty(name='LNK1', dtype=ChannelType.STRING, doc='Output Link 1') output_link_2 = pvproperty(name='LNK2', dtype=ChannelType.STRING, doc='Output Link 2') output_link_3 = pvproperty(name='LNK3', dtype=ChannelType.STRING, doc='Output Link 3') delay_4 = pvproperty(name='DLY4', dtype=ChannelType.DOUBLE, doc='Delay 4') delay_5 = pvproperty(name='DLY5', dtype=ChannelType.DOUBLE, doc='Delay 5') delay_6 = pvproperty(name='DLY6', dtype=ChannelType.DOUBLE, doc='Delay 6') input_link_4 = pvproperty(name='DOL4', dtype=ChannelType.STRING, doc='Input link 4') input_link_5 = pvproperty(name='DOL5', dtype=ChannelType.STRING, doc='Input link 5') input_link_6 = pvproperty(name='DOL6', dtype=ChannelType.STRING, doc='Input link 6') output_link_4 = pvproperty(name='LNK4', dtype=ChannelType.STRING, doc='Output Link 4') output_link_5 = pvproperty(name='LNK5', dtype=ChannelType.STRING, doc='Output Link 5') output_link_6 = pvproperty(name='LNK6', dtype=ChannelType.STRING, doc='Output Link 6') delay_10 = pvproperty(name='DLYA', dtype=ChannelType.DOUBLE, doc='Delay 10') delay_7 = pvproperty(name='DLY7', dtype=ChannelType.DOUBLE, doc='Delay 7') delay_8 = pvproperty(name='DLY8', dtype=ChannelType.DOUBLE, doc='Delay 8') delay_9 = pvproperty(name='DLY9', dtype=ChannelType.DOUBLE, doc='Delay 9') input_link_10 = pvproperty(name='DOLA', dtype=ChannelType.STRING, doc='Input link 10') input_link_7 = pvproperty(name='DOL7', dtype=ChannelType.STRING, doc='Input link 7') input_link_8 = pvproperty(name='DOL8', dtype=ChannelType.STRING, doc='Input link 8') input_link_9 = pvproperty(name='DOL9', dtype=ChannelType.STRING, doc='Input link 9') output_link_10 = pvproperty(name='LNKA', dtype=ChannelType.STRING, doc='Output Link 10') output_link_7 = pvproperty(name='LNK7', dtype=ChannelType.STRING, doc='Output Link 7') output_link_8 = pvproperty(name='LNK8', dtype=ChannelType.STRING, doc='Output Link 8') output_link_9 = pvproperty(name='LNK9', dtype=ChannelType.STRING, doc='Output Link 9') delay_0 = pvproperty(name='DLY0', dtype=ChannelType.DOUBLE, doc='Delay 0') delay_11 = pvproperty(name='DLYB', dtype=ChannelType.DOUBLE, doc='Delay 11') delay_12 = pvproperty(name='DLYC', dtype=ChannelType.DOUBLE, doc='Delay 12') delay_13 = pvproperty(name='DLYD', dtype=ChannelType.DOUBLE, doc='Delay 13') delay_14 = pvproperty(name='DLYE', dtype=ChannelType.DOUBLE, doc='Delay 14') delay_15 = pvproperty(name='DLYF', dtype=ChannelType.DOUBLE, doc='Delay 15') value_0 = pvproperty(name='DO0', dtype=ChannelType.DOUBLE, doc='Value 0') value_11 = pvproperty(name='DOB', dtype=ChannelType.DOUBLE, doc='Value 11') value_12 = pvproperty(name='DOC', dtype=ChannelType.DOUBLE, doc='Value 12') value_13 = pvproperty(name='DOD', dtype=ChannelType.DOUBLE, doc='Value 13') value_14 = pvproperty(name='DOE', dtype=ChannelType.DOUBLE, doc='Value 14') value_15 = pvproperty(name='DOF', dtype=ChannelType.DOUBLE, doc='Value 15') input_link_0 = pvproperty(name='DOL0', dtype=ChannelType.STRING, doc='Input link 0') input_link_11 = pvproperty(name='DOLB', dtype=ChannelType.STRING, doc='Input link 11') input_link_12 = pvproperty(name='DOLC', dtype=ChannelType.STRING, doc='Input link 12') input_link_13 = pvproperty(name='DOLD', dtype=ChannelType.STRING, doc='Input link 13') input_link_14 = pvproperty(name='DOLE', dtype=ChannelType.STRING, doc='Input link 14') input_link_15 = pvproperty(name='DOLF', dtype=ChannelType.STRING, doc='Input link 15') output_link_0 = pvproperty(name='LNK0', dtype=ChannelType.STRING, doc='Output Link 0') output_link_11 = pvproperty(name='LNKB', dtype=ChannelType.STRING, doc='Output Link 11') output_link_12 = pvproperty(name='LNKC', dtype=ChannelType.STRING, doc='Output Link 12') output_link_13 = pvproperty(name='LNKD', dtype=ChannelType.STRING, doc='Output Link 13') output_link_14 = pvproperty(name='LNKE', dtype=ChannelType.STRING, doc='Output Link 14') output_link_15 = pvproperty(name='LNKF', dtype=ChannelType.STRING, doc='Output Link 15') offset_for_specified = pvproperty(name='OFFS', dtype=ChannelType.INT, doc='Offset for Specified', value=0) old_selection = pvproperty(name='OLDN', dtype=ChannelType.INT, doc='Old Selection') shift_for_mask_mode = pvproperty(name='SHFT', dtype=ChannelType.INT, doc='Shift for Mask mode', value=-1) # used_to_trigger = pvproperty(name='VAL', # dtype=ChannelType.LONG, # doc='Used to trigger') _link_parent_attribute( display_precision, 'precision', )
[docs]@register_record class StateFields(RecordFieldGroup): _record_type = "state" _dtype = ChannelType.STRING # DTYP of .VAL has_val_field = True device_type = pvproperty(name='DTYP', dtype=ChannelType.ENUM, enum_strings=menus.dtyp_state.get_string_tuple(), doc='Device Type') prev_value = pvproperty(name='OVAL', dtype=ChannelType.CHAR, max_length=20, report_as_string=True, doc='Prev Value', read_only=True)
# value = pvproperty(name='VAL', # dtype=ChannelType.CHAR, # max_length=20,report_as_string=True,doc='Value')
[docs]@register_record class StringinFields(RecordFieldGroup): _record_type = "stringin" _dtype = ChannelType.STRING # DTYP of .VAL has_val_field = True device_type = pvproperty( name='DTYP', dtype=ChannelType.ENUM, enum_strings=menus.dtyp_stringin.get_string_tuple(), doc='Device Type') previous_value = pvproperty(name='OVAL', dtype=ChannelType.CHAR, max_length=40, report_as_string=True, doc='Previous Value', read_only=True) simulation_mode = pvproperty( name='SIMM', dtype=ChannelType.ENUM, enum_strings=menus.menuYesNo.get_string_tuple(), doc='Simulation Mode') simulation_value = pvproperty(name='SVAL', dtype=ChannelType.CHAR, max_length=40, report_as_string=True, doc='Simulation Value') post_archive_monitors = pvproperty( name='APST', dtype=ChannelType.ENUM, enum_strings=menus.stringinPOST.get_string_tuple(), doc='Post Archive Monitors') post_value_monitors = pvproperty( name='MPST', dtype=ChannelType.ENUM, enum_strings=menus.stringinPOST.get_string_tuple(), doc='Post Value Monitors') input_specification = pvproperty(name='INP', dtype=ChannelType.STRING, doc='Input Specification') simulation_input_link = pvproperty(name='SIOL', dtype=ChannelType.STRING, doc='Simulation Input Link') simulation_mode_link = pvproperty(name='SIML', dtype=ChannelType.STRING, doc='Simulation Mode Link') simulation_mode_severity = pvproperty( name='SIMS', dtype=ChannelType.ENUM, enum_strings=menus.menuAlarmSevr.get_string_tuple(), doc='Simulation Mode Severity') prev_simulation_mode = pvproperty( name='OLDSIMM', dtype=ChannelType.ENUM, enum_strings=menus.menuSimm.get_string_tuple(), doc='Prev. Simulation Mode', read_only=True) sim_mode_async_delay = pvproperty(name='SDLY', dtype=ChannelType.DOUBLE, doc='Sim. Mode Async Delay', value=-1.0) sim_mode_scan = pvproperty(name='SSCN', dtype=ChannelType.ENUM, enum_strings=menus.menuScan.get_string_tuple(), doc='Sim. Mode Scan', value=0)
# current_value = pvproperty(name='VAL', # dtype=ChannelType.CHAR, # max_length=40,report_as_string=True,doc='Current Value')
[docs]@register_record class StringoutFields(RecordFieldGroup): _record_type = "stringout" _dtype = ChannelType.STRING # DTYP of .VAL has_val_field = True device_type = pvproperty( name='DTYP', dtype=ChannelType.ENUM, enum_strings=menus.dtyp_stringout.get_string_tuple(), doc='Device Type') previous_value = pvproperty(name='OVAL', dtype=ChannelType.CHAR, max_length=40, report_as_string=True, doc='Previous Value', read_only=True) simulation_mode = pvproperty( name='SIMM', dtype=ChannelType.ENUM, enum_strings=menus.menuYesNo.get_string_tuple(), doc='Simulation Mode') post_archive_monitors = pvproperty( name='APST', dtype=ChannelType.ENUM, enum_strings=menus.stringoutPOST.get_string_tuple(), doc='Post Archive Monitors') post_value_monitors = pvproperty( name='MPST', dtype=ChannelType.ENUM, enum_strings=menus.stringoutPOST.get_string_tuple(), doc='Post Value Monitors') simulation_mode_link = pvproperty(name='SIML', dtype=ChannelType.STRING, doc='Simulation Mode Link') simulation_output_link = pvproperty(name='SIOL', dtype=ChannelType.STRING, doc='Simulation Output Link') simulation_mode_severity = pvproperty( name='SIMS', dtype=ChannelType.ENUM, enum_strings=menus.menuAlarmSevr.get_string_tuple(), doc='Simulation Mode Severity') desired_output_loc = pvproperty(name='DOL', dtype=ChannelType.STRING, doc='Desired Output Loc') invalid_output_action = pvproperty( name='IVOA', dtype=ChannelType.ENUM, enum_strings=menus.menuIvoa.get_string_tuple(), doc='INVALID output action') invalid_output_value = pvproperty(name='IVOV', dtype=ChannelType.CHAR, max_length=40, report_as_string=True, doc='INVALID output value') output_mode_select = pvproperty( name='OMSL', dtype=ChannelType.ENUM, enum_strings=menus.menuOmsl.get_string_tuple(), doc='Output Mode Select') output_specification = pvproperty(name='OUT', dtype=ChannelType.STRING, doc='Output Specification') prev_simulation_mode = pvproperty( name='OLDSIMM', dtype=ChannelType.ENUM, enum_strings=menus.menuSimm.get_string_tuple(), doc='Prev. Simulation Mode', read_only=True) sim_mode_async_delay = pvproperty(name='SDLY', dtype=ChannelType.DOUBLE, doc='Sim. Mode Async Delay', value=-1.0) sim_mode_scan = pvproperty(name='SSCN', dtype=ChannelType.ENUM, enum_strings=menus.menuScan.get_string_tuple(), doc='Sim. Mode Scan', value=0)
# current_value = pvproperty(name='VAL', # dtype=ChannelType.CHAR, # max_length=40,report_as_string=True,doc='Current Value')
[docs]@register_record class SubFields(RecordFieldGroup, _Limits): _record_type = "sub" _dtype = ChannelType.DOUBLE # DTYP of .VAL has_val_field = True device_type = pvproperty(name='DTYP', dtype=ChannelType.ENUM, enum_strings=menus.dtyp_sub.get_string_tuple(), doc='Device Type') last_value_alarmed = pvproperty(name='LALM', dtype=ChannelType.DOUBLE, doc='Last Value Alarmed', read_only=True) last_value_archived = pvproperty(name='ALST', dtype=ChannelType.DOUBLE, doc='Last Value Archived', read_only=True) last_value_monitored = pvproperty(name='MLST', dtype=ChannelType.DOUBLE, doc='Last Value Monitored', read_only=True) prev_value_of_a = pvproperty(name='LA', dtype=ChannelType.DOUBLE, doc='Prev Value of A', read_only=True) prev_value_of_b = pvproperty(name='LB', dtype=ChannelType.DOUBLE, doc='Prev Value of B', read_only=True) prev_value_of_c = pvproperty(name='LC', dtype=ChannelType.DOUBLE, doc='Prev Value of C', read_only=True) prev_value_of_d = pvproperty(name='LD', dtype=ChannelType.DOUBLE, doc='Prev Value of D', read_only=True) prev_value_of_e = pvproperty(name='LE', dtype=ChannelType.DOUBLE, doc='Prev Value of E', read_only=True) prev_value_of_f = pvproperty(name='LF', dtype=ChannelType.DOUBLE, doc='Prev Value of F', read_only=True) prev_value_of_g = pvproperty(name='LG', dtype=ChannelType.DOUBLE, doc='Prev Value of G', read_only=True) prev_value_of_h = pvproperty(name='LH', dtype=ChannelType.DOUBLE, doc='Prev Value of H', read_only=True) prev_value_of_i = pvproperty(name='LI', dtype=ChannelType.DOUBLE, doc='Prev Value of I', read_only=True) prev_value_of_j = pvproperty(name='LJ', dtype=ChannelType.DOUBLE, doc='Prev Value of J', read_only=True) prev_value_of_k = pvproperty(name='LK', dtype=ChannelType.DOUBLE, doc='Prev Value of K', read_only=True) prev_value_of_l = pvproperty(name='LL', dtype=ChannelType.DOUBLE, doc='Prev Value of L', read_only=True) value_of_input_a = pvproperty(name='A', dtype=ChannelType.DOUBLE, doc='Value of Input A') value_of_input_b = pvproperty(name='B', dtype=ChannelType.DOUBLE, doc='Value of Input B') value_of_input_c = pvproperty(name='C', dtype=ChannelType.DOUBLE, doc='Value of Input C') value_of_input_d = pvproperty(name='D', dtype=ChannelType.DOUBLE, doc='Value of Input D') value_of_input_e = pvproperty(name='E', dtype=ChannelType.DOUBLE, doc='Value of Input E') value_of_input_f = pvproperty(name='F', dtype=ChannelType.DOUBLE, doc='Value of Input F') value_of_input_g = pvproperty(name='G', dtype=ChannelType.DOUBLE, doc='Value of Input G') value_of_input_h = pvproperty(name='H', dtype=ChannelType.DOUBLE, doc='Value of Input H') value_of_input_i = pvproperty(name='I', dtype=ChannelType.DOUBLE, doc='Value of Input I') value_of_input_j = pvproperty(name='J', dtype=ChannelType.DOUBLE, doc='Value of Input J') value_of_input_k = pvproperty(name='K', dtype=ChannelType.DOUBLE, doc='Value of Input K') value_of_input_l = pvproperty(name='L', dtype=ChannelType.DOUBLE, doc='Value of Input L') alarm_deadband = pvproperty(name='HYST', dtype=ChannelType.DOUBLE, doc='Alarm Deadband') archive_deadband = pvproperty(name='ADEL', dtype=ChannelType.DOUBLE, doc='Archive Deadband') display_precision = pvproperty(name='PREC', dtype=ChannelType.INT, doc='Display Precision') monitor_deadband = pvproperty(name='MDEL', dtype=ChannelType.DOUBLE, doc='Monitor Deadband') engineering_units = pvproperty(name='EGU', dtype=ChannelType.CHAR, max_length=16, report_as_string=True, doc='Engineering Units') input_a = pvproperty(name='INPA', dtype=ChannelType.STRING, doc='Input A') input_b = pvproperty(name='INPB', dtype=ChannelType.STRING, doc='Input B') input_c = pvproperty(name='INPC', dtype=ChannelType.STRING, doc='Input C') input_d = pvproperty(name='INPD', dtype=ChannelType.STRING, doc='Input D') input_e = pvproperty(name='INPE', dtype=ChannelType.STRING, doc='Input E') input_f = pvproperty(name='INPF', dtype=ChannelType.STRING, doc='Input F') input_g = pvproperty(name='INPG', dtype=ChannelType.STRING, doc='Input G') input_h = pvproperty(name='INPH', dtype=ChannelType.STRING, doc='Input H') input_i = pvproperty(name='INPI', dtype=ChannelType.STRING, doc='Input I') input_j = pvproperty(name='INPJ', dtype=ChannelType.STRING, doc='Input J') input_k = pvproperty(name='INPK', dtype=ChannelType.STRING, doc='Input K') input_l = pvproperty(name='INPL', dtype=ChannelType.STRING, doc='Input L') bad_return_severity = pvproperty( name='BRSV', dtype=ChannelType.ENUM, enum_strings=menus.menuAlarmSevr.get_string_tuple(), doc='Bad Return Severity') init_routine_name = pvproperty(name='INAM', dtype=ChannelType.CHAR, max_length=40, report_as_string=True, doc='Init Routine Name', read_only=True) subroutine_name = pvproperty(name='SNAM', dtype=ChannelType.CHAR, max_length=40, report_as_string=True, doc='Subroutine Name') # result = pvproperty(name='VAL', # dtype=ChannelType.DOUBLE, # doc='Result') _link_parent_attribute( display_precision, 'precision', ) _link_parent_attribute(archive_deadband, 'log_atol', use_setattr=True) _link_parent_attribute(monitor_deadband, 'value_atol', use_setattr=True)
[docs]@register_record class SubarrayFields(RecordFieldGroup): _record_type = "subArray" _dtype = None # DTYP of .VAL has_val_field = False device_type = pvproperty( name='DTYP', dtype=ChannelType.ENUM, enum_strings=menus.dtyp_subArray.get_string_tuple(), doc='Device Type') busy_indicator = pvproperty(name='BUSY', dtype=ChannelType.INT, doc='Busy Indicator', read_only=True) number_elements_read = pvproperty(name='NORD', dtype=ChannelType.LONG, doc='Number elements read', read_only=True) field_type_of_value = pvproperty( name='FTVL', dtype=ChannelType.ENUM, enum_strings=menus.menuFtype.get_string_tuple(), doc='Field Type of Value', read_only=True) input_specification = pvproperty(name='INP', dtype=ChannelType.STRING, doc='Input Specification') engineering_units = pvproperty(name='EGU', dtype=ChannelType.CHAR, max_length=16, report_as_string=True, doc='Engineering Units') high_operating_range = pvproperty(name='HOPR', dtype=ChannelType.DOUBLE, doc='High Operating Range') low_operating_range = pvproperty(name='LOPR', dtype=ChannelType.DOUBLE, doc='Low Operating Range') maximum_elements = pvproperty(name='MALM', dtype=ChannelType.LONG, doc='Maximum Elements', read_only=True, value=1) display_precision = pvproperty(name='PREC', dtype=ChannelType.INT, doc='Display Precision') number_of_elements = pvproperty(name='NELM', dtype=ChannelType.LONG, doc='Number of Elements', value=1) substring_index = pvproperty(name='INDX', dtype=ChannelType.LONG, doc='Substring Index') _link_parent_attribute( display_precision, 'precision', ) _link_parent_attribute( high_operating_range, 'upper_ctrl_limit', ) _link_parent_attribute( low_operating_range, 'lower_ctrl_limit', ) _link_parent_attribute(maximum_elements, 'length', use_setattr=True, read_only=True) _link_parent_attribute(number_of_elements, 'max_length', use_setattr=True, read_only=True)
[docs]@register_record class WaveformFields(RecordFieldGroup): _record_type = "waveform" _dtype = None # DTYP of .VAL has_val_field = False device_type = pvproperty( name='DTYP', dtype=ChannelType.ENUM, enum_strings=menus.dtyp_waveform.get_string_tuple(), doc='Device Type') busy_indicator = pvproperty(name='BUSY', dtype=ChannelType.INT, doc='Busy Indicator', read_only=True) hash_of_onchange_data = pvproperty(name='HASH', dtype=ChannelType.LONG, doc='Hash of OnChange data.') number_elements_read = pvproperty(name='NORD', dtype=ChannelType.LONG, doc='Number elements read', read_only=True) simulation_mode = pvproperty( name='SIMM', dtype=ChannelType.ENUM, enum_strings=menus.menuYesNo.get_string_tuple(), doc='Simulation Mode') display_precision = pvproperty(name='PREC', dtype=ChannelType.INT, doc='Display Precision') engineering_units = pvproperty(name='EGU', dtype=ChannelType.CHAR, max_length=16, report_as_string=True, doc='Engineering Units') high_operating_range = pvproperty(name='HOPR', dtype=ChannelType.DOUBLE, doc='High Operating Range') low_operating_range = pvproperty(name='LOPR', dtype=ChannelType.DOUBLE, doc='Low Operating Range') post_archive_monitors = pvproperty( name='APST', dtype=ChannelType.ENUM, enum_strings=menus.waveformPOST.get_string_tuple(), doc='Post Archive Monitors') post_value_monitors = pvproperty( name='MPST', dtype=ChannelType.ENUM, enum_strings=menus.waveformPOST.get_string_tuple(), doc='Post Value Monitors') input_specification = pvproperty(name='INP', dtype=ChannelType.STRING, doc='Input Specification') simulation_input_link = pvproperty(name='SIOL', dtype=ChannelType.STRING, doc='Simulation Input Link') simulation_mode_link = pvproperty(name='SIML', dtype=ChannelType.STRING, doc='Simulation Mode Link') simulation_mode_severity = pvproperty( name='SIMS', dtype=ChannelType.ENUM, enum_strings=menus.menuAlarmSevr.get_string_tuple(), doc='Simulation Mode Severity') field_type_of_value = pvproperty( name='FTVL', dtype=ChannelType.ENUM, enum_strings=menus.menuFtype.get_string_tuple(), doc='Field Type of Value', read_only=True) number_of_elements = pvproperty(name='NELM', dtype=ChannelType.LONG, doc='Number of Elements', read_only=True, value=1) rearm_the_waveform = pvproperty(name='RARM', dtype=ChannelType.INT, doc='Rearm the waveform') prev_simulation_mode = pvproperty( name='OLDSIMM', dtype=ChannelType.ENUM, enum_strings=menus.menuSimm.get_string_tuple(), doc='Prev. Simulation Mode', read_only=True) sim_mode_async_delay = pvproperty(name='SDLY', dtype=ChannelType.DOUBLE, doc='Sim. Mode Async Delay', value=-1.0) sim_mode_scan = pvproperty(name='SSCN', dtype=ChannelType.ENUM, enum_strings=menus.menuScan.get_string_tuple(), doc='Sim. Mode Scan', value=0) _link_parent_attribute( display_precision, 'precision', ) _link_parent_attribute( high_operating_range, 'upper_ctrl_limit', ) _link_parent_attribute( low_operating_range, 'lower_ctrl_limit', ) _link_parent_attribute(number_of_elements, 'max_length', use_setattr=True, read_only=True)
[docs]@register_record class Int64inFields(RecordFieldGroup, _LimitsLong): _record_type = "int64in" _dtype = ChannelType.LONG # DTYP of .VAL has_val_field = True device_type = pvproperty( name='DTYP', dtype=ChannelType.ENUM, enum_strings=menus.dtyp_int64in.get_string_tuple(), doc='Device Type') archive_deadband = pvproperty(name='ADEL', dtype=ChannelType.LONG, doc='Archive Deadband') alarm_filter_time_constant = pvproperty(name='AFTC', dtype=ChannelType.DOUBLE, doc='Alarm Filter Time Constant') alarm_filter_value = pvproperty(name='AFVL', dtype=ChannelType.DOUBLE, doc='Alarm Filter Value', read_only=True) last_value_archived = pvproperty(name='ALST', dtype=ChannelType.LONG, doc='Last Value Archived', read_only=True) units_name = pvproperty(name='EGU', dtype=ChannelType.CHAR, max_length=16, report_as_string=True, doc='Units name') alarm_deadband = pvproperty(name='HYST', dtype=ChannelType.LONG, doc='Alarm Deadband') input_specification = pvproperty(name='INP', dtype=ChannelType.STRING, doc='Input Specification') last_value_alarmed = pvproperty(name='LALM', dtype=ChannelType.LONG, doc='Last Value Alarmed', read_only=True) monitor_deadband = pvproperty(name='MDEL', dtype=ChannelType.LONG, doc='Monitor Deadband') last_val_monitored = pvproperty(name='MLST', dtype=ChannelType.LONG, doc='Last Val Monitored', read_only=True) prev_simulation_mode = pvproperty( name='OLDSIMM', dtype=ChannelType.ENUM, enum_strings=menus.menuSimm.get_string_tuple(), doc='Prev. Simulation Mode', read_only=True) sim_mode_async_delay = pvproperty(name='SDLY', dtype=ChannelType.DOUBLE, doc='Sim. Mode Async Delay', value=-1.0) simulation_mode_link = pvproperty(name='SIML', dtype=ChannelType.STRING, doc='Simulation Mode Link') simulation_mode = pvproperty( name='SIMM', dtype=ChannelType.ENUM, enum_strings=menus.menuYesNo.get_string_tuple(), doc='Simulation Mode') simulation_mode_severity = pvproperty( name='SIMS', dtype=ChannelType.ENUM, enum_strings=menus.menuAlarmSevr.get_string_tuple(), doc='Simulation Mode Severity') simulation_input_link = pvproperty(name='SIOL', dtype=ChannelType.STRING, doc='Simulation Input Link') sim_mode_scan = pvproperty(name='SSCN', dtype=ChannelType.ENUM, enum_strings=menus.menuScan.get_string_tuple(), doc='Sim. Mode Scan', value=0) simulation_value = pvproperty(name='SVAL', dtype=ChannelType.LONG, doc='Simulation Value') # current_value = pvproperty(name='VAL', # dtype=ChannelType.LONG, # doc='Current value') _link_parent_attribute(archive_deadband, 'log_atol', use_setattr=True) _link_parent_attribute(monitor_deadband, 'value_atol', use_setattr=True)
[docs]@register_record class Int64outFields(RecordFieldGroup, _LimitsLong): _record_type = "int64out" _dtype = ChannelType.LONG # DTYP of .VAL has_val_field = True device_type = pvproperty( name='DTYP', dtype=ChannelType.ENUM, enum_strings=menus.dtyp_int64out.get_string_tuple(), doc='Device Type') archive_deadband = pvproperty(name='ADEL', dtype=ChannelType.LONG, doc='Archive Deadband') last_value_archived = pvproperty(name='ALST', dtype=ChannelType.LONG, doc='Last Value Archived', read_only=True) desired_output_loc = pvproperty(name='DOL', dtype=ChannelType.STRING, doc='Desired Output Loc') drive_high_limit = pvproperty(name='DRVH', dtype=ChannelType.LONG, doc='Drive High Limit') drive_low_limit = pvproperty(name='DRVL', dtype=ChannelType.LONG, doc='Drive Low Limit') units_name = pvproperty(name='EGU', dtype=ChannelType.CHAR, max_length=16, report_as_string=True, doc='Units name') alarm_deadband = pvproperty(name='HYST', dtype=ChannelType.LONG, doc='Alarm Deadband') invalid_output_action = pvproperty( name='IVOA', dtype=ChannelType.ENUM, enum_strings=menus.menuIvoa.get_string_tuple(), doc='INVALID output action') invalid_output_value = pvproperty(name='IVOV', dtype=ChannelType.LONG, doc='INVALID output value') last_value_alarmed = pvproperty(name='LALM', dtype=ChannelType.LONG, doc='Last Value Alarmed', read_only=True) monitor_deadband = pvproperty(name='MDEL', dtype=ChannelType.LONG, doc='Monitor Deadband') last_val_monitored = pvproperty(name='MLST', dtype=ChannelType.LONG, doc='Last Val Monitored', read_only=True) prev_simulation_mode = pvproperty( name='OLDSIMM', dtype=ChannelType.ENUM, enum_strings=menus.menuSimm.get_string_tuple(), doc='Prev. Simulation Mode', read_only=True) output_mode_select = pvproperty( name='OMSL', dtype=ChannelType.ENUM, enum_strings=menus.menuOmsl.get_string_tuple(), doc='Output Mode Select') output_specification = pvproperty(name='OUT', dtype=ChannelType.STRING, doc='Output Specification') sim_mode_async_delay = pvproperty(name='SDLY', dtype=ChannelType.DOUBLE, doc='Sim. Mode Async Delay', value=-1.0) simulation_mode_link = pvproperty(name='SIML', dtype=ChannelType.STRING, doc='Simulation Mode Link') simulation_mode = pvproperty( name='SIMM', dtype=ChannelType.ENUM, enum_strings=menus.menuYesNo.get_string_tuple(), doc='Simulation Mode') simulation_mode_severity = pvproperty( name='SIMS', dtype=ChannelType.ENUM, enum_strings=menus.menuAlarmSevr.get_string_tuple(), doc='Simulation Mode Severity') simulation_output_link = pvproperty(name='SIOL', dtype=ChannelType.STRING, doc='Simulation Output Link') sim_mode_scan = pvproperty(name='SSCN', dtype=ChannelType.ENUM, enum_strings=menus.menuScan.get_string_tuple(), doc='Sim. Mode Scan', value=0) # desired_output = pvproperty(name='VAL', # dtype=ChannelType.LONG, # doc='Desired Output') _link_parent_attribute(archive_deadband, 'log_atol', use_setattr=True) _link_parent_attribute(monitor_deadband, 'value_atol', use_setattr=True)
[docs]@register_record class LsiFields(RecordFieldGroup): _record_type = "lsi" _dtype = None # DTYP of .VAL has_val_field = False device_type = pvproperty(name='DTYP', dtype=ChannelType.ENUM, enum_strings=menus.dtyp_lsi.get_string_tuple(), doc='Device Type') post_archive_monitors = pvproperty( name='APST', dtype=ChannelType.ENUM, enum_strings=menus.menuPost.get_string_tuple(), doc='Post Archive Monitors') input_specification = pvproperty(name='INP', dtype=ChannelType.STRING, doc='Input Specification') length_of_val = pvproperty(name='LEN', dtype=ChannelType.LONG, doc='Length of VAL', read_only=True) post_value_monitors = pvproperty( name='MPST', dtype=ChannelType.ENUM, enum_strings=menus.menuPost.get_string_tuple(), doc='Post Value Monitors') prev_simulation_mode = pvproperty( name='OLDSIMM', dtype=ChannelType.ENUM, enum_strings=menus.menuSimm.get_string_tuple(), doc='Prev. Simulation Mode', read_only=True) length_of_oval = pvproperty(name='OLEN', dtype=ChannelType.LONG, doc='Length of OVAL', read_only=True) sim_mode_async_delay = pvproperty(name='SDLY', dtype=ChannelType.DOUBLE, doc='Sim. Mode Async Delay', value=-1.0) simulation_mode_link = pvproperty(name='SIML', dtype=ChannelType.STRING, doc='Simulation Mode Link') simulation_mode = pvproperty( name='SIMM', dtype=ChannelType.ENUM, enum_strings=menus.menuYesNo.get_string_tuple(), doc='Simulation Mode') simulation_mode_severity = pvproperty( name='SIMS', dtype=ChannelType.ENUM, enum_strings=menus.menuAlarmSevr.get_string_tuple(), doc='Simulation Mode Severity') simulation_input_link = pvproperty(name='SIOL', dtype=ChannelType.STRING, doc='Simulation Input Link') size_of_buffers = pvproperty(name='SIZV', dtype=ChannelType.INT, doc='Size of buffers', read_only=True, value=41) sim_mode_scan = pvproperty(name='SSCN', dtype=ChannelType.ENUM, enum_strings=menus.menuScan.get_string_tuple(), doc='Sim. Mode Scan', value=0)
[docs]@register_record class LsoFields(RecordFieldGroup): _record_type = "lso" _dtype = None # DTYP of .VAL has_val_field = False device_type = pvproperty(name='DTYP', dtype=ChannelType.ENUM, enum_strings=menus.dtyp_lso.get_string_tuple(), doc='Device Type') post_archive_monitors = pvproperty( name='APST', dtype=ChannelType.ENUM, enum_strings=menus.menuPost.get_string_tuple(), doc='Post Archive Monitors') desired_output_link = pvproperty(name='DOL', dtype=ChannelType.STRING, doc='Desired Output Link') invalid_output_action = pvproperty( name='IVOA', dtype=ChannelType.ENUM, enum_strings=menus.menuIvoa.get_string_tuple(), doc='INVALID Output Action') invalid_output_value = pvproperty(name='IVOV', dtype=ChannelType.CHAR, max_length=40, report_as_string=True, doc='INVALID Output Value') length_of_val = pvproperty(name='LEN', dtype=ChannelType.LONG, doc='Length of VAL', read_only=True) post_value_monitors = pvproperty( name='MPST', dtype=ChannelType.ENUM, enum_strings=menus.menuPost.get_string_tuple(), doc='Post Value Monitors') prev_simulation_mode = pvproperty( name='OLDSIMM', dtype=ChannelType.ENUM, enum_strings=menus.menuSimm.get_string_tuple(), doc='Prev. Simulation Mode', read_only=True) length_of_oval = pvproperty(name='OLEN', dtype=ChannelType.LONG, doc='Length of OVAL', read_only=True) output_mode_select = pvproperty( name='OMSL', dtype=ChannelType.ENUM, enum_strings=menus.menuOmsl.get_string_tuple(), doc='Output Mode Select') output_specification = pvproperty(name='OUT', dtype=ChannelType.STRING, doc='Output Specification') sim_mode_async_delay = pvproperty(name='SDLY', dtype=ChannelType.DOUBLE, doc='Sim. Mode Async Delay', value=-1.0) simulation_mode_link = pvproperty(name='SIML', dtype=ChannelType.STRING, doc='Simulation Mode link') simulation_mode = pvproperty( name='SIMM', dtype=ChannelType.ENUM, enum_strings=menus.menuYesNo.get_string_tuple(), doc='Simulation Mode') simulation_mode_severity = pvproperty( name='SIMS', dtype=ChannelType.ENUM, enum_strings=menus.menuAlarmSevr.get_string_tuple(), doc='Simulation Mode Severity') simulation_output_link = pvproperty(name='SIOL', dtype=ChannelType.STRING, doc='Simulation Output Link') size_of_buffers = pvproperty(name='SIZV', dtype=ChannelType.INT, doc='Size of buffers', read_only=True, value=41) sim_mode_scan = pvproperty(name='SSCN', dtype=ChannelType.ENUM, enum_strings=menus.menuScan.get_string_tuple(), doc='Sim. Mode Scan', value=0)
[docs]@register_record class PrintfFields(RecordFieldGroup): _record_type = "printf" _dtype = None # DTYP of .VAL has_val_field = False device_type = pvproperty(name='DTYP', dtype=ChannelType.ENUM, enum_strings=menus.dtyp_printf.get_string_tuple(), doc='Device Type') format_string = pvproperty(name='FMT', dtype=ChannelType.CHAR, max_length=81, report_as_string=True, doc='Format String') input_0 = pvproperty(name='INP0', dtype=ChannelType.STRING, doc='Input 0') input_1 = pvproperty(name='INP1', dtype=ChannelType.STRING, doc='Input 1') input_2 = pvproperty(name='INP2', dtype=ChannelType.STRING, doc='Input 2') input_3 = pvproperty(name='INP3', dtype=ChannelType.STRING, doc='Input 3') input_4 = pvproperty(name='INP4', dtype=ChannelType.STRING, doc='Input 4') input_5 = pvproperty(name='INP5', dtype=ChannelType.STRING, doc='Input 5') input_6 = pvproperty(name='INP6', dtype=ChannelType.STRING, doc='Input 6') input_7 = pvproperty(name='INP7', dtype=ChannelType.STRING, doc='Input 7') input_8 = pvproperty(name='INP8', dtype=ChannelType.STRING, doc='Input 8') input_9 = pvproperty(name='INP9', dtype=ChannelType.STRING, doc='Input 9') invalid_link_string = pvproperty(name='IVLS', dtype=ChannelType.CHAR, max_length=16, report_as_string=True, doc='Invalid Link String', value='LNK') length_of_val = pvproperty(name='LEN', dtype=ChannelType.LONG, doc='Length of VAL', read_only=True) output_specification = pvproperty(name='OUT', dtype=ChannelType.STRING, doc='Output Specification') size_of_val_buffer = pvproperty(name='SIZV', dtype=ChannelType.INT, doc='Size of VAL buffer', read_only=True, value=41)
[docs]def summarize(file=sys.stdout): 'Summarize all supported records and their fields' all_records = [('base', RecordFieldGroup)] + list(records.items()) def to_string(s): if callable(s): return 'callable/' + s.__name__ return repr(s) base_fields = { pvprop.pvspec.name for attr, pvprop in RecordFieldGroup._pvs_.items() } for record, rclass in all_records: info = [record, [cls.__name__ for cls in rclass.mro()]] print('\t'.join(to_string(s) for s in info), file=file) for attr, pvprop in rclass._pvs_.items(): if record != 'base' and pvprop.pvspec.name in base_fields: continue kwargs = ( f'{key}={value}'.format(key, value) for key, value in sorted(pvprop.pvspec.cls_kwargs.items())) info = [attr] + list(pvprop.pvspec) + list(kwargs) print('\t'.join(to_string(s) for s in info), file=file) print(file=file)
__all__ = ['records', 'RecordFieldGroup'] + list(records.keys())