📄 runkey.h
字号:
if(LEADDIS->value==V_SINGLE){//单导联显示
fillrect(ECG_ENDY+2, 1, TREDNGRP_ENDY, LEFTMAXX-1, BLACK);//擦除ECG+I PLETH波形
ItemAllow=0x10;
WaveCont=0x02;//ECG单行和PLETH在ECG+I上显示
PwaveX=WAVXSTART;
}else{//7导联显示
fillrect(WAVE_STARTY, 1, TREDNGRP_ENDY, LEFTMAXX-1, BLACK);//擦除ECG I~~V波形
SETCOLOR(CYAN);
gapbeeline(ECG_ENDY+1, 0, ECG_ENDY+1, LEFTMAXX); //ECG +I
ItemAllow=0x10;
WaveCont=0x06;//ECG单行和PLETH在ECG+I上显示
EwaveX=PwaveX=WAVXSTART;
drawECGScaleRule();
}
SETCOLOR(CYAN);
gapbeeline(ECG_IENDY+1, 0, ECG_IENDY+1, LEFTMAXX); //PLETH
gapbeeline(TREDNGRP_ENDY, 0, TREDNGRP_ENDY, LEFTMAXX);
ECGWavItstr=PLETHWavItstr=NULL;
PLETHWave_row=ECG_IENDY;//血氧波形的起始行
commline(GRPPAGE_ENDY-GRPPAGE_HIGH+7, GRPPAGE_ENDX-GRPPAGE_WIDTH-3, GRPPAGE_ENDY-GRPPAGE_HIGH+9, GRPPAGE_ENDX-GRPPAGE_WIDTH-3);
commline(GRPPAGE_ENDY-GRPPAGE_HIGH+4, GRPPAGE_ENDX-GRPPAGE_WIDTH-2, GRPPAGE_ENDY-GRPPAGE_HIGH+9, GRPPAGE_ENDX-GRPPAGE_WIDTH-2);
commline(GRPPAGE_ENDY-GRPPAGE_HIGH+2, GRPPAGE_ENDX-GRPPAGE_WIDTH-1, GRPPAGE_ENDY-GRPPAGE_HIGH+9, GRPPAGE_ENDX-GRPPAGE_WIDTH-1);
commline(GRPPAGE_ENDY-GRPPAGE_HIGH, GRPPAGE_ENDX-GRPPAGE_WIDTH, GRPPAGE_ENDY, GRPPAGE_ENDX-GRPPAGE_WIDTH);//垂直 line
commline(GRPPAGE_ENDY, GRPPAGE_ENDX-GRPPAGE_WIDTH, GRPPAGE_ENDY, GRPPAGE_ENDX);//水平 line
commline(GRPPAGE_ENDY+1, GRPPAGE_ENDX-8,GRPPAGE_ENDY+1, GRPPAGE_ENDX-2);
commline(GRPPAGE_ENDY+2, GRPPAGE_ENDX-8,GRPPAGE_ENDY+2, GRPPAGE_ENDX-4);
commline(GRPPAGE_ENDY+3, GRPPAGE_ENDX-8,GRPPAGE_ENDY+3, GRPPAGE_ENDX-6);
for(i_i=1; i_i<8; i_i++){//显示参数标题
if(i_i!=PARAMETER->value)
outtext(row[i_i]+300, 448, VAL_PARA[LANGUAGE->value+(i_i<<1)], WHITE, BLACK, FONT12);//HR,PR..NIBP
}
DisParaItem(0);//显示当前参数标题
outtext(460, 456, ITEM_SYST[LANGUAGE->value], LIGHTMAGENTA, BLACK, FONT12);// SYST
outtext(460, 496, "/", LIGHTCYAN, BLACK, FONT10);
outtext(460, 512, ITEM_DIAS[LANGUAGE->value], LIGHTMAGENTA, BLACK, FONT12);// DIAS
outtext(495, 456, ITEM_MEAN[LANGUAGE->value], LIGHTMAGENTA, BLACK, FONT12);//平均压
outtext(477, 496, "/", LIGHTCYAN, BLACK, FONT10);
outtext(495, 120, ITEM_STEP[LANGUAGE->value], LIGHTRED, BLACK, FONT12);
outtext(495, 168, VAL_GTIMESCAL[GTIMESCALE->value], WHITE, BLACK, FONT12);//时间标尺
outtext(495, 256, ITEM_PAGE[LANGUAGE->value], LIGHTBLUE, BLACK, FONT12);
trdtime.ti_hour=timer.ti_hour;//进入趋势图时的时间
trdtime.ti_min=timer.ti_min;
DataEndPoint=(Datapoint+MONDATAL-1)%MONDATAL;//进入趋势图时的当前数据指针
if(Datafill){//如果数据填满了
DataStaPoint=Datapoint;
GRPTURNPG->up=timescale[GTIMESCALE->up-GTIMESCALE->value];//翻页的上限(共多少页可翻)
}else{//数据未满
DataStaPoint=0;
i_i=DataEndPoint/(timescale[GTIMESCALE->value]*GRPPAGE_LEN);//翻页的上限(共多少页可翻)
if(DataEndPoint%(timescale[GTIMESCALE->value]*GRPPAGE_LEN))
++i_i;
GRPTURNPG->up=i_i;//翻页的上限(共多少页可翻)
}
GRPTURNPG->value=GRPTURNPG->up;//进入趋势图时的页号
if(!GRPTURNPG->value)GRPTURNPG->value=GRPTURNPG->up=1;
DisValue(GRPTURNPG, VM_COLOR, VM_BCOLOR);
oldMovCus=-1;
GrpTrdPage(GOTO_NEXTPAGE);
}
break;
case ID_INTOTNDLST://进入趋势列表
{ char timescale[]={1, 2, 5, 10, 30};
if(LEADDIS->value==V_SINGLE){//单导联显示
fillrect(ECG_ENDY+2, 1, TREDNGRP_ENDY, LEFTMAXX-1, BLACK);//擦除ECG+I PLETH波形
ItemAllow=0x10;
WaveCont=0x02;//ECG单行和PLETH在ECG+I上显示
PwaveX=WAVXSTART;
}else{//7导联显示
fillrect(WAVE_STARTY, 1, TRENDLST_ENDY, LEFTMAXX-1, BLACK);//擦除ECG I~~V波形
SETCOLOR(CYAN);
gapbeeline(ECG_ENDY+1, 0, ECG_ENDY+1, LEFTMAXX); //ECG +I
ItemAllow=0x10;
WaveCont=0x06;//ECG单行和PLETH在ECG+I上显示
EwaveX=PwaveX=WAVXSTART;
drawECGScaleRule();
}
SETCOLOR(CYAN);
gapbeeline(ECG_IENDY+1, 0, ECG_IENDY+1, LEFTMAXX); //PLETH
gapbeeline(TRENDLST_ENDY, 0, TRENDLST_ENDY, LEFTMAXX);
ECGWavItstr=PLETHWavItstr=NULL;
PLETHWave_row=ECG_IENDY;//血氧波形的起始行
DisListHd(ECG_IENDY+5);//显示列表头(时间 心率 脉率 ...)
//DisListHd(III_IENDY+5);//显示列表头(时间 心率 脉率 ...)
trdtime.ti_hour=timer.ti_hour;//进入趋势列表时的时间
trdtime.ti_min=timer.ti_min;
DataEndPoint=(Datapoint+MONDATAL-1)%MONDATAL;//进入趋势列表时的当前数据指针
if(Datafill){//如果数据填满了
DataStaPoint=Datapoint;
LSTTURNPG->up=120/timescale[LTIMESCALE->value];//翻页的上限(共多少页可翻)
}else{//数据未满
DataStaPoint=0;
LSTTURNPG->up=DataEndPoint/(timescale[LTIMESCALE->value]*PRTLSTLEN);//翻页的上限(共多少页可翻)
if(DataEndPoint%(timescale[LTIMESCALE->value]*PRTLSTLEN)>0)
++LSTTURNPG->up;
}
if(!LSTTURNPG->up)
LSTTURNPG->up=1;
LSTTURNPG->value=LSTTURNPG->up;
DisValue(LSTTURNPG, VM_COLOR, VM_BCOLOR);
DisLstPage();//显示一页趋势列表(每页12个数据项)
}
break;
case ID_INTONIBPLST://进入血压数据列表
if(LEADDIS->value==V_SINGLE){//单导联显示
fillrect(ECG_ENDY+2, 1, TREDNGRP_ENDY, LEFTMAXX-1, BLACK);//擦除ECG+I PLETH波形
ItemAllow=0x10;
WaveCont=0x02;//ECG单行和PLETH在ECG+I上显示
PwaveX=WAVXSTART;
}else{//7导联显示
fillrect(WAVE_STARTY, 1, TRENDLST_ENDY, LEFTMAXX-1, BLACK);//擦除ECG I~~V波形
SETCOLOR(CYAN);
gapbeeline(ECG_ENDY+1, 0, ECG_ENDY+1, LEFTMAXX); //ECG +I
ItemAllow=0x10;
WaveCont=0x06;//ECG单行和PLETH在ECG+I上显示
EwaveX=PwaveX=WAVXSTART;
drawECGScaleRule();
}
SETCOLOR(CYAN);
gapbeeline(ECG_IENDY+1, 0, ECG_IENDY+1, LEFTMAXX); //PLETH
gapbeeline(TRENDLST_ENDY, 0, TRENDLST_ENDY, LEFTMAXX);
ECGWavItstr=PLETHWavItstr=NULL;
PLETHWave_row=ECG_IENDY;//血氧波形的起始行
DisListHd(ECG_IENDY+5);//显示列表头(时间 心率 脉率 ...)
InListCount=RealTimeCount;
trdtime.ti_hour=timer.ti_hour;//进入趋势列表时的时间
trdtime.ti_min=timer.ti_min;
trdtime.ti_sec=timer.ti_sec;
//DataEndPoint=(Datapoint+MONDATAL-1)%MONDATAL;//进入趋势列表时的当前数据指针
NIBPLSTPAGE->value=NIBPLSTPAGE->up;
DisValue(NIBPLSTPAGE, VM_COLOR, VM_BCOLOR);
DisNIBPList();//显示一页血压数据列表(每页12个数据项)
break;
}//end switch(CMD_ID)
}//end if(CMD_ID!=ID_NOCMD)
if(CMD_VID!=VID_NOCMD){
switch(CMD_VID){
case VID_SECLEAD://SECOND LEAD CMD
LeadStr2=VAL_LEAD[SECLEAD->value];
break;
case VID_LEADDIS:
fillrect(WAVE_STARTY, 1, PLETH_ENDY, LEFTMAXX-1, BLACK);
EwaveX=PwaveX=WAVXSTART;
if(LEADDIS->value==V_SINGLE){//单导联处理
WaveCont=0x07; //RESP波形不显示
ItemAllow=0x13;
SETCOLOR(CYAN);
gapbeeline(ECG_ENDY+1, 0, ECG_ENDY+1, LEFTMAXX-1);
gapbeeline(ECG_IENDY+1, 0, ECG_IENDY+1, LEFTMAXX-1);
ECGWavItstr=PLETHWavItstr=RESPWavItstr=NULL;
PLETHWave_row=PLETH_ENDY;
}else{//7导联处理
//SETCOLOR(CYAN);
ItemAllow=0x08;
WaveCont=0x01; //PLETH,RESP波不允许
PLETHWave_row=WAVE_ENDY;
}
drawECGScaleRule();
break;
case VID_NIBPUNIT://NIBP UNIT CHANGE
if(NIBPUNIT->value==V_MMHG)
var=TP_INT3;
else
var=TP_KPA;
SYST_UP->type=SYST_LOW->type=
MEAN_UP->type=MEAN_LOW->type=
DIAS_UP->type=DIAS_LOW->type=var;
break;
case VID_AUTOMANUAL://NIBP AUTO OR MANUAL CHECK
if(disSYST!=255||disMEAN!=255||disDIAS!=255){
com1str[2]=0x0a; //清除血压数据
com1str[3]=0;
com1str[4]=0;
com1str[5]=com1str[2];
com1count=0;
while(com1count<6)
sendcom1();
}
SetNIBPTime();
break;
case VID_AUTOTIME://NIBP AUTO CHECK TIME
if(AUTOMANUAL->value==V_AUTO){
NIBPmin=AUTOTIME->value-1;
NIBPsec=60;
}
break;
case VID_TEMP1UNIT://TEMP1 UNIT CHANGE
if(TEMP1UNIT->value==V_C_)//摄氏度
TEMP1_UP->type=TP_FLT4;
else
TEMP1_UP->type=TP__F;
break;
case VID_TEMP2UNIT:
if(TEMP2UNIT->value==V_C_)//摄氏度
TEMP2_UP->type=TP_FLT4;
else
TEMP2_UP->type=TP__F;
break;
case VID_SYSDEF://SYSTEM DEFAULT SET
if(!disdelay){//如果不在显示延迟中
ItemValue=AT_VITEM;
if(LANGUAGE->value!=V_CHINESE){
LANGUAGE->value=V_CHINESE;
HRPRFIRST->value=V_HR;
WAVEFILL->value=V_OFF;
fillrect(PLETH_ENDY+2, 1, WAVE_ENDY, LEFTMAXX-1, BLACK);
DisItem(); DisVmenu();
}else{
fillrect((CUR_vmenu+CUR_Vcus)->vy, (CUR_vmenu+CUR_Vcus)->vx, (CUR_vmenu+CUR_Vcus)->vy+11, (CUR_vmenu+CUR_Vcus)->vx+47, BLACK);
outtext((CUR_vmenu+CUR_Vcus)->iy, (CUR_vmenu+CUR_Vcus)->ix, (CUR_vmenu+CUR_Vcus)->item[LANGUAGE->value], MENU_CCOLOR, MENU_CBCOLOR, FONT16);//显示选中值菜单的标题
var=HRPRFIRST->value;
if(var!=V_HR){
HRPRFIRST->value=V_HR;
DisValue(HRPRFIRST, VM_COLOR, VM_BCOLOR);
}
var=WAVEFILL->value;
if(var!=V_OFF){
WAVEFILL->value=V_OFF;
DisValue(WAVEFILL, VM_COLOR, VM_BCOLOR);
}
}
MAINLEAD->value=V_II; SECLEAD->value=V_III; ECGSCALE->value=V_X1; WORKSTA->value=V_MON;
WAVESPD->value=V_25MM; INTENSITY->value=0; LeadStr2=VAL_LEAD[SECLEAD->value];
NIBPCRIT->value=V_ADULT_MID;//血压标准 成人高
CHECKMODE->value=V_DIRECT;
var=NIBPUNIT->value;
if(var!=V_MMHG){
NIBPUNIT->value=V_MMHG;
SYST_UP->type=SYST_LOW->type=
MEAN_UP->type=MEAN_LOW->type=
DIAS_UP->type=DIAS_LOW->type=TP_INT3;
}
var=AUTOMANUAL->value;
if(var!=V_MANUAL){
AUTOMANUAL->value=V_MANUAL;
SetNIBPTime();
NIBPCheckTure=0;
}
AUTOTIME->value=30;
RESPCHK->value=V_ON;
TEMP1CHK->value=TEMP2CHK->value=V_ON;
var=TEMP1UNIT->value;
if(var!=V_C_){
TEMP1UNIT->value=V_C_;
TEMP1_UP->type=TP_FLT4;
}
var=TEMP2UNIT->value;
if(var!=V_C_){
TEMP2UNIT->value=V_C_;
TEMP2_UP->type=TP_FLT4;
}
RESPSCALE->value=V_X1;
LeadColor[V_I]=L_I_COLOR; LeadColor[V_II]=L_II_COLOR; LeadColor[V_III]=L_III_COLOR;
LeadColor[V_aVR]=L_aVR_COLOR; LeadColor[V_aVL]=L_aVL_COLOR;LeadColor[V_aVF]=L_aVF_COLOR;
LeadColor[V_V]=L_V_COLOR; PLETHWCOLOR->value=PLETHWAV_COLOR;
RESPWCOLOR->value=RESPWAV_COLOR;
ECGNUMCOLOR->value=ECG_COLOR; STNUMCOLOR->value=ST_COLOR; SPO2NUMCOLOR->value=SPO2_COLOR;
NIBPNUMCOLOR->value=NIBP_COLOR; RESPNUMCOLOR->value=RESP_COLOR; TEMPNUMCOLOR->value=TEMP_COLOR;
}
break;
case VID_MONDEMO://MONITOR / DEMO
if(MONDEMO->value==V_DEMO){
disSYST=120;
disMEAN=90;
disDIAS=75;
if(NIBPStatus&0x01){
com1str[2]=0x02; //取消血压测量
com1str[3]=0;
com1str[4]=0;//alaways manual
com1str[5]=com1str[2];
com1count=0;
while(com1count<6)
sendcom1();
}
InitINT8();//时钟中断加速
}else{
RecINT8();
SetBackColor(BACKCOLOR->value);
nosound();
HRrate=PRrate=SPO2value=\
disMEAN=disSYST=disDIAS=RESPvalue=255;
STvalue=127; TEMP1value=TEMP2value=455;
ECGStatus=0x0f; SPO2Status=1; NIBPStatus&=0xfe;
SetNIBPTime();
}
break;
case VID_MODDATE://ADJUST DATE
{ struct date newdate;
newdate.da_year=DATE_YEAR->value; newdate.da_mon=DATE_MON->value;
newdate.da_day=DATE_DAY->value; setdate(&newdate);
};
break;
case VID_MODTIME://ADJUST TIME
{struct time newtime;
newtime.ti_hour=TIME_HOUR->value; newtime.ti_min=TIME_MIN->value;
newtime.ti_sec=timer.ti_sec; newtime.ti_hund=0;
settime(&newtime);
}
break;
case VID_LANGUAGE://language change
fillrect(PLETH_ENDY+2, 1, WAVE_ENDY, LEFTMAXX-1, BLACK);//菜单栏(RESP or PLETH)
DisItem(); DisVmenu();//重新显示所有菜单标题和菜单值
break;
case VID_PRTTIME://print time
PRINTmin=PRTTIME->value-1; PRINTsec=60;
break;
case VID_ARMTIME://alarm time(sec)
AlarmTime=ALARMTIME->value;
break;
case VID_GAPTIME://gap time
GAPmin=GAPTIME->value; GAPsec=60;
break;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -