Пример #1
0
static void run(void)
{
	SET_CPU_IPL(0);
	clockEnable();
	screenEnable();
	menuEnable();
	showWelcome();
	receiverEnable();
	clockShow();
	runEventLoop();
}
Пример #2
0
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;
}
Пример #3
0
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;
}
Пример #4
0
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();
    }
}