forked from obriante/capillary-matlab
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathNetworkDFLATest.m
executable file
·81 lines (61 loc) · 2.65 KB
/
NetworkDFLATest.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
%%
% Copyright (c) 2014 Universita' Mediterranea di Reggio Calabria (UNIRC)
%
% This program is free software; you can redistribute it and/or modify
% it under the terms of the GNU General Public License version 2 as
% published by the Free Software Foundation;
%
% This program is distributed in the hope that it will be useful,
% but WITHOUT ANY WARRANTY; without even the implied warranty of
% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
% GNU General Public License for more details.
%
% You should have received a copy of the GNU General Public License
% along with this program; if not, write to the Free Software
% Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
%
% Author: Orazio Briante <[email protected]>
%%
clc;
clear all;
close all;
rng('shuffle', 'v5uniform');
format long
addpath(genpath('../core'));
nDevices = 16;
nCoordinator = 1;
nPackets = 1;
%% Solar Harvester
nSampleHours = 60;
sunriseTime = 7*nSampleHours;
sunsetTime = 18*nSampleHours;
maxValue = 1.8874782*10^3;
minValue = 1.5631218*10^3;
solarPanelEfficiency = 8;
DCDCefficiency = 90;
% Parameters
networkType = '802.15.4';
devicesType = 'CC2520';
%% Energy Store Device
esdType = 'ML612S';
startingLevel = 100;
nominalCapacity = 2.6;
nominalVoltage = 3;
number = 1;
connectionType = 'Single';
t = clock;
network=Network(nDevices, Parameters(devicesType, networkType), ...
TransmissionSystem(0, nPackets), EnergyStoreDevice(esdType, startingLevel, nominalCapacity, nominalVoltage, number, connectionType), ...
SolarHarvester(maxValue, minValue, sunriseTime, sunsetTime, solarPanelEfficiency, DCDCefficiency));
%% Printing Data
network.print();
% [deviceRandomSlots, txFrames, slotsInFrames, frameStatus, successDevices]=DynamicFrameLengthALOHA(network, nDevices, 1)
[deviceRandomSlots, txFrames, slotsInFrames, frameStatus, successDevices, network]=network.DFLALOHA(nDevices, 1, 0)
% [coordinatorEnergy, energyRFD, energyTX, energyRX, energyIDLE]=network.parameters.EnergyEximationCoordinator(slotsInFrames, txFrames)
% [nodeEnergy, energyRFD, energyTX, energyRX, energyIDLE, energySBY, energySLEEP]=network.parameters.EnergyEximationEndDevice(slotsInFrames, deviceRandomSlots)
% [nodeEnergy, energyRFD, energyTX, energyRX, energyIDLE, energySBY, energySLEEP]=network.parameters.EnergyEximationEndDeviceForceFBP(slotsInFrames, deviceRandomSlots)
coordinatorEnergy=network.LastCoordinatorConsumedEnergy()
nodeEnergy=network.LastConsumedEnergyAll()
time = etime(clock,t);
fprintf('Total Elapsed Time: %s\n',timeFormat(time));
clear i t time