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 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110
| % % Openness and creation of Output's file
fid_txt=fopen(fullfile(pwd,[f_excel '.txt']),'w+');
% % Creation of analysis Report
fid_report= fopen(fullfile(pwd,[f_excel '_Report.txt']),'w+');
% % Verification and Test file
fid_test = fopen(fullfile(pwd,[f_excel '_Test.txt']),'w+');
fid_ongoing = fopen(fullfile(pwd,[f_excel '_Ongoing.txt']),'w+');
fid_save= fopen(fullfile(pwd,[f_excel '_Save.txt']),'w+');
% % Init output matrix
fprintf(fid_txt,['EMS' char(9) 'Name' char(9) 'Connection_1' char(9) 'Connection_2' char(9) 'Connection_3' char(9) 'Connection_4' char(10)]);
fprintf(fid_report,['\nSensors which are present :' char(9) char(9) char(9) 'Sensors which are missing\n' ]);
fprintf(fid_ongoing,['StartNode' char(9) 'StartCav' char(9) 'EndNode' char(9) 'EndCav' char(10)]);
fprintf(fid_test,['StartNode' char(9) 'Cav1' char(9) 'EndNode' char(9) 'Cav2' char(10)]);
fprintf(fid_save,['EMS' char(9) 'Name' char(9) 'Connection_1' char(9) 'Connection_2' char(9) 'Connection_3' char(9) 'Connection_4' char(10)]);
% % comparaison between EMS Dictionary and Project Dictionary & copy line
% % which have the same sensor
for i_capteur = 1:length(Dico.EMS.capteur)
% Search in Dico if the capteur is available
idx = find(strncmp(Dico.Project.Name,Dico.EMS.capteur{i_capteur},length(Dico.EMS.capteur{i_capteur})));
if ~isempty(idx)
for i_idx = 1 : length(idx);
fprintf(fid_txt,[Dico.Project.EMS{idx(i_idx)} char(9) Dico.Project.Name{idx(i_idx)} char(9) Dico.Project.Connection_1{idx(i_idx)} char(9) Dico.Project.Connection_2{idx(i_idx)} char(9) Dico.Project.Connection_3{idx(i_idx)} char(9) Dico.Project.Connection_4{idx(i_idx)} char(10)]);
fprintf(fid_report, [char(9) Dico.Project.EMS{idx(i_idx)} char(9) Dico.Project.Name{idx(i_idx)} char(10)])
end
else
% Inform user that sensor wasn't found
fprintf(fid_report,[char(9) char(9) char(9) char(9) 'missing' char(10)]);
end
end
% On enregistre le Dico généré
fid_txt=fopen('DicoControl.txt');
DicoControl = textscan(fid_txt,'%q %q %q %q %q %q' ,'delimiter', '\t');
fclose(fid_txt);
%On le convertit en struct pour pouvoir l'utiliser
fid_txt=fopen('DicoControl.txt');
c= {DicoControl{1,1},DicoControl{1,2},DicoControl{1,3},DicoControl{1,4},DicoControl{1,5},DicoControl{1,6}};
f={DicoControl{1,1}{1,1},DicoControl{1,2}{1,1},DicoControl{1,3}{1,1},DicoControl{1,4}{1,1},DicoControl{1,5}{1,1},DicoControl{1,6}{1,1}};
s = cell2struct(c,f,2); %s est le DicoControl convertit, c'est s qu'on utilisera a partir de maintenant
%Reseach of sensor in EMS Dictionary and DSI dictionary
for i_research_Node = 1:length(Dico.EMS.Node)
% I search all Node(sensor's name in DSI) in StartNode
step1 = find(strncmp(Dico.DSI.StartNode,Dico.EMS.Node{i_research_Node},length(Dico.EMS.Node{i_research_Node})));
for i_step11 = 1 : length(step1)
fprintf(fid_ongoing,[Dico.DSI.StartNode{step1(i_step11)} char(9) Dico.DSI.Cav1{step1(i_step11)} char(9) Dico.DSI.EndNode{step1(i_step11)} char(9) Dico.DSI.Cav2{step1(i_step11)} char(10)]);
end
end
% On enregistre le Dico généré
fid_ongoing=fopen('DicoControl_Ongoing.txt');
DicoControl_Ongoing = textscan(fid_ongoing,'%q %q %q %q','delimiter', '\t');
fclose(fid_ongoing);
%On le convertit en struct pour pouvoir l'utiliser
fid_ongoing = fopen('DicoControl_Ongoing.txt');
b = {DicoControl_Ongoing{1,1},DicoControl_Ongoing{1,2},DicoControl_Ongoing{1,3},DicoControl_Ongoing{1,4}};
g ={DicoControl_Ongoing{1,1}{1,1},DicoControl_Ongoing{1,2}{1,1},DicoControl_Ongoing{1,3}{1,1},DicoControl_Ongoing{1,4}{1,1}};
result = cell2struct(b,g,2); %result est le DicoControl_Ongoing convertit, c'est result qu'on utilisera a partir de maintenant
%Je cherche tous les EndNode de la forme 'A14.EA'
%for i_step1 = 1 : length(result.EndNode)
step2 = find(cellfun(@(data) strcmp(data,'A14.EA'),result.EndNode)==1);%regexp(result.EndNode,'A14.EA','match');
for i_step2 = 1 : length (step2)
if ~isempty(step2)
fprintf(fid_test,[result.StartNode{step2(i_step2)} char(9) result.StartCav{step2(i_step2)} char(9) result.EndNode{step2(i_step2)} char(9) result.EndCav{step2(i_step2)} char(10)]);
end
end
%end
% On enregistre le Dico généré
fid_test=fopen('DicoControl_Test.txt');
DicoControl_Test = textscan(fid_test,'%q %q %q %q','delimiter', '\t');
fclose(fid_test);
%On le convertit en struct pour pouvoir l'utiliser
fid_test = fopen('DicoControl_Test.txt');
b = {DicoControl_Test{1,1},DicoControl_Test{1,2},DicoControl_Test{1,3},DicoControl_Test{1,4}};
g ={DicoControl_Test{1,1}{1,1},DicoControl_Test{1,2}{1,1},DicoControl_Test{1,3}{1,1},DicoControl_Test{1,4}{1,1}};
result_test = cell2struct(b,g,2); %result_test est le DicoControl_Test convertit, c'est result qu'on utilisera a partir de maintenant
for i_research_sensor = 1 : length(s.Connection_1)
step3_Con1 =find(cellfun(@(data() regexp(data{1},'A[0-9]*'),s.Connection_1,'UniformOutput',false)==1);
fprintf(fid_save,[s.EMS{step3_Con1(i_step_Con1)} char(9) s.Name{step3_Con1(i_step_Con1)} char(9) s.Connection_1{step3_Con1(i_step_Con1)} char(9) s.Connection_2{step3_Con1(i_step_Con1)} char(9) s.Connection_3{step3_Con1(i_step_Con1)} char(9) s.Connection_4{step3_Con1(i_step_Con1)} char(10)]);
end
end |