Skip to content

Commit 3004f38

Browse files
author
LucaParenti
committed
Fixed timers
1 parent 0f2be58 commit 3004f38

2 files changed

Lines changed: 10 additions & 10 deletions

File tree

src/app/TaskGenerator.cc

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -302,7 +302,7 @@ void TaskGenerator::balanceLoad()
302302

303303
// Set the time to compute as reverse of CDF of an exponential
304304
// random variable to match the worst possible case
305-
timeToCompute = par("dataComputationThreshold").doubleValue() + (-log(1 - 0.99) * (1 / estimateTimeToCompute));
305+
timeToCompute = par("dataComputationThreshold").doubleValue() + (-log(1 - 0.99) * estimateTimeToCompute);
306306
dataMessage->setComputationTime(timeToCompute);
307307

308308
// Save into the helper the data partition ID
@@ -314,7 +314,7 @@ void TaskGenerator::balanceLoad()
314314
// Calculate bitrate conversion from megabit to megabyte
315315
int dataPartitionFragments = std::ceil(dataMessage->getLoadToProcess() / 1500);
316316
double bitRate = findModuleByPath(".^.wlan[*]")->par("bitrate").doubleValue() / 8.0;
317-
double transferTime = ((1500 / bitRate) * dataPartitionFragments * n_fragments * helpers.size()) * 2;
317+
double transferTime = ((1500 / bitRate) * dataPartitionFragments) * 2;
318318

319319
// Set the transfer time in data message
320320
dataMessage->setTransferTime(transferTime);
@@ -744,7 +744,7 @@ void TaskGenerator::sendAgainData(DataMessage* data)
744744
// Calculate bitrate conversion from megabit to megabyte
745745
int dataPartitionFragments = std::ceil(data->getLoadToProcess() / 1500);
746746
double bitRate = findModuleByPath(".^.wlan[*]")->par("bitrate").doubleValue() / 8.0;
747-
double transferTime = ((1500 / bitRate) * dataPartitionFragments * data->getTotalFragments() * helpers.size()) * 2;
747+
double transferTime = ((1500 / bitRate) * dataPartitionFragments) * 2;
748748

749749
// Set new transfer time into data packet
750750
newData->setTransferTime(transferTime);

src/app/Worker.cc

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -256,20 +256,16 @@ void Worker::handleDataMessage(DataMessage* dataMessage)
256256
double I = dataMessage->getLoadToProcess();
257257
double CR = cpuFreq;
258258

259-
double timeToCompute = 0.001 + exponential(1 / (CPI * I * (1 / CR)));
259+
double timeToCompute = 0.001 + exponential(CPI * I * (1 / CR));
260260
EV << "TIME TO COMPUTE" << timeToCompute << endl;
261261

262262
auto key = std::pair<int, int>(dataMessage->getTaskId(), dataMessage->getPartitionId());
263263

264264
// If the cache is not empty it resends the response message tied to this data message
265265
if(responseCache.find(key) != responseCache.end()){
266-
double time = timeToCompute + (dataMessage->getTransferTime() * dataMessage->getTotalFragments()) + par("ackMessageThreshold").doubleValue();
266+
double time = timeToCompute + (dataMessage->getTransferTime() * dataMessage->getTotalFragments() * dataMessage->getNumberOfVehicles()) + par("ackMessageThreshold").doubleValue();
267267
sendAgainResponse(responseCache.at(key), time);
268268
return;
269-
} else {
270-
// Increment the number of data partitions I've received only when
271-
// is a new partition
272-
dataPartitionsReceived++;
273269
}
274270

275271
// Reset the task availability timer
@@ -309,6 +305,10 @@ void Worker::handleDataMessage(DataMessage* dataMessage)
309305
responseMessage->setStillAvailable(true);
310306
}
311307

308+
// Increment the number of data partitions I've received only when
309+
// is a new partition
310+
dataPartitionsReceived++;
311+
312312
responseMessage->setDataComputed(dataMessage->getLoadToProcess());
313313
responseMessage->setTimeToCompute(timeToCompute);
314314
responseMessage->setTaskID(dataMessage->getTaskId());
@@ -335,7 +335,7 @@ void Worker::handleDataMessage(DataMessage* dataMessage)
335335
// Generate ACK timer if parameter useAcks is false
336336
// to achieve secure protocol manually and if I'm not still available
337337
if (par("useAcks").boolValue() == false) {
338-
time = timeToCompute + ((dataMessage->getTransferTime() / 2) * dataMessage->getTotalFragments()) + par("ackMessageThreshold").doubleValue();
338+
time = timeToCompute + ((dataMessage->getTransferTime() / 2) * dataMessage->getTotalFragments() * dataMessage->getNumberOfVehicles()) + par("ackMessageThreshold").doubleValue();
339339

340340
// The & inside the square brackets tells to capture all local variable
341341
// by value

0 commit comments

Comments
 (0)