📄 runkey.h
字号:
case VID_ARMDEF://报警菜单和校正中的缺剩设置
{static char noprocess=1;
if(disdelay){//如果在显示延迟中
if(noprocess){//如果没有处理
var=ARMALLOW->value;//报警打开
if(var!=V_ON){
ARMALLOW->value=V_ON;
DisValue(ARMALLOW, VM_COLOR, VM_BCOLOR);
}
var=GAPALARM->value;//间断报警打开
if(var!=V_ON){
GAPALARM->value=V_ON;
DisValue(GAPALARM, VM_COLOR, VM_BCOLOR);
}
var=ALARMTIME->value;//报警时间10秒
if(var!=10){
ALARMTIME->value=10;
DisValue(ALARMTIME, VM_COLOR, VM_BCOLOR);
}
var=GAPTIME->value;//间断时间1分钟
if(var!=1){
GAPTIME->value=1;
DisValue(GAPTIME, VM_COLOR, VM_BCOLOR);
}
var=ALARMTONE->value;//报警音调(中音)
if(var!=1){
ALARMTONE->value=1;
DisValue(ALARMTONE, VM_COLOR, VM_BCOLOR);
}
AUTOPRT->value=ALARMPRT->value=V_OFF;//定时打印与警报打印关闭
PRTTIME->value=30;
HRPR_UP->value=160; HRPR_LOW->value=50;
ST_UP->value=20; ST_LOW->value=-20;
SPO2_UP->value=99; SPO2_LOW->value=90;
SYST_UP->value=160; SYST_LOW->value=90;
MEAN_UP->value=140; MEAN_LOW->value=70;
DIAS_UP->value=120; DIAS_LOW->value=50;
RESP_UP->value=60; RESP_LOW->value=10;
TEMP2_UP->value=TEMP1_UP->value=400;
HRPR_ALLOW->value=SPO2_ALLOW->value=NIBP_ALLOW->value=V_ON;
ST_ALLOW->value=RESP_ALLOW->value=TEMP1_ALLOW->value=TEMP2_ALLOW->value=V_OFF;
AlarmRingAllow();
noprocess=0;
}
}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);
ItemValue=AT_VITEM;
outtext((CUR_vmenu+CUR_Vcus)->iy, (CUR_vmenu+CUR_Vcus)->ix, (CUR_vmenu+CUR_Vcus)->item[LANGUAGE->value], MENU_CCOLOR, MENU_CBCOLOR, FONT16);//显示选中值菜单的标题
noprocess=1;
}
}//end static
break;
case VID_TURNPAGE://冻结菜单 翻叶处理
DisFrzStaEnd(FRZTURNPG->value);//冻结起始截止时间
if(LEADDIS->value==V_SINGLE){//单导联冻结显示位置
fillrect(ECG_IENDY-ECG_HIGH, 1, ECG_IENDY, LEFTMAXX-1, BLACK);//擦除ECG+I波形
fillrect(PLETH_ENDY-PLETH_HIGH, 1, PLETH_ENDY, LEFTMAXX-1, BLACK);//擦除PLETH wave
}else{
fillrect(WAVE_STARTY, 1, PLETH_ENDY, LEFTMAXX-1, BLACK);//擦除ECG I~~V波形
drawECGScaleRule();//画心电增益
}
DisFreWav(FRZTURNPG->value, FRZLEADSLT->value);
break;
case VID_PRTPAGE://冻结菜单 打印冻结波形
{static char noprocess=1;
if(disdelay){//如果在显示延迟中
if(noprocess){//如果没有处理
if(PrtWavCount<PRTWAV_COUNTER){
PrtWavCount=255;
}else{
PrtWavCount=0;
PWavPrtHd=EWavPrtHd=(8-FRZTURNPG->value)*FRZWAVELEN;//打印数据头指针
PrtECG_Lead=FRZLEADSLT->value;
}
noprocess=0;
}
}else{//显示延迟到时间
fillrect((CUR_vmenu+CUR_Vcus)->vy, (CUR_vmenu+CUR_Vcus)->vx, (CUR_vmenu+CUR_Vcus)->vy+11, (CUR_vmenu+CUR_Vcus)->vx+39, BLACK);
ItemValue=AT_VITEM;
outtext((CUR_vmenu+CUR_Vcus)->iy, (CUR_vmenu+CUR_Vcus)->ix, (CUR_vmenu+CUR_Vcus)->item[LANGUAGE->value], MENU_CCOLOR, MENU_CBCOLOR, FONT16);//显示选中值菜单的标题
noprocess=1;
}
}//end static
break;
case VID_SAVEWAV://保存冻结波形
{static char noprocess=1;
char tempstr[10];
if(disdelay){//在显示延迟中
if(noprocess){//如果没有处理
SaveFile();
noprocess=0;
}
}else{//显示延时时间到
if(SLTFILE->up)
sprintf(tempstr,"F%02d ", SLTFILE->value);//显示保存的文件号
else
sprintf(tempstr,"ERR");
fillrect((CUR_vmenu+CUR_Vcus)->vy, (CUR_vmenu+CUR_Vcus)->vx, (CUR_vmenu+CUR_Vcus)->vy+11, (CUR_vmenu+CUR_Vcus)->vx+39, BLACK);
outtext((CUR_vmenu+CUR_Vcus)->vy, (CUR_vmenu+CUR_Vcus)->vx, tempstr, MENU_COLOR, MENU_BCOLOR, FONT10);
ItemValue=AT_VITEM;
outtext((CUR_vmenu+CUR_Vcus)->iy, (CUR_vmenu+CUR_Vcus)->ix, (CUR_vmenu+CUR_Vcus)->item[LANGUAGE->value], MENU_CCOLOR, MENU_CBCOLOR, FONT16);//显示选中值菜单的标题
noprocess=1;
}
}//end static
break;
case VID_FRZLEADSLT://冻结翻导联
if(LEADDIS->value==V_SINGLE){
LeadStr2=VAL_LEAD[FRZLEADSLT->value];//当前为冻结选择导联
fillrect(ECG_IENDY-ECG_HIGH, 1, ECG_IENDY, LEFTMAXX-1, BLACK);//擦除ECG+I波形
DisSingleFrzECG((8-FRZTURNPG->value)*FRZWAVELEN, FRZLEADSLT->value);
}
break;
case VID_MENUEXIT://退出冻结菜单或者校正菜单
ExitMenu();
break;
case VID_SLTFILE://选择文件
if(SLTFILE->up){//如果有供选择的文件
SLTPAGE->low=SLTPAGE->value=1;
SLTPAGE->up=8;
DisValue(SLTPAGE, VM_COLOR, VM_BCOLOR);//更新文件的页码为1
if(OpenFile(SLTFILE->value)){//如果文件打开正确
if(LEADDIS->value==V_SINGLE){
fillrect(PLETH_ENDY-PLETH_HIGH, 1, PLETH_ENDY, LEFTMAXX-1,BLACK);//擦除 PLETH 波形
fillrect(ECG_IENDY-ECG_HIGH, 1, ECG_IENDY, LEFTMAXX-1,BLACK);//擦除ECG+I 波形
}else{
fillrect(WAVE_STARTY, 1, PLETH_ENDY, LEFTMAXX-1, BLACK);
}
DisFreWav(SLTPAGE->value, FILLEADSLT->value);
DisFrzTime();//显示冻结时间日期
DisFrzStaEnd(SLTPAGE->value);//冻结起始截止时间
}else{
SLTPAGE->value=SLTPAGE->low=SLTPAGE->up=0;
outtext(ECG_ENDY-100, 200, "OPEN FILE ERROR", LIGHTRED, BLACK, FONT10);
}
}else{//没有文件
static char noprocess=1;
SLTPAGE->value=SLTPAGE->low=SLTPAGE->up=0;
if(disdelay){
if(noprocess){//如果没有处理
outtext(SLTFILE->vy, SLTFILE->vx, "NULL", MENU_CCOLOR, MENU_CBCOLOR, FONT12);
noprocess=0;
}
}else{
fillrect(SLTFILE->vy, SLTFILE->vx, SLTFILE->vy+9, SLTFILE->vx+31, BLACK);
ItemValue=AT_VITEM;
outtext((CUR_vmenu+CUR_Vcus)->iy, (CUR_vmenu+CUR_Vcus)->ix, (CUR_vmenu+CUR_Vcus)->item[LANGUAGE->value], MENU_CCOLOR, MENU_CBCOLOR, FONT16);//显示选中值菜单的标题
noprocess=1;
}//end if(disdelay)
}//end no file
break;
case VID_SLTPAGE://选择文件页码
if(SLTPAGE->up){//如果有供选择的文件
if(LEADDIS->value==V_SINGLE){//单导联处理
fillrect(ECG_IENDY-ECG_HIGH, 1, ECG_IENDY, LEFTMAXX-1, BLACK);//擦除ECG+I波形
fillrect(PLETH_ENDY-PLETH_HIGH, 1, PLETH_ENDY, LEFTMAXX-1, BLACK);//擦除PLETH wave
FILLEADSLT->value=SECLEAD->value;
}else{
fillrect(WAVE_STARTY, 1, PLETH_ENDY, LEFTMAXX-1, BLACK);//擦除ECG I~~V波形
drawECGScaleRule();//画心电增益
FILLEADSLT->value=FILLEADSLT->up=FILLEADSLT->low=SECLEAD->value;
}
DisFreWav(SLTPAGE->value, FILLEADSLT->value);
DisFrzStaEnd(SLTPAGE->value);//冻结起始截止时间
}else{//没有可选择的冻结页
static noprocess=1;
if(disdelay){
if(noprocess){
fillrect(SLTPAGE->vy, SLTPAGE->vx, SLTPAGE->vy+9, SLTPAGE->vx+15, BLACK);
outtext(SLTPAGE->vy, SLTPAGE->vx, "NULL", MENU_CCOLOR, MENU_CBCOLOR, FONT12);
noprocess=0;
}
}else{
fillrect(SLTPAGE->vy, SLTPAGE->vx, SLTPAGE->vy+9, SLTPAGE->vx+31, BLACK);
ItemValue=AT_VITEM;
outtext((CUR_vmenu+CUR_Vcus)->iy, (CUR_vmenu+CUR_Vcus)->ix, (CUR_vmenu+CUR_Vcus)->item[LANGUAGE->value], MENU_CCOLOR, MENU_CBCOLOR, FONT16);//显示选中值菜单的标题
noprocess=1;
}
}
break;
case VID_PRTFILE://打印文件
{static char noprocess=1;
if(disdelay){//如果在显示延迟中
if(noprocess){//如果没有处理
if(SLTPAGE->up){//已经有内容进入
if(PrtWavCount<PRTWAV_COUNTER){
PrtWavCount=255;
}else{
PrtWavCount=0;
PWavPrtHd=EWavPrtHd=(8-SLTPAGE->value)*FRZWAVELEN;//打印数据头指针
PrtECG_Lead=FILLEADSLT->value;
}
}else{
fillrect((CUR_vmenu+CUR_Vcus)->vy, (CUR_vmenu+CUR_Vcus)->vx, (CUR_vmenu+CUR_Vcus)->vy+11, (CUR_vmenu+CUR_Vcus)->vx+39, BLACK);
outtext((CUR_vmenu+CUR_Vcus)->vy, (CUR_vmenu+CUR_Vcus)->vx,"NULL",MENU_CCOLOR, MENU_CBCOLOR, FONT12);
}
noprocess=0;
}
}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);
ItemValue=AT_VITEM;
outtext((CUR_vmenu+CUR_Vcus)->iy, (CUR_vmenu+CUR_Vcus)->ix, (CUR_vmenu+CUR_Vcus)->item[LANGUAGE->value], MENU_CCOLOR, MENU_CBCOLOR, FONT16);//显示选中值菜单的标题
noprocess=1;
}
}//end static
break;
case VID_FILLEADSLT://文件翻导联
if(LEADDIS->value==V_SINGLE){
if(SLTPAGE->up){//已经有内容进入
LeadStr2=VAL_LEAD[FILLEADSLT->value];//当前为冻结选择导联
fillrect(ECG_IENDY-ECG_HIGH, 1, ECG_IENDY, LEFTMAXX-1, BLACK);//擦除ECG+I波形
DisSingleFrzECG((8-SLTPAGE->value)*FRZWAVELEN, FILLEADSLT->value);
}
}
break;
case VID_EXITFILE://退出文件回放菜单
ItemValue=AT_ITEM; //在标题菜单中
CUR_Vcus=0;//回到文件选择的默认菜单
LeadStr2=VAL_LEAD[SECLEAD->value];//当前为副导联
FILLPRTWAV->iy=SLTPAGE->iy=SLTFILE->iy=520; FILLPRTWAV->vy=SLTPAGE->vy=SLTFILE->vy=522;
FILLEADSLT->iy=FILLEXIT->iy=540; FILLEADSLT->vy=FILLEXIT->vy=542;
fillrect(PLETH_ENDY+2, 1, WAVE_ENDY, LEFTMAXX-1, BLACK);//菜单栏(RESP or PLETH)
DisItem();//重新显示趋势主菜单
DisVmenu();//显示文件回放菜单
if(LEADDIS->value==V_SINGLE){
ECGWavItstr=PLETHWavItstr=NULL;
WaveCont=0x07; //RESP波形不显示
ItemAllow=0x13;
EwaveX=PwaveX=WAVXSTART;//ECG PLETH RESP wave x is return start point;
fillrect(ECG_ENDY-ECG_HIGH, WAVXSTART, ECG_ENDY, LEFTMAXX-1, BLACK);//擦除ECG波形
fillrect(ECG_IENDY-ECG_HIGH, 1, ECG_IENDY, LEFTMAXX-1, BLACK);//擦除ECG+I wave
fillrect(PLETH_ENDY-PLETH_HIGH, 1, PLETH_ENDY, LEFTMAXX-1, BLACK);//擦除PLETH wave
PLETHWave_row=PLETH_ENDY;
}else{
ItemAllow=0x08;
WaveCont=0x01; //I~V波形显示
PLETHWave_row=WAVE_ENDY;//血氧波形的起始行
EwaveX=WAVXSTART;//ECG wave x is return start point;
fillrect(WAVE_STARTY, 1, PLETH_ENDY, LEFTMAXX-1, BLACK);//擦除ECG I~~V波形
drawECGScaleRule();//画心电增益
}
break;
case VID_PARAMETER://参数转换
{ static unsigned char oldpara=0x00;
DisParaItem(oldpara);
fillrect(GRPPAGE_ENDY-GRPPAGE_HIGH, GRPPAGE_ENDX-GRPPAGE_WIDTH+1, GRPPAGE_ENDY-1, GRPPAGE_ENDX, BLACK);
oldMovCus=-1;
GrpTrdPage(GOTO_NEXTPAGE);//显示当前趋势图形
oldpara=PARAMETER->value;
}
break;
case VID_GTIMESTEP://时间标尺
{ char timescale[]={1, 2, 3, 4, 6, 12};
outtext(495, 168, VAL_GTIMESCAL[GTIMESCALE->value], WHITE, BLACK, FONT12);//时间标尺
fillrect(GRPPAGE_ENDY-GRPPAGE_HIGH, GRPPAGE_ENDX-GRPPAGE_WIDTH+1, GRPPAGE_ENDY-1, GRPPAGE_ENDX, BLACK);
outtext(GRPTURNPG->vy, GRPTURNPG->vx, "01", MENU_COLOR, MENU_BCOLOR, FONT10);
if(Datafill){//如果数据填满了
GRPTURNPG->up=timescale[GTIMESCALE->up-GTIMESCALE->value];//翻页的上限(共多少页可翻)
}else{//数据未满
i_i=DataEndPoint/(timescale[GTIMESCALE->value]*GRPPAGE_LEN);//翻页的上限(共多少页可翻)
if(DataEndPoint%(timescale[GTIMESCALE->value]*GRPPAGE_LEN))
++i_i;
GRPTURNPG->up=i_i;//翻页的上限(共多少页可翻)
}
if(!GRPTURNPG->up)
GRPTURNPG->up=1;
GRPTURNPG->value=GRPTURNPG->up;
oldMovCus=-1;
GrpTrdPage(GOTO_NEXTPAGE);//显示当前趋势图形
}
break;
case VID_GTNDPAGE://趋势图翻页
fillrect(GRPPAGE_ENDY-GRPPAGE_HIGH, GRPPAGE_ENDX-GRPPAGE_WIDTH+1, GRPPAGE_ENDY-1, GRPPAGE_ENDX, BLACK);
oldMovCus=-1;
GrpTrdPage(GOTO_NEXTPAGE);//显示当前趋势图形
break;
case VID_MOVECUS://趋势图移动光标
{
unsigned step;
char hour, min;
char timescale[]={1, 2, 3, 4, 6, 12};
disdelay=0;
if(MOVECURS->value==1&&oldMovCus==1){//光标翻页
if(GRPTURNPG->value+1<=GRPTURNPG->up){//还有下页显示
++GRPTURNPG->value;
sprintf(tempstr, "%02d", GRPTURNPG->value );
outtext(GRPTURNPG->vy, GRPTURNPG->vx, tempstr, VM_COLOR, VM_BCOLOR, FONT12);
fillrect(GRPPAGE_ENDY-GRPPAGE_HIGH, GRPPAGE_ENDX-GRPPAGE_WIDTH+1, GRPPAGE_ENDY-1, GRPPAGE_ENDX, BLACK);
oldMovCus=-1;
GrpTrdPage(GOTO_NEXTPAGE);//显示当前趋势图形
}
}else if(MOVECURS->value==MOVECURS->up&&oldMovCus==MOVECURS->up){//光标到上页的终点
if(GRPTURNPG->value-1>=1){
--GRPTURNPG->value;
sprintf(tempstr, "%02d", GRPTURNPG->value);
outtext(GRPTURNPG->vy, GRPTURNPG->vx, tempstr, VM_COLOR, VM_BCOLOR, FONT12);
oldMovCus=-1;
fillrect(GRPPAGE_ENDY-GRPPAGE_HIGH, GRPPAGE_ENDX-GRPPAGE_WIDTH+1, GRPPAGE_ENDY-1, GRPPAGE_ENDX, BLACK);
GrpTrdPage(GOTO_BACKPAGE);//来到上页的终点位置
}
}else{
step=(DataEndPoint+MONDATAL-DataCurPoint+(GRPPAGE_LEN-MOVECURS->value)*timescale[GTIMESCALE->value])%MONDATAL;
hour=trdtime.ti_hour;
min=trdtime.ti_min-(step%60);
if(min<0){
--hour; min+=60;
}
hour=(hour+24-step/60)%24;
DisGrpData((DataCurPoint+MONDATAL-(GRPPAGE_LEN-MOVECURS->value)*timescale[GTIMESCALE->value])%MONDATAL);//显示当前趋势数据
sprintf(tempstr,"%02d:%02d", hour, min);
outtext(495, 360, tempstr, WHITE, BLACK, FONT10);//显示时间
outtext(MOVECURS->vy, MOVECURS->vx, tempstr, VM_COLOR, VM_BCOLOR, FONT10);//移动光标的时间显示
SETCOLOR(BLACK);
if(oldMovCus<0){
oldMovCus=MOVECURS->up;
commline(GRPPAGE_ENDY-GRPPAGE_HIGH, GRPPAGE_ENDX, GRPPAGE_ENDY-1, GRPPAGE_ENDX);//起点的光标线
commline(GRPPAGE_ENDY-GRPPAGE_HIGH, GRPPAGE_ENDX-GRPPAGE_WIDTH+3, GRPPAGE_ENDY-1, GRPPAGE_ENDX-GRPPAGE_WIDTH+3);//终点的光标线
}
commline(GRPPAGE
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -