function varargout = ReglasPresa(varargin)
% AUTORES:
%J. Rivas, D. Martín, M.C. García-Alegre
%Instituto de Automática Industrial (IAI)
%Consejo Superior de Investigaciones Científicas (CSIC)
%28500 Arganda. Madrid {jrivas, dmartin, maria@iai.csic.es}

% ReglasPresa M-file for ReglasPresa.fig
%      ReglasPresa, by itself, creates a new ReglasPresa or raises the existing
%      singleton*.
%
%      H = ReglasPresa returns the handle to a new ReglasPresa or the handle to
%      the existing singleton*.
%
%      ReglasPresa('CALLBACK',hObject,eventData,handles,...) calls the local
%      function named CALLBACK in ReglasPresa.M with the given input arguments.
%
%      ReglasPresa('Property','Value',...) creates a new ReglasPresa or raises the
%      existing singleton*.  Starting from the left, property value pairs are
%      applied to the GUI before ReglasPresa_OpeningFunction gets called.  An
%      unrecognized property name or invalid value makes property application
%      stop.  All inputs are passed to ReglasPresa_OpeningFcn via varargin.
%
%      *See GUI Options on GUIDE's Tools menu.  Choose "GUI allows only one
%      instance to run (singleton)".
%
% See also: GUIDE, GUIDATA, GUIHANDLES

% Copyright 2002-2003 The MathWorks, Inc.

% Edit the above text to modify the response to help ReglasPresa

% Last Modified by GUIDE v2.5 08-Mar-2010 11:39:31

% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name',       mfilename, ...
                   'gui_Singleton',  gui_Singleton, ...
                   'gui_OpeningFcn', @ReglasPresa_OpeningFcn, ...
                   'gui_OutputFcn',  @ReglasPresa_OutputFcn, ...
                   'gui_LayoutFcn',  [] , ...
                   'gui_Callback',   []);
if nargin && ischar(varargin{1})
    gui_State.gui_Callback = str2func(varargin{1});
end

if nargout
    [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
    gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT


% --- Executes just before ReglasPresa is made visible.
function ReglasPresa_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject    handle to figure
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
% varargin   command line arguments to ReglasPresa (see VARARGIN)

% se centra la pantalla
%FigPos(1:2)=[40 252]; 
%FigPos(3:4)=[1200 520];
%set(hObject, 'position', FigPos);

% Se muestra la imagen
handles.ImagenInicial=imread('Imagen2_1100_230.tif','tif');
axes(handles.axes1imagenInicial);
imshow(handles.ImagenInicial);

% Refresco grafica lluvia
lluvia = 0;
reset(handles.axes2); axes(handles.axes2);
x=[1 1];
y=[0 lluvia];
plot(handles.axes2,x,y,'LineWidth',60);
axis([0 2 0 100]);
set(handles.axes2,'XTickLabel',{'','',''});
hold on;

% Refresco grafica aforo
aforo = 0;
reset(handles.axes3); axes(handles.axes3);
x=[1 1];
y=[0 aforo];
plot(handles.axes3,x,y,'LineWidth',60);
axis([0 2 0 700]);
set(handles.axes3,'XTickLabel',{'','',''});
hold on;

% Refresco grafica cota
cota = 0;
reset(handles.axes4); axes(handles.axes4);
x=[1 1];
y=[0 cota];
plot(handles.axes4,x,y,'LineWidth',60);
axis([0 2 0 100]);
set(handles.axes4,'XTickLabel',{'','',''});
hold on;

% Choose default command line output for ReglasPresa
handles.output = hObject;

% Update handles structure
guidata(hObject, handles);

% UIWAIT makes ReglasPresa wait for user response (see UIRESUME)
% uiwait(handles.figReglas);


% --- Outputs from this function are returned to the command line.
function varargout = ReglasPresa_OutputFcn(hObject, eventdata, handles) 
% varargout  cell array for returning output args (see VARARGOUT);
% hObject    handle to figure
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Get default command line output from handles structure
varargout{1} = handles.output;

%%%%%%%%%%TEXTO REGLAS%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%TEXTO REGLAS%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

function edit2lluvia_Callback(hObject, eventdata, handles)
%set(handles.edit2lluvia,'String',''); %borra el texto inicial de ayuda 

% Refresco grafica lluvia
lluvia = str2num(get(handles.edit2lluvia,'String'));
reset(handles.axes2); axes(handles.axes2);
x=[1 1];
y=[0 lluvia];
plot(handles.axes2,x,y,'LineWidth',60);
axis([0 2 0 100]);
set(handles.axes2,'XTickLabel',{'','',''});
hold on;

function edit2lluvia_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end

set(hObject,'String','lluvia'); %inicialización
lluvia = 0;
lluvia_str=num2str(lluvia);
set(hObject,'String', lluvia_str);

%*********************************************************

function edit3aforo_Callback(hObject, eventdata, handles)
%set(handles.edit3aforo,'String',''); %borra el texto inicial de ayuda

% Refresco grafica aforo
aforo = str2num(get(handles.edit3aforo,'String'));
reset(handles.axes3); axes(handles.axes3);
x=[1 1];
y=[0 aforo];
plot(handles.axes3,x,y,'LineWidth',60);
axis([0 2 0 700]);
set(handles.axes3,'XTickLabel',{'','',''});
hold on;

function edit3aforo_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end

set(hObject,'String','aforo'); %inicialización
aforo = 0;
aforo_str=num2str(aforo);
set(hObject,'String', aforo_str);

%*********************************************************

function edit4cota_Callback(hObject, eventdata, handles)
%set(handles.edit4cota,'String',''); %borra el texto inicial de ayuda 

% Refresco grafica cota
cota = str2num(get(handles.edit4cota,'String'));
reset(handles.axes4); axes(handles.axes4);
x=[1 1];
y=[0 cota];
plot(handles.axes4,x,y,'LineWidth',60);
axis([0 2 0 100]);
set(handles.axes4,'XTickLabel',{'','',''});
hold on;

function edit4cota_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end

set(hObject,'String','cota'); %inicialización
cota = 0;
cota_str=num2str(cota);
set(hObject,'String', cota_str);

%*********************************************************

%%%%%%%%%%TEXTO REGLAS%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%TEXTO REGLAS%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%BOTONES_AÑADIR_REGLAS%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%BOTONES_AÑADIR_REGLAS%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

function pushbutton3comenzar_Callback(hObject, eventdata, handles)

% variables iniciales
lluvia = str2num(get(handles.edit2lluvia,'String'));
aforo = str2num(get(handles.edit3aforo,'String'));
cota = str2num(get(handles.edit4cota,'String'));

% variables para calculo de etiquetas
ll=[]; %lluvia
a=[]; %aforo
c=[]; %cota
ListaVisualizacionReglas=[];
ListaVisualizacionResultadoRiesgo=[];
ListaVisualizacionResultadoPuertas=[];
Resultado=[];

% variables para MotorLLuvia
grupo1 = false;
grupo2 = false;
grupo3 = false;
grupo12 = false;
grupo13 = false;
grupo21 = false;
grupo22 = false;
grupo23 = false;
grupo31 = false;
grupo32 = false;
grupo33 = false;
grupo123 = false;
grupo132 = false;
grupo222 = false;

% TBaseReglasLLuvia

R1 = 'R1: SI lluvia es No ENTONCES activa grupoLLuviaNo';
R2 = 'R2: SI LLuvia es Media ENTONCES activa grupoLLuviaMedia';
R3 = 'R3: SI LLuvia es Alta ENTONCES activa grupoLLuviaAlta';
%------------------- grupo 1------------------------------------------------
R4 = 'R4: SI Aforo es Poco ENTONCES Estado es RiesgoNo y Accion es Compuertas CERRADAS';
R5 = 'R5: SI Aforo es Medio ENTONCES activa grupoLLuviaNoAforoMedio';
R6 = 'R6: SI Aforo es Mucho ENTONCES activa grupoLLuviaNoAforoMucho';
%------------------- grupo 2------------------------------------------------
R7 = 'R7: SI Aforo es poco ENTONCES activa grupoLLuviaMediaAforoPoco';
R8 = 'R8: SI Aforo es medio ENTONCES activa grupoLLuviaMediaAforoMedio';
R9 = 'R9: SI Aforo es mucho ENTONCES activa grupoLLuviaMediaAforoMucho';
%------------------- grupo 3------------------------------------------------
R10 = 'R10: SI Aforo es poco ENTONCES activa grupoLLuviaAltaAforoPoco';
R11 = 'R11: SI Aforo es medio ENTONCES activa grupoLLuviaAltaAforoMedio';
R12 = 'R12: SI Aforo es mucho ENTONCES activa grupoLLuviaAltaAforoMucho';
%------------------- grupo 12------------------------------------------------
R13 = 'R13: SI Cota es Baja ENTONCES Estado es RiesgoNo y Accion es Compuertas CERRADAS';
R14 = 'R14: SI Cota es Media ENTONCES Estado es RiesgoNo y Accion es Compuertas CERRADAS';
R15 = 'R15: SI Cota es Alta ENTONCES Estado es RiesgoBajo y Accion es Compuertas CERRADAS';
%------------------- grupo 13------------------------------------------------
R16 = 'R16: SI Cota es Baja ENTONCES Estado es RiesgoNo y Acción es Compuertas CERRADAS';
R17 = 'R17: SI Cota es Media ENTONCES ENTONCES Estado es RiesgoBajo y Acción es Compuertas CERRADAS';
R18 = 'R18: SI Cota es Alta ENTONCES Estado es RiesgoMedio y Acción es Compuertas ABIERTAS';
%------------------- grupo 21------------------------------------------------
R19 = 'R19: SI Cota es Baja ENTONCES Estado es RiesgoNo y Acción es Compuertas CERRADAS';
R20 = 'R20: SI Cota es Media ENTONCES Estado es RiesgoNo y Acción es Compuertas CERRADAS';
R21 = 'R21: SI Cota es Alta ENTONCES Estado es RiesgoBajo y Acción es Compuertas CERRADAS';
%------------------- grupo 22------------------------------------------------
R22 = 'R22: SI Cota es Baja ENTONCES Estado es RiesgoNo y Acción es Compuertas CERRADAS';
R23 = 'R23: SI Cota es Media ENTONCES Estado es RiesgoBajo y Acción es Compuertas CERRADAS';
R24 = 'R24: SI Cota es Alta ENTONCES Estado es RiesgoBajo y Acción es Compuertas CERRADAS';
%------------------- grupo 23------------------------------------------------
R25 = 'R25: SI Cota es Baja ENTONCES Estado es RiesgoNo y Acción es Compuertas CERRADAS';
R26 = 'R26: SI Cota es Media ENTONCES Estado es RiesgoMedio y Acción es Compuertas CERRADAS';
R27 = 'R27: SI Cota es Alta ENTONCES Estado es RiesgoMedio y Acción es Compuertas ABIERTAS';
%------------------- grupo 31------------------------------------------------
R28 = 'R28: SI Cota es Baja ENTONCES Estado RiesgoNo y Acción es Compuertas CERRADAS';
R29 = 'R29: SI Cota es Media ENTONCES Estado RiesgoNo y Acción es Compuertas CERRADAS';
R30 = 'R30: SI Cota es Alta ENTONCES Estado RiesgoNo y Acción es Compuertas CERRADAS';
%------------------- grupo 32------------------------------------------------
R31 = 'R31: SI Cota es Baja ENTONCES Estado RiesgoNo y Acción es Compuertas CERRADAS';
R32 = 'R32: SI Cota es Media ENTONCES Estado es RiesgoBajo y Acción es Compuertas CERRADAS';
R33 = 'R33: SI Cota es Alta ENTONCES Estado es RiesgoMedio y Acción es Compuertas ABIERTAS';
%------------------- grupo 33------------------------------------------------
R34 = 'R34: SI Cota es Baja ENTONCES Estado es RiesgoBajo y Acción es Compuertas CERRADAS';
R35 = 'R35: SI Cota es Media ENTONCES Estado es RiesgoMedio y Acción es Compuertas ABIERTAS';
R36 = 'R36: SI Cota es Alta ENTONCES Estado es RiesgoAlto y Acción es Compuertas ABIERTAS';

% Variables resultado

Puertas0 = 'Compuertas cerradas';
Puertas1 = 'Abrir compuertas';

Riesgo0 = 'No hay riesgo';
Riesgo1 = 'Alerta Riesgo: nivel bajo';
Riesgo2 = 'Alerta Riesgo: nivel medio';
Riesgo3 = 'Alerta Riesgo: nivel alto';

% Calculo de etiquetas a partir de la funciones de pertenencia --> lluvia
mfparams = [0 0 6 15];
mftype = 'trapmf';
funcionBajoLL=evalmf(lluvia,mfparams,mftype);
mfparams = [10 17 26 30];
mftype = 'trapmf';
funcionMediaLL=evalmf(lluvia,mfparams,mftype);
mfparams = [25 37 100 100];
mftype = 'trapmf';
funcionAltaLL=evalmf(lluvia,mfparams,mftype);
varLLuvia = [funcionBajoLL funcionMediaLL funcionAltaLL];
[varLLuvia_max, varLLuvia_index] = max(varLLuvia); % maximo funcion pertenencia
if (varLLuvia_index==1) ll='No';
elseif (varLLuvia_index==2) ll='media';
else ll='alta';
end; 

% Calculo de etiquetas a partir de la funciones de pertenencia --> aforo
mfparams = [0 0 190 260];
mftype = 'trapmf';
funcionBajoC=evalmf(aforo,mfparams,mftype);
mfparams = [250 255 260 265];
mftype = 'trapmf';
funcionMediaC=evalmf(aforo,mfparams,mftype);
mfparams = [240 280 700 700];
mftype = 'trapmf';
funcionAltaC=evalmf(aforo,mfparams,mftype);
varAforo = [funcionBajoC funcionMediaC funcionAltaC];
[varAforo_max, varAforo_index] = max(varAforo); % maximo funcion pertenencia
if (varAforo_index==1) a='bajo';
elseif (varAforo_index==2) a='medio';
else a='alto';
end;

% Calculo de etiquetas a partir de la funciones de pertenencia -->
% cota
mfparams = [0 0 3 5];
mftype = 'trapmf';
funcionBajoR=evalmf(cota,mfparams,mftype);
mfparams = [3 6 7 9];
mftype = 'trapmf';
funcionMediaR=evalmf(cota,mfparams,mftype);
mfparams = [8 10 100 100];
mftype = 'trapmf';
funcionAltaR=evalmf(cota,mfparams,mftype);
varCota = [funcionBajoR funcionMediaR funcionAltaR];
[varCota_max, varCota_index] = max(varCota); % maximo funcion pertenencia
if (varCota_index==1) c='baja';
elseif (varCota_index==2) c='media';
else c='alta';
end; 

%------------------------------------------
if (strcmp(ll,'No'))
    grupo1 = true; %R1
    ListaVisualizacionReglas=strvcat(ListaVisualizacionReglas,R1,' ');
elseif (strcmp(ll,'media'))
    grupo2 = true; %R2
    ListaVisualizacionReglas=strvcat(ListaVisualizacionReglas,R2,' ');
elseif (strcmp(ll,'alta'))
    grupo3 = true; %R3
    ListaVisualizacionReglas=strvcat(ListaVisualizacionReglas,R3,' ');
end
%------------------------------------------
if (grupo1)
    if (strcmp(a,'bajo'))
            ListaVisualizacionResultadoRiesgo=strvcat(ListaVisualizacionResultadoRiesgo,Riesgo0,' ');
            ListaVisualizacionResultadoPuertas=strvcat(ListaVisualizacionResultadoPuertas,Puertas0,' ');
            ListaVisualizacionReglas=strvcat(ListaVisualizacionReglas,R4,' ');
    elseif (strcmp(a,'medio'))
            grupo12 = true;
            ListaVisualizacionReglas=strvcat(ListaVisualizacionReglas,R5,' ');
    elseif (strcmp(a,'alto'))
            grupo13 = true;
            ListaVisualizacionReglas=strvcat(ListaVisualizacionReglas,R6,' ');
    end
elseif (grupo2)
    if (strcmp(a,'bajo'))
            grupo21 = true;
            ListaVisualizacionReglas=strvcat(ListaVisualizacionReglas,R7,' ');
    elseif (strcmp(a,'medio'))
            grupo22 = true;
            ListaVisualizacionReglas=strvcat(ListaVisualizacionReglas,R8,' ');
    elseif (strcmp(a,'alto'))
            grupo23 = true;
            ListaVisualizacionReglas=strvcat(ListaVisualizacionReglas,R9,' ');
    end
elseif (grupo3) 
    if (strcmp(a,'bajo'))
            grupo31 = true;
            ListaVisualizacionReglas=strvcat(ListaVisualizacionReglas,R10,' ');
    elseif (strcmp(a,'medio'))
            grupo32 = true;
            ListaVisualizacionReglas=strvcat(ListaVisualizacionReglas,R11,' ');
    elseif (strcmp(a,'alto'))
            grupo33 = true;
            ListaVisualizacionReglas=strvcat(ListaVisualizacionReglas,R12,' ');
    end
end
%----------------------------------------------------------

if (grupo12)
    if (strcmp(c,'baja'))
            ListaVisualizacionResultadoRiesgo=strvcat(ListaVisualizacionResultadoRiesgo,Riesgo0,' ');
            ListaVisualizacionResultadoPuertas=strvcat(ListaVisualizacionResultadoPuertas,Puertas0,' ');        
            ListaVisualizacionReglas=strvcat(ListaVisualizacionReglas,R13,' ');
    elseif (strcmp(c,'media'))
            ListaVisualizacionResultadoRiesgo=strvcat(ListaVisualizacionResultadoRiesgo,Riesgo0,' ');
            ListaVisualizacionResultadoPuertas=strvcat(ListaVisualizacionResultadoPuertas,Puertas0,' ');        
            ListaVisualizacionReglas=strvcat(ListaVisualizacionReglas,R14,' ');
    elseif (strcmp(c,'alta'))
            ListaVisualizacionResultadoRiesgo=strvcat(ListaVisualizacionResultadoRiesgo,Riesgo1,' ');
            ListaVisualizacionResultadoPuertas=strvcat(ListaVisualizacionResultadoPuertas,Puertas0,' ');        
            ListaVisualizacionReglas=strvcat(ListaVisualizacionReglas,R15,' ');
    end
elseif (grupo13)
    if (strcmp(c,'baja'))
            ListaVisualizacionResultadoRiesgo=strvcat(ListaVisualizacionResultadoRiesgo,Riesgo0,' ');
            ListaVisualizacionResultadoPuertas=strvcat(ListaVisualizacionResultadoPuertas,Puertas0,' ');        
            ListaVisualizacionReglas=strvcat(ListaVisualizacionReglas,R16,' ');
    elseif (strcmp(c,'media'))
            ListaVisualizacionResultadoRiesgo=strvcat(ListaVisualizacionResultadoRiesgo,Riesgo1,' ');
            ListaVisualizacionResultadoPuertas=strvcat(ListaVisualizacionResultadoPuertas,Puertas0,' ');        
            ListaVisualizacionReglas=strvcat(ListaVisualizacionReglas,R17,' ');
    elseif (strcmp(c,'alta'))
            ListaVisualizacionResultadoRiesgo=strvcat(ListaVisualizacionResultadoRiesgo,Riesgo1,' ');
            ListaVisualizacionResultadoPuertas=strvcat(ListaVisualizacionResultadoPuertas,Puertas0,' ');        
            ListaVisualizacionReglas=strvcat(ListaVisualizacionReglas,R18,' ');
    end
elseif (grupo21)
    if (strcmp(c,'baja'))
            ListaVisualizacionResultadoRiesgo=strvcat(ListaVisualizacionResultadoRiesgo,Riesgo0,' ');
            ListaVisualizacionResultadoPuertas=strvcat(ListaVisualizacionResultadoPuertas,Puertas0,' ');        
            ListaVisualizacionReglas=strvcat(ListaVisualizacionReglas,R19,' ');
    elseif (strcmp(c,'media'))
            ListaVisualizacionResultadoRiesgo=strvcat(ListaVisualizacionResultadoRiesgo,Riesgo0,' ');
            ListaVisualizacionResultadoPuertas=strvcat(ListaVisualizacionResultadoPuertas,Puertas0,' ');        
            ListaVisualizacionReglas=strvcat(ListaVisualizacionReglas,R20,' ');
    elseif (strcmp(c,'alta'))
            ListaVisualizacionResultadoRiesgo=strvcat(ListaVisualizacionResultadoRiesgo,Riesgo1,' ');
            ListaVisualizacionResultadoPuertas=strvcat(ListaVisualizacionResultadoPuertas,Puertas0,' ');        
            ListaVisualizacionReglas=strvcat(ListaVisualizacionReglas,R21,' ');
    end
elseif (grupo22)
    if (strcmp(c,'baja'))
            ListaVisualizacionResultadoRiesgo=strvcat(ListaVisualizacionResultadoRiesgo,Riesgo0,' ');
            ListaVisualizacionResultadoPuertas=strvcat(ListaVisualizacionResultadoPuertas,Puertas0,' ');        
            ListaVisualizacionReglas=strvcat(ListaVisualizacionReglas,R22,' ');
    elseif (strcmp(c,'media'))
            ListaVisualizacionResultadoRiesgo=strvcat(ListaVisualizacionResultadoRiesgo,Riesgo1),' ';
            ListaVisualizacionResultadoPuertas=strvcat(ListaVisualizacionResultadoPuertas,Puertas0,' ');        
            ListaVisualizacionReglas=strvcat(ListaVisualizacionReglas,R23,' ');
    elseif (strcmp(c,'alta'))
            ListaVisualizacionResultadoRiesgo=strvcat(ListaVisualizacionResultadoRiesgo,Riesgo1,' ');
            ListaVisualizacionResultadoPuertas=strvcat(ListaVisualizacionResultadoPuertas,Puertas0,' ');        
            ListaVisualizacionReglas=strvcat(ListaVisualizacionReglas,R24,' ');
    end
elseif (grupo23)
    if (strcmp(c,'baja'))
            ListaVisualizacionResultadoRiesgo=strvcat(ListaVisualizacionResultadoRiesgo,Riesgo0,' ');
            ListaVisualizacionResultadoPuertas=strvcat(ListaVisualizacionResultadoPuertas,Puertas0,' ');        
            ListaVisualizacionReglas=strvcat(ListaVisualizacionReglas,R25,' ');
    elseif (strcmp(c,'media'))
            ListaVisualizacionResultadoRiesgo=strvcat(ListaVisualizacionResultadoRiesgo,Riesgo1,' ');
            ListaVisualizacionResultadoPuertas=strvcat(ListaVisualizacionResultadoPuertas,Puertas0,' ');        
            ListaVisualizacionReglas=strvcat(ListaVisualizacionReglas,R26,' ');
    elseif (strcmp(c,'alta'))
            ListaVisualizacionResultadoRiesgo=strvcat(ListaVisualizacionResultadoRiesgo,Riesgo2,' ');
            ListaVisualizacionResultadoPuertas=strvcat(ListaVisualizacionResultadoPuertas,Puertas1,' ');        
            ListaVisualizacionReglas=strvcat(ListaVisualizacionReglas,R27,' ');
    end
elseif (grupo31)
    if (strcmp(c,'baja'))
            ListaVisualizacionResultadoRiesgo=strvcat(ListaVisualizacionResultadoRiesgo,Riesgo0,' ');
            ListaVisualizacionResultadoPuertas=strvcat(ListaVisualizacionResultadoPuertas,Puertas0,' ');        
            ListaVisualizacionReglas=strvcat(ListaVisualizacionReglas,R28,' ');
    elseif (strcmp(c,'media'))
            ListaVisualizacionResultadoRiesgo=strvcat(ListaVisualizacionResultadoRiesgo,Riesgo0,' ');
            ListaVisualizacionResultadoPuertas=strvcat(ListaVisualizacionResultadoPuertas,Puertas0,' ');        
            ListaVisualizacionReglas=strvcat(ListaVisualizacionReglas,R29,' ');
    elseif (strcmp(c,'alta'))
            ListaVisualizacionResultadoRiesgo=strvcat(ListaVisualizacionResultadoRiesgo,Riesgo1,' ');
            ListaVisualizacionResultadoPuertas=strvcat(ListaVisualizacionResultadoPuertas,Puertas0,' ');        
            ListaVisualizacionReglas=strvcat(ListaVisualizacionReglas,R30,' ');
    end
elseif (grupo32)
    if (strcmp(c,'baja'))
            ListaVisualizacionResultadoRiesgo=strvcat(ListaVisualizacionResultadoRiesgo,Riesgo0,' ');
            ListaVisualizacionResultadoPuertas=strvcat(ListaVisualizacionResultadoPuertas,Puertas0,' ');        
            ListaVisualizacionReglas=strvcat(ListaVisualizacionReglas,R31,' ');
    elseif (strcmp(c,'media'))
            ListaVisualizacionResultadoRiesgo=strvcat(ListaVisualizacionResultadoRiesgo,Riesgo1,' ');
            ListaVisualizacionResultadoPuertas=strvcat(ListaVisualizacionResultadoPuertas,Puertas0,' ');        
            ListaVisualizacionReglas=strvcat(ListaVisualizacionReglas,R32,' ');
    elseif (strcmp(c,'alta'))
            ListaVisualizacionResultadoRiesgo=strvcat(ListaVisualizacionResultadoRiesgo,Riesgo2,' ');
            ListaVisualizacionResultadoPuertas=strvcat(ListaVisualizacionResultadoPuertas,Puertas1,' ');        
            ListaVisualizacionReglas=strvcat(ListaVisualizacionReglas,R33,' ');
    end
elseif (grupo33)
    if (strcmp(c,'baja'))
            ListaVisualizacionResultadoRiesgo=strvcat(ListaVisualizacionResultadoRiesgo,Riesgo1,' ');
            ListaVisualizacionResultadoPuertas=strvcat(ListaVisualizacionResultadoPuertas,Puertas0,' ');        
            ListaVisualizacionReglas=strvcat(ListaVisualizacionReglas,R34,' ');
    elseif (strcmp(c,'media'))
            ListaVisualizacionResultadoRiesgo=strvcat(ListaVisualizacionResultadoRiesgo,Riesgo2,' ');
            ListaVisualizacionResultadoPuertas=strvcat(ListaVisualizacionResultadoPuertas,Puertas1,' ');        
            ListaVisualizacionReglas=strvcat(ListaVisualizacionReglas,R35,' ');
    elseif (strcmp(c,'alta'))
            ListaVisualizacionResultadoRiesgo=strvcat(ListaVisualizacionResultadoRiesgo,Riesgo3,' ');
            ListaVisualizacionResultadoPuertas=strvcat(ListaVisualizacionResultadoPuertas,Puertas1,' ');        
            ListaVisualizacionReglas=strvcat(ListaVisualizacionReglas,R36,' ');
    end
end

% Visualizacion de reglas
set(handles.ListaReglas,'String',ListaVisualizacionReglas); % Visualizacion Reglas

% Visualizacion de resultado Riesgo y Puertas
Resultado=strvcat(ListaVisualizacionResultadoRiesgo,ListaVisualizacionResultadoPuertas);
set(handles.listboxResultado,'String',Resultado); % Visualizacion Riesgo
%set(handles.listboxResultado,'String',ListaVisualizacionResultadoPuertas); % Visualizacion Puertas

%*************************************************************************
% --- Executes on selection change in ListaReglas.
function ListaReglas_Callback(hObject, eventdata, handles)
% hObject    handle to ListaReglas (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Hints: contents = get(hObject,'String') returns ListaReglas contents as cell array
%        contentsget(hObject,'Value') returns selected item from ListaReglas


% --- Executes during object creation, after setting all properties.
function ListaReglas_CreateFcn(hObject, eventdata, handles)
% hObject    handle to ListaReglas (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    empty - handles not created until after all CreateFcns called

% Hint: listbox controls usually have a white background on Windows.
%       See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end
%*************************************************************************

% --- Executes on selection change in listboxResultado.
function listboxResultado_Callback(hObject, eventdata, handles)
% hObject    handle to listboxResultado (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Hints: contents = get(hObject,'String') returns listboxResultado contents as cell array
%        contents{get(hObject,'Value')} returns selected item from listboxResultado


% --- Executes during object creation, after setting all properties.
function listboxResultado_CreateFcn(hObject, eventdata, handles)
% hObject    handle to listboxResultado (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    empty - handles not created until after all CreateFcns called

% Hint: listbox controls usually have a white background on Windows.
%       See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end




% --- Executes when figReglas is resized.
function figReglas_ResizeFcn(hObject, eventdata, handles)
% hObject    handle to figReglas (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)




% --- Executes on button press in pushbutton11_Salir.
function pushbutton11_Salir_Callback(hObject, eventdata, handles)
% hObject    handle to pushbutton11_Salir (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)


% Update handles structure
guidata(hObject, handles);
% The figure can be deleted now
delete(handles.figReglas);




























