This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

c++/1789: ICE in switch statement case



>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)
{
     
}



 


 





Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]