Move init to avoid re-creating users every time

This commit is contained in:
Quentin Legot 2023-03-17 09:43:32 +01:00
parent fdc5445b25
commit 76183acdee

View File

@ -44,39 +44,43 @@ public class AccessPoint {
* @param duration * @param duration
*/ */
public void startSimulation(int duration, int nbUsers) { public void startSimulation(int duration, int nbUsers) {
init(nbUsers);
for (int ticks = 0; ticks < duration; ++ticks) { for (int ticks = 0; ticks < duration; ++ticks) {
// Simulation // Simulation
reset(); reset();
init(nbUsers, ticks); updateBandwidth(ticks);
schedule(); schedule();
// traite les données et les enregistre dans un fichier // traite les données et les enregistre dans un fichier
analyseData(); analyseData();
} }
} }
private void updateBandwidth(int ticks) {
int n = 200;
int timeInterval = 50 + new Random().nextInt(50);
for(User user : users) {
// On regénère le tableau de débits toutes les 50 ms
if(ticks % 50 == 0){
user.generateBandwidth();
}
// On regénère les sources toutes les 50-100 ms
if(ticks % timeInterval == 0){
n = user.createPackets(n);
timeInterval = 50 + new Random().nextInt(51);
}
}
}
/** /**
* Génération du débit et des paquets * Génération du débit et des paquets
*/ */
private void init(int nbUsers, int ticks) { private void init(int nbUsers) {
int n = 200;
int timeInterval = 50 + new Random().nextInt(50);
// 2 groupes d'utilisateurs, proches et éloignés // 2 groupes d'utilisateurs, proches et éloignés
double[] distance = { 200d, 1000d }; double[] distance = { 200d, 1000d };
for (int i = 0; i < distance.length; i++) { for (int i = 0; i < distance.length; i++) {
for(int j = 0; j < nbUsers; j++){ for(int j = 0; j < nbUsers; j++){
User user = new User(distance[i], timeSlotNb, subCarrierNb); User user = new User(distance[i], timeSlotNb, subCarrierNb);
// On regénère le tableau de débits toutes les 50 ms
if(ticks % 50 == 0){
user.generateBandwidth();
}
// On regénère les sources toutes les 50-100 ms
if(ticks % timeInterval == 0){
n = user.createPackets(n);
timeInterval = 50 + new Random().nextInt(51);
}
this.users.add(user); this.users.add(user);
} }
} }