📄 runkey.h
字号:
#ifndef __RUNKEY_H
#define __RUNKEY_H
#ifndef __MENU_H
#include "menu.h"
#endif
#ifndef __DISCHAR_H
#include "dischar.h"
#endif
/***********************
#ifndef __PRINT_H
#include "print.h"
#endif
#ifndef __PRINTLST_H
#include "printlst.h"
#endif
/**********************/
#define MENU_ITEM_Y 566
#define MENU_HIGH 100
#define GOTO_NEXTPAGE 1
#define GOTO_BACKPAGE 0
void SaveSysSet(void)
{
if(SaveCount>7&&SaveCount<0x3F){
switch(SaveCount){
case 0x08: *(NVmemmap+SaveCount)=HRPR_UP->value; break;
case 0x09: *(NVmemmap+SaveCount)=HRPR_LOW->value; break;
case 0x0a: *(NVmemmap+SaveCount)=ST_UP->value; break;
case 0x0b: *(NVmemmap+SaveCount)=ST_LOW->value; break;
case 0x0c: *(NVmemmap+SaveCount)=SPO2_UP->value; break;
case 0x0d: *(NVmemmap+SaveCount)=SPO2_LOW->value; break;
case 0x0e: *(NVmemmap+SaveCount)=SYST_UP->value; break;
case 0x0f: *(NVmemmap+SaveCount)=SYST_LOW->value; break;
case 0x10: *(NVmemmap+SaveCount)=DIAS_UP->value; break;
case 0x11: *(NVmemmap+SaveCount)=DIAS_LOW->value; break;
case 0x12: *(NVmemmap+SaveCount)=MEAN_UP->value; break;
case 0x13: *(NVmemmap+SaveCount)=MEAN_LOW->value; break;
case 0x14: *(NVmemmap+SaveCount)=RESP_UP->value; break;
case 0x15: *(NVmemmap+SaveCount)=RESP_LOW->value; break;
case 0x16: *(NVmemmap+SaveCount)=TEMP1_UP->value-200; break;
case 0x17: *(NVmemmap+SaveCount)=TEMP2_UP->value-200; break;
case 0x18: *(NVmemmap+SaveCount)=MAINLEAD->value|(ECGSCALE->value<<3)|(WORKSTA->value<<5)|(INTENSITY->value<<7); break;
case 0x19: *(NVmemmap+SaveCount)=NIBPCRIT->value; break;//成人 高...
case 0x1a: *(NVmemmap+SaveCount)=ALARMTIME->value; break;
case 0x1b: *(NVmemmap+SaveCount)=GAPTIME->value; break;
case 0x1c: *(NVmemmap+SaveCount)=SPO2REVISE->value; break;
case 0x1d: *(NVmemmap+SaveCount)=TEMP1REVISE->value; break;
case 0x1e: *(NVmemmap+SaveCount)=SYSTREVISE->value; break;
case 0x1f: *(NVmemmap+SaveCount)=DIASREVISE->value; break;
case 0x20: *(NVmemmap+SaveCount)=MEANREVISE->value; break;
//case 0x21: *(NVmemmap+SaveCount)=STREVISE->value; break;
case 0x22: *(NVmemmap+SaveCount)=AUTOTIME->value; break;
case 0x23: *(NVmemmap+SaveCount)=RESPCHK->value; break;
case 0x24: *(NVmemmap+SaveCount)=TEMP1CHK->value|(TEMP2CHK->value<<1); break;
case 0x25: *(NVmemmap+SaveCount)=TEMP2REVISE->value; break;
//case 0x26: *(NVmemmap+SaveCount)=SYSTREVISE->value_BAK; break;
//case 0x27: *(NVmemmap+SaveCount)=DIASREVISE->value_BAK; break;
//case 0x28: *(NVmemmap+SaveCount)=MEANREVISE->value_BAK; break;
//case 0x29: *(NVmemmap+SaveCount)=STREVISE->value_BAK; break;
case 0x2a: *(NVmemmap+SaveCount)=NIBPUNIT->value; break;
case 0x2b: *(NVmemmap+SaveCount)=TEMP1UNIT->value|(TEMP2UNIT->value<<1); break;
case 0x2c: *(NVmemmap+SaveCount)=AUTOMANUAL->value; break;
case 0x2d: *(NVmemmap+SaveCount)=RESPSCALE->value; break;
case 0x2e: *(NVmemmap+SaveCount)=HRPRFIRST->value; break;
case 0x2f: *(NVmemmap+SaveCount)=WAVEFILL->value; break;
case 0x30: *(NVmemmap+SaveCount)=CLEARTIME->value; break;
case 0x31: *(NVmemmap+SaveCount)=LANGUAGE->value; break;
case 0x32: *(NVmemmap+SaveCount)=HRPR_ALLOW->value|(ST_ALLOW->value<<1)|(SPO2_ALLOW->value<<2)\
|(NIBP_ALLOW->value<<3)|(RESP_ALLOW->value<<4)|(TEMP1_ALLOW->value<<5)\
|(TEMP2_ALLOW->value<<6); break;
case 0x33: *(NVmemmap+SaveCount)=CHECKMODE->value; break;
case 0x34: *(NVmemmap+SaveCount)=ECGWREVISE->value; break;
//case 0x35: *(NVmemmap+SaveCount)=ECGWREVISE->value_BAK; break;
case 0x36: *(NVmemmap+SaveCount)=SECLEAD->value|(LEADDIS->value<<7);break;
case 0x37: *(NVmemmap+SaveCount)=BACKCOLOR->value; break;
case 0x38: *(NVmemmap+SaveCount)=LeadColor[V_I]|(LeadColor[V_II]<<4); break;
case 0x39: *(NVmemmap+SaveCount)=LeadColor[V_III]|(LeadColor[V_aVR]<<4); break;
case 0x3a: *(NVmemmap+SaveCount)=LeadColor[V_aVL]|(LeadColor[V_aVF]<<4); break;
case 0x3b: *(NVmemmap+SaveCount)=LeadColor[V_V]; break;
case 0x3c: *(NVmemmap+SaveCount)=PLETHWCOLOR->value|(RESPWCOLOR->value<<4);break;
case 0x3d: *(NVmemmap+SaveCount)=ECGNUMCOLOR->value|(STNUMCOLOR->value<<4);break;
case 0x3e: *(NVmemmap+SaveCount)=SPO2NUMCOLOR->value|(NIBPNUMCOLOR->value<<4);break;
case 0x3f: *(NVmemmap+SaveCount)=RESPNUMCOLOR->value|(TEMPNUMCOLOR->value<<4);break;
}//end swtich
com1str[2]=0x05;//write NVmemery command;
com1str[3]=SaveCount;//memery address;
com1str[4]=*(NVmemmap+SaveCount); //write content;
com1str[5]=(0x05+com1str[3]+com1str[4])&255;
com1count=0;
while(com1count<6)
sendcom1();
}//end if(SaveCount<0x38)
SaveCount++;
}
void CheckLimit(void)
{
if(HRPR_UP->value<=HRPR_LOW->value){
HRPR_UP->value=160; HRPR_LOW->value=50;
}
if(ST_UP->value<=ST_LOW->value){
ST_UP->value=20; ST_LOW->value=-20;
}
if(SPO2_UP->value<=SPO2_LOW->value){
SPO2_UP->value=99; SPO2_LOW->value=90;
}
if(SYST_UP->value<=SYST_LOW->value){
SYST_UP->value=160; SYST_LOW->value=90;
}
if(MEAN_UP->value<=MEAN_LOW->value){
MEAN_UP->value=140; MEAN_LOW->value=70;
}
if(DIAS_UP->value<=DIAS_LOW->value){
DIAS_UP->value=120; DIAS_LOW->value=50;
}
if(RESP_UP->value<=RESP_LOW->value){
RESP_UP->value=60; RESP_LOW->value=10;
}
return;
}
void DisFrzStaEnd(unsigned char page)
{//每秒采样100点波形,560点=5秒60毫秒,
//8页=560*8=4480毫秒=44秒80毫秒
//560*8=44.80; 560*7=39.20; 560*6=33.60; 560*5=28.00;
//560*4=22.40; 560*3=16.80; 560*2=11.20; 560*1=05.60;
//540*8=43.20; 540*7=37.80; 540*6=32.40; 540*5=27.00;
//540*4=21.60; 540*3=16.20; 540*2=10.80; 540*1=05.40;
//560点=560*0.30625mm=(171.5mm)/(25mm/s)=6.86s
//6.86*8=54.88; 6.86*7=48.02; 6.86*6=41.16; 6.86*5=34.30;
//6.86*4=27.44; 6.86*3=20.58; 6.86*2=13.72; 6.86*1=06.86
if(page>0&&page<9){
char tempstr[20];
char hour=0, min=0, sec=0, hund;
unsigned char SeaSec[9]={54,48,41,34,27,20,13,6,0};
unsigned char SeaHund[9]={88,2,16,30,44,58,72,86,0};
if((hund=frztime.ti_hund-SeaHund[page-1])<0){
hund+=100;
--sec;
}
if((sec=sec+frztime.ti_sec-SeaSec[page-1])<0){
sec+=60;
--min;
}
if((min+=frztime.ti_min)<0){
--hour;
min+=60;
}
if((hour+=frztime.ti_hour)<0)
hour+=24;
sprintf(tempstr,"%02d:%02d:%02d.%02d",hour, min, sec, hund);
outtext(497, 96, tempstr, WHITE, BLACK, FONT10);//开始时间
hour=sec=min=0;
if((hund=frztime.ti_hund-SeaHund[page])<0){
hund+=100;
--sec;
}
if((sec=sec+frztime.ti_sec-SeaSec[page])<0){
sec+=60;
--min;
}
if((min+=frztime.ti_min)<0){
--hour;
min+=60;
}
if((hour+=frztime.ti_hour)<0)
hour+=24;
sprintf(tempstr,"%02d:%02d:%02d.%02d",hour, min, sec, hund);
outtext(520, 96, tempstr, WHITE, BLACK, FONT10);//结束时间
}//end page is right
return;
}
void DisFrzTime(void)
{
char tempstr[20];
char *ITEM_FRZTIME[]={"FREEZE TIME:","冻结时间:"};//ASCII FONT16
char *ITEM_FRZDATE[]={"FREEZE DATE:","冻结日期:"};//ASCII FONT16
char *ITEM_STARTTIME[]={"START TIME:","开始时间:"};//ASCII FONT16
char *ITEM_ENDTIME[]={"END TIME:","结束时间:"};//ASCII FONT16
outtext(495, 8, ITEM_STARTTIME[LANGUAGE->value], LIGHTBLUE, BLACK, FONT16);
outtext(518, 8, ITEM_ENDTIME[LANGUAGE->value], LIGHTBLUE, BLACK, FONT16);
outtext(495, 344, ITEM_FRZTIME[LANGUAGE->value], LIGHTBLUE, BLACK, FONT16);
sprintf(tempstr,"%02d:%02d:%02d.%02d", frztime.ti_hour,frztime.ti_min, frztime.ti_sec, frztime.ti_hund);
outtext(497, 440, tempstr, WHITE, BLACK, FONT10);//冻结时间
outtext(518, 344, ITEM_FRZDATE[LANGUAGE->value], LIGHTBLUE, BLACK, FONT16);
sprintf(tempstr,"%04d-%02d-%02d", frzdate.da_year,frzdate.da_mon, frzdate.da_day);
outtext(520, 440, tempstr, WHITE, BLACK, FONT10);//冻结日期
return;
}
void SaveFile(void)
{
char FileName[10], i_i;
unsigned int filebytes;// file read write bytes;
int FileHandle;
++FilePoint;
if(FilePoint>8) FilePoint=1;
sprintf(FileName, "F%02d", FilePoint);
if(_dos_creat(FileName,O_WRONLY|O_CREAT|O_BINARY,&FileHandle)==0){
for(i_i=0; i_i<7; i_i++){
_dos_write(FileHandle, ECGcache2[i_i], EcacheL, &filebytes);
}
_dos_write(FileHandle, PLETHcache2, EcacheL, &filebytes);
_dos_write(FileHandle, &frzdate, sizeof(struct date), &filebytes);
_dos_write(FileHandle, &frztime, sizeof(struct time), &filebytes);
_dos_write(FileHandle, &FrzData, sizeof(MonData), &filebytes);
_dos_close(FileHandle);
if(!SLTFILE->up){//从未保存文件
SLTFILE->value=SLTFILE->low=SLTFILE->up=1;
}else{
if(SLTFILE->up<8) SLTFILE->up++;
SLTFILE->value=FilePoint;
}
}else{//文件未正确保存
if(FilePoint>0) FilePoint--;
}
if(SLTFILE->up){
SLTPAGE->value=SLTPAGE->low=1;
SLTPAGE->up=8;
}else{
SLTPAGE->value=SLTPAGE->low=SLTPAGE->up=0;
}
return;
}
char OpenFile(unsigned char filenum)
{
char FileName[10];
char right=1, i_i;
int FileHandle; //file handle
unsigned int filebytes;// file read write bytes;
sprintf(FileName, "F%02d", filenum);
if(_dos_open(FileName, O_RDONLY|O_BINARY, &FileHandle)==0){
for(i_i=0; i_i<7; i_i++){
_dos_read(FileHandle, ECGcache2[i_i], EcacheL, &filebytes);
}
_dos_read(FileHandle, PLETHcache2, EcacheL, &filebytes);
_dos_read(FileHandle, &frzdate, sizeof(struct date), &filebytes);
_dos_read(FileHandle, &frztime, sizeof(struct time), &filebytes);
_dos_read(FileHandle, &FrzData, sizeof(MonData), &filebytes);
_dos_close(FileHandle);
}else{//文件未正确保存
right=0;
}
return right;
}
void DisSingleFrzECG(unsigned point, unsigned char lead)
{
int max=point+FRZWAVELEN-2;
int row1=*(ECGcache2[lead]+point);
int x=1, row2;
if(ECGSCALE->value!=V_X4)
row1>>=1;
else
row1-=64;
if(row1<=0) row1=1;
if(row1>=128) row1=127;
SETCOLOR(LeadColor[lead]);
for(; point<max; point++, x++){
row2=*(ECGcache2[lead]+point);
if(ECGSCALE->value!=V_X4)
row2>>=1;
else
row2-=64;
if(row2<=0) row2=1;
if(row2>=128) row2=127;
commline(ECG_IENDY-row1, x, ECG_IENDY-row2, x+1);
row1=row2;
}
return;
}
void DisSevenFrzECG(unsigned point)
{ int max=point+FRZWAVELEN-2, jj, x;
int row1[7], row2[7], baserow[7]={I_ENDY, II_ENDY, III_ENDY, aVR_ENDY, aVL_ENDY, aVF_ENDY, V_ENDY};
char i_i;
for(i_i=0; i_i<7; i_i++){
if(ECGSCALE->value!=V_X4)
row1[i_i]=*(ECGcache2[i_i]+point)>>1;
else
row1[i_i]=*(ECGcache2[i_i]+point)-64;
row1[i_i]=row1[i_i]*ECGW_SYNC_RATE/ECGW_RATE_BASE;
if(row1[i_i]<=0) row1[i_i]=1;
if(row1[i_i]>=SEVENLEAD_HIGH) row1[i_i]=SEVENLEAD_HIGH;
}
for(i_i=0; i_i<7; i_i++){
SETCOLOR(LeadColor[i_i]);
jj=point+1; x=1;
for(; jj<max; jj++, x++){
row2[i_i]=*(ECGcache2[i_i]+jj);
if(ECGSCALE->value!=V_X4)
row2[i_i]>>=1;
else
row2[i_i]-=64;
row2[i_i]=row2[i_i]*ECGW_SYNC_RATE/ECGW_RATE_BASE;
if(row2[i_i]<=0) row2[i_i]=1;
if(row2[i_i]>=SEVENLEAD_HIGH) row2[i_i]=SEVENLEAD_HIGH;
commline(baserow[i_i]-row1[i_i], x, baserow[i_i]-row2[i_i], x+1);
row1[i_i]=row2[i_i];
}
}
return;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -