Chapter 8: Conclusion and Future Work
B.5 MATLAB Script for Generating User Interface Program
% Calculate_Attitude.m
% Launches GUI to load reference attitude, load GPS SNR sample data,
% calculate attitude, and generate plots
function varargout = Calculate_Attitude(varargin)
% CALCULATE_ATTITUDE M-file for Calculate_Attitude.fig
% CALCULATE_ATTITUDE, by itself, creates a new CALCULATE_ATTITUDE or raises the existing
% singleton*.
%
% H = CALCULATE_ATTITUDE returns the handle to a new CALCULATE_ATTITUDE or the handle to
% the existing singleton*.
%
% CALCULATE_ATTITUDE('CALLBACK',hObject,eventData,handles,...) calls the local
% function named CALLBACK in CALCULATE_ATTITUDE.M with the given input arguments.
%
% CALCULATE_ATTITUDE('Property','Value',...) creates a new CALCULATE_ATTITUDE or raises
% the existing singleton*. Starting from the left, property value pairs are
% applied to the GUI before Calculate_Attitude_OpeningFcn gets called. An
% unrecognized property name or invalid value makes property application
% stop. All inputs are passed to Calculate_Attitude_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
% Edit the above text to modify the response to help Calculate_Attitude
% Last Modified by GUIDE v2.5 15-Jun-2013 14:36:56
% Begin initialization code - DO NOT EDIT gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
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 Calculate_Attitude is made visible.
function Calculate_Attitude_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 Calculate_Attitude (see VARARGIN)
% Choose default command line output for Calculate_Attitude handles.output = hObject;
% Update handles structure guidata(hObject, handles);
initialize_gui(hObject, handles, false);
% UIWAIT makes Calculate_Attitude wait for user response (see UIRESUME)
% uiwait(handles.figure1);
% --- Outputs from this function are returned to the command line.
function varargout = Calculate_Attitude_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;
% --- function initialize_gui(fig_handle, handles, isreset)
% If the metricdata field is present and the reset flag is false, it means
% we are we are just re-initializing a GUI by calling it from the cmd line
% while it is up. So, bail out as we dont want to reset the data.
global TRUE_MEAN;
TRUE_MEAN(1) = str2double(get(handles.editX,'String'));
TRUE_MEAN(2) = str2double(get(handles.editY,'String'));
TRUE_MEAN(3) = str2double(get(handles.editZ,'String'));
assignin('base', 'TRUE_MEAN', TRUE_MEAN) if isfield(handles, 'metricdata') && ~isreset return;
end
% Update handles structure
guidata(handles.figure1, handles);
% --- Executes on button press in pushbuttonPolaRx.
function pushbuttonPolaRx_Callback(hObject, eventdata, handles)
% hObject handle to pushbuttonPolaRx (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
load_polaRX;
assignin('base', 'TRUE_MEAN', TRUE_MEAN) set(handles.editX, 'String', TRUE_MEAN(1));
set(handles.editY, 'String', TRUE_MEAN(2));
set(handles.editZ, 'String', TRUE_MEAN(3));
function editX_Callback(hObject, eventdata, handles)
% hObject handle to editX (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hints: get(hObject,'String') returns contents of editX as text
% str2double(get(hObject,'String')) returns contents of editX as a double global TRUE_MEAN;
TRUE_MEAN(1) = str2double(get(hObject, 'String'));
if isnan(TRUE_MEAN(1)) TRUE_MEAN(1) = 0;
set(hObject, 'String', 0);
errordlg('Input must be a number','Error');
end
assignin('base', 'TRUE_MEAN', TRUE_MEAN)
% --- Executes during object creation, after setting all properties.
function editX_CreateFcn(hObject, eventdata, handles)
% hObject handle to editX (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called
% Hint: edit 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
function editY_Callback(hObject, eventdata, handles)
% hObject handle to editY (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hints: get(hObject,'String') returns contents of editY as text
% str2double(get(hObject,'String')) returns contents of editY as a double
global TRUE_MEAN;
TRUE_MEAN(2) = str2double(get(hObject, 'String'));
if isnan(TRUE_MEAN(2)) TRUE_MEAN(2) = 0;
set(hObject, 'String', 0);
errordlg('Input must be a number','Error');
end
assignin('base', 'TRUE_MEAN', TRUE_MEAN)
% --- Executes during object creation, after setting all properties.
function editY_CreateFcn(hObject, eventdata, handles)
% hObject handle to editY (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called
% Hint: edit 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
function editZ_Callback(hObject, eventdata, handles)
% hObject handle to editZ (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hints: get(hObject,'String') returns contents of editZ as text
% str2double(get(hObject,'String')) returns contents of editZ as a double global TRUE_MEAN;
TRUE_MEAN(3) = str2double(get(hObject, 'String'));
if isnan(TRUE_MEAN(3)) TRUE_MEAN(3) = 0;
set(hObject, 'String', 0);
errordlg('Input must be a number','Error');
end
assignin('base', 'TRUE_MEAN', TRUE_MEAN)
% --- Executes during object creation, after setting all properties.
function editZ_CreateFcn(hObject, eventdata, handles)
% hObject handle to editZ (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called
% Hint: edit 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 button press in checkboxPt.
function checkboxPt_Callback(hObject, eventdata, handles)
% hObject handle to checkboxPt (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hint: get(hObject,'Value') returns toggle state of checkboxPt
% --- Executes on button press in checkboxGt.
function checkboxGt_Callback(hObject, eventdata, handles)
% hObject handle to checkboxGt (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hint: get(hObject,'Value') returns toggle state of checkboxGt
% --- Executes on button press in checkboxLp.
function checkboxLp_Callback(hObject, eventdata, handles)
% hObject handle to checkboxLp (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hint: get(hObject,'Value') returns toggle state of checkboxLp
% --- Executes on button press in checkboxLa.
function checkboxLa_Callback(hObject, eventdata, handles)
% hObject handle to checkboxLa (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hint: get(hObject,'Value') returns toggle state of checkboxLa
% --- Executes on button press in checkboxWeighting.
function checkboxWeighting_Callback(hObject, eventdata, handles)
% hObject handle to checkboxWeighting (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hint: get(hObject,'Value') returns toggle state of checkboxWeighting
% --- Executes on button press in pushbuttonTestbed.
function pushbuttonTestbed_Callback(hObject, eventdata, handles)
% hObject handle to pushbuttonTestbed (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
assignin('base', 'testbed_packets', testbed_packets) assignin('base', 'testbed', testbed)
% --- Executes on button press in pushbuttonOK.
function pushbuttonOK_Callback(hObject, eventdata, handles)
% hObject handle to pushbuttonOK (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA) global TRUE_MEAN;
global testbed_packets;
global testbed;
if get(handles.checkboxGt,'Value') == 1
Include_SV_Radiation_Pattern_Compensation = 1;
end
if get(handles.checkboxLp,'Value') == 1 Include_Space_Loss_Compensation = 1;
end
if get(handles.checkboxPt,'Value') == 1 Include_SV_Power_Compensation = 1;
end
if get(handles.checkboxLa,'Value') == 1 Include_Atm_Loss_Compensation = 1;
end
if get(handles.checkboxWeighting,'Value') == 1 Include_Weight_Matrix = 1;
end
static_attitude;
% --- Executes on button press in pushbuttonCancel.
function pushbuttonCancel_Callback(hObject, eventdata, handles)
% hObject handle to pushbuttonCancel (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA) close(gcf);