예제 #1
0
파일: RR.c 프로젝트: malomanini/NTR
int RR(Antenne *antenne, int nb_user){
	int i = 0;
	int j = 0;
	int currentUser = 0;
	int debitTotalTrame = 0;

	for(i = 0; i < NB_TIME_SLOTS ; i++){
		for(j = 0; j< NB_SUBCARRIERS ; j++){

			debitTotalTrame += consumeBit(antenne, currentUser, j);
			
			currentUser = (currentUser+1) % nb_user;
		}
	}
	return debitTotalTrame;

}
예제 #2
0
파일: RR.c 프로젝트: NicolasLeGall/M1Stage
int RR(Antenne *antenne, int nb_user){
	int i = 0;
	int j = 0;
	int currentUser = 0;
	int debitTotalTrame = 0;
	int tamp = 0;
	int temp_user;

	
	for(i = 0; i < NB_TIME_SLOTS ; i++){
		for(j = 0; j< NB_SUBCARRIERS ; j++){
			while(tamp != -1){
				// on regarde si l'utilisateur a quelque chose a consommer
				if(antenne->users[currentUser]->bufferVide == 0){
					//consumeBit renvois des valeurs de 0 à 10. renvois le nombre de bit consumer dans un packet d'un utilisateurs dans un time slot pour une subcarrier
					debitTotalTrame += consumeBit(antenne, currentUser, j);
					
					tamp = -1;
				
				//sinon on passe a l'user d'apres
				}else{
					//permet de parcourir tout les utilisateurs pour voir si chaqun a quelque chose a consommer.
					tamp = tamp + 1;
					if(tamp == nb_user){
						tamp = -1;
					}
				}
				//le modulo permet de revenir à 0 quand on a atteint le nb_user on parcour donc les utilisateur de 0 à nb_user
				currentUser = (currentUser+1) % nb_user;
				
			}
			tamp = 0;
		}
	}

	
	return debitTotalTrame;

}
예제 #3
0
파일: maxSNR.c 프로젝트: malomanini/NTR
int maxSNR(Antenne *antenne, int nb_user) {	
	int MaxU = 0;
	int i, g, j, debitTotalTrame = 0;
	int count = 0;

	for(g = 0; g < NB_TIME_SLOTS ; g++){// parcours les timeslots, //tant que User.BufferVide > 0 ou que g<5, on transmet au debit actuel a cet user
		for(j = 0; j < NB_SUBCARRIERS ; j++){ //parcourt les subcariers

			for (i = 0; i < nb_user ; i++){

				if((antenne->users[i]->SNRActuels[j] >= antenne->users[MaxU]->SNRActuels[j]) && (antenne->users[i]->bufferVide == 0)){
					// si l'User a un meilleur debit, et que son buffer n'est pas vide: il devient le MaxUser 
					MaxU = i;
					
				}
			}
			/*printf("maxU = %d   ", MaxU);*/
			debitTotalTrame += consumeBit(antenne, MaxU, j);

		}

	}
	return debitTotalTrame;
}