14 #ifndef INC_db_access_H 15 #define INC_db_access_H 29 #define MAX_UNITS_SIZE 8 30 #define MAX_ENUM_STRING_SIZE 26 31 #define MAX_ENUM_STATES 16 53 #ifndef db_accessHFORdb_accessC 63 #define DBF_NO_ACCESS 7 64 #define LAST_TYPE DBF_DOUBLE 65 #define VALID_DB_FIELD(x) ((x >= 0) && (x <= LAST_TYPE)) 66 #define INVALID_DB_FIELD(x) ((x < 0) || (x > LAST_TYPE)) 69 #define DBR_STRING DBF_STRING 70 #define DBR_INT DBF_INT 71 #define DBR_SHORT DBF_INT 72 #define DBR_FLOAT DBF_FLOAT 73 #define DBR_ENUM DBF_ENUM 74 #define DBR_CHAR DBF_CHAR 75 #define DBR_LONG DBF_LONG 76 #define DBR_DOUBLE DBF_DOUBLE 77 #define DBR_STS_STRING 7 78 #define DBR_STS_SHORT 8 79 #define DBR_STS_INT DBR_STS_SHORT 80 #define DBR_STS_FLOAT 9 81 #define DBR_STS_ENUM 10 82 #define DBR_STS_CHAR 11 83 #define DBR_STS_LONG 12 84 #define DBR_STS_DOUBLE 13 85 #define DBR_TIME_STRING 14 86 #define DBR_TIME_INT 15 87 #define DBR_TIME_SHORT 15 88 #define DBR_TIME_FLOAT 16 89 #define DBR_TIME_ENUM 17 90 #define DBR_TIME_CHAR 18 91 #define DBR_TIME_LONG 19 92 #define DBR_TIME_DOUBLE 20 93 #define DBR_GR_STRING 21 94 #define DBR_GR_SHORT 22 95 #define DBR_GR_INT DBR_GR_SHORT 96 #define DBR_GR_FLOAT 23 97 #define DBR_GR_ENUM 24 98 #define DBR_GR_CHAR 25 99 #define DBR_GR_LONG 26 100 #define DBR_GR_DOUBLE 27 101 #define DBR_CTRL_STRING 28 102 #define DBR_CTRL_SHORT 29 103 #define DBR_CTRL_INT DBR_CTRL_SHORT 104 #define DBR_CTRL_FLOAT 30 105 #define DBR_CTRL_ENUM 31 106 #define DBR_CTRL_CHAR 32 107 #define DBR_CTRL_LONG 33 108 #define DBR_CTRL_DOUBLE 34 109 #define DBR_PUT_ACKT DBR_CTRL_DOUBLE + 1 110 #define DBR_PUT_ACKS DBR_PUT_ACKT + 1 111 #define DBR_STSACK_STRING DBR_PUT_ACKS + 1 112 #define DBR_CLASS_NAME DBR_STSACK_STRING + 1 113 #define LAST_BUFFER_TYPE DBR_CLASS_NAME 114 #define VALID_DB_REQ(x) ((x >= 0) && (x <= LAST_BUFFER_TYPE)) 115 #define INVALID_DB_REQ(x) ((x < 0) || (x > LAST_BUFFER_TYPE)) 518 #define dbr_size_n(TYPE,COUNT)\ 519 ((unsigned)((COUNT)<=0?dbr_size[TYPE]:dbr_size[TYPE]+((COUNT)-1)*dbr_value_size[TYPE])) 522 LIBCA_API
extern const unsigned short dbr_size[];
527 #ifndef db_accessHFORdb_accessC 540 #define dbr_value_ptr(PDBR, DBR_TYPE) \ 541 ((void *)(((char *)PDBR)+dbr_value_offset[DBR_TYPE])) 546 #define dbr_value_ptr_from_structure(PDBR, STRUCTURE)\ 547 ((void *)(((char *)PDBR)+BYTE_OS(STRUCTURE, value))) 636 #define db_strval_dim MAX_STRING_SIZE 637 #define db_units_dim MAX_UNITS_SIZE 638 #define db_desc_dim 24 639 #define db_name_dim 36 640 #define db_state_dim MAX_ENUM_STATES 641 #define db_state_text_dim MAX_ENUM_STRING_SIZE 643 #define dbf_type_is_valid(type) ((type) >= 0 && (type) <= LAST_TYPE) 644 #define dbr_type_is_valid(type) ((type) >= 0 && (type) <= LAST_BUFFER_TYPE) 645 #define dbr_type_is_plain(type) \ 646 ((type) >= DBR_STRING && (type) <= DBR_DOUBLE) 647 #define dbr_type_is_STS(type) \ 648 ((type) >= DBR_STS_STRING && (type) <= DBR_STS_DOUBLE) 649 #define dbr_type_is_TIME(type) \ 650 ((type) >= DBR_TIME_STRING && (type) <= DBR_TIME_DOUBLE) 651 #define dbr_type_is_GR(type) \ 652 ((type) >= DBR_GR_STRING && (type) <= DBR_GR_DOUBLE) 653 #define dbr_type_is_CTRL(type) \ 654 ((type) >= DBR_CTRL_STRING && (type) <= DBR_CTRL_DOUBLE) 655 #define dbr_type_is_STRING(type) \ 656 ((type) >= 0 && (type) <= LAST_BUFFER_TYPE && \ 657 (type)%(LAST_TYPE+1) == DBR_STRING) 658 #define dbr_type_is_SHORT(type) \ 659 ((type) >= 0 && (type) <= LAST_BUFFER_TYPE && \ 660 (type)%(LAST_TYPE+1) == DBR_SHORT) 661 #define dbr_type_is_FLOAT(type) \ 662 ((type) >= 0 && (type) <= LAST_BUFFER_TYPE && \ 663 (type)%(LAST_TYPE+1) == DBR_FLOAT) 664 #define dbr_type_is_ENUM(type) \ 665 ((type) >= 0 && (type) <= LAST_BUFFER_TYPE && \ 666 (type)%(LAST_TYPE+1) == DBR_ENUM) 667 #define dbr_type_is_CHAR(type) \ 668 ((type) >= 0 && (type) <= LAST_BUFFER_TYPE && \ 669 (type)%(LAST_TYPE+1) == DBR_CHAR) 670 #define dbr_type_is_LONG(type) \ 671 ((type) >= 0 && (type) <= LAST_BUFFER_TYPE && \ 672 (type)%(LAST_TYPE+1) == DBR_LONG) 673 #define dbr_type_is_DOUBLE(type) \ 674 ((type) >= 0 && (type) <= LAST_BUFFER_TYPE && \ 675 (type)%(LAST_TYPE+1) == DBR_DOUBLE) 677 #define dbf_type_to_text(type) \ 678 ( ((type) >= -1 && (type) < dbf_text_dim-2) ? \ 679 dbf_text[type+1] : dbf_text_invalid ) 681 #define dbf_text_to_type(text, type) \ 682 for (type=dbf_text_dim-3; type>=0; type--) { \ 683 if (strcmp(text, dbf_text[type+1]) == 0) \ 687 #define dbr_type_to_text(type) \ 688 ( ((type) >= 0 && (type) < dbr_text_dim) ? \ 689 dbr_text[(type)] : dbr_text_invalid ) 691 #define dbr_text_to_type(text, type) \ 692 for (type=dbr_text_dim-2; type>=0; type--) { \ 693 if (strcmp(text, dbr_text[type]) == 0) \ 697 #define dbf_type_to_DBR(type) \ 698 (((type) >= 0 && (type) <= dbf_text_dim-3) ? \ 701 #define dbf_type_to_DBR_STS(type) \ 702 (((type) >= 0 && (type) <= dbf_text_dim-3) ? \ 703 (type) + (dbf_text_dim-2) : -1 ) 705 #define dbf_type_to_DBR_TIME(type) \ 706 (((type) >= 0 && (type) <= dbf_text_dim-3) ? \ 707 (type) + 2*(dbf_text_dim-2) : -1 ) 709 #define dbf_type_to_DBR_GR(type) \ 710 (((type) >= 0 && (type) <= dbf_text_dim-3) ? \ 711 (type) + 3*(dbf_text_dim-2) : -1 ) 713 #define dbf_type_to_DBR_CTRL(type) \ 714 (((type) >= 0 && (type) <= dbf_text_dim-3) ? \ 715 (type) + 4*(dbf_text_dim-2) : -1 ) dbr_char_t upper_ctrl_limit
LIBCA_API const unsigned short dbr_size[]
dbr_double_t upper_disp_limit
dbr_short_t upper_warning_limit
epicsOldString dbr_stsack_string_t
dbr_short_t lower_warning_limit
dbr_char_t upper_alarm_limit
dbr_float_t upper_warning_limit
dbr_long_t upper_ctrl_limit
LIBCA_API const epicsType DBR_XXXXToEpicsType[LAST_BUFFER_TYPE+1]
dbr_long_t upper_disp_limit
char epicsOldString[MAX_STRING_SIZE]
dbr_double_t upper_alarm_limit
dbr_float_t upper_alarm_limit
dbr_long_t upper_alarm_limit
dbr_char_t lower_ctrl_limit
dbr_short_t lower_disp_limit
dbr_short_t lower_warning_limit
dbr_short_t lower_disp_limit
dbr_float_t lower_ctrl_limit
unsigned short epicsUInt16
dbr_long_t lower_ctrl_limit
dbr_short_t lower_alarm_limit
dbr_char_t upper_warning_limit
dbr_long_t lower_disp_limit
dbr_char_t lower_warning_limit
dbr_float_t upper_warning_limit
dbr_char_t lower_warning_limit
dbr_long_t lower_warning_limit
dbr_char_t lower_alarm_limit
dbr_short_t lower_warning_limit
dbr_double_t upper_disp_limit
dbr_short_t upper_alarm_limit
dbr_double_t lower_disp_limit
dbr_long_t lower_warning_limit
dbr_short_t lower_warning_limit
LIBCA_API const char * dbr_text[LAST_BUFFER_TYPE+1]
dbr_float_t upper_ctrl_limit
dbr_char_t upper_disp_limit
dbr_long_t upper_warning_limit
dbr_float_t upper_disp_limit
dbr_short_t lower_alarm_limit
dbr_short_t lower_ctrl_limit
LIBCA_API const int epicsTypeToDBR_XXXX[lastEpicsType+1]
dbr_char_t lower_alarm_limit
dbr_long_t upper_disp_limit
LIBCA_API const unsigned short dbr_value_size[]
dbr_short_t lower_alarm_limit
dbr_short_t lower_ctrl_limit
dbr_short_t upper_warning_limit
dbr_char_t upper_warning_limit
dbr_short_t upper_disp_limit
dbr_double_t upper_alarm_limit
dbr_double_t upper_ctrl_limit
dbr_double_t upper_warning_limit
dbr_short_t upper_alarm_limit
dbr_short_t upper_warning_limit
dbr_char_t upper_disp_limit
LIBCA_API const unsigned short dbr_value_offset[LAST_BUFFER_TYPE+1]
dbr_short_t lower_alarm_limit
dbr_short_t upper_ctrl_limit
dbr_long_t lower_alarm_limit
dbr_short_t upper_disp_limit
LIBCA_API const char * dbf_text[LAST_TYPE+3]
dbr_short_t lower_disp_limit
dbr_short_t upper_disp_limit
epicsOldString dbr_class_name_t
dbr_short_t upper_alarm_limit
epicsFloat64 dbr_double_t
dbr_double_t lower_alarm_limit
dbr_double_t lower_ctrl_limit
dbr_double_t lower_warning_limit
epicsOldString dbr_string_t
dbr_double_t lower_alarm_limit
dbr_char_t lower_disp_limit
dbr_short_t upper_ctrl_limit
dbr_double_t upper_warning_limit
#define MAX_ENUM_STRING_SIZE
dbr_float_t upper_disp_limit
dbr_double_t lower_warning_limit
dbr_char_t lower_disp_limit
dbr_short_t lower_disp_limit
dbr_float_t upper_alarm_limit
dbr_short_t upper_alarm_limit
EPICS time stamp, for use from C code.
dbr_short_t upper_warning_limit
LIBCA_API const short dbf_text_dim
LIBCA_API const char * dbr_text_invalid
dbr_double_t lower_disp_limit
dbr_float_t lower_warning_limit
dbr_float_t lower_disp_limit
dbr_long_t upper_warning_limit
dbr_char_t upper_alarm_limit
epicsUInt16 dbr_put_acks_t
EPICS time-stamps (epicsTimeStamp), epicsTime C++ class and C functions for handling wall-clock times...
LIBCA_API const char * dbf_text_invalid
dbr_float_t lower_warning_limit
dbr_long_t upper_alarm_limit
epicsUInt16 dbr_put_ackt_t
dbr_float_t lower_disp_limit
dbr_float_t lower_alarm_limit
dbr_long_t lower_disp_limit
LIBCA_API const short dbr_text_dim
dbr_float_t lower_alarm_limit
dbr_long_t lower_alarm_limit
dbr_short_t upper_disp_limit