Changeset 15


Ignore:
Timestamp:
Feb 14, 2009 10:34:08 PM (15 years ago)
Author:
hammonds
Message:

Add in structures needed to read extended data types.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • caPython/db_access_local.h

    r5 r15  
    44 * this down to what is needed for caPython (JPH).
    55*/
     6
     7/*
     8 * architecture independent types
     9 *
     10 * (so far this is sufficient for all archs we have ported to)
     11 */
     12typedef epicsOldString dbr_string_t;
     13typedef epicsUInt8 dbr_char_t;
     14typedef epicsInt16 dbr_short_t;
     15typedef epicsUInt16     dbr_ushort_t;
     16typedef epicsInt16 dbr_int_t;
     17typedef epicsUInt16 dbr_enum_t;
     18typedef epicsInt32 dbr_long_t;
     19typedef epicsUInt32 dbr_ulong_t;
     20typedef epicsFloat32 dbr_float_t;
     21typedef epicsFloat64 dbr_double_t;
     22typedef epicsUInt16     dbr_put_ackt_t;
     23typedef epicsUInt16     dbr_put_acks_t;
     24typedef epicsOldString dbr_stsack_string_t;
     25typedef epicsOldString dbr_class_name_t;
    626
    727/*
     
    84104#define INVALID_DB_REQ(x)       ((x < 0) || (x > LAST_BUFFER_TYPE))
    85105
    86 
     106/* VALUES WITH STATUS STRUCTURES */
     107
     108/* structure for a  string status field */
     109/* structure for a  string status and ack field */
     110/* structure for an short status field */
     111struct dbr_sts_int{
     112        dbr_short_t     status;                 /* status of value */
     113        dbr_short_t     severity;               /* severity of alarm */
     114        dbr_short_t     value;                  /* current value */
     115};
     116struct dbr_sts_short{
     117        dbr_short_t     status;                 /* status of value */
     118        dbr_short_t     severity;               /* severity of alarm */
     119        dbr_short_t     value;                  /* current value */
     120};
     121
     122/* structure for a  float status field */
     123struct dbr_sts_float{
     124        dbr_short_t     status;                 /* status of value */
     125        dbr_short_t     severity;               /* severity of alarm */
     126        dbr_float_t     value;                  /* current value */
     127};
     128
     129/* structure for a  enum status field */
     130struct dbr_sts_enum{
     131        dbr_short_t     status;                 /* status of value */
     132        dbr_short_t     severity;               /* severity of alarm */
     133        dbr_enum_t      value;                  /* current value */
     134};
     135
     136/* structure for a char status field */
     137struct dbr_sts_char{
     138        dbr_short_t     status;         /* status of value */
     139        dbr_short_t     severity;       /* severity of alarm */
     140        dbr_char_t      RISC_pad;       /* RISC alignment */
     141        dbr_char_t      value;          /* current value */
     142};
     143    /* structure for a long status field */
     144struct dbr_sts_long{
     145        dbr_short_t     status;                 /* status of value */
     146        dbr_short_t     severity;               /* severity of alarm */
     147        dbr_long_t      value;                  /* current value */
     148};
     149
     150/* structure for a double status field */
     151struct dbr_sts_double{
     152        dbr_short_t     status;                 /* status of value */
     153        dbr_short_t     severity;               /* severity of alarm */
     154        dbr_long_t      RISC_pad;               /* RISC alignment */
     155        dbr_double_t    value;                  /* current value */
     156};
     157
     158/* VALUES WITH STATUS AND TIME STRUCTURES */
     159
     160/* structure for a  string time field */
     161
     162/* structure for an short time field */
     163struct dbr_time_short{
     164        dbr_short_t     status;                 /* status of value */
     165        dbr_short_t     severity;               /* severity of alarm */
     166        epicsTimeStamp  stamp;                  /* time stamp */
     167        dbr_short_t     RISC_pad;               /* RISC alignment */
     168        dbr_short_t     value;                  /* current value */
     169};
     170
     171/* structure for a  float time field */
     172struct dbr_time_float{
     173        dbr_short_t     status;                 /* status of value */
     174        dbr_short_t     severity;               /* severity of alarm */
     175        epicsTimeStamp  stamp;                  /* time stamp */
     176        dbr_float_t     value;                  /* current value */
     177};
     178
     179/* structure for a  enum time field */
     180struct dbr_time_enum{
     181        dbr_short_t     status;                 /* status of value */
     182        dbr_short_t     severity;               /* severity of alarm */
     183        epicsTimeStamp  stamp;                  /* time stamp */
     184        dbr_short_t     RISC_pad;               /* RISC alignment */
     185        dbr_enum_t      value;                  /* current value */
     186};
     187
     188/* structure for a char time field */
     189struct dbr_time_char{
     190        dbr_short_t     status;                 /* status of value */
     191        dbr_short_t     severity;               /* severity of alarm */
     192        epicsTimeStamp  stamp;                  /* time stamp */
     193        dbr_short_t     RISC_pad0;              /* RISC alignment */
     194        dbr_char_t      RISC_pad1;              /* RISC alignment */
     195        dbr_char_t      value;                  /* current value */
     196};
     197
     198/* structure for a long time field */
     199struct dbr_time_long{
     200        dbr_short_t     status;                 /* status of value */
     201        dbr_short_t     severity;               /* severity of alarm */
     202        epicsTimeStamp  stamp;                  /* time stamp */
     203        dbr_long_t      value;                  /* current value */
     204};
     205
     206/* structure for a double time field */
     207struct dbr_time_double{
     208        dbr_short_t     status;                 /* status of value */
     209        dbr_short_t     severity;               /* severity of alarm */
     210        epicsTimeStamp  stamp;                  /* time stamp */
     211        dbr_long_t      RISC_pad;               /* RISC alignment */
     212        dbr_double_t    value;                  /* current value */
     213};
     214
     215/* VALUES WITH STATUS AND GRAPHIC STRUCTURES */
     216
     217/* structure for a graphic string */
     218        /* not implemented; use struct_dbr_sts_string */
     219
     220/* structure for a graphic short field */
     221struct dbr_gr_int{
     222        dbr_short_t     status;                 /* status of value */
     223        dbr_short_t     severity;               /* severity of alarm */
     224        char            units[MAX_UNITS_SIZE];  /* units of value */
     225        dbr_short_t     upper_disp_limit;       /* upper limit of graph */
     226        dbr_short_t     lower_disp_limit;       /* lower limit of graph */
     227        dbr_short_t     upper_alarm_limit;
     228        dbr_short_t     upper_warning_limit;
     229        dbr_short_t     lower_warning_limit;
     230        dbr_short_t     lower_alarm_limit;
     231        dbr_short_t     value;                  /* current value */
     232};
     233struct dbr_gr_short{
     234        dbr_short_t     status;                 /* status of value */
     235        dbr_short_t     severity;               /* severity of alarm */
     236        char            units[MAX_UNITS_SIZE];  /* units of value */
     237        dbr_short_t     upper_disp_limit;       /* upper limit of graph */
     238        dbr_short_t     lower_disp_limit;       /* lower limit of graph */
     239        dbr_short_t     upper_alarm_limit;
     240        dbr_short_t     upper_warning_limit;
     241        dbr_short_t     lower_warning_limit;
     242        dbr_short_t     lower_alarm_limit;
     243        dbr_short_t     value;                  /* current value */
     244};
     245
     246/* structure for a graphic floating point field */
     247struct dbr_gr_float{
     248        dbr_short_t     status;                 /* status of value */
     249        dbr_short_t     severity;               /* severity of alarm */
     250        dbr_short_t     precision;              /* number of decimal places */
     251        dbr_short_t     RISC_pad0;              /* RISC alignment */
     252        char            units[MAX_UNITS_SIZE];  /* units of value */
     253        dbr_float_t     upper_disp_limit;       /* upper limit of graph */
     254        dbr_float_t     lower_disp_limit;       /* lower limit of graph */
     255        dbr_float_t     upper_alarm_limit;
     256        dbr_float_t     upper_warning_limit;
     257        dbr_float_t     lower_warning_limit;
     258        dbr_float_t     lower_alarm_limit;
     259        dbr_float_t     value;                  /* current value */
     260};
     261
     262/* structure for a graphic enumeration field */
     263struct dbr_gr_enum{
     264        dbr_short_t     status;                 /* status of value */
     265        dbr_short_t     severity;               /* severity of alarm */
     266        dbr_short_t     no_str;                 /* number of strings */
     267        char            strs[MAX_ENUM_STATES][MAX_ENUM_STRING_SIZE];
     268                                                /* state strings */
     269        dbr_enum_t      value;                  /* current value */
     270};
     271
     272/* structure for a graphic char field */
     273struct dbr_gr_char{
     274        dbr_short_t     status;                 /* status of value */
     275        dbr_short_t     severity;               /* severity of alarm */
     276        char            units[MAX_UNITS_SIZE];  /* units of value */
     277        dbr_char_t      upper_disp_limit;       /* upper limit of graph */
     278        dbr_char_t      lower_disp_limit;       /* lower limit of graph */
     279        dbr_char_t      upper_alarm_limit;
     280        dbr_char_t      upper_warning_limit;
     281        dbr_char_t      lower_warning_limit;
     282        dbr_char_t      lower_alarm_limit;
     283        dbr_char_t      RISC_pad;               /* RISC alignment */
     284        dbr_char_t      value;                  /* current value */
     285};
     286
     287/* structure for a graphic long field */
     288struct dbr_gr_long{
     289        dbr_short_t     status;                 /* status of value */
     290        dbr_short_t     severity;               /* severity of alarm */
     291        char            units[MAX_UNITS_SIZE];  /* units of value */
     292        dbr_long_t      upper_disp_limit;       /* upper limit of graph */
     293        dbr_long_t      lower_disp_limit;       /* lower limit of graph */
     294        dbr_long_t      upper_alarm_limit;
     295        dbr_long_t      upper_warning_limit;
     296        dbr_long_t      lower_warning_limit;
     297        dbr_long_t      lower_alarm_limit;
     298        dbr_long_t      value;                  /* current value */
     299};
     300
     301/* structure for a graphic double field */
     302struct dbr_gr_double{
     303        dbr_short_t     status;                 /* status of value */
     304        dbr_short_t     severity;               /* severity of alarm */
     305        dbr_short_t     precision;              /* number of decimal places */
     306        dbr_short_t     RISC_pad0;              /* RISC alignment */
     307        char            units[MAX_UNITS_SIZE];  /* units of value */
     308        dbr_double_t    upper_disp_limit;       /* upper limit of graph */
     309        dbr_double_t    lower_disp_limit;       /* lower limit of graph */
     310        dbr_double_t    upper_alarm_limit;
     311        dbr_double_t    upper_warning_limit;
     312        dbr_double_t    lower_warning_limit;
     313        dbr_double_t    lower_alarm_limit;
     314        dbr_double_t    value;                  /* current value */
     315};
     316
     317/* VALUES WITH STATUS, GRAPHIC and CONTROL STRUCTURES */
     318
     319/* structure for a control string */
     320        /* not implemented; use struct_dbr_sts_string */
     321
     322/* structure for a control integer */
     323struct dbr_ctrl_int{
     324        dbr_short_t     status;                 /* status of value */
     325        dbr_short_t     severity;               /* severity of alarm */
     326        char            units[MAX_UNITS_SIZE];  /* units of value */
     327        dbr_short_t     upper_disp_limit;       /* upper limit of graph */
     328        dbr_short_t     lower_disp_limit;       /* lower limit of graph */
     329        dbr_short_t     upper_alarm_limit;
     330        dbr_short_t     upper_warning_limit;
     331        dbr_short_t     lower_warning_limit;
     332        dbr_short_t     lower_alarm_limit;
     333        dbr_short_t     upper_ctrl_limit;       /* upper control limit */
     334        dbr_short_t     lower_ctrl_limit;       /* lower control limit */
     335        dbr_short_t     value;                  /* current value */
     336};
     337struct dbr_ctrl_short{
     338        dbr_short_t     status;                 /* status of value */
     339        dbr_short_t     severity;               /* severity of alarm */
     340        char            units[MAX_UNITS_SIZE];  /* units of value */
     341        dbr_short_t     upper_disp_limit;       /* upper limit of graph */
     342        dbr_short_t     lower_disp_limit;       /* lower limit of graph */
     343        dbr_short_t     upper_alarm_limit;
     344        dbr_short_t     upper_warning_limit;
     345        dbr_short_t     lower_warning_limit;
     346        dbr_short_t     lower_alarm_limit;
     347        dbr_short_t     upper_ctrl_limit;       /* upper control limit */
     348        dbr_short_t     lower_ctrl_limit;       /* lower control limit */
     349        dbr_short_t     value;                  /* current value */
     350};
     351
     352/* structure for a control floating point field */
     353struct dbr_ctrl_float{
     354        dbr_short_t     status;                 /* status of value */
     355        dbr_short_t     severity;               /* severity of alarm */
     356        dbr_short_t     precision;              /* number of decimal places */
     357        dbr_short_t     RISC_pad;               /* RISC alignment */
     358        char            units[MAX_UNITS_SIZE];  /* units of value */
     359        dbr_float_t     upper_disp_limit;       /* upper limit of graph */
     360        dbr_float_t     lower_disp_limit;       /* lower limit of graph */
     361        dbr_float_t     upper_alarm_limit;
     362        dbr_float_t     upper_warning_limit;
     363        dbr_float_t     lower_warning_limit;
     364        dbr_float_t     lower_alarm_limit;
     365        dbr_float_t     upper_ctrl_limit;       /* upper control limit */
     366        dbr_float_t     lower_ctrl_limit;       /* lower control limit */
     367        dbr_float_t     value;                  /* current value */
     368};
     369
     370/* structure for a control enumeration field */
     371struct dbr_ctrl_enum{
     372        dbr_short_t     status;                 /* status of value */
     373        dbr_short_t     severity;               /* severity of alarm */
     374        dbr_short_t     no_str;                 /* number of strings */
     375        char    strs[MAX_ENUM_STATES][MAX_ENUM_STRING_SIZE];
     376                                        /* state strings */
     377        dbr_enum_t      value;          /* current value */
     378};
     379
     380/* structure for a control char field */
     381struct dbr_ctrl_char{
     382        dbr_short_t     status;                 /* status of value */
     383        dbr_short_t     severity;               /* severity of alarm */
     384        char            units[MAX_UNITS_SIZE];  /* units of value */
     385        dbr_char_t      upper_disp_limit;       /* upper limit of graph */
     386        dbr_char_t      lower_disp_limit;       /* lower limit of graph */
     387        dbr_char_t      upper_alarm_limit;
     388        dbr_char_t      upper_warning_limit;
     389        dbr_char_t      lower_warning_limit;
     390        dbr_char_t      lower_alarm_limit;
     391        dbr_char_t      upper_ctrl_limit;       /* upper control limit */
     392        dbr_char_t      lower_ctrl_limit;       /* lower control limit */
     393        dbr_char_t      RISC_pad;               /* RISC alignment */
     394        dbr_char_t      value;                  /* current value */
     395};
     396
     397/* structure for a control long field */
     398struct dbr_ctrl_long{
     399        dbr_short_t     status;                 /* status of value */
     400        dbr_short_t     severity;               /* severity of alarm */
     401        char            units[MAX_UNITS_SIZE];  /* units of value */
     402        dbr_long_t      upper_disp_limit;       /* upper limit of graph */
     403        dbr_long_t      lower_disp_limit;       /* lower limit of graph */
     404        dbr_long_t      upper_alarm_limit;
     405        dbr_long_t      upper_warning_limit;
     406        dbr_long_t      lower_warning_limit;
     407        dbr_long_t      lower_alarm_limit;
     408        dbr_long_t      upper_ctrl_limit;       /* upper control limit */
     409        dbr_long_t      lower_ctrl_limit;       /* lower control limit */
     410        dbr_long_t      value;                  /* current value */
     411};
     412
     413/* structure for a control double field */
     414struct dbr_ctrl_double{
     415        dbr_short_t     status;                 /* status of value */
     416        dbr_short_t     severity;               /* severity of alarm */
     417        dbr_short_t     precision;              /* number of decimal places */
     418        dbr_short_t     RISC_pad0;              /* RISC alignment */
     419        char            units[MAX_UNITS_SIZE];  /* units of value */
     420        dbr_double_t    upper_disp_limit;       /* upper limit of graph */
     421        dbr_double_t    lower_disp_limit;       /* lower limit of graph */
     422        dbr_double_t    upper_alarm_limit;
     423        dbr_double_t    upper_warning_limit;
     424        dbr_double_t    lower_warning_limit;
     425        dbr_double_t    lower_alarm_limit;
     426        dbr_double_t    upper_ctrl_limit;       /* upper control limit */
     427        dbr_double_t    lower_ctrl_limit;       /* lower control limit */
     428        dbr_double_t    value;                  /* current value */
     429};
     430
Note: See TracChangeset for help on using the changeset viewer.