Skip to content

Commit

Permalink
adding read_excel function which takews care of random crashes
Browse files Browse the repository at this point in the history
  • Loading branch information
unknown authored and unknown committed Aug 11, 2014
1 parent e50c017 commit 5ab8f0d
Show file tree
Hide file tree
Showing 25 changed files with 53 additions and 36 deletions.
4 changes: 2 additions & 2 deletions Archive/main.m
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
function [lp] = main(file,targets,agent2sensors)
if nargin == 1
targets = xlsread(file,'targets');
agent2sensors = xlsread(file,'agent2sensors');
targets = read_excel_and_clean(file,'targets');
agent2sensors = read_excel_and_clean(file,'agent2sensors');
end

verbose = 0;
Expand Down
2 changes: 1 addition & 1 deletion ElbitCode/GetOutGeneralDataParameters.m
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
function [M2PLLink,MissionPlanConf,UAVTypeProperties] = GetOutGeneralDataParameters(OutFilePath)

% Get Out GeneralData Parameters
[data,text] = xlsread(OutFilePath,'GeneralData');
[data,text] = read_excel_and_clean(OutFilePath,'GeneralData');
% Get Total Mission Plan Properties
MissionPlanConf.TakeoffPos = [data(1,1);data(2,1)]; % Km
MissionPlanConf.RefArea = [data(3,1:4);data(4,1:4)]; % Km
Expand Down
2 changes: 1 addition & 1 deletion ElbitCode/GetUAVState.m
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
function [UAVState,numOfUAVs] = GetUAVState(OutFilePath,Sheet)
% Get UAV State
startIdx = 0;
[data,text] = xlsread(OutFilePath,Sheet);
[data,text] = read_excel_and_clean(OutFilePath,Sheet);
numOfUAVs = sum(~isnan(data(:,1)));
for i = 1: numOfUAVs
UAVStateData.Name = text{startIdx+i+2,1}; % UAV Type Name (string)
Expand Down
10 changes: 5 additions & 5 deletions ElbitCode/ReadMissionSqedulerOut.m
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
function ReadMissionSqedulerOut(OutFilePath)

% Read Flight Plan From File
[MissionsData,~] = xlsread(OutFilePath,'InMissions');
[MissionsData,~] = read_excel_and_clean(OutFilePath,'InMissions');
NumOfMissions = length(MissionsData(:,1));
for i = 1:NumOfMissions
M = MissionsData(i,:);
Expand All @@ -22,12 +22,12 @@ function ReadMissionSqedulerOut(OutFilePath)
end

% Read Mission Link Table
[MissionsLink,~] = xlsread(OutFilePath,'MissionsLink');
[MissionsLink,~] = read_excel_and_clean(OutFilePath,'MissionsLink');
% Range Between Missions Table
[FlightBetweenMissionsRange,~] = xlsread(OutFilePath,'MissionsRange');
[FlightBetweenMissionsRange,~] = read_excel_and_clean(OutFilePath,'MissionsRange');

% Read Flight Plan From File
[Flights,~] = xlsread(OutFilePath,'FinalFlights');
[Flights,~] = read_excel_and_clean(OutFilePath,'FinalFlights');
NumOfFlights = length(Flights(:,1));
for i = 1:NumOfFlights
F = Flights(i,:);
Expand All @@ -53,7 +53,7 @@ function ReadMissionSqedulerOut(OutFilePath)

% Option 6.b data ================
% Read Flight Plan From File
[InFlights,~] = xlsread(OutFilePath,'InFlights');
[InFlights,~] = read_excel_and_clean(OutFilePath,'InFlights');
NumOfFlights = length(InFlights(:,1));
for i = 1:NumOfFlights
F = InFlights(i,:);
Expand Down
4 changes: 2 additions & 2 deletions ElbitCode/RunSchedulAssignment.m
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
% InFilePath = 'C:\Users\dp23489\Documents\MATLAB\Algomop\SensorsScheduler\SensorsSchedulerOut.xlsx';

% Read Flight Plan From File
[MissionsData,~] = xlsread(InFilePath,'InMissions');
[MissionsData,~] = read_excel_and_clean(InFilePath,'InMissions');
NumOfMissions = length(MissionsData(:,1));
for i = 1:NumOfMissions
M = MissionsData(i,:);
Expand All @@ -28,7 +28,7 @@
end

% Read Flight Plan From File
[Flights,~] = xlsread(InFilePath,'FinalFlights');
[Flights,~] = read_excel_and_clean(InFilePath,'FinalFlights');
NumOfFlights = length(Flights(:,1));
for i = 1:NumOfFlights
F = Flights(i,:);
Expand Down
2 changes: 1 addition & 1 deletion GetOutGeneralDataParameters.m
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
function [M2PLLink,MissionPlanConf,UAVTypeProperties] = GetOutGeneralDataParameters(OutFilePath)

% Get Out GeneralData Parameters
[data,text] = xlsread(OutFilePath,'GeneralData');
[data,text] = read_excel_and_clean(OutFilePath,'GeneralData');
% Get Total Mission Plan Properties
MissionPlanConf.TakeoffPos = [data(1,1);data(2,1)]; % Km
MissionPlanConf.RefArea = [data(3,1:4);data(4,1:4)]; % Km
Expand Down
4 changes: 2 additions & 2 deletions RunSchedulAssignment.m
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
% InFilePath = 'C:\Users\dp23489\Documents\MATLAB\Algomop\SensorsScheduler\SensorsSchedulerOut.xlsx';

% Read Flight Plan From File
[MissionsData,~] = xlsread(InFilePath,'InMissions');
[MissionsData,~] = read_excel_and_clean(InFilePath,'InMissions');
NumOfMissions = length(MissionsData(:,1));
for i = 1:NumOfMissions
M = MissionsData(i,:);
Expand All @@ -28,7 +28,7 @@
end

% Read Flight Plan From File
[Flights,~] = xlsread(InFilePath,'FinalFlights');
[Flights,~] = read_excel_and_clean(InFilePath,'FinalFlights');
NumOfFlights = length(Flights(:,1));
for i = 1:NumOfFlights
F = Flights(i,:);
Expand Down
6 changes: 3 additions & 3 deletions buildAgent2sensor.m
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,13 @@
% Detailed explanation goes here


%MissionType2Sensor = xlsread(infile,'GeneralData2');
%MissionType2Sensor = read_excel_and_clean(infile,'GeneralData2');
numOfSensors = size(MissionType2Sensor,2);
%UAVType2sensor = xlsread(infile,'GeneralData1');
%UAVType2sensor = read_excel_and_clean(infile,'GeneralData1');
% get only the relevant cols - the type2sensor cols
UAVType2sensor = UAVType2sensor(:,size(UAVType2sensor,2)-numOfSensors+1:size(UAVType2sensor,2));

UAV2UAVType = xlsread(infile,'InUAVState');
UAV2UAVType = read_excel_and_clean(infile,'InUAVState');
numOfUAV = size(UAV2UAVType,1);

% get only the relevant cols, id2type
Expand Down
6 changes: 3 additions & 3 deletions buildAgent2sensorBUGGED.m
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,13 @@
% Detailed explanation goes here


%MissionType2Sensor = xlsread(infile,'GeneralData2');
%MissionType2Sensor = read_excel_and_clean(infile,'GeneralData2');
numOfSensors = size(MissionType2Sensor,2);
%UAVType2sensor = xlsread(infile,'GeneralData1');
%UAVType2sensor = read_excel_and_clean(infile,'GeneralData1');
% get only the relevant cols - the type2sensor cols
UAVType2sensor = UAVType2sensor(:,size(UAVType2sensor,2)-numOfSensors+1:size(UAVType2sensor,2));

UAV2UAVType = xlsread(infile,'InUAVState');
UAV2UAVType = read_excel_and_clean(infile,'InUAVState');
numOfUAV = size(UAV2UAVType,1);

% get only the relevant cols, id2type
Expand Down
6 changes: 3 additions & 3 deletions buildAgentInfo.m
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@
% we need to get the takeoff time and the flight time
% output is UAVID to [takeoffTime, flightTime, speed]

UAVTakeoff = xlsread(infile,'FinalFlights');
%UAVTypeDur = xlsread(infile,'GeneralData1')
UAV2UAVType = xlsread(infile,'InUAVState');
UAVTakeoff = read_excel_and_clean(infile,'FinalFlights');
%UAVTypeDur = read_excel_and_clean(infile,'GeneralData1')
UAV2UAVType = read_excel_and_clean(infile,'InUAVState');

% targetsData col values
UAVTypeDur_UAV_TYPE_COL = 1;
Expand Down
2 changes: 1 addition & 1 deletion buildMissionLink.m
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
function [ missionLink ] = buildMissionLink(infile,numOfTargets)

missionLink = zeros(numOfTargets,numOfTargets);
missionLinkTab = xlsread(infile,'MissionsLink');
missionLinkTab = read_excel_and_clean(infile,'MissionsLink');
missionLinkTab = missionLinkTab(:,[1 3]);

for link=1:size(missionLinkTab,1)
Expand Down
5 changes: 3 additions & 2 deletions buildStats.m
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
function [out] = buildStats(files)

tic
%files = {'60Missions','60Missions_2','50Missions','50Missions_2','40Missions','40Missions_2','30Missions','30Missions_2'};
files = {'50Missions','50Missions_2','40Missions','40Missions_2','30Missions','30Missions_2'};
buildParamMin = 10;
Expand Down Expand Up @@ -37,7 +37,7 @@
j = j+1;
fprintf('\tIteration %d/%d\n',(((i-1)*dimBuild) + j),dimRun*dimBuild);
if ((currFileOut(i+1,j+1) == 0) && (runParam <= buildParam) )
[~,~,~,~, ~, ~, ~, ~, ~, ~, ~,allStat] = evalc('mainBFS(filename,buildParam,runParam);');
[~,~,~,~, ~, ~, ~, ~, ~, ~, ~,allStat] = evalc('mainBFS(filename,buildParam,runParam,0);');
currFileOut(i+1,j+1) = allStat.val;
%xlswrite('stat.xls',allStat.val,sprintf('File_%s',files{file}),sprintf('%s%i',char(65 + i),j + 1));
csvwrite(csvFileName,currFileOut,0,0);
Expand All @@ -46,4 +46,5 @@
end
out.(sprintf('File_%s',files{file})) = currFileOut;
end
toc
end
2 changes: 1 addition & 1 deletion buildTarget2TargetDistance.m
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
function [target2TargetDistance] = buildTarget2TargetDistance(infile, nTargets)
%a20MinDistance = 48000;
%target2TargetDistance = ones(nTargets + 1, nTargets + 1) * a20MinDistance;
target2TargetDistance = xlsread(infile,'MissionsRange');
target2TargetDistance = read_excel_and_clean(infile,'MissionsRange');
% add distnace from source to all targets
target2TargetDistance = [zeros(size(target2TargetDistance,1),1) target2TargetDistance];
target2TargetDistance = [zeros(1,size(target2TargetDistance,2)); target2TargetDistance];
Expand Down
2 changes: 1 addition & 1 deletion buildTarget2Val.m
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
function [target2Val] = buildTarget2Val(infile)

PRIORITY_COL = 3;
targets = xlsread(infile,'InMissions');
targets = read_excel_and_clean(infile,'InMissions');
target2Val = targets(:,PRIORITY_COL);
target2Val = 8 - target2Val;

Expand Down
4 changes: 2 additions & 2 deletions buildTarget2sensor.m
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@
% Detailed explanation goes here


%MissionType2Sensor = xlsread(infile,'GeneralData2');
%MissionType2Sensor = read_excel_and_clean(infile,'GeneralData2');
numOfSensors = size(MissionType2Sensor,2);
target2MissionType = xlsread(infile,'InMissions');
target2MissionType = read_excel_and_clean(infile,'InMissions');

% get only the relevant cols, id2type
target2MissionType = target2MissionType(:,1:2);
Expand Down
2 changes: 1 addition & 1 deletion main.m
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
% parse the input file
[ Agent2sensor,target2sensor, AgentInfo, target2Val, target2TargetDistance ] = ParseInfile( file );
Agent2target = Agent2sensor * target2sensor';
targetsData = xlsread(file,'InMissions');
targetsData = read_excel_and_clean(file,'InMissions');
numOfTargets = size(target2sensor,1);
numOfDrones = size(AgentInfo,1);

Expand Down
10 changes: 6 additions & 4 deletions mainBFS.m
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
function [model,outConf,AgentInfo, allConfigurations, agent2conf, Agent2target, AllConf, excelOut, Agent2sensor, target2sensor,allStat] = mainBFS(file,buildAmount,runAmount)
function [model,outConf,AgentInfo, allConfigurations, agent2conf, Agent2target, AllConf, excelOut, Agent2sensor, target2sensor,allStat] = mainBFS(file,buildAmount,runAmount,writeOutput)

global targetsData;
global Agent2target;
Expand All @@ -11,10 +11,10 @@
% parse the input file
[ Agent2sensor,target2sensor, AgentInfo, target2Val, target2TargetDistance, missionLink ] = ParseInfile( file );
Agent2target = Agent2sensor * target2sensor';
targetsData = xlsread(file,'InMissions');
targetsData = read_excel_and_clean(file,'InMissions');
numOfTargets = size(target2sensor,1);
numOfDrones = size(AgentInfo,1);

allConfigurations = zeros(0,numOfTargets);
agent2conf = zeros(numOfDrones,0);

Expand Down Expand Up @@ -132,7 +132,9 @@
% Print values
data_fmt = [repmat(['|%', int2str(col_w - 1), '.', int2str(fr_n), 'f '], 1, size(AllConf, 2)), '\n'];
fprintf(data_fmt, AllConf')
%xlswrite(file,excelOut,'OutAssignment','A3');
if (writeOutput)
xlswrite(file,excelOut,'OutAssignment','A3');
end

% save stat
allStat.val = optVal;
Expand Down
2 changes: 1 addition & 1 deletion mainFull.m
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
% parse the input file
[ Agent2sensor,target2sensor, AgentInfo, target2Val, target2TargetDistance ] = ParseInfile( file );
Agent2target = Agent2sensor * target2sensor';
targetsData = xlsread(file,'InMissions');
targetsData = read_excel_and_clean(file,'InMissions');
numOfTargets = size(target2sensor,1);
numOfDrones = size(AgentInfo,1);

Expand Down
14 changes: 14 additions & 0 deletions read_excel_and_clean.m
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@

function [data,text] = read_excel_and_clean(file,sheet)
[data,text] = xlsread(file,sheet);
[~, computer] = system('hostname');
[~, user] = system('whoami');
pause(0.5);
[~, alltask] = system(['tasklist /S ', computer, ' /U ', user]);
excelPID = regexp(alltask, 'EXCEL.EXE\s*(\d+)\s', 'tokens');
for i = 1 : length(excelPID)
killPID = cell2mat(excelPID{i});
system(['taskkill /f /pid ', killPID]);
end
end

Binary file added runningArea/30Missions.xlsx
Binary file not shown.
Binary file added runningArea/30Missions_2.xlsx
Binary file not shown.
Binary file added runningArea/40Missions.xlsx
Binary file not shown.
Binary file added runningArea/40Missions_2.xlsx
Binary file not shown.
Binary file added runningArea/50Missions.xlsx
Binary file not shown.
Binary file added runningArea/50Missions_2.xlsx
Binary file not shown.

0 comments on commit 5ab8f0d

Please sign in to comment.