📄 print.c
字号:
bag[j++]=' ';
bag[j++]=hextoasc(date[i]/10);
bag[j++]=hextoasc(date[i++]%10);
bag[j++]=':';
bag[j++]=hextoasc(date[i]/10);
bag[j++]=hextoasc(date[i]%10);
bag[j++]='\0';
printwrite(247);
printwrite(42);
printwrite(31);
print_stringdata(bag);
print_stringdata(" 10mv/mm 12.5mm/s");
printwrite(248);
printwaveset(v);
break;
case 0:readbuf(12); //实时打印数据
break;
case 8:printwenum=0;printrenum=0;
printdata();
break;
case 9: //定时打印数据+波形的第一个数据包
printstate&=0xf0;printstate|=m&0xf;
savestate=printstate;
v=i2rebuf[19];
printwenum=0;printrenum=0;
printdata();
printname();
printwrite(247);
printwrite(42);
printwrite(16);
switch(((printstate>>2)&0x3))
{
case 0:i=5;break;
case 1:i=10;break;
case 2:i=20;break;
}
j=0;
bag[j++]=hextoasc(i/10);
bag[j++]=hextoasc(i%10);
bag[j++]='m';
bag[j++]='v';
bag[j++]='/';
bag[j++]='m';
bag[j++]='m';
bag[j++]=' ';
switch((printstate&0x3))
{
case 0:bag[j++]='1';bag[j++]='2';bag[j++]='.';bag[j++]='5';break;
case 1:bag[j++]='2';bag[j++]='5';bag[j++]='.';bag[j++]='0';;break;
case 2:bag[j++]='5';bag[j++]='0';bag[j++]='.';bag[j++]='0';;break;
}
bag[j++]='m';
bag[j++]='m';
bag[j++]='/';
bag[j++]='s';
bag[j]='\0';
print_stringdata(bag);
printwrite(248);
printwaveset(v);//数据加波形头
break;
case 11:
switch((savestate&0x03))
{
case 0:readbuf(12);break;
case 1:readbuf(24);break;
// case 2:readbuf(48);break;
default:break;
}
break;
case 12:printwenum=0;printrenum=0;
printdata(); //报警打印
break;
default:break;
}
}
i2end=0;
}
//*********************************************************************
//函数名:void printdata(void)
//输入参数:
//输出参数:
//函数功能:打印数据函数
//全局变量:
//*********************************************************************
void printdata(void)
{
char *alabag;
uchar i;
alarm=i2rebuf[2];
for(i=3;i<9;i++)
date[i-3]=i2rebuf[i];
heart=i2rebuf[i++];
brea=i2rebuf[i++];
if(i2rebuf[i++]!=0xff) st2=i2rebuf[i++];
else st2=0x7fff;
spo2=i2rebuf[i++];
pluse=i2rebuf[i++];
if (i2rebuf[i]==0xff) {temp1=0xffff;i++;} else temp1=i2rebuf[i++]+200;
if (i2rebuf[i]==0xff) {temp2=0xffff;i++;} else temp2=i2rebuf[i++]+200;
if (i2rebuf[i]==0xff) {sys=0xffff;i++;} else sys=i2rebuf[i++]+30;
if (i2rebuf[i]==0xff) {dia=0xffff;i++;} else dia=i2rebuf[i++]+10;
switch ((alarm&0x7f))
{
case 0:alabag= "NO ";break;
case 12:alabag= "Heart";break;
case 6:alabag= "Reap ";break;
case 10:alabag= "Sp0-2";break;
case 11:alabag= "S-T ";break;
case 5:alabag= "Temp1";break;
case 4:alabag= "Temp2";break;
case 9:alabag= "SYS ";break;
case 8:alabag= "Dia ";break;
default:alabag= "NO ";break;
}
printwordset(6);
for(i=0;i<24;i++)
printwrite(' ');
print_stringdata("DHRSSP");//第一列
print_stringdata("aeepyu");//第二列
print_stringdata("tasosl");//第三列
print_stringdata("erp2 e");//第四列
print_stringdata(":t e");//第五列
printwrite(hextoasc(date[0]/10)); //第六列
print_stringdata(":::::"); //
printwrite(hextoasc(date[0]%10)); //第
printwrite(hund1(heart));
printwrite(hund1(brea));
printwrite(ten1(spo2)); //七
printwrite(hund0(sys));
printwrite(hund1(pluse)); //列
printwrite(hextoasc(date[1]/10)); //第
printwrite(ten1(heart));
printwrite(ten1(brea)); //八
printwrite(one1(spo2));
printwrite(ten0(sys));
printwrite(ten1(pluse)); //列
printwrite(hextoasc(date[1]%10)); //第
printwrite(one1(heart));
printwrite(one1(brea)); //九
printwrite('%');
printwrite(one0(sys));
printwrite(one1(pluse)); //列
print_stringdata("- "); //第十列
printwrite(hextoasc(date[2]/10));
print_stringdata("TTSDA"); //第十一列
printwrite(hextoasc(date[2]%10));
print_stringdata("eeTil"); //第十二列
print_stringdata("-mm2aa"); //第十三列
printwrite(hextoasc(date[3]/10));
print_stringdata("pp: r"); //第十四列
printwrite(hextoasc(date[3]%10)); //第
print_stringdata("12"); //十
if(st2<0||st2==0x7fff) printwrite('-'); //五
else printwrite(' ');
print_stringdata(" m"); //列
print_stringdata(" ::"); //第
if(st2==0x7fff) printwrite('-'); //十
else printwrite(hextoasc(abs(st2)/100)); //六
print_stringdata("::"); //列
printwrite(hextoasc(date[4]/10)); //第
printwrite(hund0(temp1)); //十
printwrite(hund0(temp2));
printwrite('.'); //七
printwrite(hund1(dia));
printwrite(*alabag); //列
printwrite(hextoasc(date[4]%10)); //第
printwrite(ten0(temp1)); //十
printwrite(ten0(temp2)); //
if(st2==0x7fff) printwrite('-');
else printwrite(hextoasc((abs(st2)%100)/10));//八
printwrite(ten1(dia)); //
printwrite(*(alabag+1)); //列
print_stringdata(":.."); //第
if(st2==0x7fff) printwrite('-');
else printwrite(hextoasc(abs(st2)%10)); //十
printwrite(one1(dia)); //九
printwrite(*(alabag+2)); //列
printwrite(hextoasc(date[5]/10)); //第
printwrite(one0(temp1)); //二
printwrite(one0(temp2)); //十
print_stringdata(" "); //
printwrite(*(alabag+3)); //列
printwrite(hextoasc(date[5]%10)); //第
print_stringdata(" "); //二十
printwrite(*(alabag+4)); //列
for(i=0;i<24;i++)
printwrite(' ');
}
//*********************************************************************
//函数名:void printname(void)
//输入参数:
//输出参数:
//函数功能:打印波形名字函数
//全局变量:
//*********************************************************************
void printname(void)
{
printwrite(243);
printwrite(3);
printwrite(38);
printwrite(25);
printwrite(7);
printwrite(245);
print_stringdata(" EPRCLEGEP ");
}
//*********************************************************************
//函数名:void readbuf(uchar m)
//输入参数:uchar m 打印速度
//输出参数:
//函数功能:把波形数据解包放入打印机发送缓冲区
//全局变量:
//*********************************************************************
void readbuf(uchar m)
{
uchar i,j;
if(alarm&0x80)
{
for(i=0;i<m;i++)
{
j=0;
printbuf[printwenum++]=val(i2rebuf[j*m+i+2]+128);
j=1;
printbuf[printwenum++]=val(i2rebuf[j*m+i+2]);
j=2;
if(i>12) printbuf[printwenum++]=val(i2rebuf[j*m+i+2-12]);
else printbuf[printwenum++]=val(i2rebuf[j*m+i+2]);
/* for(j=1;j<3;j++)
printbuf[printwenum++]=val(i2rebuf[j*m+i+2]);*/
}
}
else
{
for(i=0;i<m;i++)
{
j=0;
printbuf[printwenum++]=val(i2rebuf[j*m+i+2]+128);
for(j=1;j<3;j++)
printbuf[printwenum++]=val(i2rebuf[j*m+i+2]);
}
}
}
//*********************************************************************
//函数名:uchar val(uchar m)
//输入参数:uchar m
//输出参数:uchar m
//函数功能:滤去大数据
//全局变量:
//*********************************************************************
uchar val(uchar m)
{
if(m>=240) return 239;
else if(m==0) return 1;
else return m;
}
//*********************************************************************
//函数名:uchar hund0(uint m)
//输入参数:uint m
//输出参数:
//函数功能:word取百位处理,并转为ASCII码
//全局变量:
//*********************************************************************
uchar hund0(uint m)
{
if(m==0xffff) m='-';
if(m<99) m=' ';
else m=hextoasc(m/100);
return m;
}
//*********************************************************************
//函数名:uchar ten0(uint m)
//输入参数:uint m
//输出参数:
//函数功能:word取十位处理,并转为ASCII码
//全局变量:
//*********************************************************************
uchar ten0(uint m)
{
if(m==0xffff) return ('-');
else return hextoasc((m%100)/10);
}
//*********************************************************************
//函数名:uchar one0(uint m)
//输入参数:
//输出参数:
//函数功能:word取个位处理,并转为ASCII码
//全局变量:
//*********************************************************************
uchar one0(uint m)
{
if(m==0xffff) return ('-');
else return hextoasc(m%10);
}
//*********************************************************************
//函数名:uchar hund1(uchar m)
//输入参数:
//输出参数:
//函数功能:byte取百位处理,并转为ASCII码
//全局变量:
//*********************************************************************
uchar hund1(uchar m)
{
if(m==0xff) m='-';
if(m<99) m=' ';
else m=hextoasc(m/100);
return m;
}
//*********************************************************************
//函数名:uchar ten1(uchar m)
//输入参数:
//输出参数:
//函数功能:byte取十位处理,并转为ASCII码
//全局变量:
//*********************************************************************
uchar ten1(uchar m)
{
if(m==0xff) return ('-');
else return hextoasc((m%100)/10);
}
//*********************************************************************
//函数名:uchar one1(uchar m)
//输入参数:
//输出参数:
//函数功能:byte取个位处理,并转为ASCII码
//全局变量:
//*********************************************************************
uchar one1(uchar m)
{
if(m==0xff) return ('-');
else return hextoasc(m%10);
}
//*********************************************************************
//函数名:uchar hextoasc(uchar m)
//输入参数:
//输出参数:
//函数功能:0~9数字转为ASCII码
//全局变量:
//*********************************************************************
uchar hextoasc(uchar m)
{
return(0x30+m);
}
//*********************************************************************
//函数名:void printwordset(uchar m)
//输入参数:
//输出参数:
//函数功能:字符输出形态设置
//全局变量:
//*********************************************************************
void printwordset(uchar m)
{
uchar i;
uchar len=0;
len=45/m;
printwrite(243);
printwrite(m);
for(i=0;i<m;i++)
printwrite(len*(5-i)+7);
printwrite(245);
}
//*********************************************************************
//函数名:void printwaveset(void)
//输入参数:
//输出参数:
//函数功能:波形形态设置
//全局变量:
//*********************************************************************
void printwaveset(char v)
{
char temp;
temp=-(v/250)*15;
printwrite(244);
printwrite(3);
switch((printstate&0xc)>>2)
{
case 0:printwrite(1);
printwrite(temp+35);
printwrite(28);
printwrite(15);
break;
case 1:printwrite(2);
printwrite(temp+35);
printwrite(37);
printwrite(20);
break;
case 2:printwrite(4);
printwrite(temp+30);
printwrite(43);
printwrite(33);
break;
}
printwrite(246);
}
/*void watchdog(void)
{
WFEED1=0xa5;
WFEED2=0x5a;
}*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -