#include "RuntimeData.h" #include "FwUpgrade.h" extern "C"{ #include "user_norflash.h" #include "user_eeprom.h" #include "uart_key_drv.h" } #define dWdClr clSkyBlue #define dWdDisabelClr clNearWhite #define dWWidth 24 #define dWHeigh 24 #define dRoundR 7 const int xFirst = 10; const int xSec = 160; const int xThi = 310; const int xFourth = 460; const int xFifth = 610; void TFwUpgrade::Init() { CtlIndex = 0; IsShowing = 0; IsOnGoing = 0; ReadWrite =0; State.Connection =0; State.Rsv0 =0; State.Rsv0 =1; State.Rsv0 =2; IsPermission =0; } void TFwUpgrade::DelayMs(unsigned int aMs) { volatile unsigned int mTick; volatile unsigned int Tick; for(Tick=0; Tick固件升级"); TextRender_string24(Lv.Grid.Left[0] + 10, Lv.Grid.Top[0] +6, clNearWhite, "USB"); TextRender_string24(Lv.Grid.Left[1] + 10, Lv.Grid.Top[1] +6, clNearWhite, "升级部位"); TRoundRect::sDrawBySize(xFirst, Lv.Grid.Top[0] + 40, 128, 30, 7, clNearWhite, " 连接 ", 4, clNearBlack); TRoundRect::sDrawBySize(xSec, Lv.Grid.Top[0] + 40, 128, 30, 7, clNearWhite, " 断开 ", 4, clNearBlack); TRoundRect::sDrawBySize(xFirst, Lv.Grid.Top[1] + 40, 128, 30, 7, clNearWhite, " 全部 ", 4, clNearBlack); TRoundRect::sDrawBySize(xSec, Lv.Grid.Top[1] + 40, 128, 30, 7, clNearWhite, " 主板 ", 4, clNearBlack); TRoundRect::sDrawBySize(xThi, Lv.Grid.Top[1] + 40, 128, 30, 7, clNearWhite, " 按键 ", 4, clNearBlack); TRoundRect::sDrawBySize(xFourth, Lv.Grid.Top[1] + 40, 128, 30, 7, clNearWhite, " 多线盘 ", 4, clNearBlack); TRoundRect::sDrawBySize(xFifth, Lv.Grid.Top[1] + 40, 128, 30, 7, clNearWhite, " 总线盘 ", 4, clNearBlack); //TRoundRect::sDrawBySize(xFirst, Lv.Grid.Top[1] + 80, 128, 30, 7, clNearWhite, " 全部 ", 12, clNearBlack); TRoundRect::sDrawBySize(xSec, Lv.Grid.Top[1] + 80, 128, 30, 7, clNearWhite, " 回路母板 ", 4, clNearBlack); TRoundRect::sDrawBySize(xThi, Lv.Grid.Top[1] + 80, 128, 30, 7, clNearWhite, " 回路卡 ", 4, clNearBlack); TRoundRect::sDrawBySize(xFourth, Lv.Grid.Top[1] + 80, 128, 30, 7, clNearWhite, "联网接口卡", 4, clNearBlack); TRoundRect::sDrawBySize(xFifth, Lv.Grid.Top[1] + 80, 128, 30, 7, clNearWhite, " 存储单元 ", 4, clNearBlack); }else{ TextRender_string24(Lv.Caption.Left + 10, Lv.Caption.Top +4, clNearWhite, CaptionColor, "Data Transmission->Firmware Upgrade"); TextRender_string24(Lv.Grid.Left[0] + 10, Lv.Grid.Top[0] +6, clNearWhite, "USB"); TextRender_string24(Lv.Grid.Left[1] + 10, Lv.Grid.Top[1] +6, clNearWhite, "Part Choice"); TRoundRect::sDrawBySize(xFirst, Lv.Grid.Top[0] + 40, 128, 30, 7, clNearWhite, " Connect ", 4, clNearBlack); TRoundRect::sDrawBySize(xSec, Lv.Grid.Top[0] + 40, 128, 30, 7, clNearWhite, "Disconnect", 4, clNearBlack); TRoundRect::sDrawBySize(xFirst, Lv.Grid.Top[1] + 40, 128, 30, 7, clNearWhite, " All ", 4, clNearBlack); TRoundRect::sDrawBySize(xSec, Lv.Grid.Top[1] + 40, 128, 30, 7, clNearWhite, "Main Board", 4, clNearBlack); TRoundRect::sDrawBySize(xThi, Lv.Grid.Top[1] + 40, 128, 30, 7, clNearWhite, " Keyboard ", 4, clNearBlack); TRoundRect::sDrawBySize(xFourth, Lv.Grid.Top[1] + 40, 128, 30, 7, clNearWhite, "Direct Pad", 4, clNearBlack); TRoundRect::sDrawBySize(xFifth, Lv.Grid.Top[1] + 40, 128, 30, 7, clNearWhite, " Bus Pad ", 4, clNearBlack); //TRoundRect::sDrawBySize(xFirst, Lv.Grid.Top[1] + 80, 128, 30, 7, clNearWhite, " 全部 ", 12, clNearBlack); TRoundRect::sDrawBySize(xSec, Lv.Grid.Top[1] + 80, 128, 30, 7, clNearWhite, "Mother Brd", 4, clNearBlack); TRoundRect::sDrawBySize(xThi, Lv.Grid.Top[1] + 80, 128, 30, 7, clNearWhite, " Loop ", 4, clNearBlack); TRoundRect::sDrawBySize(xFourth, Lv.Grid.Top[1] + 80, 128, 30, 7, clNearWhite, "interface ", 4, clNearBlack); TRoundRect::sDrawBySize(xFifth, Lv.Grid.Top[1] + 80, 128, 30, 7, clNearWhite, "Ext Memory", 4, clNearBlack); } } void TFwUpgrade::DrawSelf(void) { RenderBackGround(); RectFillRender(Lv.Caption.Left, Lv.Caption.Top, Lv.Caption.Right, Lv.Caption.Bottom, CaptionColor); for(int i=0; i6){ ClearSelected(); CtlIndex -=4; Check4Selected(); }else if(CtlIndex >3){ ClearSelected(); CtlIndex =1; Check4Selected(); }else if(CtlIndex >1){ ClearSelected(); CtlIndex -=2; Check4Selected(); } break; case VK_DOWN: if(CtlIndex <2){ ClearSelected(); CtlIndex +=2; Check4Selected(); }else if(CtlIndex <3){ ClearSelected(); CtlIndex =7; Check4Selected(); }else if(CtlIndex <7){ ClearSelected(); CtlIndex +=4; Check4Selected(); } break; case VK_TAB: break; case dfKEY_SETUP: break; case VK_EXECUTE: if(CtlIndex == 0){ //Active PermissionCmd = 1; if(SystemPermission > 2){ PermissionCmdGO(); }else{ IsPermission = 1; ClearSelected(); PmsIntervene4Gui.Show4Gui(100, Lv.Panel.Top + 12, 600 , 120, 3); } }else if(CtlIndex == 1){ PermissionCmd = 2; if(SystemPermission > 1){ PermissionCmdGO(); }else{ IsPermission = 1; ClearSelected(); PmsIntervene4Gui.Show4Gui(100, Lv.Panel.Top + 12, 600 , 120, 2); } }else if(CtlIndex == 2){ //All }else if(CtlIndex == 3){ //Ctl }else if(CtlIndex == 4){ //Key Pad }else if(CtlIndex == 5){ //DirectCtlBoard }else if(CtlIndex == 6){ //HandCtlBoard }else if(CtlIndex == 7){ //MotherBoard }else if(CtlIndex == 8){ //Port[0..39] }else if(CtlIndex == 9){ //Network Board }else if(CtlIndex == 10){ //Stroge Card } break; case VK_RETURN: IsShowing = 0; aMsg = guiMsgReturn; break; } } return aMsg; } void TFwUpgrade::Task1000Ms() { if(IsShowing){ /*if(IsRunCmd){ RunTick++; } if( (StartShowWarning == 0) && (IsSelfChecking == 0) ){ if(ShowingWarning){ TextRender_string24(120, 88, clNearBlack, Color, " "); ShowingWarning = 0; }else{ TextRender_string24(120, 88, clNearBlack, Color, "升级期间不要关闭电源"); ShowingWarning =1; } }*/ } } int TFwUpgrade::ExtRequst(unsigned char Prm) { IsShowing =0; return 0; }