trick/trick_source/sim_services/SimTime/SimTime.cpp

90 lines
1.6 KiB
C++
Raw Normal View History

2015-02-26 15:02:31 +00:00
#include "trick/exec_proto.h"
#include "trick/SimTime.hh"
2015-02-26 15:02:31 +00:00
#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) ;
}