en otra ventana

Anuncio
Apéndice A
Llamadas de función “Callbacks”
En base a la explicación proporcionada en el capítulo 7 de cómo fueron
desarrolladas las funciones en memoria, así como la elaboración de los archivos M de
función (nombrec.m) que contienen las llamadas de función. Se complementa con el
contenido del presente que se enfoca a mostrar los CALLBACKS escritos
independientemente tal cual se hubieran tenido que programar a los objetos uno a uno, esto
en caso de no haber elegido la opción de crear los archivos de función.
Se añadieron al apéndice estas llamadas de función en específico con el propósito de
ilustrar la idea, y por la importancia que tiene en el presente trabajo el menú principal (4
elementos). También como ejemplo se presentan los CALLBACKS pertenecientes a los
botones que ejecutan las acciones de la GUI1_1 (impulso unitario y escalón unitario). Es
muy importante dejar en claro que para cada GUI, sea MENU, GUI1_1 o cualquier otra de
las GUIs restantes, los CALLBACKS se implementaron juntos en un solo archivo de
función (ver sintaxis en capítulo 7) y no por separado como se ilustra con propósito de
comprensión en este apéndice. Obviamente la sintaxis de cada archivo de función tiene un
patrón muy parecido pero no por ello los comandos se repiten, ningún archivo de función es
idéntico. Si se tiene interés en revisar el contenido de los archivos de llamadas de función
pertenecientes a cada GUI, es posible, abriendo en el editor de texto el archivo nombrec.m
(siendo “nombre”, el archivo en cuestión. Ej. GUI3_5, de acuerdo a la descripción del
capítulo 8). Al efectuar esta revisión se debe tener el cuidado pertinente para no realizar
ningún cambio a la sintaxis, porque ello afectaría de manera irreversible el funcionamiento
de la GUI modificada.
Universidad de las Américas – Puebla
84
Apéndice A
Llamadas de función “Callbacks”
Botón de aparición (pop up button) del MENU [1] (Visualización de capítulos)
cero={'SELECT CHAPTER','','','','','','','',''};
uno={'GUI 1','GUI 2','GUI 3','GUI 4','GUI 5','GUI 6','GUI 7','',''};
dos={'GUI 1','GUI 2','GUI 3','GUI 4','GUI 5','GUI 6','GUI 7','GUI 8','GUI
9'};
tres={'GUI 1','GUI 2','GUI 3','GUI 4','GUI 5','GUI 6','GUI 7','GUI
8','GUI 11'};
cuatro={'GUI 1','GUI 2','GUI 3','','','','','',''};
cinco={'GUI 1','GUI 2','GUI 3','GUI 4','GUI 5','','','',''};
seis={'NO AVAILABLE OPTIONS','','','','','','','',''};
siete={'GUI 1','','','','','','','',''};
ocho={'GUI 3','GUI 5','GUI 6','','','','','',''};
nueve={'GUI 1','GUI 2','GUI 3','GUI 5','GUI 6','','','',''};
diez={'GUI 1','GUI 2','GUI 3','GUI 4','GUI 5','GUI 6','GUI 7','GUI
8','GUI 9'};
condi=get(gco,'Value');
if condi==1
edita=findobj(gcbf,'Tag','programas');
set(edita,'String',cero);
elseif condi==2
edita=findobj(gcbf,'Tag','programas');
set(edita,'String',uno);
elseif condi==3
edita=findobj(gcbf,'Tag','programas');
set(edita,'String',dos);
elseif condi==4
edita=findobj(gcbf,'Tag','programas');
set(edita,'String',tres);
elseif condi==5
edita=findobj(gcbf,'Tag','programas');
set(edita,'String',cuatro);
elseif condi==6
edita=findobj(gcbf,'Tag','programas');
set(edita,'String',cinco);
elseif condi==7
edita=findobj(gcbf,'Tag','programas');
set(edita,'String',seis);
elseif condi==8
edita=findobj(gcbf,'Tag','programas');
set(edita,'String',siete);
elseif condi==9
edita=findobj(gcbf,'Tag','programas');
set(edita,'String',ocho);
elseif condi==10
edita=findobj(gcbf,'Tag','programas');
set(edita,'String',nueve);
Universidad de las Américas – Puebla
85
Apéndice A
Llamadas de función “Callbacks”
elseif condi==11
edita=findobj(gcbf,'Tag','programas');
set(edita,'String',diez);
end
Caja de lista del MENÚ [2] (Despliegue de programas disponibles de acuerdo al
capítulo seleccionado).
if condi==2
edic=get(gco,'Value');
if edic==1
GUI1_1
close(gcbf)
elseif edic==2
GUI1_2
close(gcbf)
elseif edic==3
GUI1_3
close(gcbf)
elseif edic==4
GUI1_4
close(gcbf)
elseif edic==5
GUI1_5
close(gcbf)
elseif edic==6
GUI1_6
close(gcbf)
elseif edic==7
GUI1_7
close(gcbf)
end
elseif condi==3
edic=get(gco,'Value');
if edic==1
GUI2_1
close(gcbf)
elseif edic==2
GUI2_2
close(gcbf)
elseif edic==3
GUI2_3
close(gcbf)
elseif edic==4
GUI2_4
close(gcbf)
elseif edic==5
Universidad de las Américas – Puebla
GUI2_5
close(gcbf)
elseif edic==6
GUI2_6
close(gcbf)
elseif edic==7
GUI2_7
close(gcbf)
elseif edic==8
GUI2_8
close(gcbf)
elseif edic==9
GUI2_9
close(gcbf)
end
elseif condi==4
edic=get(gco,'Value');
if edic==1
GUI3_1
close(gcbf)
elseif edic==2
GUI3_2
close(gcbf)
elseif edic==3
GUI3_3
close(gcbf)
elseif edic==4
GUI3_4
close(gcbf)
elseif edic==5
GUI3_5
close(gcbf)
elseif edic==6
GUI3_6
close(gcbf)
elseif edic==7
GUI3_7
close(gcbf)
elseif edic==8
86
Apéndice A
GUI3_8
close(gcbf)
elseif edic==9
GUI3_11
close(gcbf)
end
elseif condi==5
edic=get(gco,'Value');
if edic==1
GUI4_1
close(gcbf)
elseif edic==2
GUI4_2
close(gcbf)
elseif edic==3
GUI4_3
close(gcbf)
end
elseif condi==6
edic=get(gco,'Value');
if edic==1
GUI5_1
close(gcbf)
elseif edic==2
GUI5_2
close(gcbf)
elseif edic==3
GUI5_3
close(gcbf)
elseif edic==4
GUI5_4
close(gcbf)
elseif edic==5
GUI5_5
close(gcbf)
end
elseif condi==8
edic=get(gco,'Value');
if edic==1
GUI7_1
close(gcbf)
end
elseif condi==9
edic=get(gco,'Value');
if edic==1
GUI8_3
close(gcbf)
elseif edic==2
GUI8_5
close(gcbf)
elseif edic==3
GUI8_6
Universidad de las Américas – Puebla
Llamadas de función “Callbacks”
close(gcbf)
end
elseif condi==10
edic=get(gco,'Value');
if edic==1
GUI9_1
close(gcbf)
elseif edic==2
GUI9_2
close(gcbf)
elseif edic==3
GUI9_3
close(gcbf)
elseif edic==4
GUI9_5
close(gcbf)
elseif edic==5
GUI9_6
close(gcbf)
end
elseif condi==11
edic=get(gco,'Value');
if edic==1
GUI10_1
close(gcbf)
elseif edic==2
GUI10_2
close(gcbf)
elseif edic==3
GUI10_3
close(gcbf)
elseif edic==4
GUI10_4
close(gcbf)
elseif edic==5
GUI10_5
close(gcbf)
elseif edic==6
GUI10_6
close(gcbf)
elseif edic==7
GUI10_7
close(gcbf)
elseif edic==8
GUI10_8
close(gcbf)
elseif edic==9
GUI10_9
close(gcbf)
end
end
87
Apéndice A
Llamadas de función “Callbacks”
Esta última llamada de función, perteneciente a un objeto del menú, cuenta con gran
cantidad de expresiones, que no son complicadas pero la hacen muy larga. Para optimizar
espacio de impresión, se colocaron los códigos en dos columnas teniendo continuidad por
página, es decir al concluir la página la primera fila continúa su secuencia en la segunda
línea de la misma página que terminando, continúa en la primera columna de la siguiente
página.
Botón información de MENU [3] .
informa={‘Information String’};
helpwin(informa,‘MENU’)
Botón cerrar ventana de MENU [4].
close (gcbf)
Universidad de las Américas – Puebla
88
Apéndice A
Llamadas de función “Callbacks”
GUI1_1 Botón que ejecuta el impulso unitario
cla;
edita=findobj(gcbf,'Tag','EditText1');
m=get(edita,'String');
m=eval(m);
des={
'',
' >> % Program P1_1-a',
' >> % Generation of a Unit Sample Sequence',
' >> clf;',
' >> % Generate a vector from -10 to 20',
' >> n = -10:20;',
' >> % Generate the unit sample sequence',
' >> u = [zeros(1,10) 1 zeros(1,20];',
' >> % Plot the unit sample sequence',
' >> stem(n,u);',
' >> xlabel(''Time index n'');ylabel(''Amplitude'');',
' >> title(''Unit Sample Sequence'');',
' >> axis([-10 20 0 1.2]);'};
edita=findobj(gcbf,'Tag','Programa');
set(edita,'String',des);
n = -10:20;
u = [zeros(1,(m+10)) 1 zeros(1,(20-m))];
stem(n,u);
xlabel('Time index n');ylabel('Amplitude');
title('Unit Sample Sequence');
axis([-10 20 0 1.2]);
aex4=get(gca,'Xlabel');
aex3=get(gca,'Ylabel');
aex2=get(gca,'Zlabel');
aex1=get(gca,'Title');
set(aex4,'Color',[ 0.9843137254901 0.9803921568627 0.8431372549019
set(aex3,'Color',[ 0.9843137254901 0.9803921568627 0.8431372549019
set(aex2,'Color',[ 0.9843137254901 0.9803921568627 0.8431372549019
set(aex1,'Color',[ 0.9843137254901 0.9803921568627 0.8431372549019
set(gca, 'Color',[ 0.9843137254901 0.9803921568627 0.8431372549019
Universidad de las Américas – Puebla
89
]);
]);
]);
]);
]);
Apéndice A
Llamadas de función “Callbacks”
GUI1_1 Botón que ejecuta el escalón unitario
cla;
edita=findobj(gcbf,'Tag','EditText1');
m=get(edita,'String');
m=eval(m);
des={
'',
' >> % Program P1_1-b',
' >> % Generation of a Unit Step Sequence',
' >> clf;',
' >> % Generate a vector from -10 to 20',
' >> n = -10:20;',
' >> % Generate the unit step sequence',
' >> s = [zeros(1,10) ones(1,21)];',
' >> % Plot the unit step sequence',
' >> stem(n,s);',
' >> xlabel(''Time index n'');ylabel(''Amplitude'');',
' >> title(''Unit Step Sequence'');',
' >> axis([-10 20 0 1.2]);'};
edita=findobj(gcbf,'Tag','Programa');
set(edita,'String',des);
n = -10:20;
s = [zeros(1,(m+10)) ones(1,(21-m))];
stem(n,s);
xlabel('Time index n');ylabel('Amplitude');
title('Unit Step Sequence');
axis([-10 20 0 1.2]);
aex4=get(gca,'Xlabel');
aex3=get(gca,'Ylabel');
aex2=get(gca,'Zlabel');
aex1=get(gca,'Title');
set(aex4,'Color',[ 0.9843137254901 0.9803921568627 0.8431372549019
set(aex3,'Color',[ 0.9843137254901 0.9803921568627 0.8431372549019
set(aex2,'Color',[ 0.9843137254901 0.9803921568627 0.8431372549019
set(aex1,'Color',[ 0.9843137254901 0.9803921568627 0.8431372549019
set(gca, 'Color',[ 0.9843137254901 0.9803921568627 0.8431372549019
]);
]);
]);
]);
]);
NOTA: Cuando las líneas de comando de las funciones expresadas en este apéndice son
muy largas se puede notar que se desbordan al siguiente renglón. En MATLAB se deben
escribir seguidas y sin el salto de renglón que parece estar indicado.
Universidad de las Américas – Puebla
90
Descargar