⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 printlst.h

📁 该程序是基于PC104的工控板的多参数监护仪的源程序.监护内容包含:心电血氧呼吸无创血压等等.
💻 H
字号:
#ifndef  __PRINTLST_H
#define  __PRINTLST_H
#ifndef  __STDIO_H
#include <stdio.h>
#endif
#ifndef  __STDLIB_H
#include <stdlib.h>
#endif
#ifndef  __STRING_H
#include <string.h>
#endif
#ifndef  __BIOS_H
#include <bios.h>
#endif
#ifndef  __DOS_H
#include <dos.h>
#endif   __DOS_H
#ifndef  __TIME_H
#include <time.h>
#endif
#ifndef  __MENU_H
#include "menu.h"
#endif

//0x439b=汣=`C
//0x469b=汧=`F

extern  MonData  PrtDataBuff[PRTLSTLEN];	//趋势列表数据头
extern  unsigned char PrtLstCount;  //打印趋势列表读指针
extern  struct date	dater;
void printlst(void){
  int status;//, abyte=0;//打印状态字节
  int i;
  struct date dater;
  unsigned char tempstr[20];
  static unsigned char printcount=0;
  if(PrtLstCount==255)	return;
  status=biosprint(2,0,0);
    if(status&0x80)  ///printer is already
    {//display_hz(600,0,"可以打印列表",GREEN);
     switch(PrtLstCount){
         case 0://init printer for text  cmd:[ESC @]
		printcount=0;
	        fprintf(stdprn,"%c",27);  fprintf(stdprn,"%c",64);
            	//unable reverse print
	    	fprintf(stdprn,"%c",27);  fprintf(stdprn,"%c",99);  fprintf(stdprn,"%c",0);
	    	fprintf(stdprn,"%c",13);	//--LF
		PrtLstCount++;
		 break;
	 case 1://print	 date;
	 	getdate(&dater);
	 	sprintf(tempstr,"%d-%02d-%02d",dater.da_year,dater.da_mon,dater.da_day);
	        for(i=0;i<strlen(tempstr);i++)
	        	fprintf(stdprn,"%c",tempstr[i]);
		PrtLstCount++;
		break;
         case 2:
         	if(NIBPUNIT->value==V_MMHG)
                	sprintf(tempstr," [mmHG]");
                else	sprintf(tempstr,"  [Kpa]");
                //fprintf(stdprn,"%c",9);
                for(i=0;i<strlen(tempstr); i++)
                	fprintf(stdprn,"%c",tempstr[i]);
                PrtLstCount++;
         case 3:
                //print TEMP and NIBP unit
           	if(TEMP1UNIT->value==V_C_)	    //TEMP1 UNIT
                	sprintf(tempstr,"    [汣]");//`C
                else	sprintf(tempstr,"    [汧]");//`F
                for(i=0;i<strlen(tempstr); i++)
                	fprintf(stdprn,"%c",tempstr[i]);
                if(TEMP2UNIT->value==V_C_)	  //TEMP2 UNIT
                	sprintf(tempstr,"  [汣]\n");//`C
                else	sprintf(tempstr,"  [汧]\n");//`F
                for(i=0;i<strlen(tempstr); i++)
                	fprintf(stdprn,"%c",tempstr[i]);
                PrtLstCount++;
		break;
     	case 4://print (TIME)
                 sprintf(tempstr,"TIME    ");
                 for(i=0;i<strlen(tempstr);i++)
			fprintf(stdprn,"%c",tempstr[i]);
                 PrtLstCount++;
		 break;
	case 5:  sprintf(tempstr,"NIBP(S,M,D)");
                 for(i=0;i<strlen(tempstr);i++)
			fprintf(stdprn,"%c",tempstr[i]);
                 PrtLstCount++;
		 break;
     	case 6:
                 sprintf(tempstr,"  TEMP1");
                 for(i=0;i<strlen(tempstr);i++)
                  	fprintf(stdprn,"%c",tempstr[i]);
                 PrtLstCount++;
		 break;
	case 7: sprintf(tempstr," TEMP2\n");
                 for(i=0;i<strlen(tempstr);i++)
                  	fprintf(stdprn,"%c",tempstr[i]);
                 PrtLstCount++;
                 if(!PrtLstLen)
                 	PrtLstCount=13;
		 break;
	case 8://printf (TIME TEMP value)
     	   	 sprintf(tempstr,"%02d:%02d",PrtLstHour[printcount],PrtLstMin[printcount]);
     	   	 for(i=0;i<strlen(tempstr);i++)
     	   		fprintf(stdprn,"%c",tempstr[i]);
                 PrtLstCount++;
		 break;
	case 9: //print SYST---value
     	   	if(NIBPUNIT->value==V_MMHG){
     	   	   if(PrtLstBuff[printcount].SYST>10&&PrtLstBuff[printcount].SYST<255)
     	   	   	sprintf(tempstr,"  %3d,",PrtLstBuff[printcount].SYST);
                   else sprintf(tempstr,"  ---,");
     	   	}else{
     	   	   if(PrtLstBuff[printcount].SYST>10&&PrtLstBuff[printcount].SYST<255)
     	   	   	sprintf(tempstr," %4.1f",(float)PrtLstBuff[printcount].SYST/7.5);
                   else sprintf(tempstr," --.-,");
     	   	}
     	   	for(i=0;i<strlen(tempstr);i++)
     	   	 	fprintf(stdprn,"%c",tempstr[i]);
     	   	PrtLstCount++;	//getchar();
		break;
        case 10://print MEAN---value
        	if(NIBPUNIT->value==V_MMHG){
     	   	   if(PrtLstBuff[printcount].MEAN>10&&PrtLstBuff[printcount].MEAN<255)
     	   	   	sprintf(tempstr," %3d,",PrtLstBuff[printcount].MEAN);
                   else sprintf(tempstr," ---,");
     	   	}else{
     	   	   if(PrtLstBuff[printcount].MEAN>10&&PrtLstBuff[printcount].MEAN<255)
     	   	   	sprintf(tempstr,"%4.1f",(float)PrtLstBuff[printcount].MEAN/7.5);
                   else sprintf(tempstr,"--.-,");
     	   	}
     	   	for(i=0;i<strlen(tempstr);i++)
     	   	 	fprintf(stdprn,"%c",tempstr[i]);
     	   	PrtLstCount++;
		break;
	case 11://print DIAS---value
		if(NIBPUNIT->value==V_MMHG){
     	   	   if(PrtLstBuff[printcount].DIAS>10&&PrtLstBuff[printcount].DIAS<255)
     	   	   	sprintf(tempstr," %3d ",PrtLstBuff[printcount].DIAS);
                   else sprintf(tempstr," --- ");
     	   	}else{
     	   	   if(PrtLstBuff[printcount].DIAS>10&&PrtLstBuff[printcount].DIAS<255)
     	   	   	sprintf(tempstr,"%4.1 f",(float)PrtLstBuff[printcount].DIAS/7.5);
                   else sprintf(tempstr,"--.- ");
     	   	}
     	   	for(i=0;i<strlen(tempstr);i++)
     	   	 	fprintf(stdprn,"%c",tempstr[i]);
     	   	PrtLstCount++;
     	   	break;
	case 12:
		if(TEMP1UNIT->value==V_C_){
     	   	     if(PrtLstBuff[printcount].TEMP1<455)
                   	sprintf(tempstr,"%5.1f,",(PrtLstBuff[printcount].TEMP1/10.0));
                     else sprintf(tempstr," --.-,");
     	   	}else{
     	   	   	if(PrtLstBuff[printcount].TEMP1<455)
                   		sprintf(tempstr,"%5.1f,",(PrtLstBuff[printcount].TEMP1*0.18+32));
                   	else sprintf(tempstr,"---.-,");
                }
                for(i=0;i<strlen(tempstr);i++)
     	   		fprintf(stdprn,"%c",tempstr[i]);

     	   	 if(TEMP2UNIT->value==V_C_){
     	   	     if(PrtLstBuff[printcount].TEMP2<455)
                   	sprintf(tempstr,"%5.1f",(float)PrtLstBuff[printcount].TEMP2/10.0);
                   	else sprintf(tempstr," --.-");
     	   	 }else{
     	   	   	if(PrtLstBuff[printcount].TEMP2<455)
                   		sprintf(tempstr,"%5.1f",(float)(PrtLstBuff[printcount].TEMP2*0.18+32));
                   	else sprintf(tempstr,"---.-");
                 }
                 for(i=0;i<strlen(tempstr);i++)
     	   		fprintf(stdprn,"%c",tempstr[i]);
     	   	 fprintf(stdprn,"%c",13);
     	   	 printcount++;
     	   	 if(PrtLstLen>PRTLSTLEN)
     	   	   PrtLstLen=PRTLSTLEN;
     	   	 if(printcount<PrtLstLen){
     	   	     PrtLstCount=8;
     	   	 }else{
		     fprintf(stdprn,"%c",10);	//--LF
     	   	     PrtLstCount++;
     	   	 }
		 break;
//------------------------------|
//2003-04-22^^TEMP[`C]^^NIBP[mmHG]
//TIME^^^HR^^^PR^^^^S^T^^SPO2^RESP
//00:00^^255^^255^^-0.78^^99^^^99
//00:01^^255^^255^^-0.78^^99^^^99
//00:02^^255......................
//TIME^^TEMP^^^^NIBP(SYS,MEA,DIA)
//00:00^112.3^^^^96.3,^96.4,^23.5
//00:01^45.3^^^^^225,^^225,^^255
//00:02^45.2.....................
//------------------------------
         case 13://print (TIME HR PR )
           	 printcount=0;
                 sprintf(tempstr,"TIME   H");
                 for(i=0;i<strlen(tempstr);i++)
			fprintf(stdprn,"%c",tempstr[i]);
                 PrtLstCount++;
		 break;
	case 14: sprintf(tempstr,"R   PR  ");
		 for(i=0;i<strlen(tempstr);i++)
		 	fprintf(stdprn,"%c",tempstr[i]);
		 PrtLstCount++;
		 break;
        case 15://print (ST  SPO2 RESP);
           	 sprintf(tempstr,"  S T  SP");
                 for(i=0;i<strlen(tempstr);i++)
			fprintf(stdprn,"%c",tempstr[i]);
                 PrtLstCount++;
		 break;
	case 16: sprintf(tempstr,"O2 RESP\n");
                 for(i=0;i<strlen(tempstr);i++)
			fprintf(stdprn,"%c",tempstr[i]);
                 PrtLstCount++;
                 if(!PrtLstLen)
                 	PrtLstCount=23;
		 break;
	case 17://print (TIME HR PR value)
     	   	 sprintf(tempstr,"%02d:%02d ",PrtLstHour[printcount],PrtLstMin[printcount]);
     	   	 for(i=0;i<strlen(tempstr);i++)
     	   	  	fprintf(stdprn,"%c",tempstr[i]);
                 PrtLstCount++;
		 break;
	case 18: 
		 if(PrtLstBuff[printcount].HR>10&&PrtLstBuff[printcount].HR<255)
     	   	   	sprintf(tempstr,"%3d  ",PrtLstBuff[printcount].HR);
                 else sprintf(tempstr,"---  ");
                 for(i=0;i<strlen(tempstr);i++)
     	   	 	fprintf(stdprn,"%c",tempstr[i]);
                 PrtLstCount++;
		 break;
	case 19: 
		 if(PrtLstBuff[printcount].PR>10&&PrtLstBuff[printcount].PR<255)
                   	sprintf(tempstr,"%3d ",PrtLstBuff[printcount].PR);
                 else sprintf(tempstr,"--- ");
     	   	 for(i=0;i<strlen(tempstr);i++)
     	   	 	fprintf(stdprn,"%c",tempstr[i]);
                 PrtLstCount++;
		 break;
	case 20://print(ST SPO2 RESP value)
     	   	 if(PrtLstBuff[printcount].ST>-80&&PrtLstBuff[printcount].ST<80)
     	   	   	sprintf(tempstr," %5.2f  ",(float)PrtLstBuff[printcount].ST/100.0);
                 else sprintf(tempstr,"  -.--  ");
     	   	 for(i=0;i<strlen(tempstr);i++)
     	   	  	fprintf(stdprn,"%c",tempstr[i]);
     	   	 PrtLstCount++;
		 break;
	case 21: 
     	   	 if(PrtLstBuff[printcount].SPO2>80&&PrtLstBuff[printcount].SPO2<100)
                   	sprintf(tempstr,"%2d   ",PrtLstBuff[printcount].SPO2);
		 else sprintf(tempstr,"--   ");
		 for(i=0;i<strlen(tempstr);i++)
     	   	  	fprintf(stdprn,"%c",tempstr[i]);
		 PrtLstCount++;
		 break;
	case 22: 
     	   	 if(PrtLstBuff[printcount].RESP>0&&PrtLstBuff[printcount].RESP<99)
     	   	   	sprintf(tempstr,"%2d\n",PrtLstBuff[printcount].RESP);
		   else sprintf(tempstr,"--\n");
		 for(i=0;i<strlen(tempstr);i++)
     	   	  	fprintf(stdprn,"%c",tempstr[i]);

     	   	 printcount++;
     	   	 if(PrtLstLen>PRTLSTLEN)
     	   	   PrtLstLen=PRTLSTLEN;
		 if(printcount<PrtLstLen)
     	   	  	PrtLstCount=17;
     	   	 else PrtLstCount++;

		 break;
        case 23://restore print mode
           	for(i=0;i<7;i++)
           		fprintf(stdprn,"%c",10);
  	        fprintf(stdprn,"%c",27);   fprintf(stdprn,"%c",64);
		PrtLstCount=255;
		break;
	default:PrtLstCount=255;
	   }//switch end
    }//printer ready
    return;
  }//print list function

#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -