static void setclearcolor() { char str[]=" 1.前景设置成蓝色 " " 2.前景设置成绿色 " " 3.前景设置成黄色 " " 4.前景设置成红色 " " 5.前景设置成白色 " " 6.手动设置前景颜色"; uint color; int ret; long temp_buf; char set_buf[16]; uchar colordate[2]; BROWINFO bi; bi.lPtr = 0; bi.cPtr = 0; while(1) { DispStr_CE(0,1,"前景颜色设置菜单",DISP_CENTER|DISP_NORMAL|DISP_CLRSCR); bi.iStr=str; bi.mInt=6; bi.lineMax=19;//每行显示最大字符数 bi.startLine=3;//起始行 bi.dispLines=6;// bi.sFont=0; bi.numEnable=1; bi.qEvent=(EXIT_KEY_F1); ret=EXT_Brow_Select(&bi); switch(ret) { case 0: color=0x001f; // Disp_Set_Color(SET_BACK_COLOR,color); break; case 1: color=0x0040; //Disp_Set_Color(SET_BACK_COLOR,color); break; case 2: color=0xffe0; // Disp_Set_Color(SET_BACK_COLOR,color); break; case 3: color=0xf800; break; case 4: color=0xffff; break; case 5: Disp_Clear(); temp_buf=Inputdate("请输入前景16位颜色值:",0,set_buf,0,5,-1,65535); if(temp_buf!=-1) { color=(uint)temp_buf; } else { DispStr_CE(0,4,"已取消前景颜色设置!",DISP_CENTER|DISP_NORMAL|DISP_CLRSCR); WaringBeep(ERR_WARNING_BEEP); delay_and_wait_key (DISP_ESC_DELAY_TIME,EXIT_KEY_F1,120); return; } break; default : DispStr_CE(0,4,"已取消设置!",DISP_CENTER|DISP_NORMAL|DISP_CLRSCR); WaringBeep(ERR_WARNING_BEEP); delay_and_wait_key (DISP_ESC_DELAY_TIME,EXIT_KEY_F1,120); return; //返回 break; } colordate[0]=*((char *)&color+1); colordate[1]=*((char *)&color); ret=WriteParameter(E_FontColorAddr,colordate,2); if(!ret) { DispStr_CE(0,4,"前景颜色设置成功 ",DISP_CENTER|DISP_NORMAL|DISP_CLRSCR); delay_and_wait_key (1,EXIT_KEY_F1,120); DispStr_CE(0,4,"关机重启后生效!",DISP_CENTER|DISP_NORMAL|DISP_CLRSCR); delay_and_wait_key (DISP_OK_DELAY_TIME,EXIT_KEY_F1,120); WaringBeep(OK_WARNING_BEEP); } return ; } }
static void ChangePassWord() { long rett; int ret; char set_buf[16]; uchar passwordbuf; uchar OldPassWordBak[16]; Disp_Clear(); memset(set_buf,0x00,16); memset(OldPassWordBak,0x00,16); memcpy(OldPassWordBak,G_PassWord,strlen((char*)G_PassWord)); rett=Inputdate("请输入开机原密码 ",0,set_buf,1,8,-1,-1); if(rett!=-1) { if(!memcmp(G_PassWord,set_buf,G_PassWordLen)) { memset(set_buf,0x00,16); Disp_Clear(); rett=Inputdate("请输入开机新密码 ",0,set_buf,1,8,-1,-1); if(rett!=-1) { ret=WriteParameter(E_PassWordAddr,(uchar*)set_buf,strlen(set_buf)); if(!ret) { passwordbuf=strlen(set_buf); ret=WriteParameter(E_PassWordLenAddr,&passwordbuf,1); if(!ret) { DispStr_CE(0,4,"密码设置成功 ",DISP_CENTER|DISP_NORMAL|DISP_CLRSCR); memcpy(G_PassWord,set_buf,passwordbuf); G_PassWordLen=passwordbuf; delay_and_wait_key (DISP_OK_DELAY_TIME,EXIT_KEY_F1,120); WaringBeep(OK_WARNING_BEEP); return; } else { WriteParameter(E_PassWordAddr,OldPassWordBak,strlen((char*)OldPassWordBak)); DispStr_CE(0,4,"密码写入失败 ",DISP_CENTER|DISP_NORMAL|DISP_CLRSCR); WaringBeep(ERR_WARNING_BEEP); delay_and_wait_key (DISP_OK_DELAY_TIME,EXIT_KEY_F1,120); return; } } else { DispStr_CE(0,4,"密码写入失败 ",DISP_CENTER|DISP_NORMAL|DISP_CLRSCR); WaringBeep(ERR_WARNING_BEEP); delay_and_wait_key (DISP_OK_DELAY_TIME,EXIT_KEY_F1,120); return; } } else { DispStr_CE(0,4,"已取消设置! ",DISP_CENTER|DISP_NORMAL|DISP_CLRSCR); WaringBeep(ERR_WARNING_BEEP); delay_and_wait_key (DISP_ESC_DELAY_TIME,EXIT_KEY_F1,120); return; } } else { DispStr_CE(0,4,"您输入的原密码有误! ",DISP_CENTER|DISP_NORMAL|DISP_CLRSCR); WaringBeep(ERR_WARNING_BEEP); delay_and_wait_key (DISP_OK_DELAY_TIME,EXIT_KEY_F1,120); return; } } else { DispStr_CE(0,4,"已取消设置! ",DISP_CENTER|DISP_NORMAL|DISP_CLRSCR); WaringBeep(ERR_WARNING_BEEP); delay_and_wait_key (DISP_ESC_DELAY_TIME,EXIT_KEY_F1,120); } return; }
/*********************************************************************** module : [菜单操作] function : [机器设置菜单操作] return : [无] comment : [全局普通函数] machine : [EH-0818] language : [CHN] keyword : [MENU] date : [11/07/20] author : [chen-zhengkai] ************************************************************************/ void funSet_task() { int select = -1; char fun_menu_str[] = "1. 时间设置 " "2. 日期设置 " "3. 待机时间设置 " "4. 背光灯时间设置" "5. 按键音设置 " "6. 机器参数查询 " "7. 读取授权卡 "; BROWINFO info; info.iStr = fun_menu_str; //浏览内容指针 info.lPtr = 0; //显示内容iStr的起始显示行 info.cPtr = 0; //当前选择行 while (1) { //以下BROWINFO结构成员变量必须参与循环,有可能会被EXT_Brow_Select函数改变 info.startLine = 2; //在LCD上的显示起始行 info.dispLines = 7; //在LCD上的显示行数 info.mInt = 7; //显示内容的总行数 info.lineMax = 17; //每行最大字符数 info.sFont = 0; //7x9大字体显示 info.numEnable = 0; //是否允许数字键代替方向控制 info.qEvent = EXIT_KEY_F1|EXIT_AUTO_QUIT|EXIT_KEY_POWER|EXIT_KEY_CANCEL; //可导致函数退出的事件标志 info.autoexit = 1200; //自动退出的时间 //菜单 Disp_Clear(); DispStr_CE(0, 0, "机器设置菜单", DISP_CENTER); select = EXT_Brow_Select(&info); switch (select) { case 0: //时间设置 setTime(); break; case 1: //日期设置 setDate(); break; case 2: //待机时间设置 Set_Auto_Poweroff(); break; case 3: //背光灯时间设置 setBacklight(); break; case 4: //按键音设置 setKeybeeper(); break; case 5: //机器参数查询 break; case 6: //读取授权卡 getAuthorize(); break; default: //降低CPU占用率,降低能耗 if (info.qEvent == EXIT_KEY_F1 || EXIT_AUTO_QUIT || EXIT_KEY_POWER || EXIT_KEY_CANCEL) { //返回上级菜单 return; } Sys_Power_Sleep(3); break; } } }
void Show_Main(char n) { long min, max; char s; Disp_Clear(); //clear display //blink name: if(!Hide) { if(n == MODE_FIF) Disp_PutChar('f'); //display "f" else Disp_PutString(Str_V[n]); //show value name } long v = Count_GetValue(); //read counter if(Count_Ready()) Count_Start(); //start counter char p = (Scale & ~AUTO_SCALE) + 1; //DP position switch(n) { #ifdef HI_RES case MODE_F: case MODE_FIF: case MODE_P: case MODE_D: s = 3; min = 100000000L; max = 999999999L; break; case MODE_R: s = 5; min = 1000000L; max = 9999999L; break; default: s = 4; //first position min = 10000000L; //min value for auto scale max = 99999999L; //max value for auto scale #else case MODE_F: case MODE_FIF: case MODE_P: case MODE_D: s = 3; min = 10000000L; max = 99999999L; break; case MODE_R: s = 5; min = 100000L; max = 999999L; break; default: s = 4; //first position min = 1000000L; //min value for auto scale max = 9999999L; //max value for auto scale #endif } //blink value: //if(!Hide) Disp_Val(s, p, v); //show value Disp_Update(); //update display if(Scale & AUTO_SCALE) //if auto scale { if(v >= 0) { if(v < min) MoveDP(KEY_DN); //move DP left if(v > max) MoveDP(KEY_UP); //move DP right } else { if(v > -min) MoveDP(KEY_DN); //move DP left if(v < -max) MoveDP(KEY_UP); //move DP right } Scale |= AUTO_SCALE; //restore auto scale flag Count_SetScale(Scale); //update scale } }
/*********************************************************************** module : [WIFI] function : [wifi上传菜单] return : [无] comment : [全局普通函数] machine : [EH-0818] language : [CHN] keyword : [WIFI] date : [11/07/25] author : [chen-zhengkai] ************************************************************************/ void wifi_upload_menu() { int select = -1; //int conStatus = 0; //连接状态,0:连接正常 char db_menu_str[] = "1. 启动连接" "2. 上传数据" "3. 网络设置" "4. 断开连接" "5. 重启模块"; BROWINFO info; info.iStr = db_menu_str; //浏览内容指针 info.lPtr = 0; //显示内容iStr的起始显示行 info.cPtr = 0; //当前选择行 while (1) { //以下BROWINFO结构成员变量必须参与循环,有可能会被EXT_Brow_Select函数改变 // conStatus = CWiFi_GetRepStatus(g_pHandle[0]); // if (!conStatus) { // strncpy(db_menu_str, "1. 断开连接(已连接)", 21); // } // else { // strncpy(db_menu_str, "1. 启动连接(未连接)", 21); // } info.startLine = 2; //在LCD上的显示起始行 info.dispLines = 5; //在LCD上的显示行数 info.mInt = 5; //显示内容的总行数 info.lineMax = 11; //每行最大字符数 info.sFont = 0; //7x9大字体显示 info.numEnable = 0; //是否允许数字键代替方向控制 info.qEvent = EXIT_KEY_F1|EXIT_AUTO_QUIT|EXIT_KEY_POWER|EXIT_KEY_CANCEL; //可导致函数退出的事件标志 info.autoexit = 1200; //自动退出的时间 //菜单 Disp_Clear(); DispStr_CE(0, 0, "wifi传输菜单", DISP_CENTER); select = EXT_Brow_Select(&info); switch (select) { case 0: //启动连接,断开连接 connectWifi(); //启动连接 break; case 1: //上传数据 sendRecords(); break; case 2: //网络设置 wifinet_set(); break; case 3: //断开连接 disConnect(); break; case 4: //重启模块 resetWifi(); break; default: //降低CPU占用率,降低能耗 if (info.qEvent == EXIT_KEY_F1 || EXIT_AUTO_QUIT || EXIT_KEY_POWER || EXIT_KEY_CANCEL) { //返回上级菜单 return; } Sys_Power_Sleep(3); break; } } }
/*********************************************************************** module : [WIFI] function : [WIFI网络设置子菜单] return : [无] comment : [全局普通函数] machine : [EH-0818] language : [CHN] keyword : [WIFI] date : [11/07/26] author : [chen-zhengkai] ************************************************************************/ void wifinet_set() { int select = -1; char db_menu_str[] = "1. 设置本机IP " "2. 设置子网掩码" "3. 设置网关 " "4. 设置服务器IP" "5. 设置端口 " "6. 设置ssid " "7. 设置密码 " "8. 清空安全设置"; // if ( adminPassword(0) ) { // return; // } BROWINFO info; info.iStr = db_menu_str; //浏览内容指针 info.lPtr = 0; //显示内容iStr的起始显示行 info.cPtr = 0; //当前选择行 while (1) { //以下BROWINFO结构成员变量必须参与循环,有可能会被EXT_Brow_Select函数改变 info.startLine = 0; //在LCD上的显示起始行 info.dispLines = 7; //在LCD上的显示行数 info.mInt = 8; //显示内容的总行数 info.lineMax = 15; //每行最大字符数 info.sFont = 0; //7x9大字体显示 info.numEnable = 0; //是否允许数字键代替方向控制 info.qEvent = EXIT_KEY_F1|EXIT_AUTO_QUIT|EXIT_KEY_POWER|EXIT_KEY_CANCEL; //可导致函数退出的事件标志 info.autoexit = 1200; //自动退出的时间 //菜单 Disp_Clear(); select = EXT_Brow_Select(&info); switch (select) { case 0: //设置本机IP setIP(); break; case 1: //设置子网掩码 setNetMask(); break; case 2: //设置网关 setGateway(); break; case 3: //设置服务器IP setServerIP(); break; case 4: //设置端口 setServerPort(); break; case 5: //设置SSID setServerSSID(); break; case 6: //设置密码 setPassword(); break; case 7: //清空安全设置 clearPSK(); break; default: //降低CPU占用率,降低能耗 if (info.qEvent == EXIT_KEY_F1 || EXIT_AUTO_QUIT || EXIT_KEY_POWER || EXIT_KEY_CANCEL) { //返回上级菜单 return; } Sys_Power_Sleep(3); break; } } }