Add interference

This commit is contained in:
Quentin Legot 2023-04-07 09:58:54 +02:00
parent de59bc8047
commit d534f3f61b
2 changed files with 19 additions and 11 deletions

View File

@ -30,11 +30,9 @@ public class AccessPoint {
for (int sp = 0; sp < Cell.getSubCarrierNb(); sp++) {
User user1 = cell1.schedule(ticks, ts, sp);
User user2 = cell2.schedule(ticks, ts, sp);
if(user1 == user2 && user1 != null) {
computeInterference(user1, ts, sp);
}
cell1.consumeResource(ticks, ts, sp);
cell2.consumeResource(ticks, ts, sp);
boolean haveInterference = user1 == user2 && user1 != null;
cell1.consumeResource(ticks, ts, sp, haveInterference);
cell2.consumeResource(ticks, ts, sp, haveInterference);
cell1.postScheduling(user1);
cell2.postScheduling(user2);
@ -44,15 +42,11 @@ public class AccessPoint {
// traite les données et les enregistre dans un fichier
try {
cell1.analyseData(ticks);
//cell2.analyseData(ticks);
cell2.analyseData(ticks);
} catch (IOException e) {
System.out.println("Can't export data");
}
}
}
private void computeInterference(User user, int ts, int sp) {
}
}

View File

@ -73,11 +73,12 @@ public class Cell {
return scheduler.scheduling(tick, ts, sp);
}
public void consumeResource(int tick, int ts, int sp) {
public void consumeResource(int tick, int ts, int sp, boolean haveInterference) {
ResourceBlock rb = frame[ts][sp];
User user = rb.getUser();
if(user != null && !user.getPacketsToSend().isEmpty()) {
Packets p = user.getPacketsToSend().get(0);
rb.setBandwidth(updateBandwidth(haveInterference, rb));
p.decreaseBitsNumberRemaining((int) rb.getBandwidth());
if(p.getBitsNumberRemaining() <= 0) {
if(tick == 0){
@ -91,6 +92,19 @@ public class Cell {
}
}
private double updateBandwidth(boolean haveInterference, ResourceBlock rb) {
if(haveInterference) {
if(rb.getUser().getDistance() < 200d) {
// User proche
return rb.getBandwidth() / 2;
}
// User loin
return rb.getBandwidth() / 4;
} else {
return rb.getBandwidth();
}
}
public void analyseData(int tick) throws IOException {
double delayAverage = 0.0;
int nbPacketsSent = 0;