% ------------------------------------------------------------------------------
% Get the basic structure to store one cycle time information.
%
% SYNTAX :
%  [o_dataStruct] = get_apx_cycle_time_init_struct()
%
% INPUT PARAMETERS :
%
% OUTPUT PARAMETERS :
%   o_dataStruct : one cycle time initialized structure
%
% EXAMPLES :
%
% SEE ALSO : 
% AUTHORS  : Jean-Philippe Rannou (Altran)(jean-philippe.rannou@altran.com)
% ------------------------------------------------------------------------------
% RELEASES :
%   09/22/2015 - RNU - creation
% ------------------------------------------------------------------------------
function [o_dataStruct] = get_apx_cycle_time_init_struct()

% global time status
global g_JULD_STATUS_fill_value;

% default values
global g_decArgo_dateDef;


% output parameters initialization
o_dataStruct = struct( ...
   'clockOffset', [], ... % clock offset for the cycle times (reference date is firstMsgTime)
   'descentStartTime', g_decArgo_dateDef, ... % DST = TET of the previous cycle
   'descentStartTimeAdj', g_decArgo_dateDef, ...
   'descentStartTimeStatus', g_JULD_STATUS_fill_value, ...
   'descPresMark', [], ...
   'parkEndTime', g_decArgo_dateDef, ... % PET not set when PARK P = PROF P (since PET = AST) otherwise PET = TET - UP_TIME - DPDP hours
   'parkEndTimeAdj', g_decArgo_dateDef, ...
   'parkEndTimeStatus', g_JULD_STATUS_fill_value, ...
   'deepDescentEndTime', g_decArgo_dateDef, ... % DDET = AST
   'deepDescentEndTimeAdj', g_decArgo_dateDef, ...
   'deepDescentEndTimeStatus', g_JULD_STATUS_fill_value, ...
   'downTimeEnd', g_decArgo_dateDef, ... % downTimeEndFloat or DTET = TET estimated - UP_TIME
   'downTimeEndAdj', g_decArgo_dateDef, ...
   'downTimeEndStatus', g_JULD_STATUS_fill_value, ...
   'downTimeEndFloat', g_decArgo_dateDef, ... % provided by some float versions
   'downTimeEndFloatAdj', g_decArgo_dateDef, ...
   'downTimeEndFloatStatus', g_JULD_STATUS_fill_value, ...
   'timeOfProfileInit', g_decArgo_dateDef, ... % stored when DOWN_TIME end is not received
   'ascentStartTime', g_decArgo_dateDef, ... % TET - UP_TIME when PARK P == PROF P
   'ascentStartTimeAdj', g_decArgo_dateDef, ...
   'ascentStartTimeStatus', g_JULD_STATUS_fill_value, ...
   'ascentStartTimeFloat', g_decArgo_dateDef, ... % downTimeEndFloat + timeOfProfileInit
   'ascentStartTimeFloatAdj', g_decArgo_dateDef, ...
   'ascentStartTimeFloatStatus', g_JULD_STATUS_fill_value, ...
   'ascentEndTime', g_decArgo_dateDef, ... % TST - 10 min
   'ascentEndTimeAdj', g_decArgo_dateDef, ...
   'ascentEndTimeStatus', g_JULD_STATUS_fill_value, ...
   'ascentEndTimeFloat', g_decArgo_dateDef, ... % TST float - 10 min
   'ascentEndTimeFloatAdj', g_decArgo_dateDef, ...
   'ascentEndTimeFloatStatus', g_JULD_STATUS_fill_value, ...
   'transStartTime', g_decArgo_dateDef, ... % transStartTime1 or transStartTime2
   'transStartTimeAdj', g_decArgo_dateDef, ...
   'transStartTimeStatus', g_JULD_STATUS_fill_value, ...
   'transStartTime1', g_decArgo_dateDef, ... % from TWR method
   'transStartTime2', g_decArgo_dateDef, ... % from improved method
   'transStartTimeFloat', g_decArgo_dateDef, ... % provided by some float versions
   'transStartTimeFloatAdj', g_decArgo_dateDef, ...
   'transStartTimeFloatStatus', g_JULD_STATUS_fill_value, ...
   'transEndTime', g_decArgo_dateDef, ... % transEndTime1 or transEndTime2
   'transEndTimeAdj', g_decArgo_dateDef, ...
   'transEndTimeStatus', g_JULD_STATUS_fill_value, ...
   'transEndTime1', g_decArgo_dateDef, ... % TET1 = downTimeEndFloat + UP_TIME
   'transEndTime2', g_decArgo_dateDef, ... % TET2 is estimated from LMTs (max envelope)
   'firstMsgTime', g_decArgo_dateDef, ...
   'lastMsgTime', g_decArgo_dateDef ...
   );

return
