示例#1
0
void menuState()
{
  menuItem tempItem;

  for (int i = 0; i < NUMBER_OF_MENU_LINES; i++) {
    tempItem = menuItems.pop();
    if (tempItem.message != NULL) {
      lcd.setCursor(0,i);
      lcd.print(i+1);
      lcd.print(tempItem.message);
    }
    menuItems.push(tempItem);
  }

  lcd.setCursor(0,3);
  if (menuItems.count() > NUMBER_OF_MENU_LINES) {
    lcd.print("Next : * Back : 0");
  }
  else{
    lcd.print("Back : #");
  }
}
示例#2
0
int TaskManager::executeTasksQueue()
{
	int executedTasksCount = 0;

	QueueList<TaskManagerRecord*>* fromQueue;
	QueueList<TaskManagerRecord*>* toQueue;

	if( !tasksQueueA->isEmpty() )
	{
		fromQueue = tasksQueueA;
		toQueue = tasksQueueB;
	}
	else
	{
		fromQueue = tasksQueueB;
		toQueue = tasksQueueA;
	}

	while( !fromQueue->isEmpty() )
	{
		TaskManagerRecord* taskManagerTaskRecord = fromQueue->pop();

		if( taskManagerTaskRecord->taskManagerScheduler->canExecute() )
		{
			taskManagerTaskRecord->runnable->run();
			executedTasksCount++;
		}

		if( taskManagerTaskRecord->taskManagerScheduler->canRemoveFromTaskManager() )
			delete( taskManagerTaskRecord );
		else
			toQueue->push( taskManagerTaskRecord );
	}

	return executedTasksCount;
}