This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
c++/1789: ICE in switch statement case
- To: gcc-gnats at gcc dot gnu dot org
- Subject: c++/1789: ICE in switch statement case
- From: erik dot horsley at physio-control dot com
- Date: 26 Jan 2001 21:58:43 -0000
- Cc: jessie dot chang at physio-control dot com
- Reply-To: erik dot horsley at physio-control dot com
>Number: 1789
>Category: c++
>Synopsis: ICE in switch statement case
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: unassigned
>State: open
>Class: ice-on-legal-code
>Submitter-Id: net
>Arrival-Date: Fri Jan 26 14:06:02 PST 2001
>Closed-Date:
>Last-Modified:
>Originator: Erik Horsley
>Release: gcc version gcc-2.96 19990621 (experimental)
>Organization:
>Environment:
gcc-lib/sh-wrs-vxworks
running under Cywin on NT
>Description:
One "case" of a switch statement using an enum as the switch variable causes an exception. Removing that "case" and putting it in an "if" statement ahead of the switch is the work around.
>How-To-Repeat:
c++sh -O -fno-builtin -m3 -ml -Wall -c -o pr_report.o pr_report.ii
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:
----gnatsweb-attachment----
Content-Type: text/plain; name="pr_report.ii"
Content-Disposition: inline; filename="pr_report.ii"
# 1 "pr_report.cpp"
# 1 "d:/erik/sys-control/os/target/h/stdio.h" 1
extern "C" {
# 1 "d:/erik/sys-control/os/target/h/types/vxANSI.h" 1
extern "C" {
# 1 "d:/erik/sys-control/os/target/h/types/vxCpu.h" 1
extern "C" {
}
# 44 "d:/erik/sys-control/os/target/h/types/vxANSI.h" 2
# 1 "d:/erik/sys-control/os/target/h/types/vxArch.h" 1
extern "C" {
# 1 "d:/erik/sys-control/os/target/h/arch/sh/archSh.h" 1
extern "C" {
# 1 "d:/erik/sys-control/os/target/h/arch/sh/toolSh.h" 1
# 40 "d:/erik/sys-control/os/target/h/arch/sh/archSh.h" 2
}
# 97 "d:/erik/sys-control/os/target/h/types/vxArch.h" 2
}
# 45 "d:/erik/sys-control/os/target/h/types/vxANSI.h" 2
# 1 "d:/erik/sys-control/os/target/h/types/vxParams.h" 1
extern "C" {
}
# 46 "d:/erik/sys-control/os/target/h/types/vxANSI.h" 2
# 1 "d:/erik/sys-control/os/target/h/types/vxTypesBase.h" 1
extern "C" {
# 1 "d:/erik/sys-control/os/target/h/stddef.h" 1
# 1 "C:/Tornado/host/x86-win32/bin/../lib/gcc-lib/sh-wrs-vxworks/gcc-2.96/include/stddef.h" 1 3 4
# 19 "C:/Tornado/host/x86-win32/bin/../lib/gcc-lib/sh-wrs-vxworks/gcc-2.96/include/stddef.h" 3 4
# 61 "C:/Tornado/host/x86-win32/bin/../lib/gcc-lib/sh-wrs-vxworks/gcc-2.96/include/stddef.h" 3 4
typedef int ptrdiff_t;
typedef unsigned int size_t;
typedef unsigned int wint_t;
# 317 "C:/Tornado/host/x86-win32/bin/../lib/gcc-lib/sh-wrs-vxworks/gcc-2.96/include/stddef.h" 3 4
# 19 "d:/erik/sys-control/os/target/h/stddef.h" 2
# 66 "d:/erik/sys-control/os/target/h/stddef.h"
# 41 "d:/erik/sys-control/os/target/h/types/vxTypesBase.h" 2
struct __timer;
}
# 47 "d:/erik/sys-control/os/target/h/types/vxANSI.h" 2
}
# 57 "d:/erik/sys-control/os/target/h/stdio.h" 2
# 1 "d:/erik/sys-control/os/target/h/classLib.h" 1
extern "C" {
# 1 "d:/erik/sys-control/os/target/h/vxWorks.h" 1
extern "C" {
# 63 "d:/erik/sys-control/os/target/h/vxWorks.h"
# 1 "d:/erik/sys-control/os/target/h/types/vxTypes.h" 1
extern "C" {
# 82 "d:/erik/sys-control/os/target/h/types/vxTypes.h"
typedef int ssize_t ;
typedef unsigned long time_t ;
typedef long fpos_t ;
typedef signed char int8_t ;
typedef unsigned char uint8_t ;
typedef short int16_t ;
typedef unsigned short uint16_t ;
typedef long int32_t ;
typedef unsigned long uint32_t ;
typedef unsigned char uchar_t;
typedef unsigned short ushort_t;
typedef unsigned int uint_t;
typedef unsigned long ulong_t;
typedef struct _quad { long val[2]; } quad;
typedef long daddr_t;
typedef char * caddr_t;
typedef char * addr_t;
typedef long swblk_t;
typedef short dev_t;
typedef unsigned short gid_t;
typedef unsigned long ino_t;
typedef int mode_t;
typedef unsigned long nlink_t;
typedef long off_t;
typedef int pid_t;
typedef unsigned short uid_t;
}
# 174 "d:/erik/sys-control/os/target/h/vxWorks.h" 2
# 1 "d:/erik/sys-control/os/target/h/types/vxTypesOld.h" 1
extern "C" {
# 1 "d:/erik/sys-control/os/target/h/sys/types.h" 1
extern "C" {
}
# 76 "d:/erik/sys-control/os/target/h/types/vxTypesOld.h" 2
typedef char INT8;
typedef short INT16;
typedef int INT32;
typedef unsigned char UINT8;
typedef unsigned short UINT16;
typedef unsigned int UINT32;
typedef unsigned char UCHAR;
typedef unsigned short USHORT;
typedef unsigned int UINT;
typedef unsigned long ULONG;
typedef int BOOL;
typedef int STATUS;
typedef int ARGINT;
typedef void VOID;
typedef int (*FUNCPTR) (...);
typedef void (*VOIDFUNCPTR) (...);
typedef double (*DBLFUNCPTR) (...);
typedef float (*FLTFUNCPTR) (...);
typedef union
{
long pm_int;
void *pm_v;
const void *pm_cv;
char *pm_c;
unsigned char *pm_uc;
signed char *pm_sc;
const char *pm_cc;
const unsigned char *pm_cuc;
const signed char *pm_csc;
short *pm_s;
ushort_t *pm_us;
const short *pm_cs;
const ushort_t *pm_cus;
int *pm_i;
uint_t *pm_ui;
const int *pm_ci;
const uint_t *pm_cui;
long *pm_l;
ulong_t *pm_ul;
const long *pm_cl;
const ulong_t *pm_cul;
int8_t *pm_i8;
uint8_t *pm_ui8;
const int8_t *pm_ci8;
const uint8_t *pm_cui8;
int16_t *pm_i16;
uint16_t *pm_ui16;
const int16_t *pm_ci16;
const uint16_t *pm_cui16;
int32_t *pm_i32;
uint32_t *pm_ui32;
const int32_t *pm_ci32;
const uint32_t *pm_cui32;
} pointer_mix_t;
typedef long fd_mask;
typedef struct fd_set
{
fd_mask fds_bits[((unsigned int)((( 256 )+(( (sizeof(fd_mask) * 8 ) )-1)))/(unsigned int)( (sizeof(fd_mask) * 8 ) )) ];
} fd_set;
typedef unsigned char u_char;
typedef unsigned short u_short;
typedef unsigned int u_int;
typedef unsigned long u_long;
typedef unsigned short ushort;
typedef char TBOOL;
typedef unsigned short INSTR;
# 279 "d:/erik/sys-control/os/target/h/types/vxTypesOld.h"
}
# 175 "d:/erik/sys-control/os/target/h/vxWorks.h" 2
}
# 29 "d:/erik/sys-control/os/target/h/classLib.h" 2
# 1 "d:/erik/sys-control/os/target/h/vwModNum.h" 1
extern "C" {
}
# 30 "d:/erik/sys-control/os/target/h/classLib.h" 2
# 1 "d:/erik/sys-control/os/target/h/objLib.h" 1
extern "C" {
# 1 "d:/erik/sys-control/os/target/h/errno.h" 1
extern "C" {
extern int * __errno(void);
inline int &__errnoRef()
{
return (*__errno());
}
}
# 42 "d:/erik/sys-control/os/target/h/objLib.h" 2
typedef struct obj_core *OBJ_ID;
# 91 "d:/erik/sys-control/os/target/h/objLib.h"
extern STATUS objShow (OBJ_ID objId, int showType);
}
# 31 "d:/erik/sys-control/os/target/h/classLib.h" 2
# 1 "d:/erik/sys-control/os/target/h/memLib.h" 1
extern "C" {
typedef struct mem_part *PART_ID;
typedef struct
{
unsigned long numBytesFree,
numBlocksFree,
maxBlockSizeFree,
numBytesAlloc,
numBlocksAlloc;
} MEM_PART_STATS;
extern PART_ID memSysPartId;
extern FUNCPTR smMemPartOptionsSetRtn;
extern FUNCPTR smMemPartFindMaxRtn;
extern FUNCPTR smMemPartReallocRtn;
extern FUNCPTR smMemPartShowRtn;
extern STATUS memInit (char *pPool, unsigned poolSize);
extern STATUS memPartLibInit (char *pPool, unsigned poolSize);
extern PART_ID memPartCreate (char *pPool, unsigned poolSize);
extern void memPartInit (PART_ID partId, char *pPool, unsigned poolSize);
extern STATUS memPartAddToPool (PART_ID partId, char *pPool,
unsigned poolSize);
extern void memAddToPool (char *pPool, unsigned poolSize);
extern void * memPartAlloc (PART_ID partId, unsigned nBytes);
extern void * memPartAlignedAlloc (PART_ID partId, unsigned nBytes,
unsigned alignment);
extern void * memalign (unsigned alignment, unsigned size);
extern void * valloc (unsigned size);
extern STATUS memPartFree (PART_ID partId, char *pBlock);
extern STATUS memPartOptionsSet (PART_ID partId, unsigned options);
extern int memFindMax (void);
extern int memPartFindMax (PART_ID partId);
extern void * memPartRealloc (PART_ID partId, char *pBlock, unsigned nBytes);
extern void memOptionsSet (unsigned options);
extern STATUS cfree (char *pBlock);
extern void memShowInit (void);
extern void memShow (int type);
extern STATUS memPartShow (PART_ID partId, int type);
extern STATUS memPartInfoGet (PART_ID partId, MEM_PART_STATS * ppartStats);
# 186 "d:/erik/sys-control/os/target/h/memLib.h"
}
# 32 "d:/erik/sys-control/os/target/h/classLib.h" 2
typedef struct obj_class *CLASS_ID;
extern CLASS_ID classClassId;
extern STATUS classLibInit (void);
extern STATUS classMemPartIdSet (CLASS_ID classId, PART_ID memPartId);
extern void classShowInit (void);
extern STATUS classShow (CLASS_ID classId, int level);
}
# 58 "d:/erik/sys-control/os/target/h/stdio.h" 2
# 1 "d:/erik/sys-control/os/target/h/private/objLibP.h" 1
extern "C" {
typedef struct obj_core
{
struct obj_class *pObjClass;
} OBJ_CORE;
extern OBJ_ID objCreate (CLASS_ID classId, ...);
extern STATUS objInit (CLASS_ID classId, OBJ_ID objId, ...);
extern STATUS objDelete (OBJ_ID objId);
extern STATUS objDestroy (OBJ_ID objId, BOOL dealloc, int timeout);
extern STATUS objFree (CLASS_ID classId, char *pObject);
extern STATUS objTerminate (OBJ_ID objId);
extern void * objAlloc (CLASS_ID classId);
extern void * objAllocExtra (CLASS_ID classId, unsigned nExtraBytes,
void ** ppExtra);
extern void objCoreInit (OBJ_CORE *pObjCore, CLASS_ID pObjClass);
extern void objCoreTerminate (OBJ_CORE *pObjCore);
# 71 "d:/erik/sys-control/os/target/h/private/objLibP.h"
}
# 60 "d:/erik/sys-control/os/target/h/stdio.h" 2
# 1 "d:/erik/sys-control/os/target/h/private/classLibP.h" 1
extern "C" {
typedef struct obj_class
{
OBJ_CORE objCore;
struct mem_part *objPartId;
unsigned objSize;
unsigned objAllocCnt;
unsigned objFreeCnt;
unsigned objInitCnt;
unsigned objTerminateCnt;
int coreOffset;
FUNCPTR createRtn;
FUNCPTR initRtn;
FUNCPTR destroyRtn;
FUNCPTR showRtn;
FUNCPTR instRtn;
} OBJ_CLASS;
extern CLASS_ID classCreate (unsigned objectSize, int coreOffset,
FUNCPTR createRtn, FUNCPTR initRtn,
FUNCPTR destroyRtn);
extern STATUS classInit (OBJ_CLASS *pObjClass, unsigned objectSize,
int coreOffset, FUNCPTR createRtn, FUNCPTR initRtn,
FUNCPTR destroyRtn);
extern STATUS classDestroy (CLASS_ID classId);
extern STATUS classInstConnect (CLASS_ID classId, FUNCPTR instRtn);
extern STATUS classShowConnect (CLASS_ID classId, FUNCPTR showRtn);
extern STATUS classInstrument ( OBJ_CLASS * pObjClass,
OBJ_CLASS * pObjInstClass );
# 82 "d:/erik/sys-control/os/target/h/private/classLibP.h"
}
# 61 "d:/erik/sys-control/os/target/h/stdio.h" 2
# 1 "d:/erik/sys-control/os/target/h/stdarg.h" 1
# 1 "d:/erik/sys-control/os/target/h/stdarg.h" 1
# 1 "C:/Tornado/host/x86-win32/bin/../lib/gcc-lib/sh-wrs-vxworks/gcc-2.96/include/stdarg.h" 1 3 4
# 1 "C:/Tornado/host/x86-win32/bin/../lib/gcc-lib/sh-wrs-vxworks/gcc-2.96/include/va-sh.h" 1 3 4
# 25 "C:/Tornado/host/x86-win32/bin/../lib/gcc-lib/sh-wrs-vxworks/gcc-2.96/include/va-sh.h" 3 4
typedef void *__gnuc_va_list;
# 53 "C:/Tornado/host/x86-win32/bin/../lib/gcc-lib/sh-wrs-vxworks/gcc-2.96/include/va-sh.h" 3 4
# 88 "C:/Tornado/host/x86-win32/bin/../lib/gcc-lib/sh-wrs-vxworks/gcc-2.96/include/va-sh.h" 3 4
void va_end (__gnuc_va_list);
enum __va_type_classes {
__no_type_class = -1,
__void_type_class,
__integer_type_class,
__char_type_class,
__enumeral_type_class,
__boolean_type_class,
__pointer_type_class,
__reference_type_class,
__offset_type_class,
__real_type_class,
__complex_type_class,
__function_type_class,
__method_type_class,
__record_type_class,
__union_type_class,
__array_type_class,
__string_type_class,
__set_type_class,
__file_type_class,
__lang_type_class
};
# 169 "C:/Tornado/host/x86-win32/bin/../lib/gcc-lib/sh-wrs-vxworks/gcc-2.96/include/va-sh.h" 3 4
# 220 "C:/Tornado/host/x86-win32/bin/../lib/gcc-lib/sh-wrs-vxworks/gcc-2.96/include/va-sh.h" 3 4
# 51 "C:/Tornado/host/x86-win32/bin/../lib/gcc-lib/sh-wrs-vxworks/gcc-2.96/include/stdarg.h" 2 3 4
# 128 "C:/Tornado/host/x86-win32/bin/../lib/gcc-lib/sh-wrs-vxworks/gcc-2.96/include/stdarg.h" 3 4
# 175 "C:/Tornado/host/x86-win32/bin/../lib/gcc-lib/sh-wrs-vxworks/gcc-2.96/include/stdarg.h" 3 4
typedef __gnuc_va_list va_list;
# 32 "d:/erik/sys-control/os/target/h/stdarg.h" 2
# 68 "d:/erik/sys-control/os/target/h/stdarg.h"
# 32 "d:/erik/sys-control/os/target/h/stdarg.h" 2
# 68 "d:/erik/sys-control/os/target/h/stdarg.h"
# 64 "d:/erik/sys-control/os/target/h/stdio.h" 2
# 77 "d:/erik/sys-control/os/target/h/stdio.h"
struct __sbuf
{
uchar_t * _base;
int _size;
};
typedef struct __sFILE
{
OBJ_CORE objCore;
uchar_t * _p;
int _r;
int _w;
short _flags;
short _file;
struct __sbuf _bf;
int _lbfsize;
struct __sbuf _ub;
uchar_t * _up;
int _ur;
uchar_t _ubuf[3];
uchar_t _nbuf[1];
struct __sbuf _lb;
int _blksize;
int _offset;
int taskId;
} FILE;
extern CLASS_ID fpClassId;
extern void clearerr (FILE *);
extern int fclose (FILE *);
extern int feof (FILE *);
extern int ferror (FILE *);
extern int fflush (FILE *);
extern int fgetc (FILE *);
extern int fgetpos (FILE *, fpos_t *);
extern char * fgets (char *, size_t, FILE *);
extern FILE * fopen (const char *, const char *);
extern int fprintf (FILE *, const char *, ...);
extern int fputc (int, FILE *);
extern int fputs (const char *, FILE *);
extern int fread (void *, size_t, size_t, FILE *);
extern FILE * freopen (const char *, const char *, FILE *);
extern int fscanf (FILE *, const char *, ...);
extern int fseek (FILE *, long, int);
extern int fsetpos (FILE *, const fpos_t *);
extern long ftell (FILE *);
extern int fwrite (const void *, size_t, size_t, FILE *);
extern int getc (FILE *);
extern int getchar (void);
extern char * gets (char *);
extern void perror (const char *);
extern int printf (const char *, ...);
extern int putc (int, FILE *);
extern int putchar (int);
extern int puts (const char *);
extern int remove (const char *);
extern int rename (const char *, const char *);
extern void rewind (FILE *);
extern int scanf (const char *, ...);
extern void setbuf (FILE *, char *);
extern int setvbuf (FILE *, char *, int, size_t);
extern int sprintf (char *, const char *, ...);
extern int sscanf (const char *, const char *, ...);
extern FILE * tmpfile (void);
extern char * tmpnam (char *);
extern int ungetc (int, FILE *);
extern int vfprintf (FILE *, const char *, va_list);
extern int vprintf (const char *, va_list);
extern int vsprintf (char *, const char *, va_list);
extern int __srget (FILE *);
extern int __swbuf (int, FILE *);
extern FILE * fdopen (int, const char *);
extern int fileno (FILE *);
extern int fdprintf (int fd, const char *fmt, ...);
extern int vfdprintf (int fd, const char *fmt, va_list ap);
extern int printErr (const char *fmt, ...);
extern int getw (FILE *);
extern int putw (int, FILE *);
extern void setbuffer (FILE *, char *, int);
extern int setlinebuf (FILE *);
extern FILE * stdioFp (int std);
extern STATUS stdioShow (FILE * fp, int level);
extern STATUS stdioShowInit (void);
extern STATUS stdioInit (void);
# 310 "d:/erik/sys-control/os/target/h/stdio.h"
extern FILE ** __stdin(void);
extern FILE ** __stdout(void);
extern FILE ** __stderr(void);
}
# 15 "pr_report.cpp" 2
# 1 "d:/erik/sys-control/os/target/h/assert.h" 1
extern "C" {
extern void __assert (const char *msg);
}
# 16 "pr_report.cpp" 2
# 1 "d:/erik/sys-control/os/target/h/string.h" 1
extern "C" {
# 38 "d:/erik/sys-control/os/target/h/string.h"
extern void * memchr (const void *__s, int __c, size_t __n);
extern int memcmp (const void *__s1, const void *__s2, size_t __n);
extern void * memcpy (void *__s1, const void *__s2, size_t __n);
extern void * memmove (void *__s1, const void *__s2, size_t __n);
extern void * memset (void *__s, int __c, size_t __n);
extern char * strcat (char *__s1, const char *__s2);
extern char * strchr (const char *__s, int __c);
extern int strcmp (const char *__s1, const char *__s2);
extern int strcoll (const char *__s1, const char *__s2);
extern char * strcpy (char *__s1, const char *__s2);
extern size_t strcspn (const char *__s1, const char *__s2);
extern size_t strlen (const char *__s);
extern char * strncat (char *__s1, const char *__s2, size_t __n);
extern int strncmp (const char *__s1, const char *__s2, size_t __n);
extern char * strncpy (char *__s1, const char *__s2, size_t __n);
extern char * strpbrk (const char *__s1, const char *__s2);
extern char * strrchr (const char *__s, int __c);
extern size_t strspn (const char *__s1, const char *__s2);
extern char * strstr (const char *__s1, const char *__s2);
extern char * strtok (char *__s, const char *__sep);
extern size_t strxfrm (char *__s1, const char *__s2, size_t __n);
extern char * strerror(int __errcode);
extern char * strtok_r (char *__s, const char *__sep, char **__ppLast);
extern int strerror_r (int __errcode, char *__buf);
extern void bcopy (const char *source, char *dest, int nbytes);
extern void bcopyBytes (char *source, char *dest, int nbytes);
extern void bcopyWords (char *source, char *dest, int nwords);
extern void bcopyLongs (char *source, char *dest, int nlongs);
extern void bfill (char *buf, int nbytes, int ch);
extern void bfillBytes (char *buf, int nbytes, int ch);
extern void bzero (char *buffer, int nbytes);
extern int bcmp (char *buf1, char *buf2, int nbytes);
extern void binvert (char *buf, int nbytes);
extern void bswap (char *buf1, char *buf2, int nbytes);
extern void uswab (char *source, char *destination, int nbytes);
extern void swab (char *source, char *dest, int nbytes);
extern char * index (const char *s, int c);
extern char * rindex (const char *s, int c);
# 141 "d:/erik/sys-control/os/target/h/string.h"
}
# 17 "pr_report.cpp" 2
extern "C" {
# 1 "../common/sys.h" 1
# 1 "d:/erik/sys-control/os/target/h/stddef.h" 1
# 1 "C:/Tornado/host/x86-win32/bin/../lib/gcc-lib/sh-wrs-vxworks/gcc-2.96/include/stddef.h" 1 3 4
# 61 "C:/Tornado/host/x86-win32/bin/../lib/gcc-lib/sh-wrs-vxworks/gcc-2.96/include/stddef.h" 3 4
# 126 "C:/Tornado/host/x86-win32/bin/../lib/gcc-lib/sh-wrs-vxworks/gcc-2.96/include/stddef.h" 3 4
# 188 "C:/Tornado/host/x86-win32/bin/../lib/gcc-lib/sh-wrs-vxworks/gcc-2.96/include/stddef.h" 3 4
# 269 "C:/Tornado/host/x86-win32/bin/../lib/gcc-lib/sh-wrs-vxworks/gcc-2.96/include/stddef.h" 3 4
# 317 "C:/Tornado/host/x86-win32/bin/../lib/gcc-lib/sh-wrs-vxworks/gcc-2.96/include/stddef.h" 3 4
# 19 "d:/erik/sys-control/os/target/h/stddef.h" 2
# 66 "d:/erik/sys-control/os/target/h/stddef.h"
# 24 "../common/sys.h" 2
# 24 "pr_report.cpp" 2
# 1 "../common/common.h" 1
typedef enum {
GL_SAS_CPSS_MARKER_SAS_START,
GL_SAS_CPSS_MARKER_SAS_ABORT,
GL_SAS_CPSS_MARKER_SAS_INTERMED_SHOCK,
GL_SAS_CPSS_MARKER_SAS_INTERMED_NO_SHOCK,
GL_SAS_CPSS_MARKER_SAS_FINAL_SHOCK,
GL_SAS_CPSS_MARKER_SAS_FINAL_NO_SHOCK,
GL_SAS_CPSS_MARKER_SAS_MOTION_DETECT,
GL_SAS_CPSS_MARKER_CPSS_SHOCK,
GL_SAS_CPSS_MARKER_CPSS_NO_SHOCK,
GL_SAS_CPSS_MARKER_CPSS_ALERT
} GL_SAS_CPSS_MARKER;
typedef enum {
GL_PRE_ACQUIRE_MODE,
GL_POST_ACQUIRE_MODE
} GL_ACQUIRE_MODE;
typedef enum {
GL_BOOT_COLD,
GL_BOOT_WARM,
GL_BOOT_TRANSFER,
GL_BOOT_ARCHIVES
} GL_BOOT_TYPE;
typedef enum {
GL_FREQ_RESP_MONITOR,
GL_FREQ_RESP_STD_DIAG,
GL_FREQ_RESP_MOD_DIAG,
GL_FREQ_RESP_PADDLES
} GL_FREQ_RESP_TYPE;
typedef enum {
GL_GAIN_X_025,
GL_GAIN_X_05,
GL_GAIN_X_10,
GL_GAIN_X_15,
GL_GAIN_X_20,
GL_GAIN_X_25,
GL_GAIN_X_30,
GL_GAIN_X_40
} GL_GAIN_TYPE;
typedef uint8_t GL_GAIN_TYPE8;
typedef uint16_t GL_GAIN_TYPE16;
typedef enum {
GL_SWEEP_50MM,
GL_SWEEP_25MM,
GL_SWEEP_12P5MM,
GL_SWEEP_6P25MM
} GL_SWEEP_TYPE;
typedef uint8_t GL_SWEEP_TYPE8;
typedef uint16_t GL_SWEEP_TYPE16;
typedef enum {
GL_CABLE_NONE,
GL_CABLE_3_LEAD,
GL_CABLE_4_LEAD,
GL_CABLE_5_LEAD
} GL_CABLE_TYPE;
typedef uint8_t GL_CABLE_TYPE8;
typedef uint16_t GL_CABLE_TYPE16;
typedef enum {
GL_LEAD_NONE,
GL_LEAD_PADDLES,
GL_LEAD_I,
GL_LEAD_II,
GL_LEAD_III,
GL_LEAD_AVR,
GL_LEAD_AVL,
GL_LEAD_AVF,
GL_LEAD_C,
GL_LEAD_PADDLE_IMPEDANCE,
GL_LEAD_PLETH,
GL_LEAD_UNKNOWN
} GL_LEAD_TYPE;
typedef uint8_t GL_LEAD_TYPE8;
typedef uint16_t GL_LEAD_TYPE16;
typedef enum {
GL_ENERGY_100 = 100,
GL_ENERGY_125 = 125,
GL_ENERGY_150 = 150,
GL_ENERGY_175 = 175,
GL_ENERGY_200 = 200,
GL_ENERGY_225 = 225,
GL_ENERGY_250 = 250,
GL_ENERGY_275 = 275,
GL_ENERGY_300 = 300,
GL_ENERGY_325 = 325,
GL_ENERGY_360 = 360
} GL_ENERGY_TYPE;
typedef enum {
GL_ENERGY_PROTOCOL = 0,
GL_PADDLES_ENERGY_2 = 2,
GL_PADDLES_ENERGY_5 = 5,
GL_PADDLES_ENERGY_10 = 10,
GL_PADDLES_ENERGY_50 = 50,
GL_PADDLES_ENERGY_100 = 100,
GL_PADDLES_ENERGY_125 = 125,
GL_PADDLES_ENERGY_150 = 150,
GL_PADDLES_ENERGY_175 = 175,
GL_PADDLES_ENERGY_200 = 200,
GL_PADDLES_ENERGY_300 = 300
} GL_PADDLES_ENERGY_TYPE;
typedef uint8_t GL_PADDLES_ENERGY_TYPE8;
typedef enum {
GL_INTERNAL_ENERGY_2 = 2,
GL_INTERNAL_ENERGY_5 = 5,
GL_INTERNAL_ENERGY_10 = 10,
GL_INTERNAL_ENERGY_50 = 50
} GL_INTERNAL_ENERGY_TYPE;
typedef enum {
GL_WAVEFORM_1,
GL_WAVEFORM_2,
GL_MAX_REGIONS
} GL_WAVEFORM_REGION;
typedef uint8_t GL_REGION_TYPE8;
typedef uint16_t GL_REGION_TYPE16;
typedef enum {
GL_NO_PADDLE = 0x0,
GL_INTERNAL = 0x6,
GL_HARD = 0x9,
GL_STERILE = 0xa,
GL_COMBO = 0xc,
GL_INVALID = 0x7
} GL_PADDLE_TYPE;
typedef uint8_t GL_PADDLE_TYPE8;
typedef uint16_t GL_PADDLE_TYPE16;
typedef enum {
GL_MODE_NON_DEMAND = 0,
GL_MODE_DEMAND = 1,
GL_MODE_OFF = 2
} GL_PACING_MODE_TYPE;
typedef enum {
GL_NOTCH_50HZ = 50,
GL_NOTCH_60HZ = 60
} GL_NOTCH_TYPE;
typedef enum {
GL_STATUS_CLEAR = 0x00,
GL_LEAD_DATA_INVALID = 0x01,
GL_QRS_SENSE = 0x02,
GL_INT_PACER = 0x04,
GL_EXT_PACER = 0x08,
GL_PADDLES_FAST_RESTORE = 0x10,
GL_TEST_SYNC = 0x20,
GL_NO_PADDLE_DATA = 0x40
} GL_ECG_STATUS_VALUES;
typedef enum {
GL_DM_PACER_ON = 0x01,
GL_DM_PACER_DEMAND = 0x02,
GL_DM_SYNC_ON = 0x04,
GL_DM_DIAG_FILTERED = 0x08,
GL_PACER_ON = (GL_DM_PACER_ON << 8),
GL_PACER_DEMAND = (GL_DM_PACER_DEMAND << 8),
GL_SYNC_ON = (GL_DM_SYNC_ON << 8),
GL_DIAG_FILTERED = (GL_DM_DIAG_FILTERED << 8)
} GL_ECG_MODE_VALUES;
typedef enum {
GL_LA_OFF = 0x0001,
GL_LL_OFF = 0x0002,
GL_C_OFF = 0x0004,
GL_RL_OFF = 0x0008,
GL_RA_OFF = 0x0010,
GL_PADDLES_OFF = 0x0020,
GL_LEAD_CHANGE = 0x0040,
GL_LEAD_ERROR = 0x0080,
GL_I_INVALID = (GL_RL_OFF | GL_LA_OFF | GL_RA_OFF),
GL_II_INVALID = (GL_LL_OFF | GL_RL_OFF | GL_RA_OFF),
GL_III_INVALID = (GL_I_INVALID | GL_II_INVALID),
GL_AV_INVALID = (GL_LL_OFF | GL_RL_OFF | GL_LA_OFF | GL_RA_OFF),
GL_C_INVALID = (GL_AV_INVALID | GL_C_OFF)
} GL_ECG_LEADOFF;
typedef enum {
GL_PLETH_INVALID = 0x0001,
GL_PLETH_INITIALATION = 0x0002,
GL_PLETH_PULSE_SEARCH = 0x0004,
GL_PLETH_SENSOR_OFF = 0x0008,
GL_PLETH_OFF = (GL_PLETH_INVALID | GL_PLETH_INITIALATION |
GL_PLETH_PULSE_SEARCH | GL_PLETH_SENSOR_OFF)
} GL_FAST_PLETH_STATUS;
typedef enum {
GL_AGE_DEFAULT = 40,
GL_AGE_YEARS_MAX = 0x7F,
GL_AGE_2DAYS = 0xDA,
GL_AGE_2DAYS_1WEEK = 0xDB,
GL_AGE_1WEEK_1MONTH = 0xDC,
GL_AGE_1MONTH_2MONTH = 0xDD,
GL_AGE_2MONTH_3MONTH = 0xDE,
GL_AGE_3MONTH_4MONTH = 0xDF,
GL_AGE_4MONTH_5MONTH = 0xE0,
GL_AGE_5MONTH_6MONTH = 0xE1,
GL_AGE_6MONTH_9MONTH = 0xE2,
GL_AGE_9MONTH_1YEAR = 0xE3
} GL_AGE_RANGES;
typedef uint8_t GL_ECG_EVENT_STATUS;
typedef uint8_t GL_ECG_MODE_STATUS;
typedef uint16_t GL_ECG_MODE_EVENT_STATUS;
typedef uint16_t GL_ECG_LEAD_STATUS;
typedef uint32_t GL_ECG_MODE_EVENT_LEAD_STATUS;
typedef uint8_t GL_PLETH_STATUS;
typedef enum {
GL_DEFIB_EDMARK,
GL_DEFIB_BIPHASIC
}GL_DEFIB_TYPE;
extern char *gl_SoftwareVersion;
extern bool gl_SystemShutdown;
# 25 "pr_report.cpp" 2
# 1 "../behavior_man/bm.h" 1
# 1 "d:/erik/sys-control/os/target/h/stdarg.h" 1
# 68 "d:/erik/sys-control/os/target/h/stdarg.h"
# 21 "../behavior_man/bm.h" 2
# 1 "../behavior_man/bm_state.h" 1
typedef enum {
NO_STATE,
HOME_SCREEN_STATE,
CHARGE_STATE,
FATAL_FAILURE_STATE
} BM_STATE_TYPE;
extern void ui_bmRequestStateChange (BM_STATE_TYPE new_state);
extern BM_STATE_TYPE bmGetCurrentState (void);
# 22 "../behavior_man/bm.h" 2
# 1 "../behavior_man/bm_aed.h" 1
typedef enum {
AED_STATE_IDLE,
AED_STATE_IDLE1,
AED_STATE_AFTER_TRANSFER,
AED_STATE_AFTER_TRANSFER_1,
AED_STATE_SAS_STANDBY_NO_OVERLAY,
AED_STATE_SAS_STANDBY,
AED_STATE_SAS_PRESS_ANALYZE,
AED_STATE_SAS_CABLE_OFF,
AED_STATE_SAS_ELECTRODES_OFF,
AED_STATE_SAS_ELECTRODES_OFF_1,
AED_STATE_SAS_ELECTRODES_OFF_2,
AED_STATE_SAS_CPR1,
AED_STATE_SAS_CPR2,
AED_STATE_SAS_CPR3,
AED_STATE_SAS_CPR4,
AED_STATE_SAS_CPR5,
AED_STATE_CPSS_ALERT,
AED_STATE_CPSS,
AED_STATE_SAS_ANALYSIS_START,
AED_STATE_SAS_ANALYSIS_RUNNING,
AED_STATE_SAS_NO_SHOCK1,
AED_STATE_SAS_NO_SHOCK2,
AED_STATE_SAS_CHARGING
} aed_state_type;
# 23 "../behavior_man/bm.h" 2
# 1 "../behavior_man/bm_defs.h" 1
# 24 "../behavior_man/bm.h" 2
# 1 "../procctl/pccritical.h" 1
# 1 "d:/erik/sys-control/os/target/h/time.h" 1
extern "C" {
# 1 "d:/erik/sys-control/os/target/h/sigevent.h" 1
extern "C" {
union sigval
{
int sival_int;
void *sival_ptr;
};
struct sigevent
{
int sigev_signo;
union sigval sigev_value;
int sigev_notify;
};
}
# 31 "d:/erik/sys-control/os/target/h/time.h" 2
# 45 "d:/erik/sys-control/os/target/h/time.h"
typedef struct __timer *timer_t ;
typedef unsigned int clock_t ;
typedef int clockid_t;
struct tm
{
int tm_sec;
int tm_min;
int tm_hour;
int tm_mday;
int tm_mon;
int tm_year;
int tm_wday;
int tm_yday;
int tm_isdst;
};
struct timespec
{
time_t tv_sec;
long tv_nsec;
};
struct itimerspec
{
struct timespec it_interval;
struct timespec it_value;
};
extern uint_t _clocks_per_sec(void);
extern char * asctime (const struct tm *_tptr);
extern clock_t clock (void);
extern char * ctime (const time_t *_cal);
extern double difftime (time_t _t1, time_t _t0);
extern struct tm * gmtime (const time_t *_tod);
extern struct tm * localtime (const time_t *_tod);
extern time_t mktime (struct tm *_tptr);
extern size_t strftime (char *_s, size_t _n, const char *_format,
const struct tm *_tptr);
extern time_t time (time_t *_tod);
extern int clock_gettime (clockid_t clock_id, struct timespec *tp);
extern int clock_settime (clockid_t clock_id, const struct timespec *tp);
extern int clock_getres (clockid_t clock_id, struct timespec *res);
extern int timer_create (clockid_t clock_id, struct sigevent *evp,
timer_t *ptimer);
extern int timer_delete (timer_t timerid);
extern int timer_gettime (timer_t timerid, struct itimerspec *value);
extern int timer_settime (timer_t timerid, int flags,
const struct itimerspec *value,
struct itimerspec *ovalue);
extern int timer_getoverrun (timer_t timerid);
extern int timer_connect (timer_t timerid, VOIDFUNCPTR routine, int arg);
extern int timer_cancel (timer_t timerid);
extern int timer_show (timer_t timerid);
extern int nanosleep (const struct timespec *rqtp, struct timespec *rmtp);
extern int asctime_r(const struct tm *_tm, char *_buffer,
size_t *_buflen);
extern char * ctime_r (const time_t *_cal, char *_buffer, size_t *_buflen);
extern int gmtime_r (const time_t *_tod, struct tm *_result);
extern int localtime_r (const time_t *_tod, struct tm *_result);
# 188 "d:/erik/sys-control/os/target/h/time.h"
}
# 16 "../procctl/pccritical.h" 2
# 1 "../common/messages.h" 1
typedef enum
{
GL_MSG___,
GL_MSG_000FILE_VERSION,
GL_MSG_05_TO_150HZ,
GL_MSG_05_TO_40HZ,
GL_MSG_0_100_MMHG,
GL_MSG_0_14_KPA,
GL_MSG_0_14_PERCENT,
GL_MSG_0_25,
GL_MSG_0_5,
GL_MSG_0_50_MMHG,
GL_MSG_0_7_KPA,
GL_MSG_0_7_PERCENT,
GL_MSG_1_TO_30HZ,
GL_MSG_10,
GL_MSG_100,
GL_MSG_100_MMHG,
GL_MSG_10_MIN,
GL_MSG_10_SECONDS,
GL_MSG_120_MMHG,
GL_MSG_120_SECONDS,
GL_MSG_125,
GL_MSG_12_5MM_PER_SEC,
GL_MSG_12_LEAD,
GL_MSG_12_LEAD_AGE,
GL_MSG_12_LEAD_NUMBER,
GL_MSG_12_MONTHS,
GL_MSG_13_KPA,
GL_MSG_140_MMHG,
GL_MSG_15,
GL_MSG_150,
GL_MSG_15_MIN,
GL_MSG_15_SECONDS,
GL_MSG_160_MMHG,
GL_MSG_16_KPA,
GL_MSG_175,
GL_MSG_180_MMHG,
GL_MSG_180_SECONDS,
GL_MSG_19_KPA,
GL_MSG_1_0,
GL_MSG_1_5,
GL_MSG_2,
GL_MSG_20,
GL_MSG_200,
GL_MSG_200J_0J_SHOCKS,
GL_MSG_200_200_360,
GL_MSG_200_300_360,
GL_MSG_21_KPA,
GL_MSG_225,
GL_MSG_24_HR,
GL_MSG_24_KPA,
GL_MSG_250,
GL_MSG_25MM_PER_SEC,
GL_MSG_275,
GL_MSG_2_0,
GL_MSG_2_5,
GL_MSG_2_5_TO_30HZ,
GL_MSG_2_MIN,
GL_MSG_3,
GL_MSG_30,
GL_MSG_300,
GL_MSG_30_MIN,
GL_MSG_30_MINUTES,
GL_MSG_30_SECONDS,
GL_MSG_325,
GL_MSG_325J_225J_SHOCKS,
GL_MSG_360,
GL_MSG_360J_SHOCKS,
GL_MSG_3_0,
GL_MSG_3_CHANNEL,
GL_MSG_3_MIN,
GL_MSG_3_MONTHS,
GL_MSG_4,
GL_MSG_45_SECONDS,
GL_MSG_4_0,
GL_MSG_4_CHANNEL,
GL_MSG_5,
GL_MSG_50,
GL_MSG_50HZ,
GL_MSG_5_MIN,
GL_MSG_5_SECONDS,
GL_MSG_5_TO_40HZ,
GL_MSG_6,
GL_MSG_60HZ,
GL_MSG_60_MIN,
GL_MSG_60_SECONDS,
GL_MSG_6_MONTHS,
GL_MSG_7,
GL_MSG_70,
GL_MSG_8,
GL_MSG_9,
GL_MSG_90_SECONDS,
GL_MSG_ACCESSING_PATIENT_ARCHIVES,
GL_MSG_ACCESS_DENIED,
GL_MSG_ACQUIRING_12_LEAD,
GL_MSG_ACUTE_MI,
GL_MSG_ADENOSINE,
GL_MSG_ADULT,
GL_MSG_ADULT_PEDI,
GL_MSG_ADVISORY,
GL_MSG_ADVISORY_MODE,
GL_MSG_ADVISORY_MODE_ENERGY_PROTOCOL,
GL_MSG_ADVISORY_MODE_MONITORING,
GL_MSG_AED_AED_RESTRICTED,
GL_MSG_AED_CONFIRM_ALWAYS,
GL_MSG_AED_CONFIRM_ONCE,
GL_MSG_AED_DIRECT,
GL_MSG_AED_PASSCODE_ALWAYS,
GL_MSG_AED_PASSCODE_ONCE,
GL_MSG_AGE,
GL_MSG_ALARM,
GL_MSG_ALARM_WAVEFORMS,
GL_MSG_ALARMS,
GL_MSG_ALARMS_OFF,
GL_MSG_ALARMS_SILENCED,
GL_MSG_ALARM_VOLUME,
GL_MSG_ALL,
GL_MSG_ALL_PATIENTS,
GL_MSG_ALL_RIGHTS_RESERVED,
GL_MSG_ANALYSIS_NUMBER,
GL_MSG_ANALYSIS_STOPPED,
GL_MSG_ANALYZE,
GL_MSG_ANALYZED_ECG,
GL_MSG_ANALYZING_12_LEAD,
GL_MSG_ANALYZING_NOW,
GL_MSG_APNEA_ALARM,
GL_MSG_APNEA_ALARM_VALUE,
GL_MSG_APNEA_ALARM_NO_VALUE,
GL_MSG_APPLY_PRESSURE_TO_HOSE,
GL_MSG_APR,
GL_MSG_ARABIC,
GL_MSG_ARCHIVES,
GL_MSG_ART,
GL_MSG_ATROPINE,
GL_MSG_AUG,
GL_MSG_AUTOSCALE,
GL_MSG_AUTOZERO_FAILED,
GL_MSG_AUTO_ANALYZE,
GL_MSG_AUTO_CAL,
GL_MSG_AUTO_DATA,
GL_MSG_AUTO_FAX,
GL_MSG_AUTO_LOG,
GL_MSG_AUTO_NIBP_CANCELLED,
GL_MSG_AUTO_PRINT,
GL_MSG_AVAILABLE_ENERGY,
GL_MSG_AVF,
GL_MSG_AVL,
GL_MSG_AVR,
GL_MSG_BACKSPACE,
GL_MSG_BATTERY_1_LOW,
GL_MSG_BATTERY_2_LOW,
GL_MSG_BAUD_115200,
GL_MSG_BAUD_1200,
GL_MSG_BAUD_14400,
GL_MSG_BAUD_19200,
GL_MSG_BAUD_2400,
GL_MSG_BAUD_28800,
GL_MSG_BAUD_300,
GL_MSG_BAUD_38400,
GL_MSG_BAUD_4800,
GL_MSG_BAUD_57600,
GL_MSG_BAUD_9600,
GL_MSG_BAUD_RATE,
GL_MSG_BICARB,
GL_MSG_BPM,
GL_MSG_BRAZILIAN_PORTUGUESE,
GL_MSG_BRETYLIUM,
GL_MSG_BTPS,
GL_MSG_BUSY,
GL_MSG_BUSY_WAITING_TO_REDIAL,
GL_MSG_BUTTONS,
GL_MSG_CABRERA,
GL_MSG_CAL_CHECK,
GL_MSG_CALIBRATE,
GL_MSG_CALIBRATION,
GL_MSG_CALIBRATION_ABORT,
GL_MSG_CALIBRATION_COMPLETE,
GL_MSG_CALIBRATION_FAILED,
GL_MSG_CALIBRATION_IN_PROGRESS,
GL_MSG_CALIBRATION_OK,
GL_MSG_CALL_NOT_COMPLETED,
GL_MSG_CANCEL,
GL_MSG_CANCEL_ALL_TRANSMISSIONS,
GL_MSG_CANNOT_CHARGE,
GL_MSG_CASCADING_ECG,
GL_MSG_CHANNELS,
GL_MSG_CHANNEL_1,
GL_MSG_CHANNEL_1_VFVT_1,
GL_MSG_CHANNEL_1_VFVT_2,
GL_MSG_CHANNEL_2,
GL_MSG_CHANNEL_3,
GL_MSG_CHARGE,
GL_MSG_CHARGE_REMOVED,
GL_MSG_CHARGING_TO,
GL_MSG_CHECK_BATTERY,
GL_MSG_CHECK_CO2,
GL_MSG_CHECK_FOR_PULSE,
GL_MSG_CHECK_PATIENT,
GL_MSG_CHECK_PATIENT_EXCLAM,
GL_MSG_CHECK_PRINTER,
GL_MSG_CHINESE,
GL_MSG_CLEAR,
GL_MSG_CLEAR_ALL,
GL_MSG_CLEAR_LOG,
GL_MSG_CLEAR_MEMORY,
GL_MSG_CLOCK,
GL_MSG_CLOCK_DATE_TIME,
GL_MSG_CLOCK_MODE,
GL_MSG_CO2,
GL_MSG_CO2_AUTOZERO,
GL_MSG_CO2_CAL,
GL_MSG_CO2_FILTERLINE_BLOCKAGE,
GL_MSG_CO2_FILTERLINE_OFF,
GL_MSG_CO2_FILTERLINE_PURGING,
GL_MSG_CO2_INITIALIZING,
GL_MSG_CO2_KPA_RR,
GL_MSG_CO2_MMHG_RR,
GL_MSG_CO2_OPERATING_TIME,
GL_MSG_CO2_PERCENT_RR,
GL_MSG_CO2_UNITS,
GL_MSG_CODE_SUMMARY,
GL_MSG_CODE_SUMMARY_COMPLETE_1,
GL_MSG_CODE_SUMMARY_COMPLETE_2,
GL_MSG_CODE_SUMMARY_COMPLETE_3,
GL_MSG_CODE_SUMMARY_CRITICAL_EVENT_RECORD_1,
GL_MSG_CODE_SUMMARY_CRITICAL_EVENT_RECORD_2,
GL_MSG_COMBO_PADDLES,
GL_MSG_COMMENTS,
GL_MSG_COMPLETE_LIST,
GL_MSG_CONNECTED,
GL_MSG_CONNECTING,
GL_MSG_CONNECT_5_PERCENT_GAS,
GL_MSG_CONNECT_CABLE,
GL_MSG_CONNECT_CABLE_TO_ENERGY_METER,
GL_MSG_CONNECT_CHEST_LEADS,
GL_MSG_CONNECT_ECG_LEADS,
GL_MSG_CONNECT_ELECTRODES,
GL_MSG_CONNECT_GAS,
GL_MSG_CONTINUOUS_ECG,
GL_MSG_CONTRAST,
GL_MSG_COPYRIGHT,
GL_MSG_COUNTERS,
GL_MSG_CPR,
GL_MSG_CPR_TIME_1,
GL_MSG_CPR_TIME_2,
GL_MSG_CPSS,
GL_MSG_CURRENT,
GL_MSG_CURRENT_FAULT,
GL_MSG_CURRENT_PATIENT_REPORT_CLOSED_1,
GL_MSG_CURRENT_PATIENT_REPORT_CLOSED_2,
GL_MSG_CUSTOM_1,
GL_MSG_CUSTOM_10,
GL_MSG_CUSTOM_11,
GL_MSG_CUSTOM_12,
GL_MSG_CUSTOM_13,
GL_MSG_CUSTOM_14,
GL_MSG_CUSTOM_15,
GL_MSG_CUSTOM_16,
GL_MSG_CUSTOM_2,
GL_MSG_CUSTOM_3,
GL_MSG_CUSTOM_4,
GL_MSG_CUSTOM_5,
GL_MSG_CUSTOM_6,
GL_MSG_CUSTOM_7,
GL_MSG_CUSTOM_8,
GL_MSG_CUSTOM_9,
GL_MSG_CUSTOM_EVENTS,
GL_MSG_CVP,
GL_MSG_C_LOCK,
GL_MSG_DANISH,
GL_MSG_DASH_NUMBER,
GL_MSG_DATA,
GL_MSG_DATE,
GL_MSG_DATE_MSG_1,
GL_MSG_DATE_MSG_2,
GL_MSG_DATE_TIME,
GL_MSG_DEC,
GL_MSG_DEFAULT,
GL_MSG_DEFAULT_LEAD,
GL_MSG_DEFAULT_REPORT,
GL_MSG_DEFAULT_SET,
GL_MSG_DEFAULT_SITE,
GL_MSG_DEFIBRILLATION,
GL_MSG_DEFIBRILLATOR_MONITOR,
GL_MSG_DEFIBRILLATOR_MONITOR_SERIES,
GL_MSG_DEFIB_CAL,
GL_MSG_DEFIB_CAP_VALUE,
GL_MSG_DELETE,
GL_MSG_DEMAND,
GL_MSG_DEMAND_PACING,
GL_MSG_DETECTION_OFF,
GL_MSG_DETECTION_ON,
GL_MSG_DEVICE,
GL_MSG_DEVICE_LOG,
GL_MSG_DEVICE_NUMBER,
GL_MSG_DIAGNOSTIC,
GL_MSG_DIAGNOSTIC_MODE,
GL_MSG_DIALING,
GL_MSG_DIRECT_CONNECT,
GL_MSG_DISARMING_DOTS,
GL_MSG_DISCONNECT_GAS,
GL_MSG_DISCONNECT_THERAPY_CABLE,
GL_MSG_DOPAMINE,
GL_MSG_DOTS,
GL_MSG_DO_NOT_CONNECT_TO_PATIENT,
GL_MSG_DST,
GL_MSG_DUTCH,
GL_MSG_ECG,
GL_MSG_ECG_CABLE_OFF,
GL_MSG_ECG_LEADS_OFF,
GL_MSG_ECG_LEAD_AVF,
GL_MSG_ECG_LEAD_AVL,
GL_MSG_ECG_LEAD_AVR,
GL_MSG_ECG_LEAD_I,
GL_MSG_ECG_LEAD_II,
GL_MSG_ECG_LEAD_III,
GL_MSG_ECG_LEAD_V1,
GL_MSG_ECG_LEAD_V2,
GL_MSG_ECG_LEAD_V3,
GL_MSG_ECG_LEAD_V4,
GL_MSG_ECG_LEAD_V5,
GL_MSG_ECG_LEAD_V6,
GL_MSG_ECG_MODE,
GL_MSG_ECG_OVERRIDE,
GL_MSG_EDIT_STRING_1,
GL_MSG_EDIT_STRING_2,
GL_MSG_EDIT_STRING_3,
GL_MSG_EDIT_STRING_4,
GL_MSG_ELAPSED_TIME,
GL_MSG_END,
GL_MSG_ENERGY_1,
GL_MSG_ENERGY_1_GREATER_2,
GL_MSG_ENERGY_2,
GL_MSG_ENERGY_2_GREATER_3,
GL_MSG_ENERGY_2_LESS_1,
GL_MSG_ENERGY_3,
GL_MSG_ENERGY_3_LESS_2,
GL_MSG_ENERGY_DELIVERED,
GL_MSG_ENERGY_DELIVERY_ABNORMAL,
GL_MSG_ENERGY_FAULT,
GL_MSG_ENERGY_NOT_DELIVERED,
GL_MSG_ENERGY_PROTOCOL,
GL_MSG_ENERGY_SELECT,
GL_MSG_ENERGY_SELECT_BIPHASIC,
GL_MSG_ENGLISH,
GL_MSG_ENTER_MANUAL_MODE_PASSCODE,
GL_MSG_ENTER_MANUAL_MODE_QUESTION,
GL_MSG_ENTER_PASSCODE,
GL_MSG_ENTER_PATIENT_AGE,
GL_MSG_ENTER_PATIENT_ARCHIVES,
GL_MSG_ENTER_SERVICE_MODE_PASSCODE,
GL_MSG_ENTER_SETUP_MODE_PASSCODE,
GL_MSG_EPINEPHRINE,
GL_MSG_ERROR_LOG,
GL_MSG_ETCO2_ALARM,
GL_MSG_ETCO2_ALARM_GREATER,
GL_MSG_ETCO2_ALARM_LESS,
GL_MSG_EVENT,
GL_MSG_EVENT_WAVEFORMS,
GL_MSG_EVENTS,
GL_MSG_EVENTS_CUSTOM_EVENTS,
GL_MSG_EVENTS_EVENTS_PAGE_1,
GL_MSG_EVENTS_EVENTS_PAGE_2,
GL_MSG_EVENTS_PAGE_1,
GL_MSG_EVENTS_PAGE_2,
GL_MSG_EVENT_10,
GL_MSG_EVENT_11,
GL_MSG_EVENT_12,
GL_MSG_EVENT_13,
GL_MSG_EVENT_14,
GL_MSG_EVENT_15,
GL_MSG_EVENT_16,
GL_MSG_EVENT_17,
GL_MSG_EVENT_18,
GL_MSG_EVENT_2,
GL_MSG_EVENT_3,
GL_MSG_EVENT_4,
GL_MSG_EVENT_5,
GL_MSG_EVENT_6,
GL_MSG_EVENT_7,
GL_MSG_EVENT_8,
GL_MSG_EVENT_9,
GL_MSG_EVENT_LETTERS_1,
GL_MSG_EVENT_LETTERS_2,
GL_MSG_EXCESSIVE_NOISE,
GL_MSG_EXIT,
GL_MSG_EXTERNAL,
GL_MSG_EXTERNAL_CELL,
GL_MSG_EXTERNAL_CELL_FAX,
GL_MSG_EXTERNAL_FAX,
GL_MSG_FASTER,
GL_MSG_FAULT_MESSAGES,
GL_MSG_FAX,
GL_MSG_FAXCOPY_ECG_DIAGNOSTIC_WARNING_4,
GL_MSG_FAXCOPY_ECG_FINE_RESOLUTION_2,
GL_MSG_FAXCOPY_ECG_GRID_LINE_3,
GL_MSG_FAXCOPY_ECG_MESSAGE_1,
GL_MSG_FAXCOPY_ECG_NORMAL_RESOLUTION_2,
GL_MSG_FAXCOPY_SENDER_INFORMATION_1,
GL_MSG_FAXCOPY_SENDER_INFORMATION_2,
GL_MSG_FAXCOPY_SENDER_INFORMATION_3,
GL_MSG_FEB,
GL_MSG_FEMALE,
GL_MSG_FEMALE_ABBREV,
GL_MSG_FICO2_ALARM,
GL_MSG_FICO2_ALARM_VALUE,
GL_MSG_FINNISH,
GL_MSG_FIRST_NAME,
GL_MSG_FORMAT,
GL_MSG_FRENCH,
GL_MSG_GENERAL,
GL_MSG_GENERIC,
GL_MSG_GERMAN,
GL_MSG_GO_BACK,
GL_MSG_HARD_PADDLES,
GL_MSG_HELP_SERVICE_CALIBRATION,
GL_MSG_HELP_SERVICE_CAL_CO2,
GL_MSG_HELP_SERVICE_CAL_CO2_CHECK,
GL_MSG_HELP_SERVICE_CAL_CO2_START_CAL,
GL_MSG_HELP_SERVICE_CAL_CO2_START_CHECK,
GL_MSG_HELP_SERVICE_CAL_DEFIB,
GL_MSG_HELP_SERVICE_CAL_DEFIB_AUTO,
GL_MSG_HELP_SERVICE_CAL_DEFIB_AUTO_START,
GL_MSG_HELP_SERVICE_CAL_DEFIB_MANUAL,
GL_MSG_HELP_SERVICE_CAL_DEFIB_MANUAL_START,
GL_MSG_HELP_SERVICE_CAL_NIBP,
GL_MSG_HELP_SERVICE_CAL_NIBP_LEAKAGE,
GL_MSG_HELP_SERVICE_CAL_NIBP_LEAKAGE_START,
GL_MSG_HELP_SERVICE_CAL_NIBP_PRESSURE,
GL_MSG_HELP_SERVICE_CAL_PACER,
GL_MSG_HELP_SERVICE_CAL_PACER_START,
GL_MSG_HELP_SERVICE_CAL_PACING,
GL_MSG_HELP_SERVICE_CAL_PRINTER,
GL_MSG_HELP_SERVICE_CAL_PRINTER_SPEED,
GL_MSG_HELP_SERVICE_CAL_PRINTER_START,
GL_MSG_HELP_SERVICE_CAL_PRINTER_VALUE,
GL_MSG_HELP_SERVICE_MAINT_PROMPT,
GL_MSG_HELP_SERVICE_MAINT_PROMPT_INTERVAL,
GL_MSG_HELP_SERVICE_MAINT_PROMPT_RESET,
GL_MSG_HELP_SERVICE_SETUP,
GL_MSG_HELP_SERVICE_SET_PASSCODE,
GL_MSG_HELP_SERVICE_STATUS,
GL_MSG_HELP_SERVICE_STATUS_CLEAR,
GL_MSG_HELP_SERVICE_STATUS_COUNTERS,
GL_MSG_HELP_SERVICE_STATUS_COUNTERS_CLEAR,
GL_MSG_HELP_SERVICE_STATUS_DEVICE,
GL_MSG_HELP_SERVICE_STATUS_ERROR,
GL_MSG_HELP_SERVICE_STATUS_ERROR_CLEAR,
GL_MSG_HELP_SERVICE_TESTS,
GL_MSG_HELP_SERVICE_TESTS_BUTTONS,
GL_MSG_HELP_SERVICE_TESTS_CONTRAST,
GL_MSG_HELP_SERVICE_TESTS_PIXELS,
GL_MSG_HELP_SERVICE_TESTS_PRINTER,
GL_MSG_HELP_SERVICE_TESTS_VOICE,
GL_MSG_HELP_SERVICE_TEST_PRINTER_START,
GL_MSG_HELP_SERVICE_TEST_VOICE_START,
GL_MSG_HELP_SETUP_12LEAD,
GL_MSG_HELP_SETUP_12LEAD_AUTO_DATA,
GL_MSG_HELP_SETUP_12LEAD_AUTO_FAX,
GL_MSG_HELP_SETUP_12LEAD_FORMAT,
GL_MSG_HELP_SETUP_12LEAD_INTERP,
GL_MSG_HELP_SETUP_12LEAD_MI,
GL_MSG_HELP_SETUP_12LEAD_NOISE_WARNING,
GL_MSG_HELP_SETUP_12LEAD_PRE_POST,
GL_MSG_HELP_SETUP_12LEAD_PRINT,
GL_MSG_HELP_SETUP_12LEAD_VIEW,
GL_MSG_HELP_SETUP_ADVISORY,
GL_MSG_HELP_SETUP_ADVISORY_AUTO,
GL_MSG_HELP_SETUP_ADVISORY_CPR_TIME_1,
GL_MSG_HELP_SETUP_ADVISORY_CPR_TIME_2,
GL_MSG_HELP_SETUP_ADVISORY_ENERGY_PROTOCOL_1,
GL_MSG_HELP_SETUP_ADVISORY_ENERGY_PROTOCOL_2,
GL_MSG_HELP_SETUP_ADVISORY_ENERGY_PROTOCOL_3,
GL_MSG_HELP_SETUP_ADVISORY_MOTION,
GL_MSG_HELP_SETUP_ADVISORY_PROTOCOL,
GL_MSG_HELP_SETUP_ADVISORY_VOICE,
GL_MSG_HELP_SETUP_ALARMS,
GL_MSG_HELP_SETUP_ALARMS_ALARMS,
GL_MSG_HELP_SETUP_ALARMS_LIMITS,
GL_MSG_HELP_SETUP_ALARMS_VOLUME,
GL_MSG_HELP_SETUP_AUTOPRINT_ALARMS,
GL_MSG_HELP_SETUP_AUTOPRINT_CPSS,
GL_MSG_HELP_SETUP_AUTOPRINT_DEFIB,
GL_MSG_HELP_SETUP_AUTOPRINT_ECG,
GL_MSG_HELP_SETUP_AUTOPRINT_EVENTS,
GL_MSG_HELP_SETUP_AUTOPRINT_PACING,
GL_MSG_HELP_SETUP_AUTOPRINT_SAS,
GL_MSG_HELP_SETUP_CLOCK,
GL_MSG_HELP_SETUP_CLOCK_DATE_TIME,
GL_MSG_HELP_SETUP_CLOCK_DST,
GL_MSG_HELP_SETUP_CLOCK_MODE,
GL_MSG_HELP_SETUP_EVENTS,
GL_MSG_HELP_SETUP_EVENTS_CUSTOM,
GL_MSG_HELP_SETUP_EVENTS_PAGE_1,
GL_MSG_HELP_SETUP_EVENTS_PAGE_2,
GL_MSG_HELP_SETUP_GENERAL,
GL_MSG_HELP_SETUP_GENERAL_ADULT,
GL_MSG_HELP_SETUP_GENERAL_AUTO_LOG,
GL_MSG_HELP_SETUP_GENERAL_CODE_SUMMARY,
GL_MSG_HELP_SETUP_GENERAL_DEFAULT_MODE,
GL_MSG_HELP_SETUP_GENERAL_DEVICE_NUMBER,
GL_MSG_HELP_SETUP_GENERAL_LANGUAGE,
GL_MSG_HELP_SETUP_GENERAL_LINE,
GL_MSG_HELP_SETUP_GENERAL_ORGANIZATION,
GL_MSG_HELP_SETUP_GENERAL_SITE_NUMBER,
GL_MSG_HELP_SETUP_GENERAL_TIMEOUT,
GL_MSG_HELP_SETUP_MANUAL,
GL_MSG_HELP_SETUP_MANUAL_ENERGY_PROTOCOL,
GL_MSG_HELP_SETUP_MANUAL_ENERGY_PROTOCOL_1,
GL_MSG_HELP_SETUP_MANUAL_ENERGY_PROTOCOL_2,
GL_MSG_HELP_SETUP_MANUAL_ENERGY_PROTOCOL_3,
GL_MSG_HELP_SETUP_MANUAL_INTERNAL,
GL_MSG_HELP_SETUP_MANUAL_MANUAL,
GL_MSG_HELP_SETUP_MANUAL_PADS,
GL_MSG_HELP_SETUP_MANUAL_SET,
GL_MSG_HELP_SETUP_MANUAL_SHOCK,
GL_MSG_HELP_SETUP_MANUAL_SYNC,
GL_MSG_HELP_SETUP_MANUAL_VFVT,
GL_MSG_HELP_SETUP_MANUAL_VOICE,
GL_MSG_HELP_SETUP_MONITORING,
GL_MSG_HELP_SETUP_MONITORING_CHANNELS,
GL_MSG_HELP_SETUP_MONITORING_CHANNELS_DEFAULT_SET,
GL_MSG_HELP_SETUP_MONITORING_CHANNELS_SET_1,
GL_MSG_HELP_SETUP_MONITORING_CHANNELS_SET_2,
GL_MSG_HELP_SETUP_MONITORING_CHANNELS_SET_3,
GL_MSG_HELP_SETUP_MONITORING_CHANNELS_SET_4,
GL_MSG_HELP_SETUP_MONITORING_CHANNELS_SET_5,
GL_MSG_HELP_SETUP_MONITORING_CHANNELS_SET_X_CHANNEL_1,
GL_MSG_HELP_SETUP_MONITORING_CHANNELS_SET_X_CHANNEL_2,
GL_MSG_HELP_SETUP_MONITORING_CHANNELS_SET_X_CHANNEL_3,
GL_MSG_HELP_SETUP_MONITORING_CO2,
GL_MSG_HELP_SETUP_MONITORING_CO2_UNITS,
GL_MSG_HELP_SETUP_MONITORING_CO2_BTPS,
GL_MSG_HELP_SETUP_MONITORING_ECG,
GL_MSG_HELP_SETUP_MONITORING_ECG_CONTINUOUS,
GL_MSG_HELP_SETUP_MONITORING_NIBP,
GL_MSG_HELP_SETUP_MONITORING_NIBP_INTERVAL,
GL_MSG_HELP_SETUP_MONITORING_NIBP_PRESSURE,
GL_MSG_HELP_SETUP_MONITORING_NIBP_UNITS,
GL_MSG_HELP_SETUP_MONITORING_SPO2_TONE,
GL_MSG_HELP_SETUP_PACING,
GL_MSG_HELP_SETUP_PACING_CURRENT,
GL_MSG_HELP_SETUP_PACING_INTERNAL_PACER,
GL_MSG_HELP_SETUP_PACING_MODE,
GL_MSG_HELP_SETUP_PACING_RATE,
GL_MSG_HELP_SETUP_PASSCODE,
GL_MSG_HELP_SETUP_PRINTER,
GL_MSG_HELP_SETUP_PRINTER_ALARM_WAVEFORMS,
GL_MSG_HELP_SETUP_PRINTER_AUTO,
GL_MSG_HELP_SETUP_PRINTER_DIAGNOSTIC_MODE,
GL_MSG_HELP_SETUP_PRINTER_ECG_MODE,
GL_MSG_HELP_SETUP_PRINTER_EVENT_WAVEFORMS,
GL_MSG_HELP_SETUP_PRINTER_MONITOR_MODE,
GL_MSG_HELP_SETUP_PRINT_DEFAULTS,
GL_MSG_HELP_SETUP_RESET,
GL_MSG_HELP_SETUP_RESET_CANCEL,
GL_MSG_HELP_SETUP_RESET_RESET,
GL_MSG_HELP_SETUP_SEND_CONFIG,
GL_MSG_HELP_SETUP_SERVICE,
GL_MSG_HELP_SETUP_SET_PASSCODE,
GL_MSG_HELP_SETUP_TRANSMISSION,
GL_MSG_HELP_SETUP_TRANSMISSION_DATA,
GL_MSG_HELP_SETUP_TRANSMISSION_DATA_DEFAULT_REPORT,
GL_MSG_HELP_SETUP_TRANSMISSION_DATA_DEFAULT_SITE,
GL_MSG_HELP_SETUP_TRANSMISSION_DATA_PORTS,
GL_MSG_HELP_SETUP_TRANSMISSION_DATA_SITES,
GL_MSG_HELP_SETUP_TRANSMISSION_DEFAULT,
GL_MSG_HELP_SETUP_TRANSMISSION_FAX,
GL_MSG_HELP_SETUP_TRANSMISSION_FAX_DEFAULT_REPORT,
GL_MSG_HELP_SETUP_TRANSMISSION_FAX_DEFAULT_SITE,
GL_MSG_HELP_SETUP_TRANSMISSION_FAX_ORGANIZATION,
GL_MSG_HELP_SETUP_TRANSMISSION_FAX_PORTS,
GL_MSG_HELP_SETUP_TRANSMISSION_FAX_SITES,
GL_MSG_HELP_SETUP_TRANSMISSION_ORG_NAME,
GL_MSG_HELP_SETUP_TRANSMISSION_ORG_PHONE,
GL_MSG_HELP_SETUP_TRANSMISSION_PORTS_BAUD,
GL_MSG_HELP_SETUP_TRANSMISSION_PORTS_CLEAR,
GL_MSG_HELP_SETUP_TRANSMISSION_PORTS_DEFAULT,
GL_MSG_HELP_SETUP_TRANSMISSION_PORTS_INIT,
GL_MSG_HELP_SETUP_TRANSMISSION_PORTS_INIT_1,
GL_MSG_HELP_SETUP_TRANSMISSION_PORTS_INIT_2,
GL_MSG_HELP_SETUP_TRANSMISSION_PORTS_INIT_3,
GL_MSG_HELP_SETUP_TRANSMISSION_PORTS_INIT_4,
GL_MSG_HELP_SETUP_TRANSMISSION_SITES,
GL_MSG_HELP_SETUP_TRANSMISSION_SITES_SITES,
GL_MSG_HELP_SETUP_TRANSMISSION_SITE_CLEAR,
GL_MSG_HELP_SETUP_TRANSMISSION_SITE_NAME,
GL_MSG_HELP_SETUP_TRANSMISSION_SITE_PHONE,
GL_MSG_HELP_SETUP_TRANSMISSION_SITE_PORT,
GL_MSG_HELP_SETUP_TRANSMISSION_SITE_PORT_FAX,
GL_MSG_HELP_SETUP_TRANSMISSION_SITE_PREFIX,
GL_MSG_HELP_SETUP_TRANSMISSION_SITE_TEST,
GL_MSG_HOLDING,
GL_MSG_HOME,
GL_MSG_HR,
GL_MSG_HR_ALARM,
GL_MSG_HR_GREATER,
GL_MSG_HR_LESS,
GL_MSG_HR_PR,
GL_MSG_I,
GL_MSG_IBERIAN_PORTUGUESE,
GL_MSG_ICP,
GL_MSG_ID,
GL_MSG_IF_NO_PULSE_ANALYZE,
GL_MSG_II,
GL_MSG_III,
GL_MSG_INACTIVE,
GL_MSG_INCIDENT,
GL_MSG_INITIAL_RHYTHM,
GL_MSG_INIT_PRESSURE,
GL_MSG_INIT_STRING,
GL_MSG_INIT_STRING_LETTERS_1,
GL_MSG_INIT_STRING_LETTERS_2,
GL_MSG_INSERVICE_MODE,
GL_MSG_INTERNAL,
GL_MSG_INTERNAL_CELL,
GL_MSG_INTERNAL_CELL_FAX,
GL_MSG_INTERNAL_DEFAULT,
GL_MSG_INTERNAL_FAX,
GL_MSG_INTERNAL_PACER,
GL_MSG_INTERNAL_PADDLES,
GL_MSG_INTERPRETATION,
GL_MSG_INTERVAL,
GL_MSG_INTUBATION,
GL_MSG_IP_ALARM,
GL_MSG_IP_DIA_GREATER,
GL_MSG_IP_DIA_LESS,
GL_MSG_IP_SYS_GREATER,
GL_MSG_IP_SYS_LESS,
GL_MSG_ITALIAN,
GL_MSG_IV_ACCESS,
GL_MSG_JAN,
GL_MSG_JAPANESE,
GL_MSG_JOULES_AMOUNT,
GL_MSG_JUL,
GL_MSG_JUN,
GL_MSG_KPA,
GL_MSG_L12_AGE_1_DAY,
GL_MSG_L12_AGE_1_MONTH,
GL_MSG_L12_AGE_1_WEEK,
GL_MSG_L12_AGE_2_DAYS,
GL_MSG_L12_AGE_2_MONTHS,
GL_MSG_L12_AGE_3_MONTHS,
GL_MSG_L12_AGE_4_MONTHS,
GL_MSG_L12_AGE_5_MONTHS,
GL_MSG_L12_AGE_6_MONTHS,
GL_MSG_L12_AGE_9_MONTHS,
GL_MSG_L12_ECG_UNAVAILABLE,
GL_MSG_L12_INCOMPLETE,
GL_MSG_L12_RESULTS_0001,
GL_MSG_L12_RESULTS_0002,
GL_MSG_L12_RESULTS_0020,
GL_MSG_L12_RESULTS_0021,
GL_MSG_L12_RESULTS_0022,
GL_MSG_L12_RESULTS_0023,
GL_MSG_L12_RESULTS_0024,
GL_MSG_L12_RESULTS_0025,
GL_MSG_L12_RESULTS_0026,
GL_MSG_L12_RESULTS_0027,
GL_MSG_L12_RESULTS_0028,
GL_MSG_L12_RESULTS_0029,
GL_MSG_L12_RESULTS_0030,
GL_MSG_L12_RESULTS_0031,
GL_MSG_L12_RESULTS_0032,
GL_MSG_L12_RESULTS_0033,
GL_MSG_L12_RESULTS_0034,
GL_MSG_L12_RESULTS_0041,
GL_MSG_L12_RESULTS_0042,
GL_MSG_L12_RESULTS_0043,
GL_MSG_L12_RESULTS_0061,
GL_MSG_L12_RESULTS_0062,
GL_MSG_L12_RESULTS_0063,
GL_MSG_L12_RESULTS_0101,
GL_MSG_L12_RESULTS_0102,
GL_MSG_L12_RESULTS_0103,
GL_MSG_L12_RESULTS_0104,
GL_MSG_L12_RESULTS_0105,
GL_MSG_L12_RESULTS_0106,
GL_MSG_L12_RESULTS_0107,
GL_MSG_L12_RESULTS_0108,
GL_MSG_L12_RESULTS_0111,
GL_MSG_L12_RESULTS_0112,
GL_MSG_L12_RESULTS_0113,
GL_MSG_L12_RESULTS_0141,
GL_MSG_L12_RESULTS_0142,
GL_MSG_L12_RESULTS_0143,
GL_MSG_L12_RESULTS_0144,
GL_MSG_L12_RESULTS_0161,
GL_MSG_L12_RESULTS_0162,
GL_MSG_L12_RESULTS_0163,
GL_MSG_L12_RESULTS_0164,
GL_MSG_L12_RESULTS_0171,
GL_MSG_L12_RESULTS_0172,
GL_MSG_L12_RESULTS_0174,
GL_MSG_L12_RESULTS_0175,
GL_MSG_L12_RESULTS_0176,
GL_MSG_L12_RESULTS_0181,
GL_MSG_L12_RESULTS_0211,
GL_MSG_L12_RESULTS_0212,
GL_MSG_L12_RESULTS_0221,
GL_MSG_L12_RESULTS_0222,
GL_MSG_L12_RESULTS_0223,
GL_MSG_L12_RESULTS_0231,
GL_MSG_L12_RESULTS_0232,
GL_MSG_L12_RESULTS_0233,
GL_MSG_L12_RESULTS_0234,
GL_MSG_L12_RESULTS_0235,
GL_MSG_L12_RESULTS_0236,
GL_MSG_L12_RESULTS_0241,
GL_MSG_L12_RESULTS_0242,
GL_MSG_L12_RESULTS_0243,
GL_MSG_L12_RESULTS_0251,
GL_MSG_L12_RESULTS_0252,
GL_MSG_L12_RESULTS_0267,
GL_MSG_L12_RESULTS_0271,
GL_MSG_L12_RESULTS_0290,
GL_MSG_L12_RESULTS_0291,
GL_MSG_L12_RESULTS_0292,
GL_MSG_L12_RESULTS_0293,
GL_MSG_L12_RESULTS_0299,
GL_MSG_L12_RESULTS_0300,
GL_MSG_L12_RESULTS_0302,
GL_MSG_L12_RESULTS_0303,
GL_MSG_L12_RESULTS_0304,
GL_MSG_L12_RESULTS_0305,
GL_MSG_L12_RESULTS_0306,
GL_MSG_L12_RESULTS_0307,
GL_MSG_L12_RESULTS_0350,
GL_MSG_L12_RESULTS_0360,
GL_MSG_L12_RESULTS_0369,
GL_MSG_L12_RESULTS_0370,
GL_MSG_L12_RESULTS_0371,
GL_MSG_L12_RESULTS_0372,
GL_MSG_L12_RESULTS_0380,
GL_MSG_L12_RESULTS_0381,
GL_MSG_L12_RESULTS_0382,
GL_MSG_L12_RESULTS_0383,
GL_MSG_L12_RESULTS_0384,
GL_MSG_L12_RESULTS_0390,
GL_MSG_L12_RESULTS_0391,
GL_MSG_L12_RESULTS_0410,
GL_MSG_L12_RESULTS_0411,
GL_MSG_L12_RESULTS_0412,
GL_MSG_L12_RESULTS_0440,
GL_MSG_L12_RESULTS_0441,
GL_MSG_L12_RESULTS_0442,
GL_MSG_L12_RESULTS_0445,
GL_MSG_L12_RESULTS_0450,
GL_MSG_L12_RESULTS_0460,
GL_MSG_L12_RESULTS_0465,
GL_MSG_L12_RESULTS_0470,
GL_MSG_L12_RESULTS_0471,
GL_MSG_L12_RESULTS_0480,
GL_MSG_L12_RESULTS_0482,
GL_MSG_L12_RESULTS_0487,
GL_MSG_L12_RESULTS_0520,
GL_MSG_L12_RESULTS_0540,
GL_MSG_L12_RESULTS_0541,
GL_MSG_L12_RESULTS_0542,
GL_MSG_L12_RESULTS_0543,
GL_MSG_L12_RESULTS_0544,
GL_MSG_L12_RESULTS_0545,
GL_MSG_L12_RESULTS_0548,
GL_MSG_L12_RESULTS_0570,
GL_MSG_L12_RESULTS_0571,
GL_MSG_L12_RESULTS_0572,
GL_MSG_L12_RESULTS_0573,
GL_MSG_L12_RESULTS_0574,
GL_MSG_L12_RESULTS_0700,
GL_MSG_L12_RESULTS_0740,
GL_MSG_L12_RESULTS_0760,
GL_MSG_L12_RESULTS_0780,
GL_MSG_L12_RESULTS_0782,
GL_MSG_L12_RESULTS_0800,
GL_MSG_L12_RESULTS_0801,
GL_MSG_L12_RESULTS_0802,
GL_MSG_L12_RESULTS_0803,
GL_MSG_L12_RESULTS_0810,
GL_MSG_L12_RESULTS_0820,
GL_MSG_L12_RESULTS_0829,
GL_MSG_L12_RESULTS_0830,
GL_MSG_L12_RESULTS_0831,
GL_MSG_L12_RESULTS_0880,
GL_MSG_L12_RESULTS_0881,
GL_MSG_L12_RESULTS_0882,
GL_MSG_L12_RESULTS_0883,
GL_MSG_L12_RESULTS_0884,
GL_MSG_L12_RESULTS_0885,
GL_MSG_L12_RESULTS_0900,
GL_MSG_L12_RESULTS_0901,
GL_MSG_L12_RESULTS_0902,
GL_MSG_L12_RESULTS_0903,
GL_MSG_L12_RESULTS_0920,
GL_MSG_L12_RESULTS_0930,
GL_MSG_L12_RESULTS_0940,
GL_MSG_L12_RESULTS_0950,
GL_MSG_L12_RESULTS_0960,
GL_MSG_L12_RESULTS_0961,
GL_MSG_L12_RESULTS_0962,
GL_MSG_L12_RESULTS_0963,
GL_MSG_L12_RESULTS_0964,
GL_MSG_L12_RESULTS_0965,
GL_MSG_L12_RESULTS_0966,
GL_MSG_L12_RESULTS_0967,
GL_MSG_L12_RESULTS_0968,
GL_MSG_L12_RESULTS_0969,
GL_MSG_L12_RESULTS_0970,
GL_MSG_L12_RESULTS_0971,
GL_MSG_L12_RESULTS_0972,
GL_MSG_L12_RESULTS_1000,
GL_MSG_L12_RESULTS_1001,
GL_MSG_L12_RESULTS_1002,
GL_MSG_L12_RESULTS_1020,
GL_MSG_L12_RESULTS_1022,
GL_MSG_L12_RESULTS_1040,
GL_MSG_L12_RESULTS_1050,
GL_MSG_L12_RESULTS_1060,
GL_MSG_L12_RESULTS_1070,
GL_MSG_L12_RESULTS_1071,
GL_MSG_L12_RESULTS_1080,
GL_MSG_L12_RESULTS_1081,
GL_MSG_L12_RESULTS_1082,
GL_MSG_L12_RESULTS_1083,
GL_MSG_L12_RESULTS_1084,
GL_MSG_L12_RESULTS_1100,
GL_MSG_L12_RESULTS_1138,
GL_MSG_L12_RESULTS_1139,
GL_MSG_L12_RESULTS_1140,
GL_MSG_L12_RESULTS_1141,
GL_MSG_L12_RESULTS_1142,
GL_MSG_L12_RESULTS_1143,
GL_MSG_L12_RESULTS_1145,
GL_MSG_L12_RESULTS_1150,
GL_MSG_L12_RESULTS_1151,
GL_MSG_L12_RESULTS_1160,
GL_MSG_L12_RESULTS_1161,
GL_MSG_L12_RESULTS_1170,
GL_MSG_L12_RESULTS_1171,
GL_MSG_L12_RESULTS_1172,
GL_MSG_L12_RESULTS_1180,
GL_MSG_L12_RESULTS_1181,
GL_MSG_L12_RESULTS_1182,
GL_MSG_L12_RESULTS_1450,
GL_MSG_L12_RESULTS_1451,
GL_MSG_L12_RESULTS_1452,
GL_MSG_L12_RESULTS_1453,
GL_MSG_L12_RESULTS_1454,
GL_MSG_L12_RESULTS_1455,
GL_MSG_L12_RESULTS_1456,
GL_MSG_L12_RESULTS_1457,
GL_MSG_L12_RESULTS_1458,
GL_MSG_L12_RESULTS_1670,
GL_MSG_L12_RESULTS_1671,
GL_MSG_L12_RESULTS_1672,
GL_MSG_L12_RESULTS_1673,
GL_MSG_L12_RESULTS_1680,
GL_MSG_L12_RESULTS_1682,
GL_MSG_L12_RESULTS_1684,
GL_MSG_L12_RESULTS_1687,
GL_MSG_L12_RESULTS_1690,
GL_MSG_L12_RESULTS_1691,
GL_MSG_L12_RESULTS_1693,
GL_MSG_L12_RESULTS_1694,
GL_MSG_L12_RESULTS_1699,
GL_MSG_L12_STOPPED,
GL_MSG_LA,
GL_MSG_LABEL,
GL_MSG_LANGUAGE,
GL_MSG_LAP,
GL_MSG_LAST_NAME,
GL_MSG_LEAD,
GL_MSG_LEADS_OFF_LIST,
GL_MSG_LEAD_II,
GL_MSG_LEAD_OFF,
GL_MSG_LEAKAGE,
GL_MSG_LEAKAGE_TEST_FAILED,
GL_MSG_LEAKAGE_TEST_IN_PROGRESS,
GL_MSG_LEAKAGE_TEST_OK,
GL_MSG_LIDOCAINE,
GL_MSG_LIFEPAK_CONFIG_SETUP,
GL_MSG_LIMITS,
GL_MSG_LINE_FILTER,
GL_MSG_LL,
GL_MSG_LONG,
GL_MSG_LOST_CONNECTION,
GL_MSG_MA,
GL_MSG_MAINTENANCE_DUE,
GL_MSG_MAINT_PROMPT,
GL_MSG_MALE,
GL_MSG_MALE_ABBREV,
GL_MSG_MANUAL_ACCESS,
GL_MSG_MANUAL_CAL,
GL_MSG_MANUAL_DIRECT,
GL_MSG_MANUAL_DISABLED,
GL_MSG_MANUAL_MODE,
GL_MSG_MANUAL_MODE_ENERGY_PROTOCOL,
GL_MSG_MANUAL_MODE_ENERGY_PROTOCOL_1,
GL_MSG_MANUAL_MODE_ENERGY_PROTOCOL_2,
GL_MSG_MANUFACTURING_DATE,
GL_MSG_MAR,
GL_MSG_MAY,
GL_MSG_MA_VALUE,
GL_MSG_MEDIUM,
GL_MSG_MMHG,
GL_MSG_MODE,
GL_MSG_MODEM_INIT_ERROR,
GL_MSG_MONITOR,
GL_MSG_MONITOR_MODE,
GL_MSG_MONITORING,
GL_MSG_MONITORING_CHANNELS,
GL_MSG_MONITORING_CHANNELS_SET_1,
GL_MSG_MONITORING_CHANNELS_SET_2,
GL_MSG_MONITORING_CHANNELS_SET_3,
GL_MSG_MONITORING_CHANNELS_SET_4,
GL_MSG_MONITORING_CHANNELS_SET_5,
GL_MSG_MONITORING_CO2,
GL_MSG_MONITORING_ECG,
GL_MSG_MONITORING_NIBP,
GL_MSG_MONITORING_PADDLES_WARNING_1,
GL_MSG_MONITORING_PADDLES_WARNING_2,
GL_MSG_MORE,
GL_MSG_MORPHINE,
GL_MSG_MOTION,
GL_MSG_MOTION_DETECTED_EXCLAM,
GL_MSG_MOTION_DETECTION,
GL_MSG_NAME,
GL_MSG_NARROW,
GL_MSG_NEW_NUMBER_DOTS,
GL_MSG_NEW_PREFIX,
GL_MSG_NEW_PREFIX_DOTS,
GL_MSG_NEXT_PROMPT,
GL_MSG_NIBP,
GL_MSG_NIBP_AIR_LEAK,
GL_MSG_NIBP_CAL,
GL_MSG_NIBP_CHECK_CUFF,
GL_MSG_NIBP_DIA_ALARM,
GL_MSG_NIBP_DIA_GREATER,
GL_MSG_NIBP_DIA_LESS,
GL_MSG_NIBP_FAILED,
GL_MSG_NIBP_FLOW_ERROR,
GL_MSG_NIBP_INFLATION_CYCLES,
GL_MSG_NIBP_KPA_PR,
GL_MSG_NIBP_MMHG_PR,
GL_MSG_NIBP_MOTION,
GL_MSG_NIBP_OVERPRESSURE,
GL_MSG_NIBP_SYS_ALARM,
GL_MSG_NIBP_SYS_GREATER,
GL_MSG_NIBP_SYS_LESS,
GL_MSG_NIBP_TIME_OUT,
GL_MSG_NIBP_WEAK_PULSE,
GL_MSG_NITROGLYCERINE,
GL_MSG_NO,
GL_MSG_NOISE_WARNING,
GL_MSG_NONE,
GL_MSG_NONSHOCKABLE,
GL_MSG_NON_DEMAND,
GL_MSG_NON_DEMAND_PACING,
GL_MSG_NORWEGIAN,
GL_MSG_NOT_AVR,
GL_MSG_NOV,
GL_MSG_NO_DIAL_TONE,
GL_MSG_NO_GAS_OR_WRONG_GAS,
GL_MSG_NO_MODEM,
GL_MSG_NO_PHONE_NUMBER,
GL_MSG_NO_PREFIX,
GL_MSG_NO_SHOCK_ADVISED,
GL_MSG_NO_STABLE_GAS_FLOW,
GL_MSG_NO_SYNC_WITH_PADDLES,
GL_MSG_OCT,
GL_MSG_OFF,
GL_MSG_ON,
GL_MSG_OPTIONS,
GL_MSG_OPTIONS_ALARM_VOLUME,
GL_MSG_OPTIONS_ARCHIVES,
GL_MSG_OPTIONS_ARCHIVES_DELETE,
GL_MSG_OPTIONS_ARCHIVES_PRINT,
GL_MSG_OPTIONS_ARCHIVES_SEND_DATA,
GL_MSG_OPTIONS_ARCHIVES_SEND_DATA_CANCEL,
GL_MSG_OPTIONS_ARCHIVES_SEND_DATA_PREFIX,
GL_MSG_OPTIONS_ARCHIVES_SEND_FAX,
GL_MSG_OPTIONS_ARCHIVES_SEND_FAX_CANCEL,
GL_MSG_OPTIONS_ARCHIVES_SEND_FAX_PREFIX,
GL_MSG_OPTIONS_DATE_TIME,
GL_MSG_OPTIONS_PACING,
GL_MSG_OPTIONS_PATIENT,
GL_MSG_OPTIONS_PRINT,
GL_MSG_OPTIONS_REPORTS,
GL_MSG_OPTIONS_REPORTS_DELETE,
GL_MSG_OPTIONS_REPORTS_PRINT,
GL_MSG_OPTIONS_REPORTS_TRANSMIT,
GL_MSG_ORGANIZATION,
GL_MSG_OUTPUT_PORT,
GL_MSG_OUT_OF_EVENT_MEMORY,
GL_MSG_OUT_OF_WAVEFORM_MEMORY,
GL_MSG_OVERPRESSURE,
GL_MSG_OXYGEN,
GL_MSG_P1,
GL_MSG_P1_AND_P2,
GL_MSG_P2,
GL_MSG_PA,
GL_MSG_PACER,
GL_MSG_PACER_FAULT,
GL_MSG_PACER_ON_INTERPRETATION_SUPPRESSED,
GL_MSG_PACING,
GL_MSG_PACING_CAL,
GL_MSG_PACING_CHANGED,
GL_MSG_PACING_COUNT,
GL_MSG_PACING_NUMBER_CHANGED,
GL_MSG_PACING_NUMBER_PAUSED,
GL_MSG_PACING_NUMBER_SET,
GL_MSG_PACING_NUMBER_STARTED,
GL_MSG_PACING_NUMBER_STOPPED,
GL_MSG_PACING_PAUSED,
GL_MSG_PACING_SET,
GL_MSG_PACING_STARTED,
GL_MSG_PACING_STOPPED,
GL_MSG_PACING_UNPAUSED,
GL_MSG_PAD,
GL_MSG_PADDLES,
GL_MSG_PADS_DEFAULT,
GL_MSG_PASSCODE,
GL_MSG_PASSCODE_INCORRECT,
GL_MSG_PASSCODE_LETTERS,
GL_MSG_PATIENT,
GL_MSG_PATIENT_ALARMS,
GL_MSG_PATIENT_NAME_LETTERS_1,
GL_MSG_PATIENT_NAME_LETTERS_2,
GL_MSG_PAUSE,
GL_MSG_PAUSED,
GL_MSG_PEDI,
GL_MSG_PEDIATRIC,
GL_MSG_PERCENT,
GL_MSG_PF_VALUE,
GL_MSG_PHONE_LETTERS_1,
GL_MSG_PHONE_LETTERS_2,
GL_MSG_PHONE_NUMBER,
GL_MSG_PIXELS,
GL_MSG_PLACE_PADDLES_ON_ENERGY_METER,
GL_MSG_PLETH,
GL_MSG_PLUG_NIBP_HOSE,
GL_MSG_POLISH,
GL_MSG_PORTS,
GL_MSG_POST,
GL_MSG_POSTSHOCK,
GL_MSG_POWER_CYCLE_COUNT,
GL_MSG_POWER_OFF,
GL_MSG_POWER_ON,
GL_MSG_POWER_ON_TIME,
GL_MSG_PPM,
GL_MSG_PPM_VALUE,
GL_MSG_PR,
GL_MSG_PR_ALARM_NIBP,
GL_MSG_PR_ALARM_NIBP_GREATER,
GL_MSG_PR_ALARM_NIBP_LESS,
GL_MSG_PR_ALARM_SPO2,
GL_MSG_PR_ALARM_SPO2_GREATER,
GL_MSG_PR_ALARM_SPO2_LESS,
GL_MSG_PR_NIBP,
GL_MSG_PR_SPO2,
GL_MSG_PRE,
GL_MSG_PREFIX,
GL_MSG_PREFIX_1,
GL_MSG_PREFIX_2,
GL_MSG_PRESHOCK,
GL_MSG_PRESSURE,
GL_MSG_PRESS_BLINKING_BUTTON,
GL_MSG_PRESS_KNOB_TO_EXIT,
GL_MSG_PREVIOUS_PAGE,
GL_MSG_PRE_POST_DATA,
GL_MSG_PRINT,
GL_MSG_PRINTER,
GL_MSG_PRINTER_AUTO_PRINT,
GL_MSG_PRINTER_CAL,
GL_MSG_PRINTER_ON,
GL_MSG_PRINTER_ON_TIME,
GL_MSG_PRINTHEAD_VALUE,
GL_MSG_PRINT_DEFAULTS,
GL_MSG_PRINT_NUMBER,
GL_MSG_PRIORITY_1_TONE,
GL_MSG_PRIORITY_2_TONE,
GL_MSG_PRIORITY_3_TONE,
GL_MSG_PRIORITY_4_TONE,
GL_MSG_PRIORITY_ALERT_TONE,
GL_MSG_PRODUCT_NAME,
GL_MSG_PUSH_ANALYZE,
GL_MSG_PUSH_KNOB_TO_CONFIRM,
GL_MSG_PUSH_KNOB_TO_DISARM,
GL_MSG_PUSH_PADDLE_BUTTONS_TO_SHOCK_EXCLAM,
GL_MSG_PUSH_PADDLE_BUTTON_TO_SHOCK_EXCLAM,
GL_MSG_PUSH_SHOCK_BUTTONS_EXCLAM,
GL_MSG_PUSH_SHOCK_BUTTON_EXCLAM,
GL_MSG_P_QRS_T_AXES,
GL_MSG_QRS,
GL_MSG_QRS_VOLUME,
GL_MSG_QT_QTC,
GL_MSG_QUICK_SET,
GL_MSG_RA,
GL_MSG_RATE,
GL_MSG_REAL_TIME,
GL_MSG_REPLACE_BATTERY,
GL_MSG_REPORT,
GL_MSG_REPORTS,
GL_MSG_RESET,
GL_MSG_RESET_DEFAULTS,
GL_MSG_RL,
GL_MSG_RR,
GL_MSG_RR_ALARM,
GL_MSG_RR_ALARM_GREATER,
GL_MSG_RR_ALARM_LESS,
GL_MSG_RUSSIAN,
GL_MSG_SAS,
GL_MSG_SAS_NO_SHOCK,
GL_MSG_SAS_SHOCK,
GL_MSG_SCALE,
GL_MSG_SEGMENT_NUMBER,
GL_MSG_SELECTED,
GL_MSG_SELECT_TRANSMIT_METHOD,
GL_MSG_SELF_TESTS_IN_PROGRESS,
GL_MSG_SEND,
GL_MSG_SEND_CONFIG,
GL_MSG_SEND_CONFIG_PROMPT1,
GL_MSG_SEND_CONFIG_PROMPT2,
GL_MSG_SEND_DATA,
GL_MSG_SEND_FAX,
GL_MSG_SENSING_LEAD_NAME,
GL_MSG_SEP,
GL_MSG_SERIAL_NUMBER,
GL_MSG_SERVICE,
GL_MSG_SERVICE_CALIBRATION,
GL_MSG_SERVICE_CALIBRATION_CO2,
GL_MSG_SERVICE_CALIBRATION_CO2_CAL,
GL_MSG_SERVICE_CALIBRATION_CO2_CHECK,
GL_MSG_SERVICE_CALIBRATION_DEFIB,
GL_MSG_SERVICE_CALIBRATION_DEFIB_AUTO,
GL_MSG_SERVICE_CALIBRATION_DEFIB_MANUAL,
GL_MSG_SERVICE_CALIBRATION_NIBP,
GL_MSG_SERVICE_CALIBRATION_NIBP_LEAKAGE,
GL_MSG_SERVICE_CALIBRATION_NIBP_PRESSURE,
GL_MSG_SERVICE_CALIBRATION_PACER,
GL_MSG_SERVICE_CALIBRATION_PRINTER,
GL_MSG_SERVICE_DOTS,
GL_MSG_SERVICE_INDICATED,
GL_MSG_SERVICE_MAINT_PROMPT,
GL_MSG_SERVICE_SEND_CONFIG,
GL_MSG_SERVICE_STATUS,
GL_MSG_SERVICE_STATUS_COUNTERS,
GL_MSG_SERVICE_STATUS_DEVICE_LOG,
GL_MSG_SERVICE_STATUS_ERROR_LOG,
GL_MSG_SERVICE_TESTS,
GL_MSG_SERVICE_TEST_BUTTONS,
GL_MSG_SERVICE_TEST_PRINTER,
GL_MSG_SERVICE_TEST_VOICE_TONE,
GL_MSG_SETUP,
GL_MSG_SET_1,
GL_MSG_SET_2,
GL_MSG_SET_3,
GL_MSG_SET_4,
GL_MSG_SET_5,
GL_MSG_SET_MANUAL_PASSCODE,
GL_MSG_SET_PASSCODE,
GL_MSG_SET_SERVICE_MODE_PASSCODE,
GL_MSG_SET_SETUP_MODE_PASSCODE,
GL_MSG_SEX,
GL_MSG_SHOCK,
GL_MSG_SHOCKABLE,
GL_MSG_SHOCK_ADVISED,
GL_MSG_SHOCK_ADVISED_EXCLAM,
GL_MSG_SHOCK_ADVISED_VALUE,
GL_MSG_SHOCK_COUNT,
GL_MSG_SHOCK_NUMBER_ABNORMAL_DELIVERED,
GL_MSG_SHOCK_NUMBER_NOT_DELIVERED,
GL_MSG_SHOCK_NUMBER_PERCENT_D_J,
GL_MSG_SHOCK_TONE,
GL_MSG_SHORT,
GL_MSG_SILENCE,
GL_MSG_SITE,
GL_MSG_SITES,
GL_MSG_SITE_1,
GL_MSG_SITE_10,
GL_MSG_SITE_11,
GL_MSG_SITE_12,
GL_MSG_SITE_13,
GL_MSG_SITE_14,
GL_MSG_SITE_15,
GL_MSG_SITE_16,
GL_MSG_SITE_17,
GL_MSG_SITE_18,
GL_MSG_SITE_19,
GL_MSG_SITE_2,
GL_MSG_SITE_3,
GL_MSG_SITE_4,
GL_MSG_SITE_5,
GL_MSG_SITE_6,
GL_MSG_SITE_7,
GL_MSG_SITE_8,
GL_MSG_SITE_9,
GL_MSG_SITE_LETTERS_1,
GL_MSG_SITE_LETTERS_2,
GL_MSG_SITE_NUMBER,
GL_MSG_SIZE,
GL_MSG_SLOWER,
GL_MSG_SOFTWARE_REVISION,
GL_MSG_SPACE,
GL_MSG_SPANISH,
GL_MSG_SPEED,
GL_MSG_SPO2,
GL_MSG_SPO2_ALARM,
GL_MSG_SPO2_GREATER,
GL_MSG_SPO2_LESS,
GL_MSG_SPO2_NO_SENSOR_DETECTED,
GL_MSG_SPO2_OPERATING_TIME,
GL_MSG_SPO2_PR,
GL_MSG_SPO2_PULSE_SEARCH,
GL_MSG_SPO2_SENSOR_OFF,
GL_MSG_SPO2_TONE,
GL_MSG_SPO2_VOLUME,
GL_MSG_STANDARD,
GL_MSG_STAND_CLEAR,
GL_MSG_STAND_CLEAR_PUSH_TO_SHOCK,
GL_MSG_START,
GL_MSG_START_CPR,
GL_MSG_STATUS,
GL_MSG_STERILE_PADDLES,
GL_MSG_STOP_MOTION_EXCLAM,
GL_MSG_STREPTOKINASE,
GL_MSG_SWEDISH,
GL_MSG_SWITCHING_LEAD_II,
GL_MSG_SWITCHING_LEAD_PADDLES,
GL_MSG_SYNC,
GL_MSG_SYNC_AFTER_SHOCK,
GL_MSG_SYNC_OFF,
GL_MSG_SYNC_ON,
GL_MSG_TEST,
GL_MSG_TESTING_PROMPTS,
GL_MSG_TESTING_TONES,
GL_MSG_TESTS,
GL_MSG_TEST_COMPLETE,
GL_MSG_THEN_SELECT_START,
GL_MSG_TIME,
GL_MSG_TIMEOUT_SPEED,
GL_MSG_TO,
GL_MSG_TOTAL_12_LEADS,
GL_MSG_TOTAL_SHOCKS,
GL_MSG_TOTAL_TIME_PACED,
GL_MSG_TPA,
GL_MSG_TRANSMISSION,
GL_MSG_TRANSMISSION_DATA,
GL_MSG_TRANSMISSION_DATA_PORTS,
GL_MSG_TRANSMISSION_DATA_PORTS_DIRECT,
GL_MSG_TRANSMISSION_DATA_PORTS_DIRECT_INIT_STRING,
GL_MSG_TRANSMISSION_DATA_PORTS_EXTERNAL,
GL_MSG_TRANSMISSION_DATA_PORTS_EXTERNAL_INIT_STRING,
GL_MSG_TRANSMISSION_DATA_PORTS_EXT_CELL,
GL_MSG_TRANSMISSION_DATA_PORTS_EXT_CELL_INIT_STRING,
GL_MSG_TRANSMISSION_DATA_PORTS_INTERNAL,
GL_MSG_TRANSMISSION_DATA_PORTS_INTERNAL_INIT_STRING,
GL_MSG_TRANSMISSION_DATA_PORTS_INT_CELL,
GL_MSG_TRANSMISSION_DATA_PORTS_INT_CELL_INIT_STRING,
GL_MSG_TRANSMISSION_DATA_SITES,
GL_MSG_TRANSMISSION_DATA_SITES_SITE1,
GL_MSG_TRANSMISSION_DATA_SITES_SITE10,
GL_MSG_TRANSMISSION_DATA_SITES_SITE11,
GL_MSG_TRANSMISSION_DATA_SITES_SITE12,
GL_MSG_TRANSMISSION_DATA_SITES_SITE13,
GL_MSG_TRANSMISSION_DATA_SITES_SITE14,
GL_MSG_TRANSMISSION_DATA_SITES_SITE15,
GL_MSG_TRANSMISSION_DATA_SITES_SITE16,
GL_MSG_TRANSMISSION_DATA_SITES_SITE17,
GL_MSG_TRANSMISSION_DATA_SITES_SITE18,
GL_MSG_TRANSMISSION_DATA_SITES_SITE19,
GL_MSG_TRANSMISSION_DATA_SITES_SITE2,
GL_MSG_TRANSMISSION_DATA_SITES_SITE3,
GL_MSG_TRANSMISSION_DATA_SITES_SITE4,
GL_MSG_TRANSMISSION_DATA_SITES_SITE5,
GL_MSG_TRANSMISSION_DATA_SITES_SITE6,
GL_MSG_TRANSMISSION_DATA_SITES_SITE7,
GL_MSG_TRANSMISSION_DATA_SITES_SITE8,
GL_MSG_TRANSMISSION_DATA_SITES_SITE9,
GL_MSG_TRANSMISSION_FAX,
GL_MSG_TRANSMISSION_FAX_ORGANIZATION,
GL_MSG_TRANSMISSION_FAX_PORTS,
GL_MSG_TRANSMISSION_FAX_PORTS_EXTERNAL,
GL_MSG_TRANSMISSION_FAX_PORTS_EXTERNAL_INIT_STRING,
GL_MSG_TRANSMISSION_FAX_PORTS_EXT_CELL,
GL_MSG_TRANSMISSION_FAX_PORTS_EXT_CELL_INIT_STRING,
GL_MSG_TRANSMISSION_FAX_PORTS_INTERNAL,
GL_MSG_TRANSMISSION_FAX_PORTS_INTERNAL_INIT_STRING,
GL_MSG_TRANSMISSION_FAX_PORTS_INT_CELL,
GL_MSG_TRANSMISSION_FAX_PORTS_INT_CELL_INIT_STRING,
GL_MSG_TRANSMISSION_FAX_SITES,
GL_MSG_TRANSMISSION_FAX_SITES_SITE1,
GL_MSG_TRANSMISSION_FAX_SITES_SITE10,
GL_MSG_TRANSMISSION_FAX_SITES_SITE11,
GL_MSG_TRANSMISSION_FAX_SITES_SITE12,
GL_MSG_TRANSMISSION_FAX_SITES_SITE13,
GL_MSG_TRANSMISSION_FAX_SITES_SITE14,
GL_MSG_TRANSMISSION_FAX_SITES_SITE15,
GL_MSG_TRANSMISSION_FAX_SITES_SITE16,
GL_MSG_TRANSMISSION_FAX_SITES_SITE17,
GL_MSG_TRANSMISSION_FAX_SITES_SITE18,
GL_MSG_TRANSMISSION_FAX_SITES_SITE19,
GL_MSG_TRANSMISSION_FAX_SITES_SITE2,
GL_MSG_TRANSMISSION_FAX_SITES_SITE3,
GL_MSG_TRANSMISSION_FAX_SITES_SITE4,
GL_MSG_TRANSMISSION_FAX_SITES_SITE5,
GL_MSG_TRANSMISSION_FAX_SITES_SITE6,
GL_MSG_TRANSMISSION_FAX_SITES_SITE7,
GL_MSG_TRANSMISSION_FAX_SITES_SITE8,
GL_MSG_TRANSMISSION_FAX_SITES_SITE9,
GL_MSG_TRANSMISSION_SITE_NAME,
GL_MSG_TRANSMIT,
GL_MSG_TRANSMITTING_AMOUNT,
GL_MSG_TRANSMIT_DATA,
GL_MSG_TRANSMIT_DATA_CANCEL,
GL_MSG_TRANSMIT_FAX,
GL_MSG_TRANSMIT_FAX_CANCEL,
GL_MSG_TRANSPORT,
GL_MSG_TURN_POWER_OFF_TO_EXIT,
GL_MSG_UNABLE_TO_CONNECT,
GL_MSG_UNCONFIRMED,
GL_MSG_UNDO,
GL_MSG_UNITS,
GL_MSG_UNKNOWN,
GL_MSG_UROKINASE,
GL_MSG_USER_TEST,
GL_MSG_USER_TEST_FAILED,
GL_MSG_USER_TEST_IN_PROGRESS,
GL_MSG_USER_TEST_PASSED,
GL_MSG_USE_DEFAULT,
GL_MSG_USE_ECG_LEADS,
GL_MSG_USE_KNOB_TO_ENTER_ENERGY,
GL_MSG_V1,
GL_MSG_V2,
GL_MSG_V3,
GL_MSG_V4,
GL_MSG_V5,
GL_MSG_V6,
GL_MSG_VALUE,
GL_MSG_VERAPAMIL,
GL_MSG_VERSION,
GL_MSG_VF_VT_ALARM,
GL_MSG_VF_VT_ALARM_NOT_AVAILABLE,
GL_MSG_VF_VT_ALARM_SUSPENDED,
GL_MSG_VIEW,
GL_MSG_VITAL_SIGNS,
GL_MSG_VITAL_SIGN_LOG,
GL_MSG_VOICE_PROMPTS,
GL_MSG_VOICE_TONE,
GL_MSG_VOLUME,
GL_MSG_WAITING_FOR_GOOD_DATA,
GL_MSG_WAVEFORM,
GL_MSG_WIDE,
GL_MSG_X,
GL_MSG_XFER_ABORTED,
GL_MSG_XFER_COMPLETED,
GL_MSG_XFER_FAILED,
GL_MSG_YES,
GL_MSG_ZERO,
GL_MSG_VERY_LAST_MESSAGE
} GL_MESSAGE_NUMBER_TYPE;
extern const unsigned char *
gl_messageToString(GL_MESSAGE_NUMBER_TYPE messageNumber);
extern uint16_t
gl_stringToUnicode(const uint8_t *src, uint8_t *dest);
extern uint16_t
gl_unicodeToString(const uint8_t *src, uint8_t *dest);
# 17 "../procctl/pccritical.h" 2
# 1 "../procctl/pctime.h" 1
# 1 "d:/erik/sys-control/os/target/h/semLib.h" 1
extern "C" {
typedef enum
{
SEM_EMPTY,
SEM_FULL
} SEM_B_STATE;
typedef struct semaphore *SEM_ID;
extern STATUS semGive (SEM_ID semId);
extern STATUS semTake (SEM_ID semId, int timeout);
extern STATUS semFlush (SEM_ID semId);
extern STATUS semDelete (SEM_ID semId);
extern int semInfo (SEM_ID semId, int idList[], int maxTasks);
extern STATUS semBLibInit (void);
extern SEM_ID semBCreate (int options, SEM_B_STATE initialState);
extern STATUS semCLibInit (void);
extern SEM_ID semCCreate (int options, int initialCount);
extern STATUS semMLibInit (void);
extern SEM_ID semMCreate (int options);
extern STATUS semMGiveForce (SEM_ID semId);
extern STATUS semOLibInit (void);
extern SEM_ID semCreate (void);
extern void semShowInit (void);
extern STATUS semShow (SEM_ID semId, int level);
# 112 "d:/erik/sys-control/os/target/h/semLib.h"
}
# 17 "../procctl/pctime.h" 2
typedef struct tm pcTimeType;
typedef time_t pcLTimeType;
extern bool pcTimeHasBeenAdjusted;
extern SEM_ID pcRTCsem;
void
pcSetDSTsupport(bool dstSupported);
void
pcRTCinitialize(void);
void
pcRTCverifyDST(GL_BOOT_TYPE boot_flag);
void
pcUpdateCurrentTime(void);
void
pcAdjustTime(void);
void
pcSetTime(pcTimeType *time);
void
pcSetLTime(pcLTimeType time);
pcTimeType*
pcGetTime(pcTimeType *time);
pcLTimeType
pcGetLTime(void);
pcLTimeType
pcTime2Long(pcTimeType *time);
pcTimeType*
pcLong2Time(pcTimeType *time,
pcLTimeType ltime);
pcLTimeType
pcPowerOffTimeGet(
bool restoreOnError
);
pcLTimeType
pcAbsPowerOffTimeGet(
bool restoreOnError
);
void
pcPowerOffTimeSet(void);
void
pcLastWdogUpsetTimeSet(void);
void
pcLastWdogUpsetTimeReset(void);
pcLTimeType
pcTimeSinceLastWdogUpsetGet(void);
bool
pcGetWakeupTime(pcTimeType *timePtr);
void
pcSetWakeupTime(pcTimeType *timePtr);
void
pcRtcLock(void);
void
pcRtcUnlock(void);
# 18 "../procctl/pccritical.h" 2
typedef struct
{
uint16_t rate;
bool dataValid;
} PC_VITALS_ECG_VALUE;
typedef struct
{
bool spo2Available;
bool dataValid;
uint16_t rate;
uint16_t saturation;
int16_t plethBar;
uint8_t plethStatus;
bool C_LockOn;
} PC_VITALS_SPO2_VALUE;
typedef enum
{
HEART_RATE_NONE = 0,
HEART_RATE_ECG = 2,
HEART_RATE_SPO2 = 249
} PC_VITALS_RATE_SOURCE;
typedef uint8_t PC_VITALS_RATE_SOURCE_TYPE8;
typedef uint16_t PC_VITALS_RATE_SOURCE_TYPE16;
typedef struct {
uint8_t qrsVolume;
uint8_t spo2Volume;
uint8_t alarmVolume;
} PC_VOLUMES;
typedef enum {
ALARM_OFF,
ALARM_ON,
ALARM_SILENCED,
ALARM_PAUSED,
ALARM_SUSPENDED
} ALARM_STATE_TYPE;
typedef uint8_t ALARM_STATE_TYPE8;
typedef uint8_t ALARM_STATE_TYPE16;
typedef struct {
uint32_t alarmUnsilenceTime;
uint16_t limitLow;
uint16_t limitHigh;
uint16_t currentValue;
ALARM_STATE_TYPE8 state;
ALARM_STATE_TYPE8 old_state;
bool dataStable;
bool alarmActive;
} pcAlarmData;
typedef struct {
GL_LEAD_TYPE leadValue;
GL_MESSAGE_NUMBER_TYPE leadName;
bool cascading;
bool enabled;
} pcWaveformData;
typedef struct {
pcWaveformData waveforms[GL_MAX_REGIONS];
uint32_t wiresSeen;
GL_LEAD_TYPE8 ecgGain;
bool showPressAnalyze;
bool manualSequencing;
bool alarmsNarrow;
bool inAEDMode;
bool returnToAED;
bool manualModeEntered;
bool therapyLeadsOn;
bool demandPacingFlag;
bool returnToDemand;
bool pacerOn;
bool internalPacer;
uint8_t vfvtAlarmState;
uint32_t vfvtAlarmUnsilenceTime;
bool vfvtAlarmActive;
uint8_t shockCounter;
uint8_t lastSASEnergyValue;
uint8_t nextSASEnergyValue;
uint8_t manualSequenceCount;
uint8_t advisorySequenceCount;
uint8_t cascadeState;
GL_PADDLE_TYPE8 paddleType;
pcAlarmData ecgAlarm;
pcAlarmData spo2Alarm;
PC_VOLUMES volumes;
} PC_CRITICAL_BM_DATA;
typedef struct {
PC_VOLUMES volumes;
uint8_t contrast;
} PC_CRITICAL_UI_DATA;
typedef struct {
PC_VITALS_RATE_SOURCE_TYPE8 rateSource;
PC_VITALS_ECG_VALUE ecg;
PC_VITALS_SPO2_VALUE spo2;
} PC_CRITICAL_VS_DATA;
typedef struct {
uint16_t queuedStatus[100 ];
bool printing;
bool printerSpeed;
bool currentPrinterSpeed;
uint8_t queuedStatusOffset;
bool printDiag;
uint8_t printerSpeedValue;
bool print4Channel;
} PC_CRITICAL_PR_DATA;
typedef struct {
uint32_t lowADCreading;
uint32_t highADCreading;
uint32_t patientImpedance;
double lowJoulesReading;
double highJoulesReading;
uint16_t selectedEnergy;
int16_t pacingRate;
int16_t pacingCurrent;
int16_t pacingRateBeforePause;
GL_PACING_MODE_TYPE pacingMode;
bool syncMode;
bool pacingState;
bool pacingPauseMode;
} PC_CRITICAL_TH_DATA;
typedef struct {
GL_CABLE_TYPE16 cableType;
uint16_t LeadsOff;
bool primaryLeadOff;
bool paddlesLeadsOff;
} PC_CRITICAL_ECG_DATA;
typedef struct {
int32_t vs_time;
bool first_event_stored;
bool waveforms_leads_on;
uint8_t defib_sequence;
uint8_t pacer_sequence;
uint8_t sas_sequence;
uint8_t print_sequence;
} PC_CRITICAL_DM_DATA;
typedef struct {
uint32_t bps;
uint32_t eng_config;
bool fax_normal_resolution;
} PC_CRITICAL_DC_DATA;
typedef struct {
bool serviceLedOn;
bool rtcDSTactive;
bool watchdogLongFailure;
} PC_CRITICAL_PC_DATA;
typedef enum {
PC_GL_MODE_UNKNOWN,
PC_GL_MODE_NORMAL,
PC_GL_MODE_ARCHIVES,
PC_GL_MODE_CONFIG,
PC_GL_MODE_INSERVICE
} PC_GL_OPERATING_MODE;
typedef enum {
PC_GL_CONFIG_START,
PC_GL_CONFIG_SETUP,
PC_GL_CONFIG_SERVICE,
PC_GL_CONFIG_DEFIB_CAL_10J,
PC_GL_CONFIG_DEFIB_CAL_360J
} PC_GL_CONFIG_STATE;
typedef struct {
PC_GL_OPERATING_MODE mode;
PC_GL_CONFIG_STATE configState;
} PC_CRITICAL_GL_DATA;
typedef struct {
uint32_t count;
uint16_t crc;
char version[20];
PC_CRITICAL_BM_DATA bm;
PC_CRITICAL_UI_DATA ui;
PC_CRITICAL_PR_DATA pr;
PC_CRITICAL_TH_DATA th;
PC_CRITICAL_ECG_DATA ecg;
PC_CRITICAL_VS_DATA vs;
PC_CRITICAL_DM_DATA dm;
PC_CRITICAL_DC_DATA dc;
PC_CRITICAL_PC_DATA pc;
PC_CRITICAL_GL_DATA gl;
} PC_CRITICAL_DATA_TYPE;
extern PC_CRITICAL_DATA_TYPE pcCriticalData;
extern void pcCriticalDataUpdate(void);
extern bool pcGetCriticalData(GL_BOOT_TYPE boot_flag);
extern void pcStoreCriticalData(void);
extern GL_GAIN_TYPE8 GetpcCriticalGain (void);
# 25 "../behavior_man/bm.h" 2
# 1 "../procctl/pcconfig.h" 1
typedef char pcCfgVersionType;
typedef uint16_t pcCfgVersionCrcType;
typedef enum {
PC_LANG_ENGLISH,
PC_LANG_FRENCH,
PC_LANG_GERMAN,
PC_LANG_SPANISH,
PC_LANG_SWEDISH,
PC_LANG_ITALIAN,
PC_LANG_FINNISH,
PC_LANG_DUTCH,
PC_LANG_POLISH,
PC_LANG_IBERIAN_PORTUGUESE,
PC_LANG_DANISH,
PC_LANG_NORWEGIAN,
PC_LANG_LAST
} PC_LANGUAGE_TYPE;
typedef uint8_t PC_LANGUAGE_TYPE8;
typedef enum {
PC_CODE_SHORT,
PC_CODE_MEDIUM,
PC_CODE_LONG
} PC_CODE_SUMMARY_TYPE;
typedef uint8_t PC_CODE_SUMMARY_TYPE8;
typedef enum {
PC_MAN_ACCESS_MANUAL_DIRECT,
PC_MAN_ACCESS_AED_DIRECT,
PC_MAN_ACCESS_AED_CONFIRM_ONCE,
PC_MAN_ACCESS_AED_CONFIRM_ALWAYS,
PC_MAN_ACCESS_AED_PASSCODE_ONCE,
PC_MAN_ACCESS_AED_PASSCODE_ALWAYS,
PC_MAN_ACCESS_AED_RESTRICTED
} PC_MANUAL_ACCESS_TYPE;
typedef enum {
PC_CPR_TIMER_OFF,
PC_CPR_TIMER_15,
PC_CPR_TIMER_30,
PC_CPR_TIMER_45,
PC_CPR_TIMER_60,
PC_CPR_TIMER_90,
PC_CPR_TIMER_120,
PC_CPR_TIMER_180,
PC_CPR_TIMER_30_MIN
} PC_CPR_PROMPT_TIMER_TYPE;
typedef enum {
PC_PORT_INT_CELL,
PC_PORT_INT,
PC_PORT_EXT_CELL,
PC_PORT_EXT,
PC_PORT_DIRECT,
PC_PORT_EXT_FAX,
PC_PORT_INT_FAX,
PC_PORT_EXT_CELL_FAX,
PC_PORT_INT_CELL_FAX
} pcOutputPortType;
typedef enum {
PC_PORT_BAUD_9600,
PC_PORT_BAUD_19200,
PC_PORT_BAUD_38400,
PC_PORT_BAUD_57600,
PC_PORT_BAUD_115200
} PC_PORT_BAUD_TYPE;
typedef enum
{
PC_TIMEOUT_5_SECONDS,
PC_TIMEOUT_10_SECONDS,
PC_TIMEOUT_30_SECONDS
} PC_MENU_TIMEOUT_TYPE;
typedef struct
{
PC_LANGUAGE_TYPE8 language;
PC_CODE_SUMMARY_TYPE8 codeSummaryFormat;
uint8_t siteNumber[14 +1];
uint8_t deviceNumber[14 +1];
bool autoLog;
bool lineFilter50Hz;
uint8_t menuTimeoutSpeed;
uint16_t crc;
} pcGeneralConfigType;
typedef struct
{
GL_PADDLES_ENERGY_TYPE8 paddlesDefault;
uint16_t energyProtocol1;
uint16_t energyProtocol2;
uint16_t energyProtocol3;
uint16_t internalPadDefault;
bool vfvtAlarm;
bool voicePrompts;
bool shockTone;
bool syncAfterShock;
uint8_t manualAccess;
uint8_t manualPasscode[4 +1];
uint16_t crc;
} pcManualModeConfigType;
typedef struct
{
uint16_t energyProtocol1;
uint16_t energyProtocol2;
uint16_t energyProtocol3;
bool protocol_200_200_360;
bool voicePrompts;
bool autoAnalyze;
bool motionDetection;
uint8_t CPRtime1;
uint8_t CPRtime2;
uint16_t crc;
} pcAdvisoryModeConfigType;
typedef struct
{
uint8_t rate;
uint8_t current;
bool modeDemand;
bool internalPacer;
uint16_t crc;
} pcPacingConfigType;
typedef enum {
PC_ECG_CHANNEL_NONE,
PC_ECG_CHANNEL_PADDLES,
PC_ECG_CHANNEL_I,
PC_ECG_CHANNEL_II,
PC_ECG_CHANNEL_III,
PC_ECG_CHANNEL_AVL,
PC_ECG_CHANNEL_AVR,
PC_ECG_CHANNEL_AVF,
PC_ECG_CHANNEL_C,
PC_ECG_CHANNEL_PLETH,
PC_ECG_CHANNEL_CASCADE,
PC_ECG_CHANNEL_INVALID
} PC_ECG_CHANNEL_TYPE;
typedef struct
{
uint8_t channel1Default;
uint8_t channel2Default;
} pcDefaultLeadSet;
typedef struct
{
pcDefaultLeadSet sets[5 ];
uint8_t defaultSet;
bool continuousECG;
bool spo2Tone;
uint16_t crc;
} pcEcgConfigType;
typedef struct
{
uint8_t eventIndex[18 -1];
uint8_t customEvents[16 ][14 +1];
uint16_t crc;
} pcEventsConfigType;
typedef struct
{
bool autoDefib;
bool autoPacing;
bool autoCPSS;
bool autoSAS;
bool autoPatientAlarm;
bool autoEvent;
bool auto1stECG;
bool ECGmonitorMode;
uint8_t ECGmonitorFreqBW;
uint8_t ECGdiagnosticFreqBW;
bool alarmWaveforms;
bool eventWaveforms;
uint16_t crc;
} pcPrinterConfigType;
typedef struct
{
uint8_t name[14 +1];
uint8_t phone[14 +1];
uint8_t prefix1[14 +1];
uint8_t prefix2[14 +1];
uint8_t outputPort;
} pcSiteConfigType;
typedef struct
{
uint8_t baudRate;
uint8_t initString[4 ][40 +1];
} pcPortConfigType;
typedef enum
{
PC_DEFAULT_ALL,
PC_DEFAULT_CODE_SUMMARY,
PC_DEFAULT_CONTINUOUS_ECG
} pcDefaultReportType;
typedef struct
{
pcSiteConfigType sites[(19 + 19 ) ];
uint8_t defaultToData;
uint8_t defaultDataSite;
uint8_t defaultFaxSite;
uint8_t defaultFaxReport;
uint8_t defaultDataReport;
pcPortConfigType ports[9 ];
uint8_t organizationName[14 +1];
uint8_t organizationPhone[14 +1];
uint16_t crc;
} pcTransmitConfigType;
typedef struct
{
bool realTime;
bool dst;
uint16_t crc;
} pcClockConfigType;
typedef struct
{
uint8_t maintInterval;
uint32_t maintTime;
uint16_t crc;
} pcServiceConfigType;
typedef struct
{
uint16_t printHeadValue;
uint16_t pwm12mmPerSec;
uint16_t pwm25mmPerSec;
uint16_t pwm50mmPerSec;
uint16_t crc;
} pcPrinterCalType;
typedef struct
{
uint16_t lcdDutyCycle;
uint16_t crc;
} pcDisplayCalType;
typedef struct
{
uint16_t energySelectionTable[64];
uint16_t energySelectionTableSize;
uint16_t crc;
} pcEnergyCalibrationType;
typedef struct
{
uint8_t alarmVolume;
bool on;
uint16_t crc;
} pcAlarmType;
typedef struct {
pcCfgVersionCrcType versionCRC;
pcCfgVersionType version[20];
pcGeneralConfigType general;
pcManualModeConfigType manualMode;
pcAdvisoryModeConfigType advisoryMode;
pcPacingConfigType pacing;
pcEcgConfigType ECG;
pcEventsConfigType event;
pcPrinterConfigType printer;
pcTransmitConfigType transmission;
pcClockConfigType clock;
pcServiceConfigType service;
uint8_t configPasscode[4 +1];
uint16_t configPasscodeCRC;
uint8_t servicePasscode[4 +1];
uint16_t servicePasscodeCRC;
pcPrinterCalType printerCal;
pcDisplayCalType displayCal;
pcEnergyCalibrationType defibCal;
pcAlarmType alarm;
uint16_t crc;
} pcSystemConfigType;
extern pcSystemConfigType pcSysConfig;
extern pcSystemConfigType pcSysConfigDefaults;
extern bool pcSysConfigValid;
void
pcGetSysConfig(void);
void
pcSaveSysConfig(void);
void
pcRestoreConfigDefaults(void);
void
pcSetL12CompressionType(int8_t arg);
# 26 "../behavior_man/bm.h" 2
typedef struct {
uint16_t episode;
uint16_t reportType;
uint16_t reportNumber;
uint16_t sequenceNumber;
bool testConnection;
} REPORT_INFO_TYPE;
typedef enum {
SHOW_ALARM_LIMITS_NO_TIMEOUT,
SHOW_ALARM_LIMITS_TIMEOUT,
SHOW_ALARM_LIMITS_REFRESH_ONLY
} SHOW_ALARM_LIMITS_TYPE;
typedef struct {
uint16_t rate;
uint16_t current;
bool pauseFlag;
bool calibrating;
bool calibrationSuccessful;
bool fault;
bool rateFault;
} PACER_STATE_TYPE;
typedef struct {
uint8_t firstName[14 +1];
uint8_t lastName[14 +1];
uint8_t incident[14 +1];
uint8_t age;
bool isMale;
} PATIENT_INFO_TYPE;
typedef enum {
DEFIB_UNUSED,
DEFIB_CHARGING,
DEFIB_DUMPING,
DEFIB_CALIBRATING,
DEFIB_CALIBRATE_ABORT,
DEFIB_CALIBRATE_DONE,
DEFIB_TESTING,
DEFIB_TEST_DONE
} DEFIB_CHARGE_STATE;
typedef struct {
DEFIB_CHARGE_STATE chargeState;
uint16_t actualEnergy;
uint16_t energySelected;
bool syncOn;
} DEFIB_INFO_TYPE;
typedef enum {
CASCADE_OFF,
CASCADE_ON,
CASCADE_SUSPENDED
} STATE_CASCADE;
typedef enum {
QRS_IDLE,
QRS_DETECTED,
QRS_DISPLAYED,
QRS_DISPLAYED_1
} QRS_STATE_TYPE;
typedef struct {
volatile bool displayUp;
volatile bool needToRefreshSync1;
volatile bool needToRefreshSync2;
volatile bool checkPatientDisplayed;
volatile bool suppressHRAlarm;
volatile bool motionDisplayed;
bool printMenuUp;
uint8_t realSite;
uint8_t totalPrefixes;
uint8_t newPrefix[14 +1];
bool newPrefixValid;
uint8_t prefixValue;
bool deleting;
uint16_t previousDeletion;
PATIENT_INFO_TYPE patientInfo;
uint16_t lastEpisodeCount;
uint16_t episodeNumber;
} ui_unit_state_type;
typedef struct {
volatile bool primaryLeadOff;
uint32_t wiresDisplayed;
uint16_t countDownTime;
bool defibOccurred;
REPORT_INFO_TYPE reportInfo;
volatile aed_state_type aedState;
PACER_STATE_TYPE pacerState;
DEFIB_INFO_TYPE defibInfo;
pcAlarmData vfvtAlarm;
BM_STATE_TYPE currentState;
} bm_unit_state_type;
extern void bmInitSASEnergyTable (void);
extern void bm_EnterAEDMode (bool switchLeads, bool afterTransfer);
extern bm_unit_state_type bm_UnitState;
extern ui_unit_state_type ui_UnitState;
# 26 "pr_report.cpp" 2
# 1 "../../common/interProc.h" 1
typedef enum
{
GL_ECG_MON_BW_1_30,
GL_ECG_MON_BW_0_5_40,
END_OF_LIST_MON
}GL_ECG_MON_BW;
typedef enum
{
GL_ECG_DIAG_BW_0_05_40,
GL_ECG_DIAG_BW_0_05_150,
END_OF_LIST_DIAG
}GL_ECG_DIAG_BW;
# 27 "pr_report.cpp" 2
# 1 "../procctl/pcmfgdata.h" 1
typedef struct
{
char version[20];
uint8_t serialNumber[(18 + 1) + 1];
uint8_t dashNumber[(3 + 1) + 1];
pcLTimeType mfgDate;
uint32_t moduleConfig;
uint16_t crc;
} pcMfgDataType;
void
pcMfgDataInitialize(void);
void
pcMfgSerialNumberGet(uint8_t *buffer);
void
pcMfgSerialNumberSet(uint8_t *buffer);
void
pcMfgDashNumberGet(uint8_t *buffer);
void
pcMfgDashNumberSet(uint8_t *buffer);
pcLTimeType
pcMfgDateGet(void);
void
pcMfgDateSet(pcLTimeType newDate);
uint32_t
pcMfgModuleConfigGet(void);
void
pcMfgModuleConfigSet(uint32_t newConfig);
# 31 "pr_report.cpp" 2
# 1 "../storage_man/storeman.h" 1
typedef enum
{
DM_DEFIB = 0,
DM_PACER = 1,
DM_SAS = 2,
DM_CPSS = 3,
DM_ALARM = 4,
DM_PRINTER = 6,
DM_OPERATOR = 7,
DM_VITAL_SIGNS = 8,
DM_FIRST_WAVEFORM = 10,
DM_POWER_CYCLE = 11,
DM_GENERAL = 12,
DM_DATA_TRANSFER = 13,
DM_FREE_FORM = 14,
DM_ABSOLUTE_IMPEDANCE = 15,
DM_EVENT_WAVEFORM = 16,
DM_CONTINUOUS_ECG = 17,
DM_CONTINUOUS_IMPEDANCE = 18,
DM_PATIENT_ID = 24,
DM_INCIDENT_ID = 25,
DM_LAST_NAME = 26,
DM_FIRST_NAME = 27,
DM_SEX = 28,
DM_AGE = 29,
DM_POWER_ON = 30,
DM_POWER_OFF = 31,
DM_LAST_EVENT
} DM_TYPE;
typedef uint8_t DM_EVENT_TYPE;
typedef uint16_t DM_POSITION;
typedef uint32_t DM_EVENT_MASK;
typedef uint8_t DM_STATUS;
typedef uint8_t DM_DIRECTION;
typedef uint32_t DM_OFFSET;
typedef struct
{
uint8_t device_number[15 ];
uint8_t site_number[15 ];
uint8_t sw_version[16 ];
uint8_t config_num[10 ];
uint8_t unit_id_num[10 ];
uint8_t instance_id[(25+1) ];
int32_t time_delta;
uint8_t time_delta_not_set;
uint8_t config_str[(14+1) ];
} DM_INFO;
typedef struct
{
DM_OFFSET start_offset;
DM_OFFSET end_offset;
time_t time;
DM_STATUS flags;
uint32_t size;
DM_POSITION num_events;
bool continuous_cutoff;
bool event_wf_cutoff;
bool event_cutoff;
bool isMale;
bool isMale_entry;
uint8_t age;
bool age_entry;
DM_OFFSET info_offset;
DM_OFFSET first_name_offset;
bool first_name_entry;
DM_OFFSET last_name_offset;
bool last_name_entry;
DM_OFFSET incident_id_offset;
bool incident_id_entry;
DM_OFFSET patient_id_offset;
bool patient_id_entry;
DM_POSITION read_index;
DM_DIRECTION read_direction;
DM_EVENT_MASK read_mask;
DM_OFFSET read_offset;
} DM_EPISODE_ENTRY;
typedef struct
{
DM_POSITION index;
bool opened;
DM_EPISODE_ENTRY directory;
DM_INFO info;
uint8_t first_name[30 ];
uint8_t last_name[30 ];
uint8_t incident_id[30 ];
uint8_t patient_id[(25+1) ];
DM_POSITION cur_code_summary_index;
DM_POSITION cur_code_summary_sequence;
DM_POSITION cur_cont_index;
DM_POSITION cur_cont_imp_index;
uint16_t total_record_count;
uint16_t privateData;
void * privatePtr;
DM_POSITION wf_index[15 ];
uint16_t number_wf;
DM_POSITION read_index;
DM_DIRECTION read_direction;
DM_EVENT_MASK read_mask;
DM_OFFSET read_offset;
DM_OFFSET read_next;
} DM_EPISODE;
typedef uint32_t DM_STAMP;
typedef enum
{
DM_FREQ_MONITOR,
DM_FREQ_DIAGNOSTIC
} DM_FREQ_RESP_TYPE;
typedef enum
{
DM_PACER_STARTED = 1,
DM_PACER_SET,
DM_PACER_CHANGED,
DM_PACER_STOPPED,
DM_PACER_PAUSE_PRESSED,
DM_PACER_PAUSE_RELEASED,
DM_PACER_STABLE,
DM_PACER_MODE_CHANGED
} DM_PACER_TYPE_ENUMS;
typedef uint8_t DM_PACER_TYPE;
typedef enum
{
DM_HR_UPPER_ALARM = 0,
DM_HR_LOWER_ALARM = 1,
DM_SPO2_UPPER_ALARM = 2,
DM_SPO2_LOWER_ALARM = 3,
DM_SPO2_PR_UPPER_ALARM = 18,
DM_SPO2_PR_LOWER_ALARM = 19
} DM_ALARM_TYPE_ENUMS;
typedef uint16_t DM_ALARM_TYPE;
typedef enum
{
DM_REPORT_CODE_SUMMARY,
DM_REPORT_CONTINUOUS
} DM_REPORT_TYPE;
typedef enum
{
DM_DATA_TRANSFER_COMPLETED = 1,
DM_DATA_TRANSFER_CANCELED = 2,
DM_DATA_TRANSFER_NO_MODEM_101 = 101,
DM_DATA_TRANSFER_MODEM_INIT_ERROR_102 = 102,
DM_DATA_TRANSFER_MODEM_INIT_ERROR_103 = 103,
DM_DATA_TRANSFER_MODEM_INIT_ERROR_104 = 104,
DM_DATA_TRANSFER_MODEM_INIT_ERROR_100 = 100,
DM_DATA_TRANSFER_NO_DIAL_TONE_201 = 201,
DM_DATA_TRANSFER_BUSY_202 = 202,
DM_DATA_TRANSFER_CALL_NOT_COMPLETED_203 = 203,
DM_DATA_TRANSFER_CALL_NOT_COMPLETED_200 = 200,
DM_DATA_TRANSFER_UNABLE_TO_CONNECT_300 = 300,
DM_DATA_TRANSFER_UNABLE_TO_CONNECT_301 = 301,
DM_DATA_TRANSFER_UNABLE_TO_CONNECT_302 = 302,
DM_DATA_TRANSFER_UNABLE_TO_CONNECT_303 = 303,
DM_DATA_TRANSFER_UNABLE_TO_CONNECT_304 = 304,
DM_DATA_TRANSFER_LOST_CONNECTION_401 = 401,
DM_DATA_TRANSFER_TRANSMISSION_FAILED_500 = 500,
DM_DATA_TRANSFER_TRANSMISSION_FAILED_501 = 501,
DM_DATA_TRANSFER_TRANSMISSION_FAILED_502 = 502,
DM_DATA_TRANSFER_TRANSMISSION_FAILED_503 = 503,
DM_DATA_TRANSFER_TRANSMISSION_FAILED_600 = 600,
DM_DATA_TRANSFER_TRANSMISSION_FAILED_601 = 601,
DM_DATA_TRANSFER_END_OF_ERROR_CODE
} DM_DATA_TRANSFER_RESULT;
typedef struct
{
uint16_t Result ;
uint16_t Histo1 ;
uint16_t Histo2 ;
uint16_t AveFreq ;
uint16_t AveAmp ;
uint16_t Rate ;
uint8_t PrNum ;
uint8_t PrNumLim ;
uint8_t NrNum ;
uint8_t NrNumLim ;
} DM_SAS_RESULTS;
typedef struct
{
GL_LEAD_TYPE8 lead_type[GL_MAX_REGIONS];
uint16_t leads_off;
uint16_t saturated;
uint8_t fast_restore;
uint8_t cable_type;
bool rwave;
bool internal_pacer;
uint16_t rld;
int16_t vt;
int16_t v_gnd;
} DM_DATA_STATUS;
typedef struct
{
GL_LEAD_TYPE type;
uint16_t data_offset;
uint16_t status_size;
uint16_t status_offset;
uint16_t amplitude_multiplier;
uint16_t time_interval;
uint16_t baseline;
uint16_t low_pass;
bool pre_filtered;
GL_GAIN_TYPE gain;
DM_STAMP start_stamp;
DM_STAMP end_stamp;
} DM_WF_DETAILS;
typedef struct
{
uint8_t waveforms;
GL_REGION_TYPE8 regions;
DM_STAMP pre_acquisition;
DM_STAMP post_acquisition;
int16_t monitor_taps[GL_MAX_REGIONS][3 ];
} DM_WF_HEADER;
typedef struct
{
DM_WF_HEADER header;
DM_WF_DETAILS details[GL_MAX_REGIONS];
int8_t data[GL_MAX_REGIONS*((((3 + 5 ) * 500 ) *2)
+ (500 *3) )];
} DM_WF_RECORD;
extern bool dm_store_continuous_cutoff;
extern bool dm_store_event_wf_cutoff;
extern bool dm_store_event_cutoff;
extern GL_ECG_LEAD_STATUS type_2leadoff[];
typedef struct
{
uint16_t rate ;
uint16_t current ;
uint8_t mode ;
uint8_t sync ;
uint16_t QRS_lead ;
uint16_t pace_lead ;
} DM_PACER_SYNC;
void
dm_main_vitals_reset(void);
void
dm_store_initialization( void );
bool
dm_store_defib(void);
bool
dm_store_pacer(
DM_PACER_TYPE
);
bool
dm_store_sas(
uint8_t,
uint8_t,
DM_SAS_RESULTS *
);
bool
dm_store_cpss(uint8_t);
bool
dm_store_alarm(DM_ALARM_TYPE,uint16_t,uint16_t);
bool
dm_store_power(uint8_t);
bool
dm_store_printer(void);
bool
dm_store_operator(uint8_t);
bool
dm_store_vital_signs(DM_POSITION, bool);
bool
dm_store_first_waveform(void);
bool
dm_store_data_transfer(uint8_t site, uint16_t, uint32_t, DM_POSITION,
DM_POSITION);
bool
dm_store_charge_removed(void);
bool
dm_store_charge_complete(void);
bool
dm_store_aed_mode(bool on);
bool
dm_store_internal_pacer_state(bool on);
bool
dm_store_alarm_state(bool on);
bool
dm_store_vfvt_alarm_state(bool on);
bool
dm_store_sync_mode(bool on);
bool
dm_store_replace_battery(void);
bool
dm_store_service_fault(void);
bool
dm_store_connect_electrodes(void);
bool
dm_store_continuous_ecg(
uint16_t,
void *
);
bool
dm_store_continuous_imped(
uint16_t,
void *
);
bool
dm_store_out_of_memory(uint8_t value);
bool
dm_store_compensation_impedance(int16_t value);
bool
dm_store_lead_change(
uint8_t,
bool,
GL_LEAD_TYPE
);
bool
dm_store_gain_change(
GL_GAIN_TYPE
);
bool
dm_store_low_battery(
void
);
bool
dm_store_first_name(
uint8_t *
);
bool
dm_store_last_name(
uint8_t *
);
bool
dm_store_incident_id(
uint8_t *
);
bool
dm_store_patient_id(
uint8_t *
);
bool
dm_store_age(
uint8_t
);
bool
dm_store_sex(
bool
);
bool
dm_store_freq_resp(
DM_FREQ_RESP_TYPE
);
void
dm_configuration_encode(uint8_t *digit);
uint8_t
dm_configuration_decode(uint8_t code);
void
dm_configuration_string(uint8_t *str);
void
dm_continuous_initialization(
GL_BOOT_TYPE
);
bool
dm_continuous_store_impedance(
uint32_t
);
bool
dm_continuous_store_ecg(
uint32_t
);
bool
dm_continuous_check_ecg( void );
bool
dm_continuous_check_impedance( void );
bool
dm_check_database( void );
void
dm_th_chargeComplete( void );
void
dm_th_pacer_check( void );
void
dm_th_pacer_store(DM_PACER_TYPE);
void
dm_th_PaceEvent(DM_PACER_TYPE);
bool
dm_access_flash_info(
uint32_t *size,
uint32_t *block_size,
uint32_t *block_count
);
bool
dm_access_episode_time_date(
DM_POSITION,
time_t *
);
bool
dm_access_device_number(
DM_EPISODE *,
uint8_t *
);
bool
dm_access_site_number(
DM_EPISODE *,
uint8_t *
);
bool
dm_access_sw_version(
DM_EPISODE *,
uint8_t *
);
bool
dm_access_config_num(
DM_EPISODE *,
uint8_t *
);
bool
dm_access_unit_id(
DM_EPISODE *,
uint8_t *
);
bool
dm_access_instance_id(
DM_EPISODE *,
uint8_t *
);
bool
dm_access_time_delta(
DM_EPISODE *,
int32_t,
uint8_t
);
bool
dm_access_config_string(
DM_EPISODE *,
uint8_t *
);
bool
dm_access_first_name(
DM_POSITION,
uint8_t *,
uint16_t
);
bool
dm_access_last_name(
DM_POSITION,
uint8_t *,
uint16_t
);
bool
dm_access_incident_id(
DM_POSITION,
uint8_t *,
uint16_t
);
bool
dm_access_patient_id(
DM_POSITION,
uint8_t *,
uint16_t
);
bool
dm_access_sex(
DM_POSITION,
bool *
);
bool
dm_access_age(
DM_POSITION,
uint8_t *
);
uint16_t
dm_access_report_count(
DM_POSITION,
bool
);
bool
dm_access_transmit_flag(
DM_POSITION,
DM_POSITION,
bool,
bool *
);
bool
dm_access_print_flag(
DM_POSITION,
DM_POSITION,
bool *
);
bool
dm_access_report_type(
DM_POSITION,
DM_POSITION,
DM_REPORT_TYPE *,
uint16_t *
);
bool
dm_access(void);
# 32 "pr_report.cpp" 2
}
# 1 "../../common/uiCommLink/printer.h" 1
class Printer
{
public:
Printer();
~Printer();
enum Status
{
NO_STATUS = 0,
NOT_RUNNING = 1,
RUNNING = 2,
OUT_OF_PAPER = 3,
DOOR_OPEN = 4,
PAPER_OUT = 5,
NOT_FUNCTIONING = 6,
Status_LAST_ENTRY
};
static void waveformValue
(
unsigned char region,
signed short nextValue
);
static void defineWaveformRegion
(
unsigned char region,
unsigned short zeroPoint,
unsigned short bitsPerCm
);
static void text
(
const unsigned char *textString,
unsigned short row,
unsigned short font
);
static unsigned short columnsEmpty
(
);
static unsigned short getTextWidth
(
unsigned char font,
const unsigned char *text
);
static Printer::Status getStatus
(
);
static void nextSampleSet
(
);
static void skipColumns
(
unsigned short skip
);
static void setSampleSpeed
(
unsigned short speed
);
static void setPrinterSpeed
(
unsigned short speed
);
static void abortPrinting
(
);
static void getInfo
(
unsigned char *textLines,
unsigned char *printerSize,
unsigned short *verticalDots,
unsigned char *topMargin,
unsigned char *bottomMargin
);
};
# 39 "pr_report.cpp" 2
# 1 "pr_report.hpp" 1
# 1 "d:/erik/sys-control/os/target/h/assert.h" 1
extern "C" {
extern void __assert (const char *msg);
}
# 18 "pr_report.hpp" 2
extern "C"
{
# 1 "../sysmon/smlog.h" 1
# 1 "../sysmon/smsysid.h" 1
typedef enum {
UT_ID = 0,
UI_ID,
DC_ID,
DM_ID,
SM_ID,
PC_ID,
PP_ID,
AP_ID,
DSP_ID,
TH_ID,
PI_ID,
BM_ID,
SC_ID,
WD_ID,
ST_ID,
TI_ID,
DC_IRDA_ID,
SM_MAX_ID
} smSystemIdType;
# 17 "../sysmon/smlog.h" 2
# 1 "../sysmon/smtasklist.h" 1
typedef enum
{
UT_TID_X = ((( UT_ID & 0xf) << 16) | ( 0x0001 & 0xffff)) ,
UI_TID = ((( UI_ID & 0xf) << 16) | ( 0x0001 & 0xffff)) ,
UI_FAST_TID = ((( UI_ID & 0xf) << 16) | ( 0x0002 & 0xffff)) ,
DC_TID = ((( DC_ID & 0xf) << 16) | ( 0x0001 & 0xffff)) ,
DC_IO_TID,
DM_TID = ((( DM_ID & 0xf) << 16) | ( 0x0001 & 0xffff)) ,
SM_TID = ((( SM_ID & 0xf) << 16) | ( 0x0001 & 0xffff)) ,
ST_TID = ((( ST_ID & 0xf) << 16) | ( 0x0001 & 0xffff)) ,
PC_TID = ((( PC_ID & 0xf) << 16) | ( 0x0001 & 0xffff)) ,
WD_TID = ((( WD_ID & 0xf) << 16) | ( 0x0001 & 0xffff)) ,
SC_TID = ((( SC_ID & 0xf) << 16) | ( 0x0001 & 0xffff)) ,
PP_TID = ((( PP_ID & 0xf) << 16) | ( 0x0001 & 0xffff)) ,
AP_TID = ((( AP_ID & 0xf) << 16) | ( 0x0001 & 0xffff)) ,
DSP_TID = ((( DSP_ID & 0xf) << 16) | ( 0x0001 & 0xffff)) ,
TH_TID = ((( TH_ID & 0xf) << 16) | ( 0x0001 & 0xffff)) ,
PI_TID = ((( PI_ID & 0xf) << 16) | ( 0x0001 & 0xffff)) ,
BM_TID = ((( BM_ID & 0xf) << 16) | ( 0x0001 & 0xffff)) ,
TI_TID = ((( TI_ID & 0xf) << 16) | ( 0x0001 & 0xffff)) ,
DC_IRDA_TID = ((( DC_IRDA_ID & 0xf) << 16) | ( 0x0001 & 0xffff))
} smTaskIdType;
typedef enum
{
WD_PRI,
DSP_PRI,
SM_PRI,
START_TASK_PRI,
PP_PRI,
BM_PRI,
SC_PRI,
PI_PRI,
UI_PRI,
UI_FAST_PRI,
AP_PRI,
DM_PRI,
PR_PRI,
TI_PRI,
DC_PRI,
DC_IO_PRI,
DC_IRDA_PRI,
TH_PRI,
ST_PRI
}smTaskPriorityType;
typedef struct {
smTaskIdType tid;
char * taskname;
FUNCPTR entry;
int32_t priority;
int32_t stack_size;
int32_t checkin_rate;
bool resetOnDelinquent;
} smTaskListType;
typedef struct {
int32_t spawned_tid;
uint32_t last_checkin;
uint32_t last_delinquent;
uint32_t delinquent;
uint32_t total_delinquent;
uint32_t max_delta_checkin;
bool stack_low;
bool task_info_bad;
bool disable_checkin;
} smTaskInfoType;
extern const smTaskListType smTaskList[];
extern smTaskInfoType smTaskInfo[];
extern bool smTaskInitialized[];
extern const int32_t smTotalTasks;
void
pcStartTask(int argNotUsed);
void
uiTask(uint32_t tid, GL_BOOT_TYPE boot_flag, SEM_ID init_sem, SEM_ID run_sem);
void
uiFastTask(uint32_t tid, GL_BOOT_TYPE boot_flag, SEM_ID init_sem, SEM_ID run_sem);
void
dcTask(uint32_t tid, GL_BOOT_TYPE boot_flag, SEM_ID init_sem, SEM_ID run_sem);
void
dc_io(uint32_t tid, GL_BOOT_TYPE boot_flag, SEM_ID init_sem, SEM_ID run_sem);
void
dc_irda(uint32_t tid, GL_BOOT_TYPE boot_flag, SEM_ID init_sem, SEM_ID run_sem);
void
dmTask(uint32_t tid, GL_BOOT_TYPE boot_flag, SEM_ID init_sem, SEM_ID run_sem);
void
smTask(uint32_t tid, GL_BOOT_TYPE boot_flag, SEM_ID init_sem, SEM_ID run_sem);
void
stTask(uint32_t tid, GL_BOOT_TYPE boot_flag, SEM_ID init_sem, SEM_ID run_sem);
void
wdTask(uint32_t tid, GL_BOOT_TYPE boot_flag, SEM_ID init_sem, SEM_ID run_sem);
void
scTask(uint32_t tid, GL_BOOT_TYPE boot_flag, SEM_ID init_sem, SEM_ID run_sem);
void
ppTask(uint32_t tid, GL_BOOT_TYPE boot_flag, SEM_ID init_sem, SEM_ID run_sem);
void
apTask(uint32_t tid, GL_BOOT_TYPE boot_flag, SEM_ID init_sem, SEM_ID run_sem);
void
piTask(uint32_t tid, GL_BOOT_TYPE boot_flag, SEM_ID init_sem, SEM_ID run_sem);
void
bmTask(uint32_t tid, GL_BOOT_TYPE boot_flag, SEM_ID init_sem, SEM_ID run_sem);
void
dspTask(uint32_t tid, GL_BOOT_TYPE boot_flag, SEM_ID init_sem, SEM_ID run_sem);
void
thTask(uint32_t tid, GL_BOOT_TYPE boot_flag, SEM_ID init_sem, SEM_ID run_sem);
int32_t
smTaskIndex(smTaskIdType task_id);
int32_t
smTaskIdIndex(int32_t task_id);
void
scReceiveMsgTask(uint32_t tid, GL_BOOT_TYPE boot_flag,
SEM_ID init_sem, SEM_ID run_sem);
void
tiTask(uint32_t tid, GL_BOOT_TYPE boot_flag,
SEM_ID init_sem, SEM_ID run_sem);
# 18 "../sysmon/smlog.h" 2
typedef enum {
UT_ERROR_FLASH_ADDRESS = ((( UT_ID & 0xf) << 12) | ( 0x0001 & 0xfff)) ,
UT_ERROR_FLASH_VPP,
UT_ERROR_FLASH_ERASE,
UT_ERROR_FLASH_WRITE,
UT_ERROR_ADC_CHANNEL,
UT_ERROR_ADC_READ,
UT_ERROR_DAC_ACCESS,
UT_ERROR_DAC_FAILURE,
UT_ERROR_AIO_SEM_NOT_CREATED,
UT_ERROR_ADC_TEST_REG,
UT_ERROR_ADC_CAL_NOT_COMPLETE,
UT_ERROR_FLASH_ID_UNKNOWN,
BM_ERROR_INVALID_STATE = ((( BM_ID & 0xf) << 12) | ( 0x0001 & 0xfff)) ,
BM_INVALID_WAVEFORM1_LEAD,
BM_INVALID_WAVEFORM2_LEAD,
BM_INVALID_WAVEFORM_REGION,
UI_ERROR_TIMEOUT_TABLE_FULL = ((( UI_ID & 0xf) << 12) | ( 0x0001 & 0xfff)) ,
UI_ERROR_NO_TIMEOUT_SEMAPHORE,
UI_ERROR_BAD_MANUAL_ACCESS,
UI_ERROR_PADDLE_SHOCK_SEEN,
UI_ERROR_DISPLAY_SELF_TEST,
UI_ERROR_ENERGY_FAULT,
UI_ERROR_12LEAD_KEY_SEEN,
UI_ERROR_ANALYZE_KEY_SEEN,
UI_ERROR_ADVISORY_KEY_SEEN,
UI_ERROR_NIBP_KEY_SEEN,
UI_ERROR_CURRENTUP_KEY_SEEN,
UI_ERROR_CURRENTDOWN_KEY_SEEN,
UI_ERROR_RATEUP_KEY_SEEN,
UI_ERROR_RATEDOWN_KEY_SEEN,
UI_ERROR_PACER_KEY_SEEN,
UI_ERROR_PAUSE_KEY_SEEN,
UI_ERROR_INVALID_CPR_TIME,
UI_ERROR_INVALID_AED_STATE,
UI_ERROR_INVALID_SAS_STATUS,
UI_ERROR_INVALID_SILENCE,
UI_ERROR_INVALID_CORNER,
UI_ERROR_INVALID_FILL_COLOR,
UI_ERROR_INVALID_TH_STATUS,
UI_ERROR_INVALID_SEQUENCE_COUNT,
UI_ERROR_INVALID_MENU_CALLBACK,
UI_ERROR_INVALID_KNOB_STATE,
UI_ERROR_INVALID_PADDLES_DEFAULT,
UI_ERROR_INVALID_STYLE,
UI_ERROR_INVALID_LED_STATE,
UI_ERROR_INVALID_LED,
UI_ERROR_INVALID_CHANNEL,
UI_ERROR_INVALID_WAVE_2,
UI_ERROR_INVALID_WAVE_3,
UI_ERROR_INVALID_MENU_MODE,
UI_ERROR_INVALID_DATA_SIZE,
UI_ERROR_INVALID_SUB_FIELD,
UI_ERROR_INVALID_REPORT_TYPE,
UI_ERROR_INVALID_PACER_MODE,
UI_ERROR_INVALID_ALARM_STATE,
UI_ERROR_INVALID_QRS_STATE,
UI_ERROR_INVALID_PP_STATUS,
UI_ERROR_INVALID_PR_STATUS,
UI_ERROR_INVALID_SERVICE_STATE,
UI_ERROR_INVALID_KEY_STYLE,
UI_ERROR_INVALID_TONE,
UI_ERROR_INVALID_MENU_TIMEOUT,
UI_ERROR_INVALID_BATTERY_CAPACITY,
UI_ERROR_INVALID_DC_STATUS,
UI_ERROR_INVALID_L12_STATUS,
UI_ERROR_INVALID_WARNING_TONE,
UI_ERROR_INVALID_WARNING_TYPE,
UI_ERROR_CREATE_TIMEOUT_SEMAPHORE,
UI_ERROR_INVALID_TIMEOUT_SEMAPHORE,
UI_ERROR_CREATE_EVENT_QUEUE,
UI_ERROR_EXTRA_INFORMATION = ((( UI_ID & 0xf) << 12) | ( 0x0FFF & 0xfff)) ,
DC_ERROR_UNKNOWN = ((( DC_ID & 0xf) << 12) | ( 0x0001 & 0xfff)) ,
DC_ERROR_DC_MSG_QUEUE_CREATE,
DC_ERROR_RING_BUFFER_CREATE,
DC_ERROR_UNABLE_TO_INITIALIZE_465_UART,
DC_ERROR_UNABLE_TO_INITIALIZE_SERIAL_DRIVER,
DC_ERROR_UNABLE_TO_ACCESS_MSG_Q,
DC_ERROR_UNSUCCESSFUL_DEVICE_READ,
DC_ERROR_UNSUCCESSFUL_RING_BUFFER_READ,
DC_ERROR_UNSUCCESSFUL_RING_BUFFER_WRITE,
DC_ERROR_UNSUCCESSFUL_DEVICE_WRITE,
DC_ERROR_UNKNOWN_FD_DURING_QUERY,
DC_ERROR_UNKNOWN_FD_DURING_WRITE,
DC_ERROR_UNABLE_TO_COMPLETE_WRITE,
DC_ERROR_UNKNOWN_ACCESSOR,
DC_ERROR_UP_TO_APP_MSG_QUEUE_WRITE,
DC_ERROR_UNABLE_TO_INIT_UART_FOR_DIRECT_XFER,
DC_ERROR_UNABLE_TO_RESET_UART_FOR_DIRECT_XFER,
DC_ERROR_UNABLE_TO_INIT_UART_FOR_EXT_XFER,
DC_ERROR_UNABLE_TO_RESET_UART_FOR_EXT_XFER,
DC_ERROR_UNABLE_TO_GET_DM_REPORT,
DC_ERROR_DOWN_TO_SESSION_MSG_QUEUE_WRITE,
DM_ERROR_UNKNOWN = ((( DM_ID & 0xf) << 12) | ( 0x0001 & 0xfff)) ,
DM_ERROR_MAIN_CREATING_SEM,
DM_ERROR_MAIN_BAD_BOOT,
DM_ERROR_MAIN_QUEUE_FULL,
DM_ERROR_DATABASE_ERASE_ADJUST,
DM_ERROR_DATABASE_ERASE_FAILED,
DM_ERROR_DATABASE_ERASE_VERIFY,
DM_ERROR_DATABASE_FLASH_ERASE,
DM_ERROR_DATABASE_CREATE_SEM,
DM_ERROR_DATABASE_EPISODE_END,
DM_ERROR_DATABASE_FLASH_BAD,
DM_ERROR_DATABASE_WRITE_HEADER,
DM_ERROR_DATABASE_WRITE_CONTENT,
DM_ERROR_DATABASE_REWRITE_HDR,
DM_ERROR_DATABASE_REWRITE_WF,
DM_ERROR_DATABASE_REWRITE_VS,
DM_ERROR_DATABASE_REWRITE_CONT,
DM_ERROR_DATABASE_REWRITE_DELTA,
DM_ERROR_DATABASE_VERIFY_HEADER,
DM_ERROR_DATABASE_VERIFY_CONTENT,
DM_ERROR_DATABASE_READ_CRC,
DM_ERROR_BUFFER_ZEROED,
DM_ERROR_BUFFER_FALLING_BEHIND,
DM_ERROR_SCP_INIT_FAIL,
DM_ERROR_SCP_BUFFER_OVERRUN,
DM_ERROR_BAD_LINKED_LIST,
DM_ERROR_SCP_MEM_OVERRUN,
DM_ERROR_SCP_MM_SEM_FAILED,
DM_ERROR_CHECK_NO_TYPE,
DM_ERROR_CHECK_BAD_TYPE,
DM_ERROR_CHECK_BAD_CRC,
DM_ERROR_CHECK_NEWEST_FIND,
DM_ERROR_CHECK_OLDEST_FIND,
DM_ERROR_CHECK_EVENT_ID,
DM_ERROR_CHECK_REST_BLOCK,
DM_ERROR_MAIN_PKT_SEM,
DM_ERROR_MAIN_CBUFFER_SEM,
DM_ERROR_CHECK_OLDEST_TOTAL,
DM_ERROR_CHECK_NEWEST_TOTAL,
DM_ERROR_DELETE_EPISODE,
DM_ERROR_STORE_VITAL_SIGNS,
DM_ERROR_STORE_WRITE,
DM_ERROR_DATABASE_RESET,
DM_ERROR_CHECK_FIRST_RECORD,
DM_ERROR_SCP_LEAD_ERROR,
DM_ERROR_CHECK_EPISODE,
DM_ERROR_STORAGE_OPEN,
DM_ERROR_STORAGE_CLOSE,
DM_ERROR_STORAGE_ERASE,
DM_ERROR_STORAGE_CLEAR,
DM_ERROR_STORAGE_WRITE,
DM_ERROR_STORAGE_READ,
DM_ERROR_STORAGE_CRC,
DM_ERROR_EXTRA_INFORMATION = ((( DM_ID & 0xf) << 12) | ( 0x0FFF & 0xfff)) ,
SM_ERROR_INIT_UNKNOWN_TASK_ID = ((( SM_ID & 0xf) << 12) | ( 0x0001 & 0xfff)) ,
SM_ERROR_UNKNOWN_TASK_ID,
SM_ERROR_TASK_SUSPENDED,
SM_ERROR_TASK_NOT_FOUND,
SM_ERROR_LOG_CRC,
SM_ERROR_LOG_MSGQ_NOT_CREATED,
SM_ERROR_LOG_MSGQ_ERROR,
SM_ERROR_LOG_LENGTH,
SM_ERROR_RAM_FAILURE,
SM_ERROR_BAD_CRC,
SM_ERROR_CRC_FAILURE,
SM_ERROR_VOLTAGE_LOW,
SM_ERROR_VOLTAGE_HIGH,
SM_ERROR_STACK_LOW,
SM_ERROR_TASK_INFO_GET,
SM_ERROR_SERVICE_LED,
SM_ERROR_DEFIB_SERVICE_SYNC,
SM_ERROR_FONT_VOICE_CKSUM,
SM_ERROR_FONT_VOICE_CRC,
PC_ERROR_SYNC_SEM_NOT_CREATED = ((( PC_ID & 0xf) << 12) | ( 0x0001 & 0xfff)) ,
PC_ERROR_WATCHDOG_SHORT_FAILURE,
PC_ERROR_WATCHDOG_LONG_FAILURE,
PC_ERROR_WATCHDOG_UNEXPECTED,
PC_ERROR_RAM_AT_BOOT,
PC_ERROR_BAD_CHECKSUM,
PC_ERROR_RTC_SEM_NOT_CREATED,
PC_ERROR_RTC_NO_BATTERY,
PC_ERROR_NVRAM_SEM_NOT_CREATED,
PC_ERROR_TASK_NOT_SPAWNED,
PC_ERROR_TASK_INIT_TIMEOUT,
PC_ERROR_TASK_INIT_SEMAPHORE,
PC_ERROR_TASK_DELINQUENT,
PC_ERROR_CONFIG_VERSION,
PC_ERROR_CONFIG_CRC,
PC_ERROR_CONFIG_LIMIT,
PC_ERROR_CREATE_WATCHDOG,
PC_ERROR_METERS_VERSION,
PC_ERROR_METERS_CRC,
PC_ERROR_MFG_DATA_VERSION,
PC_ERROR_MFG_DATA_CRC,
PC_ERROR_FORCED_RESET_FAILED,
PC_ERROR_BAD_SHUTDOWN_TIME,
PC_ERROR_BAD_ABS_SHUTDOWN_TIME,
PC_ERROR_PACER_POWER_CONTROL,
PC_ERROR_RTC_BAD,
PC_ERROR_RTC_DRIFT,
PC_ERROR_EXC_UNKNOWN,
PC_ERROR_EXC_PARALLEL,
PC_ERROR_EXC_TRACE_INSTRUCTION,
PC_ERROR_EXC_TRACE_BRANCH,
PC_ERROR_EXC_TRACE_CALL,
PC_ERROR_EXC_TRACE_RETURN,
PC_ERROR_EXC_TRACE_PRERETURN,
PC_ERROR_EXC_TRACE_SUPERVISOR,
PC_ERROR_EXC_TRACE_MARK,
PC_ERROR_EXC_TRACE_UNKNOWN,
PC_ERROR_EXC_OP_INVALID_OPCODE,
PC_ERROR_EXC_OP_UNIMPLEMENTED,
PC_ERROR_EXC_OP_UNALIGNED,
PC_ERROR_EXC_OP_INVALID_OPERAND,
PC_ERROR_EXC_OP_UNKNOWN,
PC_ERROR_EXC_ARITH_OVERFLOW,
PC_ERROR_EXC_ARITH_ZERO_DIVIDE,
PC_ERROR_EXC_ARITH_UNKNOWN,
PC_ERROR_EXC_CONSTRAINT,
PC_ERROR_EXC_PROTECTION,
PC_ERROR_EXC_TYPE,
PC_ERROR_CRITICAL_DATA_CORRUPT,
DSP_ERROR_X = ((( DSP_ID & 0xf) << 12) | ( 0x0001 & 0xfff)) ,
DSP_ERROR_MSG_QUEUE_CREATE,
DSP_ERROR_MSG_QUEUE_SEND,
DSP_ERROR_MSG_QUEUE_RECEIVE,
DSP_ERROR_CONNECT_SYS_INT,
DSP_ERROR_CONNECT_PKT_INT,
DSP_ERROR_SAS_MOTION_QUEUE_SEND,
DSP_ERROR_SAS_ECG_QUEUE_SEND,
DSP_ERROR_CREATE_WATCHDOG,
DSP_ERROR_SEMAPHORE_CREATE,
DSP_ERROR_CMD_QUEUE_FULL,
DSP_ERROR_DSP_VOLTAGE,
DSP_ERROR_PREAMP_CALIBRATION,
DSP_ERROR_NVRAM_FAULT,
DSP_ERROR_PP_ECG_SYNC,
DSP_ERROR_PADDLE_ECG_SYNC,
AP_ERROR_X = ((( AP_ID & 0xf) << 12) | ( 0x0001 & 0xfff)) ,
AP_ERROR_WDOG_STATUS,
AP_ERROR_WDOG_CREATE,
AP_ERROR_INVALID_CMND,
AP_ERROR_INVALID_STATE,
AP_ERROR_LIMIT_CTR_PTR,
AP_ERROR_INVALID_TI_COMMAND,
AP_ERROR_TI_COMMAND_NOT_IDLE,
AP_ERROR_TI_REQUEST_WRITE,
AP_ERROR_TI_MSGQ_NOT_CREATED,
AP_ERROR_TI_QUEUE_READ,
AP_ERROR_UI_QUEUE_READ,
AP_ERROR_UI_COMMAND_NOT_IDLE,
AP_ERROR_INVALID_UI_COMMAND,
AP_ERROR_UI_QUEUE_WRITE,
AP_ERROR_ECG_FALLING_BEHIND,
AP_ERROR_IMP_FALLING_BEHIND,
AP_ERROR_UI_MSGQ_NOT_CREATED,
AP_ERROR_COULD_NOT_INIT,
PP_ERROR_UNKNOWN_MSG_ID = ((( PP_ID & 0xf) << 12) | ( 0x0001 & 0xfff)) ,
PP_ERROR_BAD_CRC,
PP_ERROR_INVALID_MSG_ID,
PP_ERROR_CODE_DOWNLOAD_FAILED,
PP_ERROR_INVALID_ECG_BANDWIDTH,
PP_ERROR_UNKNOWN_ECG_CABLE_TYPE,
PP_ERROR_UNEXPECTED_MSG,
PP_ERROR_PP_MODULE_INACTIVITY,
PP_ERROR_PP_RAM_TEST_FAILURE,
PP_ERROR_PP_CRC_TEST_FAILURE,
PP_ERROR_PP_ECG_TEST_FAILURE,
PP_ERROR_USB_TRANSFER_FAIL,
PP_ERROR_CONFIG_DESCRIPTOR,
PP_ERROR_ECG,
PP_ERROR_ECG_SERVICE,
PP_ERROR_SPO2_SERVICE,
PP_ERROR_SPO2_BOARD_FAIL,
PP_ERROR_SPO2_DIAG_FAIL,
PP_ERROR_PP_CODE_UPDATE,
PP_ERROR_INVALID_RX_CMD,
PP_ERROR_SPO2_CMD_FAIL,
PP_ERROR_SPO2_CMD_NAK,
PP_ERROR_SPO2_CMD_INOP,
PP_ERROR_INTERNAL,
TH_ERROR_ERROR_UNKNOWN = ((( TH_ID & 0xf) << 12) | ( 0x0001 & 0xfff)) ,
TH_ERROR_DEFIB_LINK_DOWN,
TH_ERROR_PACER_LINK_DOWN,
TH_ERROR_UNEXPECTED_ENERGY,
TH_ERROR_CAP_OVERCHARGED,
TH_ERROR_WRONG_DEFIB_MODE,
TH_ERROR_WRONG_DEFIB_STATE,
TH_ERROR_DEFIB_DISABLE,
TH_ERROR_UNKOWN_DE_RESPOND,
TH_ERROR_DE_WRONG_ENG_SELECT,
TH_ERROR_SHOCK_NOT_DELIVERED,
TH_ERROR_WRONG_TRANSFER_REQUEST,
TH_ERROR_CHARGING_EXPIRED,
TH_ERROR_WRONG_CHARGE_REQUEST,
TH_ERROR_CAP_OUT_OF_RANGE,
TH_ERROR_PA_RATE_OUT_OF_RANGE,
TH_ERROR_PA_CURRENT_OUT_OF_RANGE,
TH_ERROR_PA_MISS_RATE,
TH_ERROR_PA_MISS_CURRENT,
TH_ERROR_DE_MISS_ENERGY,
TH_ERROR_MSGQ_NOT_CREATED,
TH_ERROR_MSG_CHECKSUM,
TH_ERROR_DEFIB,
TH_ERROR_PACER,
TH_ERROR_XFER_HOLD_TEST,
TH_ERROR_PACER_FAULT,
TH_ERROR_DEFIB_WDT_DISABLE_FAIL,
TH_ERROR_UNKWN_ADC_READ_REQUEST,
TH_ERROR_UNKWN_DEFIB_STATE,
TH_ERROR_UNKWN_ERR_ACTION,
TH_ERROR_UNKWN_TEST_RESULT,
TH_ERROR_PACER_DISABLE,
TH_ERROR_CAP_CHARGE_FAIL,
TH_ERROR_CORRUPT_ENERGY_SELECT,
TH_ERROR_XFER_ENABLE_ON,
TH_ERROR_VCAP2_SATURATED,
TH_ERROR_CORRUPT_PACER_STAT,
TH_ERROR_ENERGY_RESIDUE,
TH_ERROR_PA_RATE_CORRUPT,
TH_ERROR_CAL_ENERGY_FAIL,
TH_ERROR_BTE_FAIL,
TH_ERROR_BTE_UNKWN_ENERGY,
TH_ERROR_DEFIB_CONFIG,
TH_ERROR_DUMP_LINE_FAIL,
PI_ERROR_TEMP_TOO_LOW = ((( PI_ID & 0xf) << 12) | ( 0x0001 & 0xfff)) ,
PI_ERROR_TEMP_TOO_HIGH,
PI_ERROR_SELF_TEST_FAIL,
PI_ERROR_WRONG_PRINTER_TYPE,
PI_ERROR_FALLING_BEHIND,
PI_ERROR_WAITING_FOR_DATA,
PI_ERROR_INVALID_ANNOTATION_STATE,
PI_ERROR_INVALID_LEAD_TO_STATUS,
PI_ERROR_INVALID_ALARM_EVENT,
PI_ERROR_INVALID_PACER_EVENT_TYPE,
PI_ERROR_INVALID_STROBE_STATE,
PI_ERROR_INVALID_EVENT,
PI_ERROR_INVALID_L12_LEAD,
PI_ERROR_INVALID_GAIN,
PRFAX_ERROR_RING_BUFFER_CREATE = 0xbe00,
PRFAX_ERROR_ACCESS_RING_BUFFER,
PRFAX_ERROR_4DEBUG,
BM_ERROR_MSGQ_ERROR = ((( BM_ID & 0xf) << 12) | ( 0x0001 & 0xfff)) ,
SC_ERROR_DRIVER_INSTALL = ((( SC_ID & 0xf) << 12) | ( 0x0001 & 0xfff)) ,
SC_ERROR_USB_INITIALIZE,
SC_ERROR_DEVICE_CREATE,
SC_ERROR_SCI_FRAME,
SC_ERROR_SCI_PARITY,
SC_ERROR_READ_FULL,
SC_ERROR_SCI_INITIALIZE,
SC_ERROR_DEVICE_NOT_SUPPORTED,
SC_ERROR_COULD_NOT_OPEN,
SC_ERROR_SCI_FIOSETOPTIONS,
SC_ERROR_MSG_SIZE,
SC_ERROR_SCI_WRITE,
SC_ERROR_SELECT,
SC_ERROR_SCI_MSGQ_ERROR,
SC_ERROR_MSGQ_NOT_CREATED,
SC_ERROR_RX_SEM_NOT_CREATED,
SC_ERROR_IOCTL_FAILED,
SC_ERROR_PADDLES_MSG_CKSUM,
SC_ERROR_PADDLES_MSG_SIZE,
SC_ERROR_PADDLES_MSG_ID
} smErrorType;
typedef struct
{
uint16_t error;
pcLTimeType time;
uint32_t info;
} smLogItemType;
typedef struct
{
uint8_t numOfLoggedErrors;
smLogItemType errorLog[50 ];
uint16_t crc;
} smErrorLogDataType;
typedef struct
{
smErrorType errorCode;
uint32_t maxCount;
uint32_t currentCount;
bool clearAfterLog;
} smSmartErrorFlagType;
typedef enum
{
SM_NOT_LOGGED,
SM_WAS_LOGGED,
SM_PREVIOUSLY_LOGGED
} smSmartErrorFlagStatusType;
void
smLogError(
smErrorType error,
uint32_t info
);
void
smLogErrorISRsafe(
smErrorType error,
uint32_t info
);
uint8_t
smLogLength(void);
bool
smGetLog(
smLogItemType* item,
uint8_t index);
void
smFlushLog(void);
void
smTaskInitCheckin(uint32_t task_id);
void
smTaskCheckin(uint32_t task_id);
void
smDisableTaskCheckin(uint32_t task_id);
void
smEnableTaskCheckin(uint32_t task_id);
bool
smSelftestFirstPassComplete(void);
void
smSmartErrorFlagClear(
smSmartErrorFlagType *errorFlag
);
smSmartErrorFlagStatusType
smSmartErrorFlagLog(
smSmartErrorFlagType *errorFlag,
uint32_t info
);
void smDisableFontCRC(void);
# 29 "pr_report.hpp" 2
}
class Report
{
public:
Report() {}
virtual ~Report() {}
virtual void Start(void) = 0;
virtual void Abort(void) = 0;
virtual void Status(void) = 0;
static inline void setFrequencyRespnse(bool freqResp);
static inline bool getFrequencyResponse(void);
enum
{
MAX_WAVEFORMS = 1,
PR_MIN_MAX_SAMPLES = 3,
PRINTER_LOWER_EDGE = 5,
VECTOR_COLUMNS_PER_TEXT = 15,
PATIENT_INFO_WIDTH = 90,
BITS_PER_TEXT_LINE = 102,
TEXT_LENGTH = 128,
PRINTER_HEIGHT_50MM = 983
};
enum
{
CONT_BOTTOM_TEXT_LINES = 1,
CONT_TOP_TEXT_LINES = 2,
CONT_BOTTOM_TEXT_DOTS = (CONT_BOTTOM_TEXT_LINES * BITS_PER_TEXT_LINE),
CONT_TOP_TEXT_DOTS = (CONT_TOP_TEXT_LINES * BITS_PER_TEXT_LINE),
CONT_50_WAVEFORM_SIZE = (PRINTER_HEIGHT_50MM - CONT_BOTTOM_TEXT_DOTS - CONT_TOP_TEXT_DOTS),
PULSE_WIDTH_0MV_HORIZONTAL = 20,
PULSE_WIDTH_1MV_HORIZONTAL = 80,
PULSE_TOTAL_WIDTH = (PULSE_WIDTH_0MV_HORIZONTAL + PULSE_WIDTH_0MV_HORIZONTAL + PULSE_WIDTH_1MV_HORIZONTAL)
};
typedef enum
{
CENTER_CONTINUOUS,
CENTER_EVENT,
CENTER_SAS
} PR_CENTER_TYPE;
typedef enum
{
PR_NO_FORCED_DIAG,
PR_FORCED_DIAG,
PR_DUMB
} PR_ANNOTATION_BW_TYPE;
typedef enum
{
PR_REPORT_DONE,
PR_REPORT_ACTIVE
} PR_REPORT_STATUS;
protected:
virtual void waveformValue(uint8_t region, int16_t nextValue);
virtual void defineWaveformRegion(uint8_t region, uint16_t zeroPoint,
uint16_t bitsPerCm);
virtual void text(const uint8_t *textString,
uint16_t row, uint16_t font);
virtual uint16_t columnsEmpty(void);
virtual uint16_t getTextWidth(uint8_t font, const uint8_t *textString);
virtual Printer::Status getStatus(void);
virtual void nextSampleSet(void);
virtual void skipColumns(uint16_t skip);
virtual void setSampleSpeed(uint16_t speed);
virtual void setPrinterSpeed(uint16_t speed);
virtual void abortPrinting(void);
virtual void getInfo(uint8_t *textLines,
uint8_t *printerSize,
uint16_t *verticalDots,
uint8_t *topMargin,
uint8_t *bottomMargin);
virtual void StartUnderlineText(uint8_t line);
virtual void StopUnderlineText(void);
inline int32_t scaleValue(int16_t amplitude, GL_GAIN_TYPE gain);
void storeToMinMax(int region, int32_t lower, int32_t upper);
void getMinMax(int region, int32_t * const min, int32_t * const max);
void printStdPulse(const GL_LEAD_TYPE8 *leads,
const GL_GAIN_TYPE *gains,
const bool showEdge);
void pulse(const GL_GAIN_TYPE *gains, const GL_LEAD_TYPE8 *leads,
uint16_t count, int16_t amplitude,
bool showEdge, bool smallTicks);
void plotSample(int region, int16_t lower,
int16_t upper, GL_GAIN_TYPE gain,
bool showSyncMark, int16_t syncAmplitude,
bool showPacerPulse);
void computeCenters(PR_CENTER_TYPE type);
void printPatientName(DM_EPISODE * const episode, uint16_t width);
void printPatientID(DM_EPISODE * const episode, uint16_t width);
void printIncidentID(DM_EPISODE * const episode, uint16_t width);
uint16_t printBottomAnnotation(bool paddles,
PR_ANNOTATION_BW_TYPE forceDiag,
const GL_GAIN_TYPE gain);
void regionAnnotation(int region,
const GL_LEAD_TYPE8 lead_type,
const GL_GAIN_TYPE scale,
GL_ECG_MODE_EVENT_LEAD_STATUS status,
bool tickMark,
bool scale_labels);
void scalePlethWaveform(GL_GAIN_TYPE gain,
int16_t *amplitude,
int16_t *filtered_amplitude);
void resetMinMax(int regionToReset);
void WaitForText(void);
void justify(uint8_t line, uint16_t width,
const uint8_t * const left,
const uint8_t * const right);
void formatDeviceInfo(DM_EPISODE * const episode, bool showVersion,
uint8_t * const left, uint8_t * const right);
void formatAgeString(uint8_t age, uint8_t *string);
bool formatHRData(const PC_CRITICAL_VS_DATA *vitals, uint8_t *title, uint8_t *value);
bool formatSPO2Data(const PC_CRITICAL_VS_DATA *vitals,
uint8_t *title, uint8_t *value, bool addPR);
void printSeparator(void);
void centerText(uint8_t row, const uint8_t * const string, uint8_t fieldWidth);
GL_MESSAGE_NUMBER_TYPE leadToName(GL_LEAD_TYPE8 lead);
GL_ECG_MODE_EVENT_LEAD_STATUS convertLeadToStatusMask(GL_LEAD_TYPE8 lead);
enum
{
FONT_NORMAL = 0,
FONT_BOLD = 1,
FONT_SPECIAL = 2,
MAX_LINES = 8
};
static uint16_t waveCenterPoint_m[4];
static const GL_MESSAGE_NUMBER_TYPE pr12_months_m[];
static const GL_MESSAGE_NUMBER_TYPE waveformNames_m[];
uint8_t dotCounter_m;
private:
static bool frequencyResponse_m;
};
int32_t
Report::scaleValue(int16_t amplitude, GL_GAIN_TYPE gain)
{
if (gain == GL_GAIN_X_20)
{
return (amplitude + amplitude);
}
switch (gain)
{
case GL_GAIN_X_10:
return amplitude;
break;
case GL_GAIN_X_05:
return amplitude / 2;
break;
case GL_GAIN_X_025:
return amplitude / 4;
break;
case GL_GAIN_X_15:
return (amplitude + amplitude + amplitude) / 2;
break;
case GL_GAIN_X_20:
return (amplitude + amplitude);
break;
case GL_GAIN_X_25:
return amplitude + amplitude + amplitude / 2;
break;
case GL_GAIN_X_30:
return amplitude + amplitude + amplitude;
break;
case GL_GAIN_X_40:
return amplitude + amplitude + amplitude + amplitude;
break;
default:
smLogError(PI_ERROR_INVALID_GAIN, gain);
((void) (( 0 ) ? ((void) 0) : __assert("Assertion failed: ""0"", file " "pr_report.hpp" ", line ""274" "\n"))) ;
break;
}
return 0;
}
inline void Report::setFrequencyRespnse(bool freqResp)
{
frequencyResponse_m = freqResp;
}
inline bool Report::getFrequencyResponse(void)
{
return(frequencyResponse_m);
}
# 40 "pr_report.cpp" 2
const GL_MESSAGE_NUMBER_TYPE Report::pr12_months_m[] =
{
GL_MSG_JAN, GL_MSG_FEB, GL_MSG_MAR, GL_MSG_APR,
GL_MSG_MAY, GL_MSG_JUN, GL_MSG_JUL, GL_MSG_AUG,
GL_MSG_SEP, GL_MSG_OCT, GL_MSG_NOV, GL_MSG_DEC
};
const GL_MESSAGE_NUMBER_TYPE Report::waveformNames_m[] =
{
GL_MSG_PADDLES,
GL_MSG_I, GL_MSG_II, GL_MSG_III,
GL_MSG_AVR, GL_MSG_AVL, GL_MSG_AVF,
GL_MSG_PLETH,
GL_MSG___
};
uint16_t Report::waveCenterPoint_m[4];
bool Report::frequencyResponse_m;
bool pr_firstTime[4];
int32_t pr_minMax[4][Report::PR_MIN_MAX_SAMPLES][2];
uint8_t pr_minMaxOffset[4];
static uint16_t maxTextWidth = 0;
void
Report::pulse(const GL_GAIN_TYPE *gains, const GL_LEAD_TYPE8 *leads,
uint16_t count, int16_t amplitude,
bool showEdge, bool smallTicks)
{
int region;
while (count--)
{
dotCounter_m += 1;
if (dotCounter_m == VECTOR_COLUMNS_PER_TEXT)
{
if (showEdge)
{
text((const uint8_t *)"\x7f\3\x06", 1, FONT_NORMAL);
text((const uint8_t *)"\x7f\3\x07", MAX_LINES - 2, FONT_NORMAL);
}
dotCounter_m = 0;
}
for (region = 0; region < GL_MAX_REGIONS; ++region)
{
if (leads[region] <= GL_LEAD_C)
{
plotSample(region, amplitude, amplitude,
gains[region],0 , 0, 0 );
}
}
}
}
void
Report::printStdPulse(const GL_LEAD_TYPE8 *leads,
const GL_GAIN_TYPE *gains,
const bool showEdge)
{
resetMinMax(GL_WAVEFORM_1);
resetMinMax(GL_WAVEFORM_2);
pulse(gains, leads, PULSE_WIDTH_0MV_HORIZONTAL, 0, showEdge, 0 );
pulse(gains, leads, PULSE_WIDTH_1MV_HORIZONTAL, 205, showEdge, 1 );
pulse(gains, leads, PULSE_WIDTH_0MV_HORIZONTAL, 0, showEdge, 0 );
}
void
Report::plotSample(int region, int16_t lower, int16_t upper,
GL_GAIN_TYPE gain, bool showSyncMark,
int16_t syncAmplitude, bool showPacerPulse)
{
int32_t minValue;
int32_t maxValue;
((void) (( region < 4 ) ? ((void) 0) : __assert("Assertion failed: ""region < 4"", file " "pr_report.cpp" ", line ""236" "\n"))) ;
if (lower == upper)
{
int32_t scaledValue = scaleValue(lower, gain);
if (showPacerPulse)
{
scaledValue += 205;
}
storeToMinMax(region, scaledValue, scaledValue);
}
else
{
int32_t scaledLower = scaleValue(lower, gain);
int32_t scaledUpper = scaleValue(upper, gain);
if (showPacerPulse)
{
scaledUpper += 205;
}
storeToMinMax(region, scaledLower, scaledUpper);
}
getMinMax(region, &minValue, &maxValue);
minValue += waveCenterPoint_m[region];
maxValue += waveCenterPoint_m[region];
if (maxValue > PRINTER_HEIGHT_50MM)
{
maxValue = PRINTER_HEIGHT_50MM;
}
else if (maxValue < PRINTER_LOWER_EDGE)
{
maxValue = PRINTER_LOWER_EDGE;
}
if (minValue > PRINTER_HEIGHT_50MM)
{
minValue = PRINTER_HEIGHT_50MM;
}
else if (minValue < PRINTER_LOWER_EDGE)
{
minValue = PRINTER_LOWER_EDGE;
}
if (showSyncMark)
{
scaleValue(syncAmplitude, gain);
}
}
void
Report::scalePlethWaveform(GL_GAIN_TYPE gain, int16_t *amplitude,
int16_t *filtered_amplitude)
{
switch (gain)
{
case 0:
*filtered_amplitude = *filtered_amplitude-128;
break;
case 1:
*filtered_amplitude = (*filtered_amplitude-128) * 2;
break;
case 2:
*filtered_amplitude = (*filtered_amplitude-128) * 4;
break;
default:
((void) (( 0 ) ? ((void) 0) : __assert("Assertion failed: ""0"", file " "pr_report.cpp" ", line ""337" "\n"))) ;
*filtered_amplitude = (*filtered_amplitude-128) * 2;
break;
}
*amplitude = *filtered_amplitude;
}
void
Report::computeCenters(PR_CENTER_TYPE type)
{
int i;
for (i = 0; i < 4; ++i)
{
waveCenterPoint_m[i] = CONT_BOTTOM_TEXT_DOTS + CONT_50_WAVEFORM_SIZE / 2;
}
# 389 "pr_report.cpp"
}
void
Report::printPatientName(DM_EPISODE* const episode, uint16_t width)
{
uint8_t left[TEXT_LENGTH];
uint8_t right[TEXT_LENGTH];
uint8_t tmp[TEXT_LENGTH];
sprintf((char *)left, "\x7f\2%s:", (char *)gl_messageToString(GL_MSG_NAME));
right[0] = '\x7f';
right[1] = 2;
dm_access_last_name(episode->index,right+2,14 +1);
dm_access_first_name(episode->index,tmp,14 +1);
if (strlen((char *)tmp) > 0)
{
strcat((char *)right, ", ");
strncat((char *)right, (char *)tmp, 14 + 1);
}
justify(0, width, left, right);
}
void
Report::printPatientID(DM_EPISODE* const episode, uint16_t width)
{
uint8_t left[TEXT_LENGTH];
uint8_t right[TEXT_LENGTH];
pcTimeType timeStruct;
strcpy((char *)left, (char *)gl_messageToString(GL_MSG_ID));
strcat((char *)left, ":");
if (dm_access_patient_id(episode->index,right,14 +1) == 0 )
{
pcLong2Time(&timeStruct, episode->directory.time);
sprintf((char *)right, "%02d%02d%02d%02d%02d%02d",
(timeStruct.tm_mon % 12) + 1,
timeStruct.tm_mday % 32,
timeStruct.tm_year % 100,
timeStruct.tm_hour % 25,
timeStruct.tm_min % 60,
timeStruct.tm_sec % 60);
}
justify(1, width, left, right);
}
void
Report::printIncidentID(DM_EPISODE* const episode, uint16_t width)
{
uint8_t left[TEXT_LENGTH];
uint8_t right[TEXT_LENGTH];
strcpy((char *)left, (char *)gl_messageToString(GL_MSG_INCIDENT));
strcat((char *)left, ":");
dm_access_incident_id(episode->index, right, sizeof right);
justify(2, width, left, right);
}
void
Report::storeToMinMax(int region, int32_t lower, int32_t upper)
{
((void) (( region < 4 ) ? ((void) 0) : __assert("Assertion failed: ""region < 4"", file " "pr_report.cpp" ", line ""543" "\n"))) ;
if (pr_firstTime[region])
{
int i;
for (i = 0; i < PR_MIN_MAX_SAMPLES; ++i)
{
pr_minMax[region][i][0] = lower;
pr_minMax[region][i][1] = upper;
}
pr_minMaxOffset[region] = 0;
pr_firstTime[region] = 0 ;
}
else
{
uint8_t offset = pr_minMaxOffset[region];
pr_minMax[region][offset][0] = lower;
pr_minMax[region][offset][1] = upper;
if (++pr_minMaxOffset[region] >= PR_MIN_MAX_SAMPLES)
{
pr_minMaxOffset[region] = 0;
}
}
}
void
Report::getMinMax(int region, int32_t* const min, int32_t* const max)
{
int32_t minValue = 0x7fffffffL;
int32_t maxValue = -0x7fffffffL;
int i;
for (i = 0; i < PR_MIN_MAX_SAMPLES; ++i)
{
if (pr_minMax[region][i][1] > maxValue)
{
maxValue = pr_minMax[region][i][1];
}
if (pr_minMax[region][i][0] < minValue)
{
minValue = pr_minMax[region][i][0];
}
}
while ((maxValue - minValue) < 3)
{
maxValue += 1;
minValue -= 1;
}
*min = minValue;
*max = maxValue;
}
void
Report::resetMinMax(int regionToReset)
{
pr_firstTime[regionToReset] = 1 ;
}
void
Report::WaitForText(void)
{
uint16_t adjust_maxTextWidth;
adjust_maxTextWidth = maxTextWidth;
while (adjust_maxTextWidth != 0)
{
skipColumns(1);
--adjust_maxTextWidth;
}
}
void
Report::justify(uint8_t line, uint16_t width,
const uint8_t * const left,
const uint8_t * const right)
{
uint8_t buffer[TEXT_LENGTH+1];
uint16_t leftColumns = getTextWidth(FONT_NORMAL, left);
uint16_t rightColumns = getTextWidth(FONT_NORMAL, right);
uint16_t leftLength = strlen((char *)left);
if (leftLength >= sizeof buffer)
{
leftLength = sizeof buffer - 1;
}
((void) (( (leftLength + strlen((char *)right)) < sizeof buffer ) ? ((void) 0) : __assert("Assertion failed: ""(leftLength + strlen((char *)right)) < sizeof buffer"", file " "pr_report.cpp" ", line ""739" "\n"))) ;
if (width > maxTextWidth)
{
maxTextWidth = width;
}
if ((leftColumns + rightColumns) < width)
{
int16_t count = width - (leftColumns + rightColumns);
int i;
if (count > (int16_t)(sizeof buffer - leftLength - 1))
{
count = sizeof buffer - leftLength - 1;
}
strncpy((char *)buffer, (char *)left, sizeof buffer);
for (i = 0; i < count; ++i)
{
buffer[leftLength++] = ' ';
}
strncpy((char *)buffer + leftLength, (char *)right,
(sizeof buffer) - leftLength);
}
else
{
strncpy((char *)buffer, (char *)left, sizeof buffer);
strncat((char *)buffer, (char *)right,
(sizeof buffer) - strlen((char *)buffer));
}
buffer[(sizeof buffer) - 1] = '\0';
text(buffer, line, FONT_NORMAL);
}
void
Report::formatDeviceInfo(DM_EPISODE * const episode, bool showVersion,
uint8_t * const left, uint8_t * const right)
{
if (left != __null )
{
if (episode != __null )
{
uint8_t device[15 +1];
uint8_t site[15 +1];
dm_access_device_number(episode,device);
dm_access_site_number(episode,site);
sprintf((char *)left, "%s %s", device, site);
}
else
{
sprintf((char *)left, "%s %s",
pcSysConfig.general.deviceNumber,
pcSysConfig.general.siteNumber);
}
}
if (right != __null )
{
if (showVersion)
{
if (episode != __null )
{
dm_access_sw_version(episode,right);
}
else
{
sprintf((char *)right, "%s", gl_SoftwareVersion);
}
strcat((char *)right, " ");
}
else
{
right[0] = '\0';
}
if (episode != __null )
{
uint8_t config[14 +1];
dm_access_config_string(episode,config);
strcat((char *)right, (char *)config);
}
else
{
dm_configuration_string(right + strlen((char *)right));
}
strcat((char *)right, " LP12");
pcMfgSerialNumberGet(right + strlen((char *)right));
}
}
void
Report::formatAgeString(uint8_t age, uint8_t *string)
{
if (age <= GL_AGE_YEARS_MAX)
{
sprintf((char *)string, "%d", age);
}
else
{
GL_MESSAGE_NUMBER_TYPE message;
switch (age)
{
case GL_AGE_2DAYS:
message = GL_MSG_L12_AGE_1_DAY;
break;
case GL_AGE_2DAYS_1WEEK:
message = GL_MSG_L12_AGE_2_DAYS;
break;
case GL_AGE_1WEEK_1MONTH:
message = GL_MSG_L12_AGE_1_WEEK;
break;
case GL_AGE_1MONTH_2MONTH:
message = GL_MSG_L12_AGE_1_MONTH;
break;
case GL_AGE_2MONTH_3MONTH:
message = GL_MSG_L12_AGE_2_MONTHS;
break;
case GL_AGE_3MONTH_4MONTH:
message = GL_MSG_L12_AGE_3_MONTHS;
break;
case GL_AGE_4MONTH_5MONTH:
message = GL_MSG_L12_AGE_4_MONTHS;
break;
case GL_AGE_5MONTH_6MONTH:
message = GL_MSG_L12_AGE_5_MONTHS;
break;
case GL_AGE_6MONTH_9MONTH:
message = GL_MSG_L12_AGE_6_MONTHS;
break;
case GL_AGE_9MONTH_1YEAR:
message = GL_MSG_L12_AGE_9_MONTHS;
break;
default:
message = GL_MSG_UNKNOWN;
((void) (( 0 ) ? ((void) 0) : __assert("Assertion failed: ""0"", file " "pr_report.cpp" ", line ""927" "\n"))) ;
break;
}
strcpy((char *)string, (char *)gl_messageToString(message));
}
}
bool
Report::formatHRData(const PC_CRITICAL_VS_DATA *vitals, uint8_t *title, uint8_t *value)
{
bool formatFlag = 0 ;
switch (vitals->rateSource)
{
case HEART_RATE_NONE:
if (title != __null )
{
title[0] = '\0';
}
if (value != __null )
{
value[0] = '\0';
}
case HEART_RATE_ECG:
if (vitals->ecg.dataValid)
{
if (title != __null )
{
strcpy((char *)title, (char *)gl_messageToString(GL_MSG_HR));
}
if (value != __null )
{
if ((vitals->ecg.rate >= 20) && (vitals->ecg.rate <= 300))
{
sprintf((char *)value, "%d", vitals->ecg.rate);
}
else
{
strcpy((char *)value, "---");
}
}
formatFlag = 1 ;
}
else
{
if (title != __null )
{
title[0] = '\0';
}
if (value != __null )
{
value[0] = '\0';
}
}
case HEART_RATE_SPO2:
if (vitals->spo2.dataValid)
{
if (title != __null )
{
strcpy((char *)title,
(char *)gl_messageToString(GL_MSG_PR_SPO2));
}
if (value != __null )
{
if ((vitals->spo2.rate >= 20) && (vitals->spo2.rate <= 300))
{
sprintf((char *)value, "%d", vitals->spo2.rate);
}
else
{
strcpy((char *)value, "---");
}
}
formatFlag = 1 ;
}
else
{
if (title != __null )
{
title[0] = '\0';
}
if (value != __null )
{
value[0] = '\0';
}
}
}
return(formatFlag);
}
bool
Report::formatSPO2Data(const PC_CRITICAL_VS_DATA *vitals,
uint8_t *title, uint8_t *value, bool addPR)
{
if (vitals->spo2.dataValid)
{
if (title != __null )
{
if (addPR == 1 )
{
strcpy((char *)title,
(char *)gl_messageToString(GL_MSG_SPO2_PR));
}
else
{
strcpy((char *)title, (char *)gl_messageToString(GL_MSG_SPO2));
}
}
if (value != __null )
{
if (vitals->spo2.dataValid)
{
if (vitals->spo2.saturation < 50)
{
strcpy((char *)value, "<50");
}
else
{
sprintf((char *)value, "%d", vitals->spo2.saturation);
}
if (addPR)
{
sprintf((char *)value+strlen((char *)value), "\xa5%d",
vitals->spo2.rate);
}
}
else
{
strcpy((char *)value, "---");
if (addPR)
{
strcat((char *)value, "\xa5---");
}
}
}
return 1 ;
}
else
{
if (title != __null )
{
title[0] = '\0';
}
if (value != __null )
{
value[0] = '\0';
}
return 0 ;
}
}
GL_MESSAGE_NUMBER_TYPE
Report::leadToName(GL_LEAD_TYPE8 lead)
{
return waveformNames_m[lead];
}
GL_ECG_MODE_EVENT_LEAD_STATUS
Report::convertLeadToStatusMask(GL_LEAD_TYPE8 lead)
{
switch (lead)
{
case GL_LEAD_I:
return GL_I_INVALID;
case GL_LEAD_II:
return GL_II_INVALID;
case GL_LEAD_III:
return GL_III_INVALID;
case GL_LEAD_AVL:
case GL_LEAD_AVR:
case GL_LEAD_AVF:
return GL_AV_INVALID;
case GL_LEAD_PADDLE_IMPEDANCE:
return GL_PADDLES_OFF;
case GL_LEAD_PADDLES:
return GL_PADDLES_OFF;
case GL_LEAD_PLETH:
return GL_PLETH_OFF;
case GL_LEAD_UNKNOWN:
return GL_II_INVALID;
default:
smLogError(PI_ERROR_INVALID_LEAD_TO_STATUS, lead);
((void) (( 0 ) ? ((void) 0) : __assert("Assertion failed: ""0"", file " "pr_report.cpp" ", line ""1211" "\n"))) ;
return GL_II_INVALID;
}
}
void
Report::printSeparator(void)
{
int i;
skipColumns(3);
for (i = 0; i < MAX_LINES; ++i)
{
text((uint8_t *)"\x7f\3\x08", i, FONT_NORMAL);
}
skipColumns(3);
}
void
Report::centerText(uint8_t row, const uint8_t * const string, uint8_t fieldWidth)
{
uint8_t stringWidth = getTextWidth(FONT_NORMAL, string);
if (stringWidth >= fieldWidth)
{
text(string, row, FONT_NORMAL);
}
else
{
uint8_t numSpaces = (fieldWidth - stringWidth) / 2;
uint8_t buffer[128];
int i;
for (i = 0; i < numSpaces; ++i)
{
buffer[i] = ' ';
}
strcpy((char *)buffer + i, (char *)string);
text(buffer, row, FONT_NORMAL);
}
}
uint16_t
Report::printBottomAnnotation(bool paddles,
PR_ANNOTATION_BW_TYPE forceDiag,
const GL_GAIN_TYPE gain)
{
static GL_MESSAGE_NUMBER_TYPE gainNames[] =
{
GL_MSG_0_25, GL_MSG_0_5, GL_MSG_1_0, GL_MSG_1_5,
GL_MSG_2_0, GL_MSG_2_5, GL_MSG_3_0, GL_MSG_4_0
};
uint8_t buffer[128];
GL_MESSAGE_NUMBER_TYPE response;
uint16_t length;
if (paddles)
{
response = GL_MSG_2_5_TO_30HZ;
}
else
{
if (getFrequencyResponse() || forceDiag != PR_NO_FORCED_DIAG)
{
if ( pcSysConfig.printer.ECGdiagnosticFreqBW ==
GL_ECG_DIAG_BW_0_05_150 || forceDiag == PR_DUMB )
{
response = GL_MSG_05_TO_150HZ;
}
else
{
response = GL_MSG_05_TO_40HZ;
}
}
else
{
if (pcSysConfig.printer.ECGmonitorFreqBW == GL_ECG_MON_BW_0_5_40 )
{
response = GL_MSG_5_TO_40HZ;
}
else
{
response = GL_MSG_1_TO_30HZ;
}
}
}
if ((pcCriticalData.pr.currentPrinterSpeed == 0 ? GL_SWEEP_25MM : GL_SWEEP_12P5MM) == GL_SWEEP_25MM)
{
sprintf((char *)buffer, "%s%s %s %s",
gl_messageToString(GL_MSG_X),
gl_messageToString(gainNames[gain]),
gl_messageToString(response),
gl_messageToString(GL_MSG_25MM_PER_SEC));
}
if ((pcCriticalData.pr.currentPrinterSpeed == 0 ? GL_SWEEP_25MM : GL_SWEEP_12P5MM) == GL_SWEEP_12P5MM)
{
sprintf((char *)buffer, "%s%s %s %s",
gl_messageToString(GL_MSG_X),
gl_messageToString(gainNames[gain]),
gl_messageToString(response),
gl_messageToString(GL_MSG_12_5MM_PER_SEC));
}
length = getTextWidth(FONT_NORMAL, buffer) * VECTOR_COLUMNS_PER_TEXT;
text(buffer, MAX_LINES - 1, FONT_NORMAL);
return length;
}
void
Report::regionAnnotation(int region,
const GL_LEAD_TYPE8 lead_type,
const GL_GAIN_TYPE scale,
GL_ECG_MODE_EVENT_LEAD_STATUS status,
bool tickMark,
bool scale_labels)
{
uint8_t buffer[64];
uint8_t line[40];
uint8_t modcenter;
GL_MESSAGE_NUMBER_TYPE leadName;
if (tickMark == 1 )
{
modcenter = (((waveCenterPoint_m[region]+12) % BITS_PER_TEXT_LINE)*10) / 23;
sprintf((char *)line, "\x7f\3%c\x7f\3%c\x7f\3%c\x7f\3%c\x7f\1",
modcenter+0x11,modcenter+0x11, modcenter+0x11,modcenter+0x11);
}
else
{
sprintf((char *)line," ");
}
if (lead_type == GL_LEAD_PLETH)
{
GL_GAIN_TYPE scale_map[3] = {GL_GAIN_X_05, GL_GAIN_X_10, GL_GAIN_X_20};
leadName = leadToName(lead_type);
sprintf((char *)buffer, " %s(X%d)",
(char *)gl_messageToString(leadName),scale_map[scale]);
if ((status & convertLeadToStatusMask(lead_type)) == GL_PLETH_INVALID)
{
sprintf((char *)buffer + strlen((char *)buffer), " %s",
gl_messageToString(GL_MSG_SPO2_SENSOR_OFF));
}
text(buffer, 2, FONT_NORMAL);
}
else if (lead_type != GL_LEAD_UNKNOWN)
{
leadName = leadToName(lead_type);
sprintf((char *)buffer, " %s",
(char *)gl_messageToString(leadName));
if ((status & convertLeadToStatusMask(lead_type))
!= 0)
{
sprintf((char *)buffer + strlen((char *)buffer), " %s",
gl_messageToString(GL_MSG_LEAD_OFF));
}
text(buffer, 2, FONT_NORMAL);
}
}
void Report::waveformValue(uint8_t region, int16_t nextValue)
{
Printer::waveformValue(region, nextValue);
}
void Report::text(const uint8_t *textString, uint16_t row, uint16_t font)
{
Printer::text(textString, row, font);
}
void Report::defineWaveformRegion(uint8_t region, uint16_t zeroPoint,
uint16_t bitsPerCm)
{
Printer::defineWaveformRegion(region, zeroPoint, bitsPerCm);
}
uint16_t Report::columnsEmpty(void)
{
return(Printer::columnsEmpty());
}
uint16_t Report::getTextWidth(uint8_t font, const uint8_t *textString)
{
return(Printer::getTextWidth(font, textString));
}
Printer::Status Report::getStatus(void)
{
return(Printer::getStatus());
}
void
Report::nextSampleSet(void)
{
Printer::nextSampleSet();
}
void
Report::skipColumns(uint16_t skip)
{
Printer::skipColumns(skip);
}
void
Report::setSampleSpeed(uint16_t speed)
{
Printer::setSampleSpeed(speed);
}
void
Report::setPrinterSpeed(uint16_t speed)
{
Printer::setPrinterSpeed(speed);
}
void
Report::abortPrinting(void)
{
Printer::abortPrinting();
}
void
Report::getInfo(uint8_t *textLines, uint8_t *printerSize,
uint16_t *verticalDots, uint8_t *topMargin,
uint8_t *bottomMargin)
{
Printer::getInfo(textLines, printerSize, verticalDots, topMargin, bottomMargin);
}
void
Report::StartUnderlineText(uint8_t line)
{
}
void
Report::StopUnderlineText(void)
{
}