Main readability is over 9000

This commit is contained in:
loris 2023-04-04 16:45:13 +02:00
parent 80b77f7c6d
commit 6b816534d7
3 changed files with 19 additions and 10 deletions

View File

@ -28,7 +28,7 @@ public class AccessPoint {
cell1.schedule(ticks); cell1.schedule(ticks);
cell2.schedule(ticks); cell2.schedule(ticks);
// simulation des interférences // simulation des interférences
computeInterference(); // computeInterference();
// traite les données et les enregistre dans un fichier // traite les données et les enregistre dans un fichier
try { try {
cell1.analyseData(ticks); cell1.analyseData(ticks);

View File

@ -41,12 +41,11 @@ public class Main {
int timeSlotNb = 2; int timeSlotNb = 2;
int subCarrierNb = 100; int subCarrierNb = 100;
//préparation pour exportation des données
File folder = new File("export"); File folder = new File("export");
if(!folder.exists() && !folder.mkdir()) { if(!folder.exists() && !folder.mkdir()) {
System.err.println("Cannot create export folder"); System.err.println("Cannot create export folder");
System.exit(1); System.exit(1);
} }
Arrays.stream(Objects.requireNonNull(new File("export").listFiles())) Arrays.stream(Objects.requireNonNull(new File("export").listFiles()))
.filter(File::isFile) .filter(File::isFile)
@ -56,28 +55,38 @@ public class Main {
} }
}); });
//instanciation des cellules, schedulers et utilisateurs
Cell.setTimeSlotNb(timeSlotNb); Cell.setTimeSlotNb(timeSlotNb);
Cell.setSubCarrierNb(subCarrierNb); Cell.setSubCarrierNb(subCarrierNb);
ExecutorService executor = Executors.newFixedThreadPool(Runtime.getRuntime().availableProcessors()); ExecutorService executor = Executors.newFixedThreadPool(Runtime.getRuntime().availableProcessors());
for(int i = 2; i <= maximumLoad; i += 2) { for(int i = 2; i <= maximumLoad; i += 2) {
//génération des utilisateurs
List<User> usersCell1 = generateUsers(i, timeSlotNb, subCarrierNb); List<User> usersCell1 = generateUsers(i, timeSlotNb, subCarrierNb);
List<User> usersCell2 = generateUsers(i, timeSlotNb, subCarrierNb); List<User> usersCell2 = generateUsers(i, timeSlotNb, subCarrierNb);
//génération des trames
ResourceBlock[][] frame1 = new ResourceBlock[timeSlotNb][subCarrierNb]; ResourceBlock[][] frame1 = new ResourceBlock[timeSlotNb][subCarrierNb];
ResourceBlock[][] frame2 = new ResourceBlock[timeSlotNb][subCarrierNb]; ResourceBlock[][] frame2 = new ResourceBlock[timeSlotNb][subCarrierNb];
//TODO : changes schedulers //TODO : changes schedulers
//génération des schedulers
Scheduler schedulerCell1 = new RoundRobin(frame1, frame2, usersCell1); Scheduler schedulerCell1 = new RoundRobin(frame1, frame2, usersCell1);
Scheduler schedulerCell2 = new RoundRobin(frame2, frame1, usersCell2); Scheduler schedulerCell2 = new RoundRobin(frame2, frame1, usersCell2);
try { try {
//préparation à exportation des données de chaque cellule
FileOutputStream output = new FileOutputStream("export" + File.separator + (usersCell1.size()+usersCell2.size()) + ".csv", true); FileOutputStream output = new FileOutputStream("export" + File.separator + (usersCell1.size()+usersCell2.size()) + ".csv", true);
output.write("tick;x;y;user;bandwidth;delay;cell;\n".getBytes()); output.write("tick;x;y;user;bandwidth;delay;cell;\n".getBytes());
//création des cellules
Cell cell1 = new Cell(0, schedulerCell1, frame1, usersCell1, output); Cell cell1 = new Cell(0, schedulerCell1, frame1, usersCell1, output);
Cell cell2 = new Cell(1, schedulerCell2, frame2, usersCell2, output); Cell cell2 = new Cell(1, schedulerCell2, frame2, usersCell2, output);
//création de l'AccessPoint
AccessPoint accessPoint = new AccessPoint(cell1, cell2); AccessPoint accessPoint = new AccessPoint(cell1, cell2);
executor.submit(() -> accessPoint.startSimulation(numberOfTicks)); executor.submit(() -> accessPoint.startSimulation(numberOfTicks));
} catch(IOException e) { }
catch(IOException e) {
System.err.println(e.getClass().getSimpleName() + " : " + e.getMessage()); System.err.println(e.getClass().getSimpleName() + " : " + e.getMessage());
System.exit(1); System.exit(1);
} }
@ -85,11 +94,13 @@ public class Main {
executor.shutdown(); executor.shutdown();
try { try {
executor.awaitTermination(2, TimeUnit.MINUTES); executor.awaitTermination(2, TimeUnit.MINUTES);
} catch (InterruptedException e) { }
catch (InterruptedException e) {
e.printStackTrace(); e.printStackTrace();
} }
executor.shutdownNow(); executor.shutdownNow();
} else { }
else {
System.err.println("Please give launch arguments"); System.err.println("Please give launch arguments");
System.err.println("gradle run --args=\"<number of ticks> <number of users>\""); System.err.println("gradle run --args=\"<number of ticks> <number of users>\"");
System.exit(1); System.exit(1);

View File

@ -12,9 +12,7 @@ public class User {
private final List<Packets> packetsSent; private final List<Packets> packetsSent;
private int leftForNextSource; private int leftForNextSource;
private int timeInterval = 1; private int timeInterval = 1;
public int totalbits = 0; public int totalbits = 0;
private int mbis; private int mbis;
private final Random random = new Random(); private final Random random = new Random();