📄 menu.h
字号:
{//ix, iy, vx, vy, low up value **content **item VID type
{ 8, 545, 120, 547, 1, 1, 1, NULL, MENU_TURNPAGE, VID_LTNDPAGE, TP_INT3, 1},//0前后翻页
{ 160, 545, 272, 547, 0, 4, 0, VAL_LTIMESCAL, MENU_TIMESCAL, VID_LTIMESTEP, TP_CHARE, 1},//1时间标尺
{ 328, 545, 432, 547, 0, 0, 0, VAL_PRINT, MENU_PRINTLST, VID_PRINTLST, TP_CHAREC, 0},//2打印列表
{ 480, 545, 480, 547, 0, 0, 0, NULL, MENU_EXIT, VID_EXITLIST, TP_CHARE, 0}
};
VMENU VM_NIBPLIST[]=
{//ix, iy, vx, vy, low up value **content **item VID type
{ 8, 545, 120, 547, 1, 1, 1, NULL, MENU_TURNPAGE, VID_NIBPPAGE, TP_INT3, 1},//0前后翻页
{ 160, 545, 272, 547, 0, 0, 0, VAL_PRINT, MENU_PRINTLST, VID_PRINTLST, TP_CHAREC, 0},//2打印列表224,545,328,
{ 328, 545, 432, 547, 0, 0, 0, VAL_CLEAR, MENU_CLEAR, VID_CLEARDATA, TP_CHAREC, 0},//3清除数据
{ 480, 545, 480, 547, 0, 0, 0, NULL, MENU_EXIT, VID_EXITLIST, TP_CHARE, 0}
};
VMENU VM_REVISE[]=
{//ix, iy, vx, vy, low up value **content **item VID type
{ 8, 513, 120, 515, 80, 120, 100, UNIT_HUN, MENU_SYSREV, VID_NOCMD, TP_INT3, 1},//0SYST校准
{ 192, 513, 304, 515, 80, 120, 100, UNIT_HUN, MENU_MEAREV, VID_NOCMD, TP_INT3, 1},//1MEAN校准
{ 376, 513, 488, 515, 80, 120, 100, UNIT_HUN, MENU_DIAREV, VID_NOCMD, TP_INT3, 1},//2DIAS校准
{ 8, 533, 120, 535, 80, 120, 100, UNIT_HUN, MENU_ECGWREV, VID_NOCMD, TP_INT3, 1},//3ECGW校准
{ 192, 533, 304, 535, -5, 5, 0, VAL_TEMPUNIT,MENU_TEMP1REV, VID_NOCMD, TP_FLT4, 1},//4体温1校准
{ 376, 533, 488, 535, -5, 5, 0, VAL_TEMPUNIT,MENU_TEMP2REV, VID_NOCMD, TP_FLT4, 1},//5体温2校准
{ 8, 553, 120, 555, -2, 2, 0, NULL, MENU_SPO2REV, VID_NOCMD, TP_INT2, 1},//6SPO2校准
{ 192, 553, 304, 555, 0, 0, 0, VAL_ONOFF, MENU_NIBPREV, VID_NIBPREV, TP_CHAREC, 0},//7血压校准
{ 376, 553, 488, 555, 0, 1, 1, VAL_ONOFF, MENU_LEACHWAVE, VID_LEACHWAVE, TP_CHAREC, 1},//8滤波通断
{ 8, 573, 80, 577, 0, 0, 0, NULL, MENU_EXIT, VID_MENUEXIT, TP_CHARE, 0}
};
ITEM IM_MAIN[]=
{//g_x t_x t_y subnum num grpnum **item *vmenu autoexit ID
{ 8, 224, 480, 7, 9, GRP_ECGSET, ITEM_ECGSET, VM_ECG, 1, ID_NOCMD},
{ 64, 224, 480, 6, 9, GRP_NIBPSET, ITEM_NIBPSET, VM_NIBP, 1, ID_NOCMD},
{ 128, 224, 480, 6, 9, GRP_RESTEMSET, ITEM_RESPTEMP, VM_RSPTMP, 1, ID_NOCMD},
{ 192, 224, 480, 6, 9, GRP_SYSSET, ITEM_SYSSET, VM_SYSTEM, 1, ID_NOCMD},
{ 256, 224, 480, 3, 9, GRP_PRINTSET, ITEM_PRTSET, VM_PRINT, 1, ID_NOCMD},
{ 320, 224, 480, 6, 9, GRP_DATETIME, ITEM_DATETIME, VM_DATETIME, 1, ID_NOCMD},
{ 384, 224, 480, 5, 9, GRP_WAVCOLOR, ITEM_WAVCOLOR, VM_WAVECOLOR, 1, ID_NOCMD},
{ 448, 224, 480, 6, 9, GRP_NUMCOLOR, ITEM_NUMCOLOR, VM_NUMCOLOR, 1, ID_NOCMD},
{ 504, 224, 500, 0, 9, GRP_EXIT, ITEM_EXITMENU, NULL, 1, ID_NOCMD}
};
ITEM IM_ALARM[]=
{//g_x t_x t_y subnum num grpnum **item *vmenu autoexit ID
{ 8, 224, 480, 6, 8, GRP_ALARMSET, ITEM_ALARMSET, VM_ALARMSET, 1, ID_NOCMD},
{ 80, 224, 480, 3, 8, GRP_ECGALARM, ITEM_ECGALARM, VM_ALARMECG, 1, ID_NOCMD},
{ 152, 224, 480, 3, 8, GRP_STALARM, ITEM_STALARM, VM_ALARMST, 1, ID_NOCMD},
{ 224, 224, 480, 3, 8, GRP_SPO2ALARM, ITEM_SPO2ALARM, VM_ALARMSPO2, 1, ID_NOCMD},
{ 296, 224, 480, 7, 8, GRP_NIBPALARM, ITEM_NIBPALARM, VM_ALARMNIBP, 1, ID_NOCMD},
{ 368, 224, 480, 3, 8, GRP_RESPALARM, ITEM_RESPALARM, VM_ALARMRESP, 1, ID_NOCMD},
{ 440, 224, 480, 4, 8, GRP_TEMPALARM, ITEM_TEMPALARM, VM_ALARMTEMP, 1, ID_NOCMD},
{ 504, 224, 500, 0, 8, GRP_EXIT, ITEM_EXITMENU, NULL, 1, ID_NOCMD}
};
ITEM IM_TREND[]=
{//g_x t_x t_y subnum num grpnum **item *vmenu autoexit ID
{ 16, 224, 480, 5, 5, GRP_FILECALL, ITEM_FILERECAL, VM_FILECALL, 0, ID_INTOFILE},
{ 136, 224, 480, 5, 5, GRP_TREND_G, ITEM_TRENDGRP, VM_TRENDGRP, 0, ID_INTOTNDGRP},
{ 256, 224, 480, 4, 5, GRP_TREND_L, ITEM_TRENDLIST, VM_TRENDLST, 0, ID_INTOTNDLST},
{ 376, 224, 480, 4, 5, GRP_NIBPLIST, ITEM_NIBPLIST, VM_NIBPLIST, 0, ID_INTONIBPLST},//ID_INTONIBPLST
{ 496, 224, 500, 0, 5, GRP_EXIT, ITEM_EXITMENU, NULL, 0, ID_NOCMD}
};
//g_x t_x t_y subnum num grpnum **item *vmenu autoexit ID
ITEM IM_FREEZE={0, 0, 0, 5, 1, GRP_NULL, NULL, VM_FREEZE, 0, ID_NOCMD};
ITEM IM_REVISE={0, 0, 0, 10, 1, GRP_NULL, NULL, VM_REVISE, 0, ID_NOCMD};
//注意:血压单位和体温单位保存,初始化时要注意它们上下线和体温修正的值显示类型
#define MAINLEAD (VM_ECG+0) //NVmemmap[0x10]__bit0~~bit2
#define SECLEAD (VM_ECG+1) //NVmemmap[0x2e]
#define WAVESPD (VM_ECG+2)
#define ECGSCALE (VM_ECG+3) //NVmemmap[0x10]__bit3~~bit4
#define WORKSTA (VM_ECG+4) //NVmemmap[0x10]__bit5~~bit6
#define LEADDIS (VM_ECG+5)
#define INTENSITY (VM_ECG+6)
#define CHECKMODE (VM_NIBP+0) //NVmemmap[0x2b]
#define NIBPUNIT (VM_NIBP+1) //NVmemmap[0x22]
#define AUTOMANUAL (VM_NIBP+2) //NVmemmap[0x24]
#define AUTOTIME (VM_NIBP+3) //NVmemmap[0x1a]
#define NIBPCRIT (VM_NIBP+4) //NVmemmap[0x11]
#define CLEARTIME (VM_NIBP+5) //NVmemmap[0x28]
#define RESPCHK (VM_RSPTMP+0) //NVmemmap[0x1b]
#define TEMP1CHK (VM_RSPTMP+1) //NVmemmap[0x1c]__bit0
#define TEMP1UNIT (VM_RSPTMP+2) //NVmemmap[0x23]__bit0
#define RESPSCALE (VM_RSPTMP+3) //NVmemmap[0x25]
#define TEMP2CHK (VM_RSPTMP+4) //NVmemmap[0x1c]__bit1
#define TEMP2UNIT (VM_RSPTMP+5) //NVmemmap[0x23]__bit1
#define HRPRFIRST (VM_SYSTEM+0) //NVmemmap[0x26]
#define SYSTEMDEF (VM_SYSTEM+1)
#define MONDEMO (VM_SYSTEM+2)
#define WAVEFILL (VM_SYSTEM+3) //NVmemmap[0x27]
#define LANGUAGE (VM_SYSTEM+4) //NVmemmap[0x29]
#define MACHINGID (VM_SYSTEM+5) //NVmemmap[]
#define DATE_YEAR (VM_DATETIME+0)
#define DATE_MON (VM_DATETIME+1)
#define DATE_DAY (VM_DATETIME+2)
#define TIME_HOUR (VM_DATETIME+3)
#define TIME_MIN (VM_DATETIME+4)
#define TIME_SEC (VM_DATETIME+5)
#define AUTOPRT (VM_PRINT+0)
#define PRTTIME (VM_PRINT+1)
#define ALARMPRT (VM_PRINT+2)
#define LEADSLT_COL (VM_WAVECOLOR+0)
#define LEADWCOLOR (VM_WAVECOLOR+1)
#define PLETHWCOLOR (VM_WAVECOLOR+2)
#define BACKCOLOR (VM_WAVECOLOR+3)//NVmemmap[0x2f]
#define RESPWCOLOR (VM_WAVECOLOR+4)
#define ECGNUMCOLOR (VM_NUMCOLOR+0)
#define STNUMCOLOR (VM_NUMCOLOR+1)
#define SPO2NUMCOLOR (VM_NUMCOLOR+2)
#define NIBPNUMCOLOR (VM_NUMCOLOR+3)
#define RESPNUMCOLOR (VM_NUMCOLOR+4)
#define TEMPNUMCOLOR (VM_NUMCOLOR+5)
#define GAPALARM (VM_ALARMSET+0)
#define ALARMTONE (VM_ALARMSET+1)
#define ALARMTIME (VM_ALARMSET+2) //NVmemmap[0x12]
#define GAPTIME (VM_ALARMSET+3) //NVmemmap[0x13]
#define ARMALLOW (VM_ALARMSET+4)
#define ARMDEF (VM_ALARMSET+5)
#define HRPR_UP (VM_ALARMECG+0)//NVmemmap[0x00]
#define HRPR_LOW (VM_ALARMECG+1)//NVmemmap[0x01]
#define HRPR_ALLOW (VM_ALARMECG+2)//NVmemmap[0x2a]__bit0
#define ST_UP (VM_ALARMST+0)//NVmemmap[0x02]
#define ST_LOW (VM_ALARMST+1)//NVmemmap[0x03]
#define ST_ALLOW (VM_ALARMST+2)//NVmemmap[0x2a]__bit1
#define SPO2_UP (VM_ALARMSPO2+0)//NVmemmap[0x04]
#define SPO2_LOW (VM_ALARMSPO2+1)//NVmemmap[0x05]
#define SPO2_ALLOW (VM_ALARMSPO2+2)//NVmemmap[0x2a]__bit2
#define SYST_UP (VM_ALARMNIBP+0)//NVmemmap[0x06]
#define SYST_LOW (VM_ALARMNIBP+1)//NVmemmap[0x07]
#define MEAN_UP (VM_ALARMNIBP+2)//NVmemmap[0x0a]
#define MEAN_LOW (VM_ALARMNIBP+3)//NVmemmap[0x0b]
#define DIAS_UP (VM_ALARMNIBP+4)//NVmemmap[0x08]
#define DIAS_LOW (VM_ALARMNIBP+5)//NVmemmap[0x09]
#define NIBP_ALLOW (VM_ALARMNIBP+6)//NVmemmap[0x2a]__bit3
#define RESP_UP (VM_ALARMRESP+0)//NVmemmap[0x0c]
#define RESP_LOW (VM_ALARMRESP+1)//NVmemmap[0x0d]
#define RESP_ALLOW (VM_ALARMRESP+2)//NVmemmap[0x2a]__bit4
#define TEMP1_UP (VM_ALARMTEMP+0)//NVmemmap[0x0e]
#define TEMP2_UP (VM_ALARMTEMP+1)//NVmemmap[0x0f]
#define TEMP1_ALLOW (VM_ALARMTEMP+2)//NVmemmap[0x2a]__bit5
#define TEMP2_ALLOW (VM_ALARMTEMP+3)//NVmemmap[0x2a]__bit6
#define FRZTURNPG (VM_FREEZE+0)
#define FRZPRTWAV (VM_FREEZE+1)
#define SAVEWAVE (VM_FREEZE+2)
#define FRZLEADSLT (VM_FREEZE+3)
#define FRZEXIT (VM_FREEZE+4)
#define SLTFILE (VM_FILECALL+0)
#define SLTPAGE (VM_FILECALL+1)
#define FILLPRTWAV (VM_FILECALL+2)
#define FILLEADSLT (VM_FILECALL+3)
#define FILLEXIT (VM_FILECALL+4)
#define PARAMETER (VM_TRENDGRP+0)
#define GTIMESCALE (VM_TRENDGRP+1)
#define GRPTURNPG (VM_TRENDGRP+2)
#define MOVECURS (VM_TRENDGRP+3)
#define TGRPEXIT (VM_TRENDGRP+4)
#define LSTTURNPG (VM_TRENDLST+0)
#define LTIMESCALE (VM_TRENDLST+1)
#define PRTLIST (VM_TRENDLST+2)
#define TLISTEXIT (VM_TRENDLST+3)
#define NIBPLSTPAGE (VM_NIBPLIST+0)
#define NIBPLSTPRT (VM_NIBPLIST+0)
#define NIBPLSTCLR (VM_NIBPLIST+0)
#define NIBPLSTEXIT (VM_NIBPLIST+0)
#define SYSTREVISE (VM_REVISE+0) //NVmemmap[0x16]
#define MEANREVISE (VM_REVISE+1) //NVmemmap[0x18]
#define DIASREVISE (VM_REVISE+2) //NVmemmap[0x17]
#define ECGWREVISE (VM_REVISE+3) //NVmemmap[0x2c]
#define TEMP1REVISE (VM_REVISE+4) //NVmemmap[0x15]
#define TEMP2REVISE (VM_REVISE+5) //NVmemmap[0x1d]
#define SPO2REVISE (VM_REVISE+6) //NVmemmap[0x14]
#define NIBPREVISE (VM_REVISE+7)
#define LEACHWAVE (VM_REVISE+8)
#define REVISEEXIT (VM_REVISE+9)
//#define RE_MAINLEAD (MAINLEAD->oldval)
//#define RE_ECGSCALE (ECGSCALE->oldval)
//#define RE_WORKSTA (WORKSTA->oldval)
//#define RE_RESPSCALE (RESPSCALE->oldval)
unsigned char RE_MAINLEAD=0;
unsigned char RE_ECGSCALE=0;
unsigned char RE_WORKSTA=0;
unsigned char RE_INTENSITY=0;
unsigned char RE_RESPSCALE=0;
int oldMovCus=-1;
unsigned char com1str[6]={0x55,0xaa,0x0,0x0,0x0,0x0};//发送命令到心电模块缓冲区
char com1count=0;//发送到心电模块的命令指针
unsigned CMD_VID=0x0000;//value menu command ID
unsigned CMD_ID=0x0000;//item menu command ID
unsigned char NVmemmap[0x40]; //镜相心电模块中的非易失性存储器56字节
unsigned char LeadColor[7]={L_I_COLOR, L_II_COLOR, L_III_COLOR, L_aVR_COLOR, L_aVL_COLOR,\
L_aVF_COLOR, L_V_COLOR};//(I,II,III,aVR,aVL,aVF,V)导联颜色
unsigned key_val; //模块传来的键盘值
unsigned char ECGStatus=1; //ecg lead status
unsigned char SPO2Status=1; //spo2 status
unsigned char NIBPStatus=0; //nibp status
unsigned char NIBPerror=0; //nibp error
unsigned char PulseSound=V_ON; //pulse sound switch
unsigned int HRrate=255,PRrate=255,RESPvalue=255;
unsigned char VerNo=0x10;
unsigned int disSYST=255, disMEAN=255, disDIAS=255;
unsigned int CUFFvalue=255, NIBPrate=255;
char STvalue=127;
unsigned char SPO2value=255;
unsigned TEMP1value=455;
unsigned TEMP2value=455;
unsigned char *ECGdata[7],*PLETHdata,*RESPdata;
unsigned Edw_cus=0,Rdw_cus=0; //波形数据写指针
unsigned int EwaveX=WAVXSTART, PwaveX=WAVXSTART, RwaveX=WAVXSTART;
unsigned char far *ECGcache[7];
unsigned char far *ECGcache2[7];
unsigned char *PLETHcache, *PLETHcache2;
unsigned ECGwcus=0;//ECG, PLETH波形数据写cache指针
//unsigned char Ecachefill=0, Pcachefill=0;//ECG, PLETH波形cache满标志
unsigned keydelay=0, disdelay=0, key_code=0x00;
unsigned char NIBPmin=30, NIBPsec=60;
unsigned char GAPmin=1, GAPsec=60, AlarmTime=10;//gap time=1min, alarm time=10sec;
unsigned char PRINTmin=30, PRINTsec=60;
// bit4=1 允许 [ECG+I] or [PLETH_up]显示
// bit3=1 I,II,III,...aVF,V刷新
// bit2=1 RESP or (PLETH)
// bit1=1 PLETH_low,
// bit0=1 ECG+I bit0=0 [PLETH_up],
unsigned char ItemAllow=0x17;
//---------单导联--------------------------------
//bit3=0--RESP不显示 bit3=1--RESP显示
//bit2=0--PLETH在ECG+I上 bit2=1--PLETH在低行
//bit1=0--PLETH不显示 bit1=1--PLETH显示
//bit0=0--只准ECG单行显示 bit1=0--允许ECG双行显示
//---------七导联--------------------------------
//bit0=1--I,II,III...V显示
//bit1=1--PLETH显示
//bit2=1--ECG单导联显示
//bit3=1--RESP显示
unsigned char WaveCont=0x0f;
unsigned PLETHWave_row=PLETH_ENDY;
unsigned char *LeadStr2; //second ECG lead string
//bit0=1 HRPR, bit1=1 ST, bit2=1 SPO2, bit3=1 SYST,
//bit4=1 DIAS, bit5=1 MEAN, bit6=1 RESP, bit7=1 TEMP1,
//bit8=1 TEMP2, bit14=alarm time allow;
//bit15=1 alarm switch is ON
unsigned alarmstatus=0x0000;
unsigned alarmsound=0x0000;
unsigned char MenuTime=0;//菜单时钟计数器
struct time timer;//当前时间
struct date dater;//当前日期
struct time frztime;//冻结时间
struct date frzdate;//冻结日期
struct time trdtime;//趋势时间
MonData FrzData;//冻结时记录的数据
ITEM *CUR_item=NULL; //当前菜单标题指针
VMENU *CUR_vmenu=NULL; //当前值菜单指针
unsigned char CUR_Icus=0, CUR_Vcus=0;//标题、值菜单指针光标
MonData far *DataHand; //趋势数据数据头
MonData PrtLstBuff[PRTLSTLEN];//打印列表缓冲区
char PrtLstHour[PRTLSTLEN], PrtLstMin[PRTLSTLEN];
unsigned char PrtLstCount=255; //打印趋势列表计数器
unsigned char PrtLstLen=1;//打印趋势列表长度
unsigned PrtWavCount=255; //if set PrtWavCount 255 stop print, set 0 then begin to print;
unsigned EWavPrtHd, PWavPrtHd;
unsigned char PrtECG_Lead=1;//打印导联
unsigned Datapoint=0; //趋势数据取样数据指针
unsigned DataEndPoint; //进入趋势数据时的数据尾指针
unsigned DataStaPoint; //进入趋势数据时的数据首指针
unsigned DataCurPoint; //当前页趋势数据的首行指针
unsigned char Datafill=0;//趋势数据缓冲满标志
unsigned char NIBPsave=0;//血压数据已存标志
#define AT_ITEM 0 //在标题
#define AT_VITEM 1 //在值标题
#define AT_VALUE 2 //在值中
unsigned char ItemValue=AT_ITEM;//在值标题
unsigned SaveCount=0; //系统设置保存计数器
//WavSpdCount=2, DrawWavCount=3/WavSpdCount=1;
//WavSpdCount=1, DrawWavCount=3/WavSpdCount=3;
//WavSpdCount=4, DrawWavCount=3/WavSpdCount=0;
unsigned char WavSpdCount=2, SamplingCount=1;//波形速度计数器
unsigned char *ECGWavItstr=NULL, *PLETHWavItstr=NULL, *RESPWavItstr=NULL;//PLEHT(up),RESP wave item and COMPany item point
unsigned char hrpr_sound, heartsta=V_HEARTSMALL;
//unsigned char FileName[5];
//int FileHandle;
//----------血压实时数据的头,尾指针-----------
REALTIMEDATA far *RealData_Sta;
//REALTIMEDATA far *RealData_End=NULL;
unsigned RealDataCurrnt=0;
unsigned long RealTimeCount=0;//实时记数以计算两次血压测量中的时间间隔
unsigned long InListCount=0;
unsigned char NoWriteRealData=1;//是否从来没有记录过实时血压数据
unsigned char NIBPListFill=0;//列表满标志
unsigned char IQRmark=0, ScaleAndWave=2;
unsigned char NIBPCheckTure=0;//NIBP Auto check start
unsigned char SpdCtrl=0, SpdCount=0;
unsigned char CenterECGsta=0, CenterRESPscale=0;//中央机的心电状态,呼吸增益
unsigned char FilePoint=0;
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -