function varargout = setSettings(varargin)
% SETSETTINGS M-file for setSettings.fig
% SETSETTINGS, by itself, creates a new SETSETTINGS or raises the existing
% singleton*.
%
% H = SETSETTINGS returns the handle to a new SETSETTINGS or the handle to
% the existing singleton*.
%
% SETSETTINGS('CALLBACK',hObject,eventData,handles,...) calls the local
% function named CALLBACK in SETSETTINGS.M with the given input arguments.
%
% SETSETTINGS('Property','Value',...) creates a new SETSETTINGS or raises the
% existing singleton*. Starting from the left, property value pairs are
% applied to the GUI before setSettings_OpeningFunction gets called. An
% unrecognized property name or invalid value makes property application
% stop. All inputs are passed to setSettings_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 setSettings
% Last Modified by GUIDE v2.5 02-Aug-2006 10:33:09
% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @setSettings_OpeningFcn, ...
'gui_OutputFcn', @setSettings_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 setSettings is made visible.
function setSettings_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 setSettings (see VARARGIN)
%--- Try to read data from the variable "settings" ------------------------
% (variable "settings" is in the base Matlab workspace)
try
handles.settings = evalin('base', 'settings');
catch
%--- Creat a new settings structure in case of an error ---------------
handles.settings = initSettings();
end
%--- Assign it to the GUI data structure ----------------------------------
loadSettings(handles);
% Choose default command line output for setSettings
handles.output = hObject;
% Update handles structure
guidata(hObject, handles);
% UIWAIT makes setSettings wait for user response (see UIRESUME)
% uiwait(handles.figure1);
% --- Outputs from this function are returned to the command line.
function varargout = setSettings_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;
%### Callback functions ###################################################
% --- Executes during object creation, after setting all properties.
function edit_CreateFcn(hObject, eventdata, handles)
% hObject handle to edit (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 edit_Callback(hObject, eventdata, handles)
% hObject handle to edit (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 edit as text
% str2double(get(hObject,'String')) returns contents of edit as a double
%--- Enable the apply button on any input event ---------------------------
set(handles.pushbuttonApply, 'Enable', 'on');
% --- Executes on button press in any checkbox.
function checkbox_Callback(hObject, eventdata, handles)
% hObject handle to PRN1checkbox (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 PRN1checkbox
%--- Enable the apply button on any input event ---------------------------
set(handles.pushbuttonApply, 'Enable', 'on');
% --- Executes on button press in applybutton.
function pushbuttonApply_Callback(hObject, eventdata, handles)
% hObject handle to applybutton (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
%--- Try to read values from the GUI input fields -------------------------
[settings, error] = saveSettings(handles);
%--- If no errors, then ...
if error == 0
%--- Save the updated settings in the main workspace ------------------
assignin('base', 'settings', settings);
% Turn off the apply button
set(hObject, 'Enable', 'off');
end
% --- Executes on button press in resetbutton.
function pushbuttonReset_Callback(hObject, eventdata, handles)
% hObject handle to resetbutton (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
%--- Try to read data from the variable "settings" ------------------------
% (variable "settings" is in the base Matlab workspace)
try
handles.settings = evalin('base', 'settings');
catch
%--- Create a new settings structure in case of an error --------------
handles.settings = initSettings();
end
%--- Assign it to the GUI data structure ----------------------------------
loadSettings(handles);
%--- Save changes in the GUI data structure -------------------------------
guidata(hObject, handles);
%--- Turn off the apply button --------------------------------------------
set(handles.pushbuttonApply, 'Enable', 'off');
%@@@ Function reads values from the GUI and updates the settings structure
function [settings, error] = saveSettings(handles)
settings = handles.settings;
error = 0; % no error
try
%Please read the Matlab help for mo details on TRY, CATCH and ERROR
%commands.
%--- Signal properties related fields ---------------------------------
settings.fileName = get(handles.editFileName, 'String');
settings.numberOfChannels = edit2double(handles.editNumberOfChannels);
settings.msToProcess = edit2double(handles.editMsToProcess);
settings.skipNuberOfBytes = edit2double(handles.editSkipNumberOfBytes);
settings.IF = edit2double(handles.editIF);
settings.samplingFreq = edit2double(handles.editSamplingFreq);
settings.dataType = get(handles.editDataType, 'String');
%--- Satellite PRN numbers --------------------------------------------
for PRN = 1:32
%If checkbox is checked
if getCheckbox(getfield(handles, ['checkboxPRN', num2str(PRN)])) == 1
% Include satellite in the list
settings.acqSatelliteList = ...
union(settings.acqSatelliteList, PRN);
else
% Exclude satellite from the list
settings.acqSatelliteList = ...
setdiff(settings.acqSatelliteLis