190 lines
3.9 KiB
Python
190 lines
3.9 KiB
Python
""" @package cadefs
|
|
contstants and enumerated conststant
|
|
|
|
This defines constants and classes useful to inteprete code returned from CA library.
|
|
"""
|
|
#
|
|
CA_OP_GET = 0
|
|
CA_OP_PUT = 1
|
|
CA_OP_CREATE_CHANNEL = 2
|
|
CA_OP_ADD_EVENT = 3
|
|
CA_OP_CLEAR_EVENT = 4
|
|
CA_OP_OTHER = 5
|
|
# used with connection callbacks
|
|
CA_OP_CONN_UP = 6
|
|
CA_OP_CONN_DOWN = 7
|
|
# imported from caeventmask.h
|
|
DBE_VALUE =(1<<0)
|
|
DBE_LOG =(1<<1)
|
|
DBE_ALARM =(1<<2)
|
|
DBE_PROPERTY=(1<<3)
|
|
# also chekc ECA_IODONE/ECA_IOINPROGRESS in caError.py
|
|
IODONE = 42
|
|
IOINPROGRESS = 43
|
|
#
|
|
DBF_NATIVE=-1
|
|
DBF_STRING=0
|
|
DBF_INT = 1
|
|
DBF_SHORT =1
|
|
DBF_FLOAT =2
|
|
DBF_ENUM =3
|
|
DBF_CHAR =4
|
|
DBF_LONG = 5
|
|
DBF_DOUBLE = 6
|
|
DBF_NO_ACCES = 7
|
|
LAST_TYPE = DBF_DOUBLE
|
|
|
|
def VALID_DB_FIELD(x):
|
|
return ((x >= 0) and (x <= LAST_TYPE))
|
|
def INVALID_DB_FIELD(x):
|
|
return ((x < 0) or (x > LAST_TYPE))
|
|
|
|
#/* data request buffer types */
|
|
DBR_NATIVE= DBF_NATIVE
|
|
DBR_STRING = DBF_STRING
|
|
DBR_INT = DBF_INT
|
|
DBR_SHORT = DBF_INT
|
|
DBR_FLOAT = DBF_FLOAT
|
|
DBR_ENUM = DBF_ENUM
|
|
DBR_CHAR = DBF_CHAR
|
|
DBR_LONG = DBF_LONG
|
|
DBR_DOUBLE = DBF_DOUBLE
|
|
DBR_STS_STRING = 7
|
|
DBR_STS_SHORT = 8
|
|
DBR_STS_INT = DBR_STS_SHORT
|
|
DBR_STS_FLOAT = 9
|
|
DBR_STS_ENUM = 10
|
|
DBR_STS_CHAR = 11
|
|
DBR_STS_LONG = 12
|
|
DBR_STS_DOUBLE = 13
|
|
DBR_TIME_STRING = 14
|
|
DBR_TIME_INT = 15
|
|
DBR_TIME_SHORT = 15
|
|
DBR_TIME_FLOAT = 16
|
|
DBR_TIME_ENUM = 17
|
|
DBR_TIME_CHAR = 18
|
|
DBR_TIME_LONG = 19
|
|
DBR_TIME_DOUBLE = 20
|
|
DBR_GR_STRING = 21
|
|
DBR_GR_SHORT = 22
|
|
DBR_GR_INT = DBR_GR_SHORT
|
|
DBR_GR_FLOAT = 23
|
|
DBR_GR_ENUM = 24
|
|
DBR_GR_CHAR = 25
|
|
DBR_GR_LONG = 26
|
|
DBR_GR_DOUBLE = 27
|
|
DBR_CTRL_STRING = 28
|
|
DBR_CTRL_SHORT = 29
|
|
DBR_CTRL_INT = DBR_CTRL_SHORT
|
|
DBR_CTRL_FLOAT = 30
|
|
DBR_CTRL_ENUM = 31
|
|
DBR_CTRL_CHAR = 32
|
|
DBR_CTRL_LONG = 33
|
|
DBR_CTRL_DOUBLE = 34
|
|
DBR_PUT_ACKT = DBR_CTRL_DOUBLE + 1
|
|
DBR_PUT_ACKS = DBR_PUT_ACKT + 1
|
|
DBR_STSACK_STRING = DBR_PUT_ACKS + 1
|
|
LAST_BUFFER_TYPE = DBR_STSACK_STRING
|
|
|
|
def VALID_DB_REQ(x):
|
|
return ((x >= 0) and (x <= LAST_BUFFER_TYPE))
|
|
def INVALID_DB_REQ(x):
|
|
return ((x < 0) or (x > LAST_BUFFER_TYPE))
|
|
|
|
class AlarmSeverity:
|
|
"""Alarm Severity class
|
|
|
|
AlarmSeverity class is provided to keep constants representing EPICS channel severity status.
|
|
It also keeps strings and colors for each severity states.
|
|
"""
|
|
NO_ALARM =0x0
|
|
MINOR_ALARM=0x1
|
|
MAJOR_ALARM=0x2
|
|
INVALID_ALARM=0x3
|
|
ALARM_NSEV=INVALID_ALARM+1
|
|
Strings=(
|
|
"NO_ALARM",
|
|
"MINOR",
|
|
"MAJOR",
|
|
"INVALID",
|
|
)
|
|
Colors=("green","yellow","red","grey")
|
|
|
|
class AlarmStatus:
|
|
"""!
|
|
AlarmStatus class provides constants returned by EPICS Channe Access library as channel status code.
|
|
It also gives you strings for corresponding channel status.
|
|
"""
|
|
NO_ALARM = 0
|
|
READ_ALARM = 1
|
|
WRITE_ALARM = 2
|
|
#/* ANALOG ALARMS */
|
|
HIHI_ALARM = 3
|
|
HIGH_ALARM = 4
|
|
LOLO_ALARM = 5
|
|
LOW_ALARM = 6
|
|
#/* BINARY ALARMS */
|
|
STATE_ALARM = 7
|
|
COS_ALARM = 8
|
|
#/* other alarms */
|
|
COMM_ALARM = 9
|
|
TIMEOUT_ALARM = 10
|
|
HW_LIMIT_ALARM = 11
|
|
CALC_ALARM = 12
|
|
SCAN_ALARM = 13
|
|
LINK_ALARM = 14
|
|
SOFT_ALARM = 15
|
|
BAD_SUB_ALARM = 16
|
|
UDF_ALARM = 17
|
|
DISABLE_ALARM = 18
|
|
SIMM_ALARM = 19
|
|
READ_ACCESS_ALARM = 20
|
|
WRITE_ACCESS_ALARM = 21
|
|
Strings=(
|
|
"NO_ALARM",
|
|
"READ",
|
|
"WRITE",
|
|
"HIHI",
|
|
"HIGH",
|
|
"LOLO",
|
|
"LOW",
|
|
"STATE",
|
|
"COS",
|
|
"COMM",
|
|
"TIMEOUT",
|
|
"HWLIMIT",
|
|
"CALC",
|
|
"SCAN",
|
|
"LINK",
|
|
"SOFT",
|
|
"BAD_SUB",
|
|
"UDF",
|
|
"DISABLE",
|
|
"SIMM",
|
|
"READ_ACCESS",
|
|
"WRITE_ACCESS",
|
|
)
|
|
|
|
|
|
# ch_state={cs_never_conn=0, cs_prev_conn, cs_conn, cs_closed}
|
|
|
|
cs_never_conn= 0
|
|
cs_prev_conn = 1
|
|
cs_conn = 2
|
|
cs_closed = 3
|
|
|
|
class ch_state:
|
|
"""
|
|
ch_state class provides constants representing channel connection status.
|
|
"""
|
|
cs_never_conn= 0
|
|
cs_prev_conn = 1
|
|
cs_conn = 2
|
|
cs_closed = 3
|
|
Strings=(
|
|
"channel never connected",
|
|
"channel previously connected",
|
|
"channel connected",
|
|
"channel already closed",
|
|
)
|