📄 runkey.h
字号:
}
void DisFrzPLETH(unsigned point)
{
int row1=*(PLETHcache2+point);
int max=point+FRZWAVELEN-2;
int x=1, row2;
SETCOLOR(PLETHWCOLOR->value);
for(; point<max; point++, x++){
row2=*(PLETHcache2+point);
if(WAVEFILL->value==V_ON){
commline(PLETH_ENDY, x, PLETH_ENDY-row2, x);
}else{
commline(PLETH_ENDY-row1, x, PLETH_ENDY-row2, x+1);
row1=row2;
}
}
return;
}
void DisFreWav(unsigned char page, unsigned char lead)
{
if(page>=1&&page<=8){
int i;
page=8-page;
i=page*FRZWAVELEN;
if(LEADDIS->value==V_SINGLE){//单导联冻结
DisSingleFrzECG(i, lead);
DisFrzPLETH(i);
}else{
drawECGScaleRule();
DisSevenFrzECG(i);
}
}//end if page is right
return;
}
void DisValue(VMENU *vmenup, unsigned char color, unsigned char bakcolor)
{
int tempvar;
unsigned char tempstr[16];
switch(vmenup->type){
case TP_CHARE://字符类型,无中英文切换
outtext(vmenup->vy, vmenup->vx, vmenup->content[vmenup->value], color, bakcolor, FONT12);
break;
case TP_CHAREC://字符类型,有中英文切换
{ char font;
tempvar=(vmenup->value<<1)+LANGUAGE->value;
//if(LANGUAGE->value==V_ENGLISH){
// font=FONT10;
//}else{
// font=FONT12;
//}
outtext(vmenup->vy, vmenup->vx, vmenup->content[tempvar], color, bakcolor, FONT12);
}
break;
case TP_INT2://数值为2位的整形类型
case TP_INT3://数值为3位的整形类型
if(vmenup->type==TP_INT2){
sprintf(tempstr,"%02d",vmenup->value);
}else{
sprintf(tempstr,"%-3d",vmenup->value);
}
if(vmenup->content!=NULL)
strcat(tempstr,vmenup->content[0]);
outtext(vmenup->vy, vmenup->vx, tempstr, color, bakcolor, FONT12);
break;
case TP_FLT4://数值为4.1型的浮点数
case TP_FLT5://数值为5.2型的浮点数
if(vmenup->type==TP_FLT4){
sprintf(tempstr,"%-4.1f",(float)(vmenup->value/10.0));
}else{
sprintf(tempstr,"%-5.2f",(float)(vmenup->value/100.0));
}
if(vmenup->content!=NULL)
strcat(tempstr,vmenup->content[0]);
outtext(vmenup->vy, vmenup->vx, tempstr, color, bakcolor, FONT12);
break;
case TP_KPA://压力千帕
sprintf(tempstr,"%-4.1f",(float)(vmenup->value/7.5));
outtext(vmenup->vy, vmenup->vx, tempstr, color, bakcolor, FONT12);
break;
case TP__F://温度`F
sprintf(tempstr,"%-5.1f",(float)(vmenup->value*0.18+32.0));
outtext(vmenup->vy, vmenup->vx, tempstr, color, bakcolor, FONT12);
break;
case TP_COLOR:
fillrect(vmenup->vy+2, vmenup->vx+2, vmenup->vy+13, vmenup->vx+62, vmenup->value);
SETCOLOR(color);
Rectangle(vmenup->vy, vmenup->vx, vmenup->vy+15, vmenup->vx+64);
break;
case TP_MOVCUS://移动趋势图光标
SETCOLOR(color);
Rectangle(vmenup->vy-4, vmenup->vx-3, vmenup->vy+13, vmenup->vx+42);
if(ItemValue!=AT_VALUE){//不在值选择中就画,否则不画
outtext(vmenup->vy, vmenup->vx, "00:00", color, bakcolor, FONT10);
}
break;
//case TP_BKCOLOR:
//sprintf(tempstr,"%-5",(unsigned)(vmenup->value));
//outtext(vmenup->vy, vmenup->vx, tempstr, BLACK, bakcolor, FONT12);
//break;
}
return;
}
void DisVmenu(void)
{
int i, temp;
unsigned char color=MENU_COLOR, bkcolor=MENU_BCOLOR;
unsigned char valcolor=VM_COLOR, valbkcolor=VM_BCOLOR;
for(i=0; i<(CUR_item+CUR_Icus)->subnum; i++){
if(ItemValue==AT_VITEM){
if(i==CUR_Vcus){
color=MENU_CCOLOR;
bkcolor=MENU_CBCOLOR;
}else{
color=MENU_COLOR;
bkcolor=MENU_BCOLOR;
}
}//if(ItemValue==AT_VITEM)
if(ItemValue==AT_VALUE){
if(i==CUR_Vcus){
valcolor=VM_CCOLOR;
valbkcolor=VM_CBCOLOR;
}else{
valcolor=VM_COLOR;
valbkcolor=VM_BCOLOR;
}
}
outtext((CUR_vmenu+i)->iy, (CUR_vmenu+i)->ix, (CUR_vmenu+i)->item[LANGUAGE->value], color, bkcolor, FONT16);
if((CUR_vmenu+i)->up)
DisValue((CUR_vmenu+i), valcolor, valbkcolor);
}//for(i=0...)
return;
}
void DisItemHelp(ITEM *itempoint)
{
int len=(strlen(itempoint->item[LANGUAGE->value])<<3)+2;
if(itempoint->item!=NULL){
SETCOLOR(WHITE);
Rectangle(itempoint->t_y-3, itempoint->t_x-3, itempoint->t_y+18, itempoint->t_x+len);
outtext(itempoint->t_y, itempoint->t_x, itempoint->item[LANGUAGE->value], BLACK, WHITE, FONT16);
}
return;
}
void DisItem(void)
{
int i, temp;
unsigned char color=MENU_COLOR, bakcolor=MENU_BCOLOR;
for(i=0; i<CUR_item->num; i++){
if(ItemValue==AT_ITEM){
if(i==CUR_Icus){
color=MENU_CCOLOR;
bakcolor=MENU_CBCOLOR;
}else{
color=MENU_COLOR;
bakcolor=MENU_BCOLOR;
}
}
SETCOLOR(CYAN);
gapbeeline(MENU_ITEM_Y+1, 0, MENU_ITEM_Y+1, LEFTMAXX);
out2048(MENU_ITEM_Y+8, (CUR_item+i)->g_x, color, bakcolor, (CUR_item+i)->grpnum);
}
DisItemHelp(CUR_item+CUR_Icus);
return;
}
void MainSecLeadPress(int L_R)
{
if(L_R==LEFT_K){//从V,aVF,aVL,aVR,III,II,I
if((CUR_vmenu+CUR_Vcus)==SECLEAD){//在副导联处理中
if(SECLEAD->value==MAINLEAD->value){
if(MAINLEAD->value>0)
MAINLEAD->value--;
else MAINLEAD->value=MAINLEAD->up;
DisValue(MAINLEAD, VM_COLOR, VM_BCOLOR);
}
}//END--在副导联处理中
if((CUR_vmenu+CUR_Vcus)==MAINLEAD){//在主导联处理中
if(MAINLEAD->value==SECLEAD->value){
if(SECLEAD->value>0)
SECLEAD->value--;
else SECLEAD->value=SECLEAD->up;
DisValue(SECLEAD, VM_COLOR, VM_BCOLOR);
LeadStr2=VAL_LEAD[SECLEAD->value];
}
}//END--在主导联处理中
}else{//从I,II....V
if((CUR_vmenu+CUR_Vcus)==SECLEAD){//在副导联处理中
if(SECLEAD->value==MAINLEAD->value){
if(MAINLEAD->value<MAINLEAD->up)
MAINLEAD->value++;
else MAINLEAD->value=0;
DisValue(MAINLEAD, VM_COLOR, VM_BCOLOR);
}
}//END--在副导联处理中
if((CUR_vmenu+CUR_Vcus)==MAINLEAD){//在主导联处理中
if(MAINLEAD->value==SECLEAD->value){
if(SECLEAD->value<SECLEAD->up)
SECLEAD->value++;
else SECLEAD->value=0;
DisValue(SECLEAD, VM_COLOR, VM_BCOLOR);
LeadStr2=VAL_LEAD[SECLEAD->value];
}
}//END--在主导联处理中
}
return;
}
void DisParaItem(char oldpara)
{
#define PARA_BKCOLOR 0
//unsigned char row[]={15, 35, 55, 75, 95, 115, 140};//与实际行有300的偏移量
unsigned char row[]={15, 33, 51, 69, 87, 105, 122, 142};//与实际行有300的偏移量
unsigned char up_str[10], low_str[10];
unsigned char color=LIGHTRED;
unsigned char strpoint=LANGUAGE->value+(PARAMETER->value<<1);
switch(PARAMETER->value){
case 0://HR
fillrect(350, 16, 441, 51, BLACK);//擦除SYST | MEAN | DIAS 标题
case 1://PR
outtext(GRPPAGE_ENDY-GRPPAGE_HIGH, 8, " 300", WHITE, PARA_BKCOLOR, FONT10);
outtext(GRPPAGE_ENDY-10, 8, " 30 ", WHITE, PARA_BKCOLOR, FONT10);
break;
case 2://ST
outtext(GRPPAGE_ENDY-GRPPAGE_HIGH, 8, "0.80 ", WHITE, BLACK, FONT10);
outtext(GRPPAGE_ENDY-10, 8, "-0.80", WHITE, PARA_BKCOLOR, FONT10);
break;
case 3://SPO2
outtext(GRPPAGE_ENDY-GRPPAGE_HIGH, 8, " 100", WHITE, PARA_BKCOLOR,FONT10);
outtext(GRPPAGE_ENDY-10, 8, " 1 ", WHITE, PARA_BKCOLOR, FONT10);
break;
case 4://TEMP1
if(TEMP1UNIT->value==V_C_){
sprintf(up_str, " 45.0"); sprintf(low_str, " 25.0");
}else{
sprintf(up_str, "113.0"); sprintf(low_str, " 77.0");
}
outtext(GRPPAGE_ENDY-GRPPAGE_HIGH, 8, up_str, WHITE, PARA_BKCOLOR, FONT10);
outtext(GRPPAGE_ENDY-10, 8, low_str, WHITE, PARA_BKCOLOR, FONT10);
break;
case 5://TEMP2
if(TEMP2UNIT->value==V_C_){
sprintf(up_str, " 45.0"); sprintf(low_str, " 25.0");
}else{
sprintf(up_str, "113.0"); sprintf(low_str, " 77.0");
}
outtext(GRPPAGE_ENDY-GRPPAGE_HIGH, 8, up_str, WHITE, PARA_BKCOLOR, FONT10);
outtext(GRPPAGE_ENDY-10, 8, low_str, WHITE, PARA_BKCOLOR, FONT10);
break;
case 6://RESP
fillrect(350, 16, 441, 51, BLACK);//擦除SYST | MEAN | DIAS 标题
outtext(GRPPAGE_ENDY-GRPPAGE_HIGH, 8, " 99", WHITE, PARA_BKCOLOR, FONT10);
outtext(GRPPAGE_ENDY-10, 8, " 1 ", WHITE, PARA_BKCOLOR, FONT10);
break;
case 7://NIBP
if(NIBPUNIT->value==V_MMHG){
sprintf(up_str, " 250"); sprintf(low_str, " 20 ");
}else{
sprintf(up_str, " 33.2"); sprintf(low_str, " 2.7");
}
outtext(350, 16, ITEM_SYST[LANGUAGE->value], LIGHTMAGENTA, PARA_BKCOLOR, FONT12);
SETCOLOR(LIGHTGREEN);
commline(365, 32, 385, 32);
outtext(390, 16, ITEM_MEAN[LANGUAGE->value], YELLOW, PARA_BKCOLOR, FONT12);
SETCOLOR(LIGHTMAGENTA);
commline(405, 32, 425, 32);
outtext(430, 16, ITEM_DIAS[LANGUAGE->value], LIGHTRED, PARA_BKCOLOR, FONT12);
outtext(GRPPAGE_ENDY-GRPPAGE_HIGH, 8, up_str, WHITE, PARA_BKCOLOR, FONT10);
outtext(GRPPAGE_ENDY-10, 8, low_str, WHITE, PARA_BKCOLOR, FONT10);
break;
}//end switch
//趋势左边的参数
outtext(row[oldpara]+300, 448, VAL_PARA[LANGUAGE->value+(oldpara<<1)], WHITE, BLACK, FONT12);//HR,PR..NIBP
outtext(row[PARAMETER->value]+300, 448, VAL_PARA[strpoint], color, BLACK, FONT12);//HR,PR..NIBP
//趋势图最下面的参数
outtext(495, 56, VAL_PARA[strpoint], LIGHTGREEN, BLACK, FONT12);//参数[HR,PR...]
return;
}
void DisGrpData(unsigned point)
{
#define GRPDATA_COLOR YELLOW
char tempstr[10];
float fvalue;
if((DataHand+point)->HR!=255)//心率
sprintf(tempstr, "%3d", (DataHand+point)->HR);
else
sprintf(tempstr, "---");
outtext(315, 496, tempstr, GRPDATA_COLOR, BLACK, FONT10);
if((DataHand+point)->PR!=255)//脉率
sprintf(tempstr, "%3d", (DataHand+point)->PR);
else
sprintf(tempstr, "---");
outtext(333, 496, tempstr, GRPDATA_COLOR, BLACK, FONT10);
if((DataHand+point)->ST!=127)//ST段
sprintf(tempstr, "%5.2f", (DataHand+point)->ST/100.0);
else
sprintf(tempstr, "-.-- ");
outtext(351, 496, tempstr, GRPDATA_COLOR, BLACK, FONT10);
if((DataHand+point)->SPO2!=255)//SPO2
sprintf(tempstr, "%2d", (DataHand+point)->SPO2);
else
sprintf(tempstr, "--");
outtext(369, 496, tempstr, GRPDATA_COLOR, BLACK, FONT10);
if((DataHand+point)->TEMP1!=455){//体温1
if(TEMP1UNIT->value==V_C_)//摄氏度
sprintf(tempstr, "%4.1f", (DataHand+point)->TEMP1/10.0);
else
sprintf(tempstr, "%5.1f", (DataHand+point)->TEMP1*0.18+32.0);
}else{
sprintf(tempstr, "--.- ");
}
outtext(387, 496, tempstr, GRPDATA_COLOR, BLACK, FONT10);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -