Apollo 10.0
自动驾驶开放平台
decode_0B.cc 文件参考
decode_0B.cc 的引用(Include)关系图:

浏览源代码.

struct  gtime_t
 

函数

gtime_t epoch2time_sdk (const double *ep)
 
gtime_t gpst2time_sdk (int week, double sec)
 

函数说明

◆ epoch2time_sdk()

gtime_t epoch2time_sdk ( const double *  ep)

在文件 decode_0B.cc28 行定义.

28 {
29 const int doy[] = {1, 32, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335};
30 gtime_t time = {0};
31 int days, sec, year = static_cast<int>(ep[0]), mon = static_cast<int>(ep[1]),
32 day = static_cast<int>(ep[2]);
33
34 if (year < 1970 || 2099 < year || mon < 1 || 12 < mon) return time;
35
36 /* leap year if year%4==0 in 1901-2099 */
37 days = (year - 1970) * 365 + (year - 1969) / 4 + doy[mon - 1] + day - 2 +
38 (year % 4 == 0 && mon >= 3 ? 1 : 0);
39 sec = static_cast<int>(floor(ep[5]));
40 time.time = static_cast<time_t>(days) * 86400 +
41 static_cast<int>(ep[3]) * 3600 + static_cast<int>(ep[4]) * 60 +
42 sec;
43 time.sec = ep[5] - sec;
44 return time;
45}
double sec
Definition decode_0B.cc:25
time_t time
Definition decode_0B.cc:24

◆ gpst2time_sdk()

gtime_t gpst2time_sdk ( int  week,
double  sec 
)

在文件 decode_0B.cc47 行定义.

47 {
48 static const double gpst0[] = {1980, 1, 6, 0, 0, 0};
49 gtime_t t = epoch2time_sdk(gpst0);
50
51 if (sec < -1E9 || 1E9 < sec) sec = 0.0;
52 t.time += 86400 * 7 * week + static_cast<int>(sec);
53 t.sec = sec - static_cast<int>(sec);
54 return t;
55}
gtime_t epoch2time_sdk(const double *ep)
Definition decode_0B.cc:28