Lint in MaxSNR and removed useless condition on Scheduler

This commit is contained in:
Quentin Legot 2023-04-04 08:20:54 +02:00
parent be44a1d098
commit af11fa37f3
3 changed files with 15 additions and 26 deletions

View File

@ -1,6 +1,6 @@
package fr.ntr;
import fr.ntr.scheduler.RoundRobin;
import fr.ntr.scheduler.MaxSNR;
import fr.ntr.scheduler.Scheduler;
import java.io.File;
@ -48,9 +48,9 @@ public class Main {
for(int i = 2; i <= maximumLoad; i += 2) {
List<User> users = generateUsers(i, timeSlotNb, subCarrierNb);
ResourceBlock[][] frame = new ResourceBlock[timeSlotNb][subCarrierNb];
// Scheduler scheduler = new MaxSNR(frame, users);
Scheduler scheduler = new MaxSNR(frame, users);
// Scheduler scheduler = new ProportionalFair(frame, users);
Scheduler scheduler = new RoundRobin(frame, users);
// Scheduler scheduler = new RoundRobin(frame, users);
AccessPoint accessPoint = new AccessPoint(scheduler, frame, users);
executor.submit(() -> accessPoint.startSimulation(numberOfTicks));
}

View File

@ -1,18 +1,18 @@
package fr.ntr.scheduler;
import java.util.List;
import fr.ntr.Packets;
import fr.ntr.AccessPoint;
import fr.ntr.ResourceBlock;
import fr.ntr.User;
public class MaxSNR extends Scheduler {
private List<User> users;
private final List<User> users;
private ResourceBlock[][] frame;
private final ResourceBlock[][] frame;
public MaxSNR( ResourceBlock[][] frame, List<User> users) {
public MaxSNR(ResourceBlock[][] frame, List<User> users) {
this.frame = frame;
this.users = users;
}
@ -20,8 +20,8 @@ public class MaxSNR extends Scheduler {
@Override
public void scheduling(int ticks) {
User userMax;
for(int ts = 0; ts < 2; ts++){
for(int sp = 0; sp < 100; sp++){
for(int ts = 0; ts < AccessPoint.getTimeSlotNb(); ts++){
for(int sp = 0; sp < AccessPoint.getSubCarrierNb(); sp++){
userMax = userSelection(ts, sp);
allocateRessource(userMax, frame, ts, sp, ticks);
}
@ -36,11 +36,10 @@ public class MaxSNR extends Scheduler {
double maxSnr = 0.0;
User userMax = null;
for(User u: users) {
if (!u.getPacketsToSend().isEmpty()) {
if (maxSnr < u.getBandwidthTable()[ts][sp]) {
if (!u.getPacketsToSend().isEmpty() && (maxSnr < u.getBandwidthTable()[ts][sp])) {
maxSnr = u.getBandwidthTable()[ts][sp];
userMax = u;
}
}
}
return userMax;

View File

@ -16,7 +16,6 @@ public abstract class Scheduler {
protected void allocateRessource(User userMax, ResourceBlock[][] frame, int ts, int sp, int ticks) {
if (userMax != null && !userMax.getPacketsToSend().isEmpty()) {
Packets p = userMax.getPacketsToSend().get(userMax.getPacketsToSend().size()-1);
if(p.getBitsNumberRemaining() >= 0){
p.decreaseBitsNumberRemaining((int) userMax.getBandwidthTable()[ts][sp]);
if(p.getBitsNumberRemaining() <= 0) {
if(ticks == 0){
@ -27,15 +26,6 @@ public abstract class Scheduler {
userMax.getPacketsSent().add(p);
userMax.getPacketsToSend().remove(p);
}
} else {
if(ticks == 0){
p.setDurationSending(1);
}else {
p.setDurationSending(ticks);
}
userMax.getPacketsSent().add(p);
userMax.getPacketsToSend().remove(p);
}
frame[ts][sp].setUser(userMax);
frame[ts][sp].setBandwidth(userMax.getBandwidthTable()[ts][sp]);
}