📄 printlst.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 + -