static void run(void) { SET_CPU_IPL(0); clockEnable(); screenEnable(); menuEnable(); showWelcome(); receiverEnable(); clockShow(); runEventLoop(); }
uchar handlerOSStateMachine(){ uchar pendingState = OS_CurrentState; switch(OS_CurrentState){ case OS_STATE_IDLE:{ TURN_OFF_Lcd_L;//关液晶屏背光 PWM_CONTROL_FLAG = CLOSE;//关闭PWM pendingState = OS_STATE_LOAD; }break; case OS_STATE_LOAD:{//系统检测状态 if(OS_LastState != OS_STATE_LOAD){ showWelcome(); }else{ //这里增加开机的状态监测 KaiJi();//开机启动,确认上电电压,使用数组,电路自检等 if((OS_Time-OS_StateTime) > 30){//显示3S. 30*100 = 3S pendingState = OS_STATE_WORK; } } }break; case OS_STATE_WORK:{//系统正常工作状态 handlerLCD();//处理显示 //////////////////////////////////////////////////////////////////////////////////////////////////// ////// 这里需要增加和修改 PWM, 电池检测等操作. /// ////// PWM请按照"PWM处理逻辑"进行相应的增加 /// ////// 关于电压的AD, 在这里可以一次循环读取一个值. 在充放电的逻辑处理中禁止读取.这样效率很高 /// //////////////////////////////////////////////////////////////////////////////////////////////////// //SelectMode(); //SystemModeType = OUTPUT_MODE; //LoadCurrentDealWith(); //SwitchBatteryState(); //LedDisplay(); //if(PVCount > 50) //5s检测处理一次 50 //{ // PVCount = 0; // SolarPanelDealWith(); //根据太阳能电池板的电压,进行相应的处理,并获得当前太阳能电池板的状态 //} //if(PWMChargeFlag == 1) //调用PWM充电函数100ms 监测一次 //{ // PWMChargeFlag = 0; //定时器值还原 // PWMCharge(); //} //////////////////////////////////////////////////////////////////////////////////////////////// handlerKeyEvent();//没有逻辑消耗按键.这里将按键消耗掉 }break; } tranform_OS_State(pendingState); return TRUE; }
bool Atlas::init() { space->init(); editor.init(space); session.setup(space,&editor); if(session.isLoaded()) { running=true; } else { ui->actionClose_Project->setDisabled(true); showWelcome(); stop(); } reloadRecentProject(); for(int i=0;i<editor.toolCount();i++) { QMenu * menu=editor.getTool(i)->createMenu(); if(menu!=NULL) ui->menuTools->addMenu(menu); ui->toolTab->insertTab(i,editor.getTool(i),editor.getTool(i)->getName()); } #ifdef Q_WS_ANDROID /* session.openProject("/storage/sdcard1/android/android.apro"); showSpace(); run();*/ #endif return true; }
void Atlas::action_CloseProject() { if(session.isLoaded()) { QMessageBox msgBox; msgBox.setText(tr("Close without saving.")); msgBox.setInformativeText("Would you like to save project?"); msgBox.setStandardButtons(QMessageBox::Yes | QMessageBox::No); msgBox.setDefaultButton(QMessageBox::Yes); int ret = msgBox.exec(); if(ret==QMessageBox::Yes) { action_SaveAll(); } } if(session.closeProject()) { ui->actionClose_Project->setDisabled(true); ui->actionSun->setDisabled(true); showWelcome(); stop(); } }