cnsparam_h
/*
** Copyright 1991, Universities Research Association. All rights reserved.
*/
/******************************************************************************/
/* cnsparam.h
**
** General console application definitions
**
*/
/******************************************************************************/
#ifndef CNSPARAM_DEFINED /* do this only once */
#define CNSPARAM_DEFINED
#include <string.h> /* for size_t */
#include <float.h> /* needed for CLIB_DEFAULT_FLOAT_ARG */
#include "ul_cnscom_noX11.h"
#include "colors.h"
#ifdef NULL
#undef NULL
#endif
#define NULL 0
#define FORTRAN_TRUE -1
#define FORTRAN_FALSE 0
/*
Interrupt types for INTYPE
*/
#define INTINI 1
#define INTTRM 2
#define INTKBD 3
#define INTPER 4
#define INTKUP 6
#define INTDBL 7 /* only returned by 'window_intype' and 'repeated_kbd_intype' */
#define INTKBD_LX 8 /* '' */
#define INT_FOCUSIN 9
#define INT_FOCUSOUT 10
#define INT_BTN2 11 /* INTYPE button2 (middle) pressed event */
#define INT_BTN3 12 /* INTYPE button3 (right) pressed event */
#define INT_BTN4 13 /* INTYPE button4 (wheel up) pressed event */
#define INT_BTN5 14 /* INTYPE button5 (wheel down) pressed event */
#define INT_ENTER_FIELD 15 /* a field has been entered */
#define INT_LEAVE_FIELD 16 /* a field has been left */
#define INT_SHIFT_KBD 0x103 /* shift click */
#define INT_CTRL_KBD 0x403 /* control click */
#define INT_ALT_KBD 0x803 /* alt click */
#define INT_SHIFT_KBD_LX 0x101 /* shift click on LX window */
#define INT_CTRL_KBD_LX 0x401 /* control click on LX window */
#define INT_ALT_KBD_LX 0x801 /* alt click on LX window */
#define INT_BUTTON2_LX 0x4001 /* button 2 click on LX window */
#define INT_BUTTON3_LX 0x8001 /* button 3 click on LX window */
#define MAX_INTYPE_EVENT (INT_FOCUSOUT) /* max 'intype' event number */
#define NUM_INTYPE_EVENT 15 /* number of 'intype' event types */
#define INT_BEGIN -1 /* special preinitialization event */
#define INT_END -2 /* special post termination event */
#define INTYPE_OPT_NONE 0 /* no options selected */
#define INTYPE_OPT_BASIC_EVENTS 0 /* return only the basic intype events */
#define INTYPE_OPT_ALL_EVENTS 1 /* return all intype events */
#define INTYPE_OPT_PER_PAUSE 0 /* pause on periodic events */
#define INTYPE_OPT_NO_PAUSE 2 /* don't pause on periodic events */
/*
** Definition- Frequently used physical constants:
*/
#define PI 3.1415927 /* pi */
#define TWOPI 6.2831853 /* twice pi */
#define DEGRAD 57.29578 /* number of degrees per radian */
#define CINVAC 2.99792458E8 /* velocity of light in a vacuum (M/S) */
/*
** Filesharing defined constants
*/
#define FSHR_DIRECT 1
#define FSHR_SEQUENTIAL 2
#define FSHR_APPEND 3
#define FSHR_KEYED 4
#define FSHR_READ_ACCESS 1
#define FSHR_WRITE_ACCESS 2
#define FSHR_SAVE 1
#define FSHR_SUBMIT 4
#define FSHR_EXCLUSIVE 0
#define FSHR_SHARED 1
#define FSHR_DEFAULT_MAX_RECORD 1000
#define DIRECT 1
#define SEQUEN 2
#define SEQUENTIAL 2
#define APPEND 3
#define KEYED 4
#define SUBMIT 4
#define FSHARE_NAMLEN 13 /* maximum length of Filesharing file name */
#define FSHARE_RECSIZ 4044 /* maximum length of Filesharing record */
/*
** TV
*/
#define MIN_TV_ROWS 10 /* minimum number of TV rows */
#define MAX_TV_ROWS 48 /* maximum number of TV rows */
#define MIN_TV_COLS 24 /* minimum number of TV columns */
#define MAX_TV_COLS 120 /* maximum number of TV columns */
/*
** Lexidata
*/
#define LX_PIX_X 640 /* default x pixel size of a graphics screen */
#define LX_PIX_Y 512 /* default y pixel size of a graphics screen */
/*
** misc...
*/
#define DEVICE_NAME_LEN 8 /* length of an ACNET device name */
#define DEVNAM_LEN 8 /* length of an ACNET device name */
#define LONG_DEVICE_NAME_LEN 12 /* length of an ACNET device name plus array index */
#define C_STYLE_DEVICE_NAME_LEN 20 /* length of an ACNET device name plus a C style array index */
#define C_STYLE_LONG_DEVICE_NAME_LEN 20 /* length of an ACNET device name plus a C style array index */
#define DEVICE_FULL_NAME_LEN 64 /* length of a full ACNET device name */
#define C_STYLE_DEVICE_FULL_NAME_LEN 80 /* length of a full ACNET device name plus a C style array index */
#define DEVICE_FERMI_NAME_LEN 132 /* maximum length of a FermiName */
#define DEVICE_PREFIX_LEN 2 /* length of an ACNET device name prefix */
#define DEVICE_FIELD_NAME_LEN 26 /* maximum length of a device field name */
#define FTP_DEVICE_NAME_LEN 12 /* length of an ACNET device name plus array index in a fast time plot environment */
#define DEVICE_PREFIX_CHAR ':' /* ACNET device prefix separator (generic) */
#define DEVICE_PREFIX_CHAR_SET '-' /* ACNET device prefix separator (setting property) */
#define DEVICE_PREFIX_CHAR_STATUS '^' /* ACNET device prefix separator (basic status property) */
#define DEVICE_PREFIX_CHAR_SET_C_STYLE '_' /* ACNET device prefix separator (setting property) (C style) */
#define DEVICE_PREFIX_CHAR_STATUS_C_STYLE '|' /* ACNET device prefix separator (basic status property) (C style) */
#define DEVICE_PREFIX_CHAR_CONTROL_C_STYLE '&' /* ACNET device prefix separator (basic control property) (C style) */
#define DEVICE_PREFIX_CHAR_ANALOG_C_STYLE '@' /* ACNET device prefix separator (analog alarm) (C style) */
#define DEVICE_PREFIX_CHAR_DIGITAL_C_STYLE '$' /* ACNET device prefix separator (digital alarm) (C style) */
#define DEVICE_INDEX_INDICATOR '>' /* ACNET device name array index indicator */
#define DEVICE_FIELD_INDICATOR '.' /* ACNET device name field indicator */
#define DEVICE_MAX_INDEX_LEN 3 /* length of an ACNET device array index */
#define DEVICE_MAX_INDEX_LEN_C_STYLE 6 /* length of an ACNET device array index (C style) */
#define PAGNAM_LEN 4 /* length of an index page name */
#define LEN_PAGE_NAME (PAGNAM_LEN) /* length of an index page name */
#define PAGE_NAME_LEN (PAGNAM_LEN) /* length of an index page name */
#define LEN_PROGRAM_TITLE 18 /* length of a program title */
#define PROGRAM_TITLE_LEN (LEN_PROGRAM_TITLE) /* length of a program title */
#define LX_TITLE_LEN 40 /* length of an LX window title */
#define TASK_NAMLEN 6 /* length of a task(process) name */
#define TASK_NAME_LEN 6 /* length of a task(process) name */
#define PROC_NAMLEN 6 /* length of a process(task) name */
#define PROCESS_NAME_LEN 6 /* length of a process(task) name */
#define RAD50_LEN 6 /* length of a radix 50 ASCII string */
#define APM_PROC_NAMLEN 15 /* length of a VAX APM process name */
#define APM_PROCESS_NAME_LEN (APM_PROC_NAMLEN) /* length of a VAX APM process name */
#define SYSTEM_PROCESS_NAME_LEN 128 /* length of a system process name */
#define PERTM 0.06666666 /* time (sec) between periodic entries */
#define PERRT 15.0 /* periodic entry rate in Hz (REAL) */
#define IPERRT 15 /* periodic entry rate in Hz (INTEGER) */
#define TCLK_FREQ 10001550.0 /* TCLK clock frequency in Hz */
#define LEN_DEVNAME (DEVNAM_LEN)
#define LEN_DEV_UNITS 4 /* length of device units text */
#define LEN_DEVICE_UNITS 4 /* length of device units text */
#define LEN_EXTENDED_DEVICE_UNITS 16 /* length of extended device units text */
#define LEN_DEV_DESCR_TEXT 24 /* length of device descriptive text */
#define DEVICE_DESCRIPTION_LEN 24 /* length of device descriptive text */
#define DEVICE_FULL_DESCRIPTION_LEN 128 /* length of full device descriptive text */
#define LEN_SSDN 8 /* length of an SSDN in bytes */
#define LEN_EMC 8 /* length of an EMC in bytes */
#define MAX_PROPERTY_SIZE 32767 /* maximum size of a device property in bytes */
#define NODE_NAME_LEN 6 /* length of an ACNET node name */
#define ACNET_NODE_NAME_LEN 6 /* length of an ACNET node name */
#define IP_ADDRESS_LEN 15 /* length of an IP address */
#define IP_NAME_LEN 64 /* length of an IP name */
#define MAX_SCREEN_X_SIZE 1600 /* maximum screen pixel size in X */
#define MAX_SCREEN_Y_SIZE 1200 /* maximum screen pixel size in Y */
#define PROGRAM_DESCRIPTION_LEN 80 /* maximum length of a program description */
#define HOUSE_NAME_LEN 2 /* number of characters in a house name */
#define SECS_PER_MIN 60 /* number of seconds per minute */
#define SECS_PER_HOUR (SECS_PER_MIN * 60) /* number of seconds per hour */
#define SECS_PER_DAY (SECS_PER_HOUR * 24) /* number of seconds per day */
#define SECS_PER_WEEK (SECS_PER_DAY * 7) /* number of seconds per week */
#define SECS_PER_YEAR (SECS_PER_DAY * 365) /* number of seconds in a short year */
#define MINS_PER_HOUR 60 /* number of minutes per hour */
#define MSECS_PER_SEC 1000 /* number of milliseconds in a second */
#define USECS_PER_MSEC 1000 /* number of microseconds in a millisecond */
#define NSECS_PER_USEC 1000 /* number of nanoseconds in a microsecond */
#define DAYS_PER_WEEK 7 /* number of days in a week */
#define MONTHS_PER_YEAR 12 /* number of months in a year */
#define YEARS_PER_CENTURY 100 /* number of years in a century */
/* The following #define was the the offset between ctime and clinks on the
VAX/VMS machines because they used a local ctime, i.e., one whose t=0
moment is 1 Jan 1970 00:00:00 CST instead of UTC. On Linux ctime's t=0
moment is 1 Jan 1970 00:00:00 UTC, so an extra offset to adjust for the UTC
vs. CST is needed on Linux. The VAX/VMS ctime was also non-linear because
of daylight savings time. */
#define LOCAL_TIMEZONE_OFFSET (SECS_PER_HOUR * 6)
#define LOCAL_CTIME_OFFSET (SECS_PER_YEAR * 2) /* offset from local ctime to clinks */
#define UTC_CTIME_OFFSET (SECS_PER_YEAR * 2 + LOCAL_TIMEZONE_OFFSET) /* offset from utc ctime to clinks */
#define CTIME_OFFSET LOCAL_CTIME_OFFSET /* for compatibility with old code. */
#define LOCAL_CONSOLE 0 /* calling process' console */
#define CONSOLE_MIN 1 /* minimum console number */
#define CONSOLE_MAX 300 /* maximum console number */
#define NUM_CONSOLE_NODES 70 /* total number of console nodes (this will change over time) */
#define INSTANCE_OFFSET 100 /* numeric offset from one instance to the next */
#define SLOT_TYPE_PA 1 /* primary application slot */
#define SLOT_TYPE_SA 2 /* secondary application slot */
#define SLOT_TYPE_DA 3 /* daemon application slot */
#define SLOT_TYPE_DAEMON 3 /* daemon application slot */
#define SLOT_TYPE_NONE 0 /* unknown slot type */
#define SLOT_TYPE_ANY (-1) /* any application slot */
#define SLOT_TYPE_SPECIFIC (-5) /* specific application slot */
#define LOCAL_SLOT (-1) /* calling process' slot */
#define AVAILABLE_PA_SLOT (-2) /* first available primary application slot */
#define AVAILABLE_SA_SLOT (-3) /* first available secondary application slot */
#define AVAILABLE_SLOT (-4) /* first available application slot */
#define FORCED_AVAILABLE_PA_SLOT (-5) /* first available primary application slot with forced selection if none available */
#define FORCED_AVAILABLE_SA_SLOT (-6) /* first available secondary application slot with forced selection if none available */
#define PA_SLOT 1 /* slot # for primary application A */
#define SS_SLOT 2 /* slot # for secondary application A */
#define SA_SLOT 2 /* slot # for secondary application A */
#define GXSA 2 /* slot # for secondary application A */
#define LX_SLOT 3 /* slot # for secondary application B */
#define SB_SLOT 3 /* slot # for secondary application B */
#define GXSB 3 /* slot # for secondary application B */
#define ALARM_SLOT 4 /* slot # for alarms task */
#define PB_SLOT 5 /* slot # for primary application B */
#define UTIL_SLOT 6 /* slot # for utilities window */
#define NONUSER_SLOT 7 /* slot # for miscellaneous detached processes */
#define SC_SLOT 8 /* slot # for secondary application C */
#define PC_SLOT 9 /* slot # for primary application C */
#define PD_SLOT 10 /* slot # for primary application D */
#define PE_SLOT 11 /* slot # for primary application E */
#define SD_SLOT 12 /* slot # for secondary application D */
#define SE_SLOT 13 /* slot # for secondary application E */
#define HELP_SLOT 98 /* slot # for bubble help window */
#define EDM_SLOT 99 /* slot # for EDM */
#define NUM_PA_SLOTS 5 /* number of PA's (PA, PB, PC, PD, PE) */
#define NUM_SA_SLOTS 5 /* number of SA's (SA, SB, SC, SD, SE) */
#define NUM_CONSOLE_TASKS 13 /* number of console tasks */
#define COLORMAP_DEFAULT 0 /* default colormap */
#define COLORMAP_GREYSCALE 1 /* greyscale colormap */
#define COLORMAP_PRIVATE 2 /* private colormap */
#define LOCAL_WINDOW (-2) /* calling process' main window */
#define LOCAL_WINDOW_2 (-3) /* calling process' secondary window */
#define LX2_ROOT 0 /* console root window ID */
#define LX2_MAIN_TV_A 1 /* console window IDs... */
#define LX2_MAIN_TP_A 2
#define LX2_MAIN_TV_B 3
#define LX2_MAIN_TP_B 4
#define LX2_ALARMS 5
//#define LX2_MAIN_TV_E 5
#define LX2_MAIN_GX_2A 6
#define LX2_MAIN_GX_1A 7
#define LX2_MAIN_GX_2B 8
#define LX2_MAIN_GX_1B 9
#define LX2_SA 10
#define LX2_SB 11
#define LX2_UTILITY 12
#define LX2_MAIN_TV_C 13
#define LX2_MAIN_TP_C 14
#define LX2_BUBBLE 15
#define LX2_MAIN_GX_2C 16
#define LX2_MAIN_GX_1C 17
#define LX2_SC 18
#define LX2_MAIN_TV_D 19
#define LX2_MAIN_GX_2D 21
#define LX2_MAIN_GX_1D 22
#define LX2_MAIN_TV_E 23
#define LX2_MAIN_GX_2E 25
#define LX2_MAIN_GX_1E 26
#define LX2_SD 27
#define LX2_SE 28
#define LX2_SUM_WINDOWS 26 /* total number of windows */
#define NUM_CONSOLE_WINDOWS 26 /* total number of windows */
#define LX2_ALL_WINDOWS (-1) /* all windows */
#define GXPA_1 5 /* PA's (or PB) graphics screen "lexidata" */
#define GXPA_2 10 /* PA's (or PB) graphics screen "storage-scope"*/
#define GX_LX_INX_SA 4 /* lx index for SA slot */
#define GX_LX_INX_SB 5 /* lx index for SB slot */
#define GX_LX_PA_SS 0 /* lx index for PA SS */
#define GX_LX_PA_LX 1 /* lx index for PA LX */
#define GX_LX_PB_SS 2 /* lx index for PA SS */
#define GX_LX_PB_LX 3 /* lx index for PA LX */
#define GX_LX_PC_SS 6 /* lx index for PC SS */
#define GX_LX_PC_LX 7 /* lx index for PA LX */
#define GX_LX_INX_SC 8 /* lx index for SB slot */
#define GX_LX_PD_SS 9 /* lx index for PD SS */
#define GX_LX_PD_LX 10 /* lx index for PD LX */
#define GX_LX_PE_SS 11 /* lx index for PE SS */
#define GX_LX_PE_LX 12 /* lx index for PE LX */
#define GX_LX_INX_SD 13 /* lx index for SD slot */
#define GX_LX_INX_SE 14 /* lx index for SE slot */
#ifdef OK
#undef OK
#endif
#define OK 0
#define SUCCESS 0
#define USER_ABORT -1 /* user aborted command */
#define LEN_CHGBUFF 80 /* byte length of chgpgm buffer */
#define SCRIPT_NAMLEN 16 /* script name length */
#define SCRIPT_NAME_LEN 16 /* script name length */
#define CMU_NAMLEN 12 /* mailbox name length */
#define CMU_NAME_LEN 12 /* mailbox name length */
#define CLU_MAXLEN 80 /* maximum length of CLU message */
#define LEN_GETTIME 18 /* length of get_time string */
#define LEN_LEXOBJECT 8 /* length of the name of a Lex Object */
#define LEN_LOGNAME 8 /* length of log file name */
#define FACILITY_TEXT_LEN 8 /* length of text for ACNET error facility codes */
#define DEL_BACKSPACE 8 /* ASCII code for delete back space */
#define HORZ_TAB 9 /* ASCII code for horizontal tab */
#define LINE_FEED 10 /* ASCII code for line feed */
#define VERT_TAB 11 /* ASCII code for vertical tab */
#define FORM_FEED 12 /* ASCII code for form feed */
#define CARRIAGE_RETURN 13 /* ASCII code for carriage return */
#define BLANK 0x20 /* ASCII code for a blank */
#define LEN_GIF_DIRECT 80 /* max length of GIF directory names */
#define LEN_GIF_FILE 80 /* max length of GIF file names */
#define USER_NAME_LEN 12 /* maximum length of VMS user name */
#define PASSWORD_LEN 31 /* maximum length of VMS password */
#define USER_NOBODY 999994 /* user ID for "nobody" */
#define USER_UNKNOWN 999999 /* user ID for "unknown" */
#define USER_EMAIL_LEN 30 /* maximum length of a user email string */
#define EMAIL_LEN 80 /* maximum length of an email string (accdb.dbo.console_user) */
static size_t const FULL_NAME_LEN = 30; /* maximum length of a full name (accdb.dbo.console_user) */
static size_t const PHONE_EXT_LEN = 4; /* maximum length of a phone extension (accdb.dbo.console_user) */
static size_t const USER_ID_LEN = 8; /* maximum length of a user/badge id (accdb.dbo.console_user) */
#define CONSOLE_CLASS_NAME_LEN 13 /* maximum length of a console class name */
#define NUM_CONSOLE_CLASSES 32 /* number of possible console classes */
#define ACNET_MAX_MULTCAST 1478 /* maximum bytes for a multicast packet */
#define SDA_CASE_P1_INJ 1 /* SDA case numbers */
#define SDA_CASE_P2_INJ 2
#define SDA_CASE_P3_INJ 3
#define SDA_CASE_P4_INJ 4
#define SDA_CASE_P5_INJ 5
#define SDA_CASE_P6_INJ 6
#define SDA_CASE_PRERAMP 7
#define SDA_CASE_ACCEL 8
#define SDA_CASE_A1_INJ 9
#define SDA_CASE_A2_INJ 10
#define SDA_CASE_A3_INJ 11
#define SDA_CASE_A4_INJ 12
#define SDA_CASE_A5_INJ 13
#define SDA_CASE_A6_INJ 14
#define SDA_CASE_LB_SQUEEZE 15
#define SDA_CASE_OPEN_HELIX 16
#define SDA_CASE_INIT_COLLISION 17
#define SDA_CASE_MAX 17 /* maximum SDA case */
#ifndef CPLD_MAX_PAGES
#define CPLD_MAX_PAGES 267 /* maximum number of pages to which a PA may be mapped */
#endif
/* the following defines are also found in dwin_include:cns_misc.h */
#define MAX_PLD_SLOTS 13 /* max number of application slots */
#define MAX_CONSOLES 4 /* max number of instances */
#define CMD_LIN_SIZ 1024 /* size of CHGPGM command buffer */
#define STATES_ALL_DEVICES (-1) /* include all fsm STATE devices */
#define STATES_TC_STATE_SET 0 /* state device has been set */
#define STATE_VALUE_ALL_STATES (-1) /* include all state values */
#define STATE_VALUE_UNDEFINED 0 /* undefined state */
#define SETTINGS_ALL_DEVICES (-1) /* include all setting devices */
#define DATA_EVENT_MAX_LEN 254 /* maximum length of a data event string */
#define UNINITIALIZED_INT 0 /* default value for possibly uninitialized integer variable */
#define UNINITIALIZED_FLOAT 0.0 /* default value for possibly uninitialized float variable */
#define UNINITIALIZED_POINTER NULL /* default value for possibly uninitialized pointer variable */
#define APPLICATION_NAME_LEN 6 /* Length of string not buffer, a buffer should
be longer to allow for null-termination. Name
of form pa0001 or sa0001 */
#define ALARM_LOG_TEXT_LEN 26 /* maximum length of an alarm log string */
#define CLIB_DEFAULT_ARG 0x80000000 /* indicates using default value for an integer argument */
#define CLIB_DEFAULT_LONG_ARG 0x80000000 /* indicates using default value for an integer argument */
#define CLIB_DEFAULT_SHORT_ARG 0x8000 /* indicates using default value for a short integer argument */
#define CLIB_DEFAULT_BYTE_ARG 0x80 /* indicates using default value for a char integer argument */
#define CLIB_DEFAULT_FLOAT_ARG FLT_MAX /* indicates using default value for a single precision floating point argument */
/*
* MECCA-related constants
*/
/* type of program - pas, sas, uls, or services */
#define PROGRAM_TYPE_LEN 18 /* Length of string not buffer, a buffer should
be longer to allow for null-termination. */
/* name of program, e.g., pa1000, sa1000, ul_foobar, or cservice */
#define PROGRAM_NAME_LEN 62 /* Length of string not buffer, a buffer should
be longer to allow for null-termination. */
/* status text, e.g., 'active' or 'obsolete' */
#define PROGRAM_STATUS_LEN 78 /* Length of string not buffer, a buffer should
be longer to allow for null-termination. */
/* location text, e.g., 'VMS only' or 'VMS/Linux' */
#define PROGRAM_LOCATION_LEN 78 /* Length of string not buffer, a buffer should
be longer to allow for null-termination. */
int const LEN_UTIL_FIELD = 11; /* length of '*Pgm_Tools*' field constructed by
utility_window_init(_c) */
#endif