package fr.ntr; import fr.ntr.scheduler.RoundRobin; import fr.ntr.scheduler.Scheduler; import java.util.ArrayList; import java.util.List; public class Main { public static void main(String[] args) { if(args.length == 2) { int numberOfTicks; // Nombre de ticks de la simulation -> durée de la simulation int maximumLoad; // Nombre maximal d'utilisateurs dans le système try { numberOfTicks = Integer.parseInt(args[0]); maximumLoad = Integer.parseInt(args[1]); System.out.println("ticks: " + numberOfTicks + ", users: " + maximumLoad); } catch (NumberFormatException e) { System.err.println("Cannot parse launch argument to integer"); System.exit(1); return; } //TODO : change timeSlotNb and subCarrierNb int timeSlotNb = 0; int subCarrierNb = 0; List users = generateUsers(20, timeSlotNb, subCarrierNb); //TODO : generate users ResourceBlock[][] frame = new ResourceBlock[timeSlotNb][subCarrierNb]; Scheduler scheduler = new RoundRobin("round robin", 0, frame); AccessPoint accessPoint = new AccessPoint(scheduler, frame, users, timeSlotNb, subCarrierNb, 0, 50); accessPoint.startSimulation(numberOfTicks, maximumLoad); } else { System.err.println("Please give launch arguments"); System.err.println("gradle run --args=\" \""); System.exit(1); } } private static List generateUsers(int nbUsers, int timeSlotNb, int subCarrierNb) { List users = new ArrayList<>(); // 2 groupes d'utilisateurs, proches et éloignés double[] distance = { 200d, 1000d }; for (int i = 0; i < distance.length; i++) { for(int j = 0; j < nbUsers; j++){ User user = new User(distance[i], timeSlotNb, subCarrierNb); users.add(user); } } return users; } }