MaxSNR fix

This commit is contained in:
Remi Boure 2023-03-24 09:06:33 +01:00
parent 505c1a9729
commit c93bd0d763
2 changed files with 15 additions and 4 deletions

View File

@ -1,5 +1,6 @@
package fr.ntr; package fr.ntr;
import fr.ntr.scheduler.MaxSNR;
import fr.ntr.scheduler.RoundRobin; import fr.ntr.scheduler.RoundRobin;
import fr.ntr.scheduler.Scheduler; import fr.ntr.scheduler.Scheduler;
@ -26,7 +27,8 @@ public class Main {
int subCarrierNb = 100; int subCarrierNb = 100;
List<User> users = generateUsers(maximumLoad, timeSlotNb, subCarrierNb); List<User> users = generateUsers(maximumLoad, timeSlotNb, subCarrierNb);
ResourceBlock[][] frame = new ResourceBlock[timeSlotNb][subCarrierNb]; ResourceBlock[][] frame = new ResourceBlock[timeSlotNb][subCarrierNb];
Scheduler scheduler = new RoundRobin("round robin", 0, frame, users); //Scheduler scheduler = new RoundRobin("round robin", 0, frame, users);
Scheduler scheduler = new MaxSNR(frame, users);
AccessPoint accessPoint = new AccessPoint(scheduler, frame, users, timeSlotNb, subCarrierNb, 0, 50); AccessPoint accessPoint = new AccessPoint(scheduler, frame, users, timeSlotNb, subCarrierNb, 0, 50);
accessPoint.startSimulation(numberOfTicks); accessPoint.startSimulation(numberOfTicks);
} }

View File

@ -10,15 +10,24 @@ public class MaxSNR extends Scheduler {
private ResourceBlock[][] frame; private ResourceBlock[][] frame;
public MaxSNR( ResourceBlock[][] frame, List<User> users) {
this.frame = frame;
this.users = users;
}
@Override @Override
public void scheduling() { public void scheduling() {
User userMax = null; User userMax = null;
for(int ts = 0; ts < 2; ts++){ for(int ts = 0; ts < 2; ts++){
for(int sp = 0; sp < 100; sp++){ for(int sp = 0; sp < 100; sp++){
userMax = selectionUtilisateur(sp, ts, users); userMax = selectionUtilisateur(sp, ts, users);
userMax.getPacketsSent().add(userMax.getPacketsToSend().get(0)); if (userMax.getPacketsToSend().size() != 0) {
userMax.getPacketsToSend().remove(userMax.getPacketsToSend().get(0)); userMax.getPacketsSent().add(userMax.getPacketsToSend().get(0));
frame[ts][sp].setUser(selectionUtilisateur(sp, ts, users)); userMax.getPacketsToSend().remove(userMax.getPacketsToSend().get(0));
frame[ts][sp].setUser(userMax);
frame[ts][sp].setBandwidth(userMax.getBandwidthTable()[ts][sp]);
}
} }
} }
} }