Merged in f5soh/librepilot/LP-575_fedora_package (pull request #491)
[librepilot.git] / ground / gcs / src / share / qml / js / common.js
blob8fdacd345721bd59ed33ab8c68019068e4b6b52a
1 /*
2  * Copyright (C) 2016 The LibrePilot Project
3  * Contact: http://www.librepilot.org
4  *
5  * This file is part of LibrePilot GCS.
6  *
7  * LibrePilot GCS is free software: you can redistribute it and/or modify
8  * it under the terms of the GNU General Public License as published by
9  * the Free Software Foundation, either version 3 of the License, or
10  * (at your option) any later version.
11  *
12  * LibrePilot GCS is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15  * GNU General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License
18  * along with LibrePilot GCS.  If not, see <http://www.gnu.org/licenses/>.
19  */
21 // ***********************
22 // Common javascript utils
23 // ***********************
25 // Get date
26 function getDateTime() {
27     switch(pfdContext.timeMode) {
28     case TimeMode.Local:
29          return new Date();
30     case TimeMode.Predefined:
31          return pfdContext.dateTime;
32     }
35 // Format time with two digits
36 function formatTime(time) {
37     if (time === 0)
38         return "00";
39     if (time < 10)
40         return "0" + time;
41     else
42         return time.toString();
45 // Returns a formated time value
46 // In: 119 (seconds)
47 // Out: 00:01:59
48 function formatFlightTime(timeValue) {
49     var timeHour = 0;
50     var timeMinutes = 0;
51     var timeSeconds = 0;
53     if (timeValue > 0) {
54         timeHour = Math.floor(timeValue / 3600);
55         timeMinutes = Math.floor((timeValue - timeHour * 3600) / 60);
56         timeSeconds = Math.floor(timeValue - timeHour * 3600 - timeMinutes * 60);
57     }
59     return formatTime(timeHour) + ":" + formatTime(timeMinutes) + ":" + formatTime(timeSeconds);
62 // Returns a formated ETA
63 function estimatedTimeOfArrival(distance, velocity) {
64     var etaValue = 0;
65     var etaHour = 0;
66     var etaMinutes = 0;
67     var etaSeconds = 0;
69     if ((distance > 0) && (velocity > 0)) {
70         etaValue = Math.round(distance/velocity);
71     }
73     return formatFlightTime(etaValue);