diff --git a/src/main/java/fr/ntr/AccessPoint.java b/src/main/java/fr/ntr/AccessPoint.java index 173880d..cf74f12 100644 --- a/src/main/java/fr/ntr/AccessPoint.java +++ b/src/main/java/fr/ntr/AccessPoint.java @@ -97,7 +97,12 @@ public class AccessPoint { public ResourceBlock[][] getFrame() { return frame; } - public void setFrame(ResourceBlock[][] frame) { - this.frame = frame; + + public static int getTimeSlotNb() { + return timeSlotNb; + } + + public static int getSubCarrierNb() { + return subCarrierNb; } } diff --git a/src/main/java/fr/ntr/Main.java b/src/main/java/fr/ntr/Main.java index aecb829..e8603aa 100644 --- a/src/main/java/fr/ntr/Main.java +++ b/src/main/java/fr/ntr/Main.java @@ -27,4 +27,4 @@ public class Main { System.exit(1); } } -} +} \ No newline at end of file diff --git a/src/main/java/fr/ntr/Packets.java b/src/main/java/fr/ntr/Packets.java index bcf40ff..efab426 100644 --- a/src/main/java/fr/ntr/Packets.java +++ b/src/main/java/fr/ntr/Packets.java @@ -11,4 +11,4 @@ public class Packets { this.endTimeSending = endTimeSending; this.bitsNumberRemaining = bitsNumberRemaining; } -} +} \ No newline at end of file diff --git a/src/main/java/fr/ntr/ResourceBlock.java b/src/main/java/fr/ntr/ResourceBlock.java index ec0bc6d..588e40e 100644 --- a/src/main/java/fr/ntr/ResourceBlock.java +++ b/src/main/java/fr/ntr/ResourceBlock.java @@ -8,4 +8,12 @@ public class ResourceBlock { this.user = user; this.bandwith = bandwith; } + + public void setUser(User user) { + this.user = user; + } + + public void setBandwith(double bandwith) { + this.bandwith = bandwith; + } } diff --git a/src/main/java/fr/ntr/scheduler/MaxSNR.java b/src/main/java/fr/ntr/scheduler/MaxSNR.java index 41e0ceb..a762cda 100644 --- a/src/main/java/fr/ntr/scheduler/MaxSNR.java +++ b/src/main/java/fr/ntr/scheduler/MaxSNR.java @@ -1,23 +1,34 @@ package fr.ntr.scheduler; import java.util.List; + +import fr.ntr.AccessPoint; import fr.ntr.User; +import fr.ntr.UserGroup; public class MaxSNR extends Scheduler { - private String name; - - + private List users; + @Override public void scheduling() { + User userMax = null; + for(int ts = 0; ts < 2; ts++){ + for(int sp = 0; sp < 100; sp++){ + userMax = selectionUtilisateur(sp, ts, users); + } + } } - private void selectionUtilisateur(int Ts, int Sp, List Users) { - + private User selectionUtilisateur(int sp, int ts, List Users) { + double MaxSnr = 0.0; + User userMax = null; + for(User u: Users){ + if (MaxSnr < u.getBandwidthTable()[ts][sp]){ + MaxSnr = u.getBandwidthTable()[ts][sp]; + userMax = u; + } + } + return userMax; } - public MaxSNR(String name) { - this.name = name; - } - - } diff --git a/src/main/java/fr/ntr/scheduler/RoundRobin.java b/src/main/java/fr/ntr/scheduler/RoundRobin.java index 331661f..bd9b9a8 100644 --- a/src/main/java/fr/ntr/scheduler/RoundRobin.java +++ b/src/main/java/fr/ntr/scheduler/RoundRobin.java @@ -8,19 +8,37 @@ public class RoundRobin extends Scheduler { private String name; private int index; - public RoundRobin(String name, int index) { + private List users; + private ResourceBlock[][] frame; + + public RoundRobin(String name, int index, List users, ResourceBlock[][] frame ) { this.name = name; this.index = index; + this.users = users; + this.frame = frame; } /** * Entry + * Rempli la trame avec les utilisateurs * Return */ @Override public void scheduling() { - index = 0; + Random random = new Random(); + index = random.nextInt(users.size()-1); + for (int Ts = 0; Ts < AccessPoint.getTimeSlotNb(); Ts++) { + for(int Sp = 0; Sp < AccessPoint.getSubCarrierNb(); Sp++) { + + if (users.get(index).getPacketsToSend() == null) { + users.remove(index); + } + frame[Ts][Sp].setUser(UserSelection(Ts, Sp, users)); + + //AccessPoint.setFrame[Ts][Sp](); + } + } } /** @@ -30,7 +48,7 @@ public class RoundRobin extends Scheduler { private User UserSelection(int Ts, int Sp, List Users) { for (int i = 0; i < Ts; i++) { for (int j = 0; j < Sp; j++) { - index++; + index++; } } return Users.get(index%(Users.size() - 1));