#include "trick/exec_proto.h" #include "trick/SimTime.hh" #define GET_TIME( GMT , offset ) \ { \ double temp ; \ \ /* Convert the met to a gmt format */ \ temp = ( exec_get_sim_time() + offset ) / 86400.0 ; \ GMT.day = (int)temp ; \ temp = (temp - (double)(GMT.day)) * 24.0 ; \ GMT.hour = (int)temp ; \ temp = (temp - (double)(GMT.hour)) * 60.0 ; \ GMT.min = (int)temp ; \ GMT.sec = (temp - (double)(GMT.min)) * 60.0 ; \ } Trick::SimTime * the_simtime ; Trick::SimTime::SimTime() { gmt_ref.day = 0 ; gmt_ref.hour = 0 ; gmt_ref.min = 0 ; gmt_ref.sec = 0 ; met_ref.day = 0 ; met_ref.hour = 0 ; met_ref.min = 0 ; met_ref.sec = 0 ; the_simtime = this ; } int Trick::SimTime::init_times() { gmt_sec_ref = gmt_ref.day * 86400 + gmt_ref.hour * 3600 + gmt_ref.min * 60 + gmt_ref.sec; met_sec_ref = met_ref.day * 86400 + met_ref.hour * 3600 + met_ref.min * 60 + met_ref.sec; return 0 ; } double Trick::SimTime::get_rettime() { return(exec_get_sim_time()); } double Trick::SimTime::get_gmttime() { return(exec_get_sim_time() + gmt_sec_ref); } double Trick::SimTime::get_mettime() { return(exec_get_sim_time() + met_sec_ref); } TIME_OFFSET * Trick::SimTime::get_rettime_struct() { GET_TIME(ret_time, 0.0); return(&ret_time) ; } TIME_OFFSET * Trick::SimTime::get_gmttime_struct() { GET_TIME(gmt_time, gmt_sec_ref); return(&gmt_time) ; } TIME_OFFSET * Trick::SimTime::get_mettime_struct() { GET_TIME(met_time, met_sec_ref); return(&met_time) ; }