%------------------------------------------------------------------------
%| creaGuiTX
%------------------------------------------------------------------------
%| Script que genera todos los controles de los parmetros del TX
%------------------------------------------------------------------------
%| Autor: Cesar Delgado
%| Fecha: 19-Abril-2.004
%------------------------------------------------------------------------
% 1.- Creacin de Editables
%##################################
% 1.1.- Posiciones y Titulos
%-------------------------------------
% Left , Bottom , Width, Height
pos = [0.6860, 0.83, 0.35, 0.035]; % Posicin del control + izqdo.
titulos = {'GENERAL:', 'P_Tx', 'S/N ';
'MOD.I-Q:', 'f','Dw';
'COS ALZ:', 'a',' ';
'CRC :', 'Tramo', 'Code';
'ENTREL.:', 'Filas', 'Col.';};
uds = {'dBm', 'dB'; '', '%';' ', ' '; ' ', ' '; ' ', ' ';};
tamTexto = [0.07, 0.03; 0.35, 0.03;];% Anchura, Altura
tamPop = [0.105, 0.02;];
grosorFuente = {'bold', 'normal'};
anguloFuente ={'italic', 'normal'};
tipoFuente ={'Arial Black', 'Arial', 'Symbol'};
colorFuente = [0.5020,0,0; 0,0,0]; % Granate ; Negro
tamFuente = [8 11];
tamEdit = [0.04, 0.035; 0.04, 0.035];
fq = [IQ(pPOT) , IQ(pS_N); ...
IQ(pFASE) , IQ(pDESV); ...
IQ(pROLLOFF), 0;...
CRC(pTRAMO) , CRC(pCODE);...
Entrelazado(pFILA), Entrelazado(pCOL); ];
metodos = ' Hamming | Cclicos | Red Solomon | Binario BCH ';
% 1.1.- Generacin de Editables
%----------------------------------------
%%%%%%%%%%%%%%% 1.1.- Construimos fila a fila
for fila=1:size(titulos,1),
aux = pos;
%%%%%%%%%%%%%%% 1.1.1.- Para cada columna de la fila
for col = 1:size(titulos,2),
% Ttulo del Editable
uicontrol('Style','text',...
'Units','normalized',...
'String',char(titulos(fila,col)),...
'HorizontalAlignment', 'left',...
'FontWeight',char(grosorFuente((col<2)+1)),...
'FontName',char(tipoFuente((col>1)+((fila==2)&(col>1))+((fila==3)&(col==2))+1)),...
'FontAngle',char(anguloFuente((col>1)+1)),...
'FontSize',tamFuente(((fila==2)&(col>1))+((fila==3)&(col==2))+1),...
'Position',pos, ...
'Foregroundcolor',colorFuente((col>1)+1,:), ...
'Backgroundcolor',[.8 .8 .8]);
%%%%%%% Si no estamos la 1 columna (ttulos de la fila: GENERA; I-Q, etc.)
% entonces introducimos editables y unidades
if (col>1)
%%%%%% En todas las columnas hay editables salvo
% en la 3, donde hay un desplagable con el mtodo
% a emplear para generar los CRC
if(~((fila==3) & (col==3))),
%%%%%%%% Editable
pos = [pos(1)+tamTexto((col>1)+1,2)+0.01, pos(2), ...
tamEdit((fila>2)+1,1) , tamEdit((fila>2)+1,2)];
Texto = sprintf('evento=%d; actualizaInterfaz;', contEventos);
contEventos = contEventos+1;
paramTX(fila, col-1) = uicontrol('Style','edit',...
'Units','normalized',...
'Position',pos, ...
'String',num2str(fq(fila, col-1)),...
'Enable','on',...
'Foregroundcolor',[0 0 0],...
'Backgroundcolor',[1 1 1],...
'BusyAction','queue',...
'Callback',Texto);
%%%%%%%%% Unidades
pos = [pos(1)+tamEdit((fila>2)+1,1), pos(2), ...
tamTexto((col>1)+1,1) , tamTexto((col>1)+1,2)];
uicontrol('Style','text',...
'Units','normalized',...
'String',char(uds(fila, col-1)),...
'HorizontalAlignment', 'left',...
'FontWeight','normal',...
'FontName',char(tipoFuente((fila==2)+2)),...
'Position',pos, ...
'Backgroundcolor',[.8 .8 .8]);
pos = [pos(1)+tamEdit((fila>2)+1,1)+0.01, pos(2), ...
tamTexto((col>1)+1,1) , tamTexto((col>1)+1,2)];
else
%%%%%%% Desplagable con el mtodo CRC
pos = [pos(1)-0.05, pos(2), ...
tamPop(1)+0.005 , tamPop(2)+0.01];
Texto = sprintf('evento=%d; actualizaInterfaz;', contEventos);
contEventos = contEventos+1;
uicontrol('Style','text',...
'Units','normalized',...
'String',' ',...
'HorizontalAlignment', 'left',...
'FontWeight','Bold',...
'FontName','Arial',...
'Position',pos, ...
'Backgroundcolor',[.7 .7 .7]);
pos = [pos(1)+0.03, pos(2)-0.01, ...
tamPop(1)+0.3 , tamPop(2)+0.02];
uicontrol('Style','text',...
'Units','normalized',...
'String',' ',...
'HorizontalAlignment', 'left',...
'FontWeight','Bold',...
'FontName','Arial',...
'Position',pos, ...
'Backgroundcolor',[.8 .8 .8]);
pos = [pos(1)+0.01, pos(2)+0.024, ...
tamPop(1) , tamPop(2)];
paramTX(fila, col-1) = uicontrol('Style','popupmenu',...
'Units','normalized',...
'String',metodos,...
'HorizontalAlignment', 'left',...
'FontWeight','normal',...
'FontName',char(tipoFuente(2)),...
'Position',pos, ...
'Enable','Off',...
'Backgroundcolor',[.8 .8 .8], ...
'Callback',Texto);
pos = [pos(1)+tamEdit((fila>2)+1,1)+0.01, pos(2), ...
tamPop(1) , tamPop(2)];
end;
else,
pos = [pos(1)+tamTexto(1,1)+0.012, pos(2), ...
tamTexto((col>1)+1,1) , tamTexto((col>1)+1,2)];
end;
end;
pos = [aux(1) , aux(2)-0.037, ...
tamTexto((col>1)+1,1), tamTexto((col>1)+1,2)];
end;
% 2.- Captura de Texto de Entrada
%##################################
uicontrol('Style','text',...
'Units','normalized',...
'String','Texto:',...
'HorizontalAlignment', 'left',...
'FontWeight','Bold',...
'FontName','Arial',...
'Position',pos, ...
'Backgroundcolor',[.7 .7 .7]);
pos = [pos(1)+0.05, pos(2), 0.26, pos(4)];
Texto = sprintf('evento=%d; actualizaInterfaz;', contEventos);
contEventos = contEventos+1;
textoIn = uicontrol('Style','edit',...
'Units','normalized',...
'Position',pos, ...
'String','Esto es una prueba',...
'Enable','on',...
'Foregroundcolor',[0 0 0],...
'Backgroundcolor',[1 1 1],...
'Callback',Texto);
% 3.- Botones de Envo
%######################
pos = [pos(1)-0.05, pos(2)-0.037, .15, .03];
Texto = sprintf('evento=%d; actualizaInterfaz;', contEventos);
contEventos = contEventos+1;
uicontrol('Style','pushbutton', ...
'Units','normalized', ...
'Position',pos, ...
'String','Reestablecer Valores',...
'Callback',Texto);
pos = [pos(1)+pos(3)+0.01, pos(2), pos(3), pos(4)];
Texto = sprintf('evento=%d; actualizaInterfaz;', contEventos);
contEventos = contEventos+1;
pulsa(1) = uicontrol('Style','pushbutton', ...
'Units','normalized', ...
'Position',pos, ...
'String','Envo Texto',...
'Callback',Texto);
% 4.- Eliminamos variables intiles
%###################################
clear pos titulos tamTexto grosorFuente tipoFuente colorFuente uds metodos
clear anguloFuente tamEdit fq aux pops tamPop tamFuente fila col Texto tamPop