#include "LnkFecBus.h" #include "Runtime.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 void TLnkFecBusCfg::Init() { CtlIndex = 0; IsShow = 0; IsPermission =0; Sta =0; } void TLnkFecBusCfg::sDelayMs(unsigned int aMs) { volatile unsigned int mTick; volatile unsigned int Tick; for(Tick=0; Tick联动设备控制总线FECBUS"); for(int i=0; i联动设备控制总线FECBUS"); for(int i=0; i0){ ClearSelected(); CtlIndex--; Check4Selected(); } break; case VK_DOWN: if(CtlIndex <2){ ClearSelected(); CtlIndex++; Check4Selected(); } break; case dfKEY_SETUP: //0x70 // Key value for SETUP if( CtlIndex==0 ){ EnBus = EnBus ? 0 : 1; }else if( CtlIndex==1 ){ EnTx = EnTx ? 0 : 1; }else if( CtlIndex==2 ){ EnRx = EnRx ? 0 : 1; } ShowCfg(); break; case VK_EXECUTE: //Save Data Here PermissionCmd = 1; if(SystemPermission > 2){ PermissionCmdGO(); }else{ IsPermission = 1; ClearSelected(); PmsIntervene4Gui.Show4Gui(Lv.Grid.Left[2] + 200, Lv.Grid.Top[2] + 16, 400, 140, 3); } break; case VK_RETURN: aMsg = guiMsgReturn; break; default : break; } if(VK_EXECUTE != aKey){ ShowSta(0); } } return aMsg; } void TLnkFecBusCfg::InitPanel(void) { LoadData(); Check4Selected(); ShowCfg(); } void TLnkFecBusCfg::LoadData() { EnBus = FecBusCfg.BusEN; EnTx = FecBusCfg.TxEN; EnRx = FecBusCfg.RxEN; ShowCfg(); } void TLnkFecBusCfg::RestoreData() { FecBusCfg.BusEN =EnBus; FecBusCfg.TxEN =EnTx; FecBusCfg.RxEN =EnRx ; } void TLnkFecBusCfg::ReadSetting() { unsigned int tAddr; unsigned char tData[4]; //Read ExistTable tAddr = dEepAddrFecBusSetting +0; sDelayMs(10); eeprom_read_byte(0, tAddr, tData, 4); FecBusCfg.BusEN = tData[0]; FecBusCfg.TxEN = tData[1]; FecBusCfg.RxEN = tData[2]; if(FecBusCfg.BusEN == 0xFF)FecBusCfg.BusEN =0; if(FecBusCfg.TxEN == 0xFF)FecBusCfg.TxEN =0; if(FecBusCfg.RxEN == 0xFF)FecBusCfg.RxEN = 0; } void TLnkFecBusCfg::WriteSetting() { unsigned int tAddr; unsigned char tData[4]; tData[0] = FecBusCfg.BusEN; tData[1] = FecBusCfg.TxEN; tData[2] = FecBusCfg.RxEN; tData[3] = 0 ; tAddr = dEepAddrFecBusSetting + 0; sDelayMs(10); eeprom_write_byte_via_page(0, tAddr, tData, 4); sDelayMs(10); } void TLnkFecBusCfg::sRecoverSetDefault() { unsigned int tAddr; unsigned char tData[4]; tData[0] = 0; tData[1] = 0; tData[2] = 0; tData[3] = 0 ; tAddr = dEepAddrFecBusSetting + 0; sDelayMs(10); eeprom_write_byte_via_page(0, tAddr, tData, 4); sDelayMs(10); ReadSetting(); }