ACNET Device Database on Sybase
DEVICE - root table
ACNET_NODE
DEVICE_AUX
DEVICE_CLASS
DEVICE_TYPE
COMPONENT_CLASS
COMPONENT_TYPE
DEVICE_USAGE
DEVICE_LOCATION
LOCATION
SAVE_SUBSYS_LIST - save/restore save list information
PROPERTY
PROPERTY_DESCR
PDB - scaling information
PDB_RS (view) - scaling information for reading/setting properties
PDB_STS (view) - scaling information for basic status properties
PDB_CON (view) - scaling information for basic control properties
DATA_TYPE - device type based scaling information
DATA_TYPE_DESCR - data type names
DEVICE_SCALING - device specific scaling information
DEVICE_SCALING_FE - device specific scaling information for front-ends
DEVICE_FLAGS - miscellaneous device attribute flags
STRUCT_PDB
DEVICE_DIGITAL_STATUS
DIGITAL_STATUS
DIGITAL_CONTROL
BASIC_STATUS_SCALING
SCALING_LENGTH
COLOR
FAMILY
DEVICE_RECORD
PROPERTY_SETTING - saved settings
ALARM_TEXT
ALARM_BLOCK - saved alarm block values
EMC - Event Message Codes used for alarm identification
DEVICE_ANALOG_ALARM
DEVICE_DIGITAL_ALARM
FOREIGN_DEVICE_MAPPING
READ_SET_ENUM_SETS
READ_SET_ENUM_VALUES
PROPERTY_STRUCTURE
STRUCTURE_NAMES
CAMAC_CRATE_DEVICES - device mapping to CAMAC crates
CAMAC_MADC_DEVICES - device mapping to MADCs
DB_AUDIT - database modification information
CONSOLE_USER
DEVICE_OBSDEL_COMMENT - device obsolete/delete reasons
DEVICE_OUT_OF_SERVICE (appdb)
DEPARTMENTS
DOWNLOAD_NODE_INFO
DOWNLOAD_DEVICES
DOWNLOAD_NODE_GROUPS
CLOCK_EVENT
SYSTEM_TREE
TREE_TYPE
SYSTEM_DEVICE
APPLICATION_SETUP
GENERIC_SETUP
APPLICATION_DEVICE
CONSOLE_CLASS
CONSOLE_CLASS_DESCR
DB_PRIV
PDB_TRANSFORM_DESCR
DB_TABLE
DB_FIELD
ALARM_LOG
SOFTWARE_ALARM_LOG
STORED PROCEDURES FOR SPECIAL TASKS
STORED PROCEDURES FOR MANIPULATING CLINKS
STORED PROCEDURES USED FOR DBREPORT
STORED PROCEDURES USED FOR DABBEL
STORED PROCEDURES FOR SYBSET



 
 
 

DEVICE

This table holds information about the devices in the control system (previously DEVDDB). A device is defined as any entity (hardware or virtual) which is part of any accelerator of the control system. Some hardware devices might have a number of different controllable attributes (e.g. vertical/horizontal current in a magnet), each one of these attributes is a separate device.  This is the root table for the ACNET device database.

DEVICE ( di, flags, name, description, trunk, node, prev_sib_di, next_sib_di, device_record_id, protection_mask, save_mask, save_subsys_list_id, save_type_code, save_subtype_code, save_size, display_code, device_type_id, device_usage_id, controlled_by_di, alarm_list_id, emcs, vmdi, vm_property_mask )

di is a unique device identifier (di) for a device (to be used internally instead of the long device name).

4 byte integer (1-999999)  (int).

flags is a set of flags: bit 7 - deleted, bit 6 - obsolete, bit 5 - documented, bit 0 - family, bit 1/2 - previous/next sibling device specified. (In ACNET siblings and families are unrelated concepts.)

1 byte binary (hexified)  (tinyint).

name is the unique name given to a device.

14 byte alphanumeric, 2nd character must be ":" (not null)  (char(8)).

description is the current 8 byte long device name. It is going to be used only by programs that are not converted.

24 byte alphanumeric (not null)  (char(24)).

trunk is the identifier of the front-end trunk for the device.

1 byte integer (must be in the node_subsystem table) (tinyint)

node is the identifier of the front-end node for the device.

1 byte integer (must be in the node_subsystem table) (tinyint)

prev_sib_di is the device identifier of a device preceding this one in a siblings chain.

4 byte integer (0 or 1-999999 and must be in the device table) (int).

next_sib_di is the device identifier of a device following this one in a siblings chain.

4 byte integer (0 or 1-999999 and must be in the device table) (int).

device_record_id is the id of an entry in the device_record table holding information about this device (previously SSDR).

4 byte integer (0 or 1-99999 and must be in the device_record table) (int).

protection_mask is used to check if a console belonging to a class is allowed to do settings.

4 byte binary (hexified) (int).

save_mask came from the save property and selects properties to be saved by the save-restore utility.

1 byte binary (hexified) (tinyint).

save_subsys_list_id is the save list id for the device.

1 byte integer (0 or 1-255 and must be in the save_subsys_list table) (tinyint).

save_type_code was part of the save_restore_handler_code and is used by the save-restore utility.

1 byte integer (tinyint).

save_subtype_code was part of the save_restore_handler_code and is used by the save-restore utility.

1 byte integer (tinyint).

save_size is the size of data that needs to be stored (save/restore) for the device.

4 byte integer - automatically calculated using triggers--do not set a value to this field (int).

display_code is the code used for special handling by save/restore (previously called display_handler_code).

2 byte integer (smallint).

device_usage_id is the identifier of a record in the device_usage table. (not presently used)

4 byte integer (0 or 1-99999 and must be in the device_usage table) (int).

controlled_by_di is the di of the device which controls the current device (e.g. the power supply which controls a magnet). (not presently used)

4 byte integer (0 if not controlled, or 1-999999 and must be in the device table) (int).

alarm_list_id is the display alarm list number. (0 is default value)

4 byte integer (0 or 1-99999 and must be in the device_location table) (int).

emcs is the concatenation of any emcs the device has, even when the device is obsoleted (see emc table.)

16 byte binary (binary(16)).

vmdi is the di of the virtual machine this device belongs to (default of zero indicates NULL virtual machine.)

4 byte integer (int).

vm_property_mask is a mask indicating which properties are members in the vmdi virtual machine.

4 byte integer (int).

keys:

di is the primary key.

name is a unique secondary key.

device_type_id is a foreign key.

device_usage_id is a foreign key.

device_record_id is a foreign key.

device_location_id is a foreign key.

save_subsys_list_id is a foreign key.

controlled_by_di is a foreign key (on the same table).

prev_sib_di is a foreign key (on the same table).

next_sib_di is a foreign key (on the same table).



 
 
 

ACNET_NODE

This table holds the information from the acnet nodes.txt file and should be reloaded every time the file changes (command procedure available). This table only contains currently active ACNET nodes. It fundamentally contains the mapping between ACNET node names, ACNET trunk and node values, and IP node names.

ACNET_NODE ( trunk, node, node_name, node_type, node_characteristics, alt_trunk, alt_node, ip_name, daq_trunk, daq_node )

trunk is the trunk number.

2 byte integer (size not consistent with node_subsystem) (smallint).

node is the node number.

2 byte integer (size not consistent with node_subsystem) (smallint).

node_name is the acnet name of the node.

6 byte alphanumeric (char(6)).

node_type is the type of the node (acnet, dacnet, ecnet, etc.).

2 byte integer (smallint).

node_characteristics is a set of flags used by acnet to tell what the node is capable of.

2 byte integer (hexified) (smallint).

alt_trunk is the alternate trunk number, for nodes also on UDP.

2 byte integer (size not consistent with node_subsystem) (smallint).

alt_node is the alternate node number, for nodes also on UDP.

2 byte integer (size not consistent with node_subsystem) (smallint).

ip_name is the IP node name (eg oper.fnal.gov)

64 byte alphanumeric (char(64))

daq_trunk is the data acquistion trunk number (trunk number of DAE node responsible for consolidating requests to this node)

2 byte integer (smallint).

daq_node in the data acquisition node number (node number of DAE node responsible for consolidating requests to this node)

2 byte integer (smallint).

keys:

trunk & node is the primary key.

node_name is a unique secondary key.



 
 
 

DEVICE_AUX

This table holds additional information about the device.

DEVICE_AUX ( di, control_system_type, dept_id, equip_maintainer_id, alarm_group, alarm_ack_mask, machine_id, component_type_id, spare2, spare3, long_name, long_description)

di is the device index.

4 byte integer (1-99999).

control_system_type identifies the control system. Currently, only ACNET (0) is defined.

4 byte integer.

dept_id is the department identifier. It is an index into the accdb..departments database table.

4 byte integer (1-99999).

equip_maintainer_id is the equipment maintainer identifier. It is an index into the accdb..console_user table.

4 byte integer (1-99999).

alarm_group is the device index of the alarm group consolidator device (zero if not in an alarm group).

4 byte integer (1-99999).

alarm_ack_mask is the alarm acknowledge mask.

4 byte integer (1-99999).

machine_id is the machine identifier. It is an index into the appdb.hendricks.machine_names database table (column machine_value)

4 byte integer (1-99999).

component_type_id is the component type identifier. It is an index into the accdb..component_type database table

4 byte integer (1-99999).

spare2 is an unused integer.

4 byte integer (1-99999).

spare3 is an unused integer.

4 byte integer (1-99999).

long_name is the full device name.

64-character alphanumeric (varchar(64)).

long_description is the full device description.

128-character alphanumeric (varchar(128)).

keys:

di is the primary key.



 
 
 

DEVICE_CLASS

This table holds information about device classes and types.

DEVICE_CLASS ( device_class_id, device_class, device_type_id )

device_class_id is the key to the property table.

4 byte integer (1-99999).

device_class is the device class number. There are constants for these classes defined in diolib.h.

4 byte integer.

device_type_id is the specific device type value which is the key into the device_type table. Constants for these values are defined in device_types.h.

4 byte integer (0 or 1-99999 and must be in the device_type table).

keys:

device_class_id is the primary key.

device_type_id is a foreign key for the device_type table.



 
 
 

DEVICE_TYPE

This table holds information about device types (a specific A/D board, a specific type of magnet, etc.).

DEVICE_TYPE ( device_type_id, label, description, generic_device_type_id )

device_type_id is the identifier of the device type.

4 byte integer (1-99999).

label is the "name" of this device type.

40 byte alphanumeric (not null).

description is additional data that describes the device type.

250 byte alphanumeric.

generic_device_type_id is the identifier of a device_type that is more generic than the current device. (not presently used)

4 byte integer (0 or 1-99999 and must be in the device_type table).

keys:

device_type_id is the primary key.

label is a unique secondary key.

generic_device_type_id is a foreign key on the same table.



 
 
 

COMPONENT_CLASS

This table holds information about component classes.

COMPONENT_CLASS ( class_id, label, description )

class_id is the component class identifier.

4 byte integer (1-99999).

label is the "name" of this component class.

64 byte alphanumeric (not null).

description is additional data that describes the component class.

128 byte alphanumeric.



 
 
 

COMPONENT_TYPE

This table holds information about component types.

COMPONENT_TYPE ( type_id, class_id, label, description)

type_id is the identifier of the component type.

4 byte integer (1-99999).

class_id is the identifier of the associated class, and is an index into the component_class database table.

4 byte integer (1-99999).

label is the "name" of this component type.

64 byte alphanumeric (not null).

description is additional data that describes the component type.

128 byte alphanumeric.



 
 
 

DEVICE_USAGE

This table holds the usage types for device types (e.g. horizontal/vertical magnet).

DEVICE_USAGE ( device_usage_id, description )

device_usage_id is the identifier of a specific usage of a device type.

4 byte integer (1-99999).

description is the description of this type of usage.

40 byte alphanumeric.

keys:

device_usage_id is the primary key.



 
 
 

DEVICE_LOCATION

This table holds the device locations. The location has two parts: location based on crates, and location based on topographic coordinates. A device might have both parts of the location filled or only one, depending on what is needed.

DEVICE_LOCATION ( di, pi, location_text_id, rack, crate, slot, channel, madc_number, madc_channel, x, z, y )

di is the di of the device to which the property belongs.

4 byte integer (1-999999, must be in the device table) (int).

pi is the property type for this entry.

1 byte integer (must be in the property_descr table) (tinyint).

location_text_id is the identifier of a location text description record.

4 byte integer (1-99999). (int)

rack is the name of the appropriate rack (e.g. "RR40").

16 byte alphanumeric. (varchar(16))

crate is the crate number.

2 byte integer. (smallint)

slot is the slot number in the crate.

2 byte integer. (smallint)

channel is the channel number in the slot.

2 byte integer. (smallint)

madc_number is the MADC number (if any) for this property.

2 byte integer. (smallint)

madc_channel is the MADC channel number (if any) for this property.

2 byte integer. (smallint)

x is the x coordinate of the location in feet (100000 is A0).

4 byte real (90000.0000 - 110000.0000). (real)

z is the z coordinate of the location in feet (100000 is A0).

4 byte real (90000.0000 - 110000.0000) (real)

y is the height of the location in feet above sea level.

4 byte real (600.0000 - 800.0000). (real)

keys:

di & pi is the primary key.

x & z & y is a secondary key.

rack & crate & slot is a secondary key



 
 
 

LOCATION

This table holds the basic location classes.

LOCATION ( location )

location is a basic location class for devices (e.g. house x / beam line x etc.).

16 byte alphanumeric.

keys:

location is the primary key.



 
 
 

SAVE_SUBSYS_LIST

This table holds the names and descriptions of the subsystem lists used by save/restore.

SAVE_SUBSYS_LIST ( save_subsys_list_id, label, description )

save_subsys_list_id is the list id for the device.

1 byte integer.

label is the label used for the list by the save application.

8 byte alphanumeric.

description is the description of the list.

200 byte alphanumeric.

keys:

save_subsys_list_id is the primary key.



 
 
 

PROPERTY

This table holds the addressing information needed to control/monitor devices (previously DEVPIB). Each device might have any of the following properties: analog reading, analog setting, digital reading (basic status), digital setting (basic control), extended status, analog alarm block, and digital alarm block.

PROPERTY ( di, pi, chan_no, controlled_by_di, ssdn, ftd, pdb_id, def_size, size, device_class_id, data_type_id, addressing_mode, atomic_size, spare1, spare2, pdbfe_id, controlled_setting, trunk, node, default_data_event)

di is the di of the device to which the property belongs.

4 byte integer (1-999999, must be in the device table) (int).

pi is the property type for this entry.

1 byte integer (must be in the property_descr table) (tinyint).

chan_no is the channel number to which the cable reading/controlling the property is connected. This number is device dependent, and can start from zero or 1 for different crates/hubs/boards.

1 byte integer (tinyint).

controlled_by_di is the di of the device that is performing the control function on this device (e.g. the A/D board).

4 byte integer (0 or 1-999999 and must be in the device table) (int).

ssdn is the identifier the front-end defined for a given property in a given device (the ssdn is sent to the front-end to identify the device - same idea as with the emc, only in the opposite direction).

8 byte binary (hexified) (binary(8)).

Example of how to process the SSDN into the subfields of a MOOC SSDN using SQL:

convert(smallint,substring(prop.ssdn,2,1)+substring(prop.ssdn,1,1)) 'mooc_misc2'
convert(smallint,substring(prop.ssdn,4,1)+substring(prop.ssdn,3,1)) 'mooc_oid'
convert(smallint,substring(prop.ssdn,6,1)+substring(prop.ssdn,5,1)) 'mooc_misc'
convert(tinyint, substring(prop.ssdn,8,1))                          'mooc_class'
convert(tinyint, substring(prop.ssdn,7,1))                          'mooc_channel'

ftd is the frequency to be used (in 1/60 of a second) or clock event.

2 byte integer (smallint).

pdb_id is the id of a "pdb" to be used with this property.

4 byte integer (0 or 1-99999 and must be in the pdb table) (int).

def_size is the default size of the reading/setting from/to this device in bytes.

1 byte integer (1,2,4) (tinyint).

size is the maximum array size in bytes of the reading/setting data.

4 byte integer (int).

device_class_id is the key into the device_class table to determine the device type of this property

4 byte integer (int).

data_type_id is the key into the data_type table to determine the property's data structure

4 byte integer (int).

addressing_mode indicates the manner in which lengths and offsets for this property should be interpreted (simple byte lengths and offsets are indicated by a value of 0) (not presently used)

4 byte integer (int).

atomic_size indicates the least number of bytes that can be read from this property

4 byte integer (int).

spare1 is an unused column.

4 byte integer (int).

spare2 is an unused column.

4 byte integer (int).

pdbfe_id is the id of a front-end "pdb" to be used with this property.

4 byte integer (int).

controlled_setting is an indicator (0 or 1). If non-zero, the property cannot be set from the parameter page.

4 byte integer (int).

trunk is the source trunk for this property.

1 byte integer (tinyint).

node is the source node for this property.

1 byte integer (tinyint).

default_data_event is the default data event string for this property (equivalent in value to the ftd field)

252 byte variable length character string (varchar(252)).

keys:

di & pi is the primary key.

pdb_id is a foreign key.

controlled_by_di is a foreign key.



 
 
 

PROPERTY_DESCR

This table holds textual description of the different properties.

PROPERTY_DESCR ( pi, description, reference_name )

pi is the property type for this row.

1 byte integer.

description is the description of the property.

60 byte alphanumeric.

reference_name is the name used for the property in Fortran and C include files.

6 byte alphanumeric.

keys:

pi is the primary key.



 
 
 

PDB

This table holds the scaling information (property data block) for a given device property (previously DEVPDB).

PDB ( pdb_id, length, data )

pdb_id is the identifier of a PDB record .

4 byte integer (1-999999).

length is the length in bytes of the pdb (including the length byte!).

1 byte integer.

data is the scaling information.

50 byte binary (hexified).

keys:

pdb_id is the primary key.



 
 
 

PDB_RS

This is a view of the PDB table which exposes the structure of reading/setting PDBs.

PDB_RS (pdb_id, pdb_len, pdb_att, pdb_ptxt, pdb_ctxt, pdb_pinx, pdb_cinx, pdb_cnst1, pdb_cnst2, pdb_cnst3, pdb_cnst4, pdb_cnst5, pdb_cnst6)

pdb_id is the identifier of a PDB record .

4 byte integer (1-999999).

pdb_len is the length of the PDB in bytes (up to 36)

1 byte integer.

pdb_att is a set of PDB attribute flags

(bits 0-1 - scaled data length, bit 4 - controlled setting, bit 5 - display format (clear = normal, set = scientific), bit 6 - display length (clear = short, set = long), bit 7 - motor controller)

1 byte integer.

pdb_ptxt is the primary transform units text.

4 characters.

pdb_ctxt is the common transform units text.

4 characters.

pdb_pinx is the primary transform scaling index.

1 byte integer (even values only).

pdb_cinx is the common transform scaling index.

1 byte integer (even values only).

pdb_cnst1 - pdb_cnst6 are the optional common transform scaling constants (number actually used depends on the transform).

4 byte floating point number.



 
 
 

PDB_STS

This is a view of the PDB table which exposes the structure of basic status PDBs.

PDB_STS (pdb_id, pdb_slen, pdb_sattr, pdb_sinvert, pdb_sdatalen, pdb_son, pdb_sred, pdb_srem, pdb_spol, pdb_sonchar, pdb_soffchar, pdb_srdychar, pdb_strpchar, pdb_sremchar, pdb_slclchar, pdb_sposchar, pdb_snegchar)

pdb_id is the identifier of a PDB record .

4 byte integer (1-999999).



 
 
 

PDB_CON

This is a view of the PDB table which exposes the structure of basic control PDBs.

PDB_CON (pdb_id, pdb_clen, pdb_cflgs, pdb_crst, pdb_con, pdb_coff, pdb_cpos, pdb_cneg, pdb_cfill)

pdb_id is the identifier of a PDB record .

4 byte integer (1-999999).



 
 
 

STRUCT_PDB

This table holds information needed for devices that have structures, structures of arrays, and/or conditional scaling needs (for their data). This table is not used at the present time.

STRUCT_PDB ( struct_pdb_id, reference_di, reference_no, field_no, field_length, array_length, field_description, pdb_id )

struct_pdb_id is the identifier of a set of records representing structures in the data or conditional selection of scaling.

4 byte integer (1-99999).

reference_di is the device identifier of a device who's setting value (or any other value) should be used to decide what type of scaling is required for the current field.

4 byte integer (0 if not relevant, or 1-999999 and must be in the device table).

reference_no holds the possible values to be compared against - to select one of the provided conditional scaling records.

4 byte integer.

field_no is the number of the field in the structure representing the device data. If no structure is needed, just conditional selection of scaling, the field should contain zero.

4 byte integer (the "C" convention should be used - the first field is field number zero!).

field_length is the length of the field in bytes.

2 byte integer.

array_length is the size of the array. The number of elements in the array is array_length/field_length.

2 byte integer (field_length * number of members in the array).

field_description is the description for a given field in a structure / a condition in conditional scaling.

24 byte alphanumeric.

pdb_id is the identifier of the chosen pdb record to handle the given field.

4 byte integer (1-99999 and must be in the pdb table).

keys:

struct_pdb_id & reference_di & reference_no & field_no is the primary key.

pdb_id is a foreign key.



 
 
 

DATA_TYPE

This table contains device type dependent information about scaling property data.

DATA_TYPE(data_type_id, raw_offset, scale_length, num_elements, bytes_to_skip, data_type, primary_index, primary_text, description)



 
 
 

DATA_TYPE_DESCR

This table contains data type descriptive text.

DATA_TYPE_DESCR(data_type, label)



 
 
 

DEVICE_SCALING

This table contains device specific property scaling information.

DEVICE_SCALING(di, pi, raw_offset, primary_index, common_index, primary_text, common_text, minimum, maximum, display_format, display_length, scaling_length, scaling_offset, num_constants, const1, const2, const3, const4, const5, const6, const7, const8, const 9, const10)

di is the di of the device to which the property belongs.

4 byte integer (1-999999, must be in the device table) (int).

pi is the property type for this entry.

1 byte integer (must be in the property_descr table) (tinyint).

raw_offset is the byte offset into a structure.

4 byte integer (0-999999, normally zero) (int).

primary_index is the primary transform index.

4 byte integer (0-999999) (int).

common_index is the common transform index.

4 byte integer (0-999999) (int).

primary_text is the primary transform units text.

16 byte alphanumeric.

common_text is the common transform units text.

16 byte alphanumeric.

minimum is the minimum scaled value.

8 byte double-precision float.

maximum is the maximum scaled value.

8 byte double-precision float.

display_format is the display format code.

4 byte integer (0-999999) (int).

display_length is the length of the display field.

4 byte integer (1-999999) (int).

scaling_length is the length of ????.

4 byte integer (1-999999) (int).

scaling_offset is the offset ???.

4 byte integer (0-999999) (int).

num_constants is the number of transformation constants used.

4 byte integer (0-999999) (int).

const1 is the first constant.

8 byte double-precision float.

constn is the nth constant (n = 1-10).

8 byte double-precision float.



 
 
 

DEVICE_SCALING_FE

This table contains device specific property scaling information for front-ends.

DEVICE_SCALING_FE(di, pi, raw_offset, primary_index, common_index, primary_text, common_text, minimum, maximum, display_format, display_length, scaling_length, scaling_offset, num_constants, const1, const2, const3, const4, const5, const6, const7, const8, const 9, const10)

di is the di of the device to which the property belongs.

4 byte integer (1-999999, must be in the device table) (int).

pi is the property type for this entry.

1 byte integer (must be in the property_descr table) (tinyint).

raw_offset is the byte offset into a structure.

4 byte integer (0-999999, normally zero) (int).

primary_index is the primary transform index.

4 byte integer (0-999999) (int).

common_index is the common transform index.

4 byte integer (0-999999) (int).

primary_text is the primary transform units text.

16 byte alphanumeric.

common_text is the common transform units text.

16 byte alphanumeric.

minimum is the minimum scaled value.

8 byte double-precision float.

maximum is the maximum scaled value.

8 byte double-precision float.

display_format is the display format code.

4 byte integer (0-999999) (int).

display_length is the length of the display field.

4 byte integer (1-999999) (int).

scaling_length is the length of ????.

4 byte integer (1-999999) (int).

scaling_offset is the offset ???.

4 byte integer (0-999999) (int).

num_constants is the number of transformation constants used.

4 byte integer (0-999999) (int).

const1 is the first constant.

8 byte double-precision float.

constn is the nth constant (n = 1-10).

8 byte double-precision float.



 
 
 

DEVICE_FLAGS

This table contains miscellaneous flags which describe the characteristics of device/properties.

DEVICE_FLAGS(di, pi, is_step_motor, is_contr_setting, is_destructive_read, is_fe_scaling, is_fe_scaling, is_apare2, is_spare3, is_spare4, is_spare5)



 
 
 

DEVICE_DIGITAL_STATUS

This table links a device to the bits composing its digital status.

DEVICE_DIGITAL_STATUS ( di, bit_no, digital_status_id )

di is the device identifier of a device with a digital status.

4 byte integer (1-999999 and must be in the device table).

digital_status_id is the identifier of a digital_status record.

4 byte integer (1-99999 and must be in the digital_status table).

bit_no is the bit number in the status byte/word/longword.

1 byte integer.

keys:

di & bit_no is the primary key.

digital_status_id is a foreign key.



 
 
 

DIGITAL_STATUS

This table holds information on how to display digital status bits.

DIGITAL_STATUS ( digital_status_id, color_id_0, short_name_0, color_id_1, short_name_1, bit_description )

digital_status_id is the identifier of a digital_status record.

4 byte integer (1-99999).

color_id_0 is the color for condition 0.

4 byte integer.

short_name_0 is the name for condition 0.

7 byte alphanumeric.

color_id_1 is the color for condition 1.

4 byte integer.

short_name_1 is the name for condition 1.

7 byte alphanumeric.

bit_description is the description of the specific bit.

24 byte alphanumeric.

keys:

digital_status_id is the primary key.

color_id_1 is a foreign key.

color_id_0 is a foreign key.



 
 
 

DIGITAL_CONTROL

This table holds digital control values (masks) to be used with the Basic Control property, and is an alternative to the Basic Control PDB.

DIGITAL_CONTROL ( di, value, order_number, short_name, long_name )

di is the device index.

4 byte integer.

value is control mask, which must be unique.

4 byte integer.

order_number is an integer which controls the presentation order. This number must be unique, and zero or greater.

4 byte integer.

short_name is the name for this value, and must be unique.

16 byte alphanumeric.

long_name is a long name or description for this value.

64 byte alphanumeric.



 
 
 

BASIC_STATUS_SCALING

This table holds basic status scaling data to be used with the Basic Status property, and is an alternative to the Basic Status PDB.

BASIC_STATUS_SCALING ( di, mask_value, match_value, invert_flag, order_number, short_name, long_name, true_string, true_color, true_char, false_string, false_color, false_char )

di is the device index.

4 byte integer.

mask_value is status mask.

8 byte integer.

match_value is status match, which must be unique.

8 byte integer.

invert_flag is the invert flag (non-zero to invert bits).

4 byte integer.

order_number is an integer which controls the presentation order. This number must be unique, and zero or greater.

4 byte integer.

short_name is the name for this value, and must be unique.

16 byte alphanumeric.

long_name is a long name or description for this value.

64 byte alphanumeric.

true_string is a description of the true state.

16 byte alphanumeric.

true_color is the Fermi color used to display the true state.

4 byte integer.

true_char is a single character used to display the true state.

1 byte alphanumeric.

false_string is a description of the false state.

16 byte alphanumeric.

false_color is the Fermi color used to display the false state.

4 byte integer.

false_char is a single character used to display the false state.

1 byte alphanumeric.



 
 
 

SCALING_LENGTH

This table holds the scaling length for both the Basic Status Scaling and Digital Control properties.

SCALING_LENGTH ( di, pi, length )

di is the device index.

4 byte integer.

pi is the property index which must be either Basic Status Scaling or Digital Control.

2 byte integer.

length is the scaling length, which must be 1, 2, or 4.

4 byte integer.



 
 
 

COLOR

This table holds mappings of colors.

COLOR ( color_id, label )

color_id is the identifier of a given color as used in the digital_status table.

4 byte integer (1-999).

label is the name of the color to be used by Motif.

24 byte alphanumeric.

keys:

color_id is the primary key.



 
 
 

FAMILY

This table holds the devices that belong to families (previously in SUBSYSDEV).

FAMILY ( di, seq, member_di )

di is the device identifier of the parent (family) device.

4 byte integer (1-999999 and must be in the device table). (int)

seq is the sequential number of a member in the family (to maintain order).

2 byte integer (0-299). (smallint)

member_di is the device identifier of a device that is a member in the family.

4 byte integer (0 (null device) or 1-999999 and must be in the device table). (int)

keys:

di & seq is the primary key.

member_di is a foreign key.



 
 
 

DEVICE_RECORD

This table holds information that came from the SUBSYSDEV file (the SSDR property) and did not belong to family devices. The usage of this record was not structured and is strongly discouraged.

DEVICE_RECORD ( device_record_id, length, data )

device_record_id is the identifier of a record.

4 byte integer (1-99999)  (int).

length is the length of the data in words (excluding the length word).

2 byte integer (1-15)  (smallint).

data is a portion of the data for a given device_record_id.

128 byte binary (hexified)  (varbinary(128)).

keys:

device_record_id is the primary key.



 
 
 

PROPERTY_SETTING

This table holds the current setting value of any property (previously DEVSET). Segmentation is used to store setting data which is longer than 128 bytes. The first 128 bytes are in a row with segment number 0, the following 128 bytes are in a row with segment number 1, etc. If the data is less than 128 bytes, only one segment is used (segment number 0). The length of the data can be found in the size field in the property table.

PROPERTY_SETTING ( di, pi, segment, setting_data )

di the device for which the property is saved.

4 byte integer (1-999999 and must be in the device table).

pi the property for which the information is saved.

1 byte integer (must be in the property_descr table).

segment is the segment number of the data (part number for a given di & pi pair).

1 byte integer.

setting_data is a portion of the data for a given di & pi pair.

128 byte variable binary (hexified).

keys:

di & pi & segment is the primary key.



 
 
 

ALARM_TEXT

This table holds the texts and codes to be sent to the operator consoles when a given alarm is reported by a front-end (previously ALRMTEXT). Many alarms share the same alarm texts.

ALARM_TEXT (alarm_text_id, length, priority, hand_code, sound_id, speech_id, spare, text, url)

alarm_text_id is the unique identifier of an alarm text.

4 byte integer (1-99999).

length is the actual meaningful length of the text record, field needed for backwards computability.

1 byte integer (0-80).

priority is the priority of the alarm.

1 byte integer (0-10, 10 represents the highest priority).

hand_code is the handler code used to process the alarm.

4 byte integer (cannot be negative).

sound_id is the sound identifier used to process the alarm.

4 byte integer (cannot be negative).

speech_id is the speech identifier used to process the alarm.

4 byte integer (cannot be negative).

spare is unused.

4 byte integer.

text is the actual alarm text.

80 byte alphanumeric (not null nor blanks).

url is the web URL pointing to alarm documentation.

128 byte alphanumeric (may be blank if no URL).

keys:

alarm_text_id is the primary key.



 
 
 

ALARM_BLOCK

This table holds alarms blocks to be send to the front-ends.

ALARM_BLOCK ( di, pi, status, min_or_nom, max_or_tol, tries_needed, tries_now, clock_event_no, sufunction_code, specific_data, segment )

di is the di of the device to which the alarm block belongs.

4 byte integer (1-999999, must be in the device table).

pi is the property type for this entry (analog/digitial alarm block).

1 byte integer (must be in the property_descr table).

status is the stattus word of the alarm block. Some of the bits are changed by the front end, without updating the database!

2 byte binary (hexified).

min_or_nom is the minimal/nominal for analog readings or the nominal for digital readings.

4 byte integer.

max_or_tol is the maximum/tolerance/percent tolerance for analog readings or the mask for digital readings.

4 byte integer.

tries_needed is the number of out of tolerance samples to be taken before a front end sends an alarm.

1 byte integer.

tries_now is the data in this field comes from the front end, the data in the database is not relevant.

1 byte integer.

clock_event_no is the Tevatron clock event on which sampling should take place.

1 byte binary, the default is 0 (not the supercycle reset event!).

subfunction_code is a special field for additional information as understood by a front end.

1 byte integer.

specific_data is holding front-end specific data.

6 byte binary (hexified).

segment is the alarm block number (for multiple alarm block support)

4 byte integer.

keys:

di, pi & segment is the primary key.



 
 
 

EMC

This table holds the UNIQUE EMC's (Event Message Codes) assigned to active (non-obsolete) devices.

EMC ( emc, di )

emc is one of two possible EMC's for the device.

8 byte binary.

di is the device index of the device.

4 byte int.

keys:

emc is the primary key.

di is a foreign key.



 
 
 

DEVICE_ANALOG_ALARM

This table links a di to its analog alarm text.

DEVICE_ANALOG_ALARM ( di, alarm_text_id )

di is the device index of the device.

4 byte int.

alarm_text_id is the index into the alarm_text table.

4 byte int.

keys:

di is the primary key.

alarm_text_id is a foreign key.



 
 
 

DEVICE_DIGITAL_ALARM

This table links a di, condition and mask to its alarm text.

DEVICE_DIGITAL_ALARM ( di, condition, mask, alarm_text_id)

di is the device index of the device.

4 byte int.

condition indicates the bits nominal values.

4 byte int.

mask indicates which bits are of interest.

4 byte int.

alarm_text_id is the index into the alarm_text table.

4 byte int.

keys:

di & condition & mask are the primary key.

alarm_text_id is a foreign key.



 
 
 

FOREIGN_DEVICE_MAPPING

This table links a di, pi, and field_number to its foreign device.

FOREIGN_DEVICE_MAPPING ( di, pi, system_type, field_number, pv_name, start_index, num_elements, data_type, data_length, modify_date)

di is the device index of the device.

4 byte int.

pi the property index.

1 byte integer (must be in the property_descr table).

system_type is an integer which specifies the foreign device type. Currently only EPICS is supported (value of 1).

4 byte int.

field_number is a unique field number starting at zero.

4 byte int.

pv_name is the process variable name including field.

80 byte alphanumeric (not null nor blanks).

start_index is the starting index in the foreign data array.

4 byte int.

num_elements is the number of elements from the foreign data array.

4 byte int.

data_type is the foreign data type.

4 byte int.

data_length is the foreign data length in bytes.

4 byte int.

modify_date is the date and time of the last modification.

datetime format.

keys:

di and pi are the primary keys.

field_number is a unique secondary key.



 
 
 

READ_SET_ENUM_SETS

This table links a di and pi to an enumerated value set.

READ_SET_ENUM_SETS ( di, pi, enum_set_id )

di is the device index of the device.

4 byte int.

pi the property index.

1 byte integer (must be in the property_descr table).

enum_set_id is an enumerated value set identifier.

4 byte int.



 
 
 

READ_SET_ENUM_VALUES

This table links an enumerated set identifier and value to its associated text.

READ_SET_ENUM_VALUES ( enum_set_id, value, short_name, long_name)

enum_set_id is the set identifier.

4 byte int.

value is a unique signed integer.

4 byte int.

short_name is the short name.

10 byte alphanumeric (not null nor blanks).

long_name is the long name.

64 byte alphanumeric (not null nor blanks).



 
 
 

PROPERTY_STRUCTURE

This table links a di and pi to its associated structure name.

PROPERTY_STRUCTURE ( di, pi, structure_id)

di is the device index of the device.

4 byte int.

pi the property index.

1 byte integer (must be in the property_descr table).

structure_id is a unique signed integer, which is an index into the structure_names table described below.

4 byte int.

keys:

di and pi are the primary keys.

structure_id is a foreign key.



 
 
 

STRUCTURE_NAMES

This table links a structure_id to its associated text.

STRUCTURE_NAMES ( structure_id, structure_name)

structure_id is the structure identifier (refer to the property_structure table).

4 byte int.

structure_name is the structure name text.

64 byte alphanumeric (not null nor blanks).

keys:

structure_id is the primary key.



 
 
 

CAMAC_CRATE_DEVICES

This table holds parsed ssdn information for camac crates. The data in this table is updated automatically, and is being used by the DBREPORT account and by PA0379 (D20).

CAMAC_CRATE_DEVICES ( di, pi, crate, slot, sub_address )

di is the device (multiple properties) identifier residing at the given camac crate and slot.

4 byte integer (1-999999, must be in the device table).

pi is the property identifier for the property controlled by the given driver in the given crate and slot.

1 byte integer (must be in the property_descr table).

crate is the crate number.

1 byte integer.

slot is the slot number in the crate.

2 byte integer.

sub_address is used to further identify the device.

1 byte integer.

keys:

crate & slot & sub_address is the primary key.



 
 
 

CAMAC_MADC_DEVICES

This table holds parsed ssdn information for MADC's in camac crates. The data in this table is updated automatically, and is being used by the DBREPORT account and by PA0379 (D20).

CAMAC_MADC_DEVICES( madc_no, channel, di )

madc_no is the number of the madc in the front-end associated with the given di.

1 byte integer.

channel indicates the channel of the given MADC to which this device is attached.

1 byte integer.

di is the device (reading property) identifier residing at the given MADC & channel.

4 byte integer (1-999999, must be in the device table).

keys:

madc_no & channel is the primary key.



 
 
 

DB_AUDIT

This table is holds audit information for additions/updates/deletions done via the special device entry interface. Note that not all tables are audited, only those that are open to updates by all users. There is going to be only one entry per device when the whole device is added, obsoleted and deleted. In additions to a table/deletions from a table, one entry will be used per addition/deletion, per table. In all other cases (updates), there will be an entry for every field affected.

DB_AUDIT ( di, pi, operation, clinks, field_name, prev_value, console_user_id )

di is the di of the device for which the audit record is entered.

4 byte integer (1-999999 and must be in the device table, or obsolete).

pi is the index of the property being changed, when relevant.

1 byte integer (must be in the property_descr table).

operation is the operation that took place.

1 byte alphanumeric (Add/Update/Obsolete/Delete).

clinks is the time the change took place in "local clinks". This is the only known use of "local clinks" in the control system and is now a nearly impossible to fix mistake. It is a mistake because "local clinks" are not linear:

  • increment by 3601 in a single second at the transisiton to daylight savings time(DST)
  • decrement by 3599 in a single second at the transisiton from daylight savings time(DST)
  • In each transistion from DST a range of "local clinks" values actually end up associated with two times each which is one reason to consider their use here a mistake. Clib provides a routine to convert betwenn "local clinks" and (standard) clinks. That routine is convert_seconds_c. For the convert_type argument use DATE_LOCAL_CLINKS_TO_CLINKS or DATE_CLINKS_TO_LOCAL_CLINKS. See also documentation in clib.h.

    4 byte integer ("local clinks").

    field_name is the name of the field which was affected, or the name of the table when add/delete took place per table.

    30 byte alphanumeric (blank, or must be in the db_field table or must be in the db_table table).

    prev_value is the content of a field which is being updated. For binary fields, a hex representation will be provided.

    128 byte alphanumeric.

    console_user_id is the identifier of the user who made the change.

    4 byte integer (1-99999 and must be in the console_user table).

    keys:

    di, pi, operation, field_name, clinks is the primary field.

    di is a foreign key.

    pi is a foreign key.

    field_name is a foreign key.

    console_user_id is a foreign key.



     
     
     

    CONSOLE_USER

    This table contains information about the users of the control consoles.

    CONSOLE_USER ( console_user_id, name, full_name , phone_ext, comment )

    console_user_id is the identifier of a user (used internally by the database).

    4 byte integer.

    name is the user's VMS login name, as used when interacting with the database.

    12 byte alphanumeric (lowercase names imply non active users).

    full_name is the user's full name.

    30 byte alphanumeric.

    phone_ext is the user's phone extention number

    4 byte alphanumeric.

    comment is an additional comment about the user.

    30 byte alphanumeric.

    keys:

    console_user_id is the primary key.



     
     
     

    DEVICE_OBSDEL_COMMENT

    This table contains user comments as to why the have obsoleted, unobsoleted, or deleted a device.

    DEVICE_OBSDEL_COMMENT(time, di, operation, console_user, string)



     
     
     

    DEVICE_OUT_OF_SERVICE

    This table contains information about devices that have been marked out of service at the present time. This may be done because the device is known to be broken or it is not in use at the present time. (Note: This table is presently located in the appdb database.)

    DEVICE_OUT_OF_SERVICE(di, user_id, proc_name, out_data, comments)



     
     
     

    DEPARTMENTS

    This table contains information about the various departments.

    DEPARTMENTS ( name, description, full_name, department_id )

    name is the department name, such as "Controls".

    64 byte alphanumeric.

    description is the department description.

    252 byte alphanumeric.

    full_name is the full name, such as "ACCELERATOR DIVISION, ENGINEERING, ACCELERATOR CONTROLS DEPARTMENT".

    252 byte alphanumeric.

    department_id is the identifier of the department (used internally by the database).

    4 byte integer.

    keys:

    name is the primary key.

    department_id is the secondary key.



     
     
     

    DOWNLOAD_NODE_INFO

    This table contains information about how device downloads should be handled for each node.

    DOWNLOAD_NODE_INFO(node, fe_group, subgroup, auto_insert, default_prefix, allow_setting, allow_analog_alarm, allow_digital_alarm, allow_basic_control, gui_name, gui_order_number, modify_date)



     
     
     

    DOWLOAD_DEVICES

    This table contains the list of devices which should be downloaded to front ends when they have been rebooted.

    DOWNLOAD_DEVICES(node, location, order_number, di, pi, needs_vmdi, entry_date)



     
     
     

    DOWNLOAD_NODE_GROUPS

    This table contains information about the grouping of nodes in terms of device download handling.

    DOWNLOAD_NODE_GROUPS(name, group_id, auto_insert, default_prefix, allow_setting, allow_analog_alarm, allow_digital_alarm, allow_basic_control, gui_name_length, gui_select_column, gui_select_length, gui_sort_names, gui_wrong_node_text, modify_date)


    THE FOLLOWING TABLES ARE NOT CURRENTLY IN USE AND MAY BE REMOVED IF NO GOOD USE IS MADE OF THEM

    THE FOLLOWING TABLES ARE NOT CURRENTLY IN USE AND MAY BE REMOVED IF NO GOOD USE IS MADE OF THEM



     
     
     

    CLOCK_EVENT

    This table holds the description of the Tevatron clock events.

    CLOCK_EVENT ( clock_evnet_no, name, description )

    clock_event_no is the number of a Tevatron clock event (also called global event).

    2 byte binary (0x0000-0xFF00 = 0-255)

    name is the name of the clock event.

    30 bytes alphanumeric.

    description is the place for more information about the clock event.

    200 bytes alphanumeric.

    keys:

    clock_event_no is the primary key.



     
     
     

    SYSTEM_TREE

    This table holds the grouping information for devices. The grouping is in trees, growing from the basic systems (e.g. machines).

    SYSTEM_TREE ( system_tree_id, tree_type_id, label, part_of_system_tree_id )

    system_tree_id is the identifier of an entry in the system_tree.

    4 byte integer (1-99999).

    tree_type_id is the type of the tree to which this entry belongs.

    4 byte integer (1-99999 and must be in the tree_type table).

    label is the label for the system/subsystem/subsubsystem.

    16 byte alphanumeric.

    part_of_system_tree_id is the identifier of the system which this subsystem is part of.

    4 byte integer (0 or 1-99999 and must be in the system_tree table).

    keys:

    system_tree_id & tree_type_id is the primary key.

    label is a secondary key.

    part_of_system_tree_id is a foreign key on the same table.



     
     
     

    TREE_TYPE

    This table keeps descriptions for the various tree types.

    TREE_TYPE ( tree_type_id, name, description )

    tree_type_id is the identifier of the type of the tree.

    4 byte integer (not zero).

    name is the name of the tree.

    24 byte alphanumeric.

    description describes the tree.

    250 byte alphanumeric.

    keys:

    tree_type_id is the primary key.

    name is a secondary key.



     
     
     

    SYSTEM_DEVICE

    This table holds the devices that are part of each low level of subsystem as can be found in the system_tree.

    SYSTEM_DEVICE ( system_device_di, system_tree_id, tree_type_id, foreign_id )

    system_device_di is the device identifier for a device which belongs to one subsystem.

    4 byte integer (1-999999 and must be in the device table).

    system_tree_id is the identification of the subsystem in the system_tree.

    4 byte integer (1-99999 and must be in the system_tree table).

    tree_type_id is the type of tree referred.

    4 byte integer (must be in the system_tree table as part of a key with sd_system_tree_id).

    foreign_id is the identifier in a foreign table linked to the device (table choice is based on tree id).

    4 byte integer (must be in the appropriate table, or zero where not applicable).

    keys:

    device_di & system_tree_id & tree_type_id is the primary key.

    system_tree_id & tree_type_id is a foreign key to the system_tree table.



     
     
     

    APPLICATION_SETUP

    This table holds the information needed to setup an application page.

    APPLICATION_SETUP ( application_name, index_page, entry_no, subpage_no, console_no, table_name, table_index )

    application_name is the name of the application page.

    6 byte alphanumeric.

    index_page is the index page to which the application is connected.

    1 byte alphanumeric (blank if not applicable).

    entry_no is the entry number on the above page.

    2 byte integer (0 if not applicable).

    subpage_no is the number of a subpage in the page.

    2 byte integer (0 or the subpage number).

    console_no is the console instance number.

    2 byte integer.

    table_name is the name of the table in which setup data for this application can be found.

    30 byte alphanumeric (legal database table name).

    table_index is the index of an entry in the above table in which the setup information can be found.

    4 byte integer (a valid entry in the as_table_name table or zero if not applicable).

    keys:

    application_name & index_page & entry_no & subpage_no & console_no is the primary key.

    table_index is a foreign key.



     
     
     

    GENERIC_SETUP

    This table holds setup information for application that do not desire a private table for their data.

    GENERIC_SETUP ( generic_setup_id, data )

    generic_setup_id is the identifier of a record in the table.

    4 byte integer.

    data is the setup data belonging to one instance of an application.

    250 byte alphanumeric.

    keys:

    generic_setup_id is the primary key.



     
     
     

    APPLICATION_DEVICE

    This table holds the devices that are used in an application program.

    APPLICATION_DEVICE (application_name, index_page, entry_no, subpage_no, console_no, di, line_no )

    application_name is the name of the application page.

    6 byte alphanumeric.

    index_page is the index page to which the application is connected.

    1 byte alphanumeric (blank if not applicable).

    entry_no is the entry number on the above page.

    2 byte integer (0 if not applicable).

    subpage_no is the number of a subpage in the page.

    2 byte integer (0 or the subpage number).

    console_no is the console instance number.

    2 byte integer.

    di is the identifier of a device on the page.

    4 byte integer (1-999999 and must be in the device table).

    line_no is the ordering of the devices in the page, used as the application programs seems fit.

    1 byte integer.

    keys:

    application_name & index_page & entry_no & subpage_no & console_no & di is the primary key.



     
     
     

    CONSOLE_CLASS

    This table holds the grouping of consoles into groups.

    CONSOLE_CLASS ( console_no, console_class_id )

    console_no is the console instance number.

    2 byte integer.

    console_class_id is the identifier of the console class.

    4 byte integer (must be in the console_class_descr table).

    keys:

    console_no is the primary key.

    console_class_id is a foreign key.



     
     
     

    CONSOLE_CLASS_DESCR

    This table holds the descriptions of console classes.

    CONSOLE_CLASS_DESCR ( console_class_id, description )

    console_class_id is the identifier of a console class.

    4 byte integer.

    description is the description of the console class.

    40 byte alphanumeric.

    keys:

    console_class_id is the primary key.



     
     
     

    DB_PRIV

    This table is used to handle the protection of file-sharing style access. The table is accessible only from an sa account. By default, no user has update access to any table via dbinterface, nor the ability to execute any stored procedure, unless authorized to do so by an entry in this table. dbinterface is loading this table to memory when initalizing, or when ordered to do so.

    DB_PRIV ( table_name, application_name, attribute )

    table_name is the name of the table or stored procedures for which access is granted in this entry.

    30 byte alphanumeric and must be an object name in the database.

    application_name is a wild card of an acnet task name (e.g. S%0100)

    6 byte alphanumeric and must be uppercase name of a legit task name, combined with "%" to indicate any character

    (%%%%%% means that the table/procedure is accessable by all tasks)

    attribute is an attribute number to be used by uti-s for accessing tables/stored procedures from tasks that do not have the

    needed authorization. The UTI is responsible for setting the appropriate value and for clearing it when a query is sent.

    4 byte integer.

    keys:

    table_name & task_name & attribute is the primary key.



     
     
     

    PDB_TRANSFORM_DESCR

    This table holds the description of the various PDB transforms.

    PDB_TRANSFORM_DESCR ( prim_comm_transform, transform_id, text )

    prim_comm_transform is the type of transform described.

    1 byte character "p"/"c" (for primary/common).

    transform_id is the transform number.

    4 byte integer (non zero).

    text is the description of the transform.

    60 byte character.

    keys:

    prim_comm_transform & transform_id is the primary key.



     
     
     

    DB_TABLE

    This table is intended to help a database user to find and understand the structure of the database (passive repository).

    DB_TABLE ( table_name, fields_header, description )

    table_name is the name of the table.

    30 byte alphanumeric.

    fields_header is the (unique in the "device" tables) header for fields in this table (e.g. "dbt" for this table).

    4 byte alphanumeric.

    description holds some information about the table and its usage.

    250 byte alphanumeric.

    keys:

    table_name is the primary key.

    fields_header is a secondary key.



     
     
     

    DB_FIELD

    This table is intended to help a database user understand and correctly use database fields (passive repository).

    DB_FIELD ( field_name, table_name, foreign_table_name, description )

    field_name is the unique name of a field in the database.

    30 byte alphanumeric.

    table_name is the name of the table to which the field belongs.

    30 byte alphanumeric (must be in the db_table table).

    foreign_table_name is the name of a table to which one can link using this field.

    30 byte alphanumeric (blank if not applicable, otherwise must be in the db_table table).

    description holds some information about the field and its usage.

    250 byte alphanumeric.

    keys:

    field_name is the primary key.

    table_name is a foreign key.

    foreign_table_name is a foreign key.



     
     
     

    ALARM_LOG

    This table holds logged information about alarms.

    ALARM_LOG ( alarm_log_id, di, clinks, millisec, text )

    alarm_log_id is the identifier of an alarm message.

    4 byte integer.

    di is the device identifier of the device in alarm.

    4 byte integer (1-999999 and must be in the device table).

    clinks is the clinks number when the alarm was received.

    4 byte integer (clinks).

    millisec is the number of milliseconds after the beginning of the second.

    2 byte integer.

    text is the formatted alarm text.

    24 byte alphanumeric.

    keys:

    alarm_log_id is the primary key.

    di is a foreign key.

    time is a non-unique secondary key.



     
     
     

    SOFTWARE_ALARM_LOG

    This table holds logged information about software alarms.

    SOFTWARE_ALARM_LOG ( alarm_log_id, text )

    alarm_log_id is the identifier of an alarm message, for which an alarm_log row also exists.

    4 byte integer.

    text is the software alarm text.

    250 byte alphanumeric.

    keys:

    alarm_log_id is the primary key.



     
     
     

    STORED PROCEDURES FOR SPECIAL TASKS

    srprep_stat_proc

    update_acnet_node_proc

    find_devices - find device(s) using sybase pattern match on names and descriptions

    (this list not complete)



     
     
     

    STORED PROCEDURES FOR MANIPULATING CLINKS

    clinks_now_proc

    clinks_to_date_proc

    date_to_clinks_proc



     
     
     

    STORED PROCEDURES USED FOR DBREPORT

    camac_in_node_proc

    camac_driver_proc

    camac_driver_in_node_proc

    find_device_proc

    finde_acnet_node_proc

    find_driver_proc

    driver_info_proc

    camac_crate_proc

    camac_crate_slot_proc

    acnet_node_name_proc

    madc_to_device_proc

    dbaudit_by_time

    dbaudit_by_device

    dbaudit_by_time1 (hidden)

    dbaudit_by_device1 (hidden)



     
     
     

    STORED PROCEDURES USED FOR DABBEL

    dab_get_root

    dab_get_emc

    dab_get_ssdr

    dab_get_family

    dab_get_analtx

    dab_get_dgaltx_s

    dab_get_extext_s

    dab_get_prop

    dab_get_pdb

    dab_get_settng

    dab_get_alrmbl

    update_device_proc

    delete_device_proc

    update_login_proc

    update_logout_proc

    new_entry_id_proc (hidden)

    insert_pdb_proc (hidden)

    insert_alarm_text_proc (hidden)

    insert_digital_status_proc (hidden)

    insert_property_proc (hidden)

    insert_alarm_proc (hidden)

    insert_alarm_block_proc (hidden)

    insert_device_record_proc (hidden)

    insert_device_location_proc (hidden)

    insert_device_usage_proc (hidden)

    insert_device_type_proc (hidden)

    insert_device_proc (hidden)

    (this list not complete)



     
     
     

    STORED PROCEDURES FOR SYBSET

    fe_setting_proc

    Security, Privacy, Legal