Statistics
| Branch: | Tag: | Revision:

hlrc / client / python / hlrc_client / RobotTimestamp.py @ d8feb404

History | View | Annotate | Download (1.615 KB)

1 5628de6c Simon Schulz
"""
2
This file is part of hlrc
3

4
Copyright(c) sschulz <AT> techfak.uni-bielefeld.de
5
http://opensource.cit-ec.de/projects/hlrc
6

7
This file may be licensed under the terms of the
8
GNU General Public License Version 3 (the ``GPL''),
9
or (at your option) any later version.
10

11
Software distributed under the License is distributed
12
on an ``AS IS'' basis, WITHOUT WARRANTY OF ANY KIND, either
13
express or implied. See the GPL for the specific language
14
governing rights and limitations.
15

16
You should have received a copy of the GPL along with this
17
program. If not, go to http://www.gnu.org/licenses/gpl.html
18
or write to the Free Software Foundation, Inc.,
19
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
20

21
The development of this software was supported by the
22
Excellence Cluster EXC 277 Cognitive Interaction Technology.
23
The Excellence Cluster EXC 277 is a grant of the Deutsche
24
Forschungsgemeinschaft (DFG) in the context of the German
25
Excellence Initiative.
26
"""
27
import time
28 04cf2b6f Sebastian Meyer zu Borgsen
import sys
29 5628de6c Simon Schulz
30
class RobotTimestamp:
31 f34ea400 Sebastian Meyer zu Borgsen
    def __init__(self, seconds=None):
32
        if (seconds is None):
33
            seconds = time.time()
34 82f22e4a Sebastian Meyer zu Borgsen
        self.init_from_sec(seconds)
35 5628de6c Simon Schulz
36 82f22e4a Sebastian Meyer zu Borgsen
    @classmethod
37 5628de6c Simon Schulz
    def from_sec_nsec(cls, _sec, _nsec):
38
        cls.sec  = _sec
39
        cls.nsec = _nsec
40
41 04cf2b6f Sebastian Meyer zu Borgsen
    @classmethod
42
    def from_system_time(cls):
43
        seconds = time.time()
44 82f22e4a Sebastian Meyer zu Borgsen
        cls.init_from_sec(seconds)
45
46
    def init_from_sec(self, seconds):
47
        self.secs  = int(seconds)
48
        self.nsecs = int((seconds - self.secs) * 1000000000)
49 04cf2b6f Sebastian Meyer zu Borgsen
50 5628de6c Simon Schulz
    def to_seconds(self):
51 04cf2b6f Sebastian Meyer zu Borgsen
        return self.secs + ((float(self.nsecs)) / 1000000000)
52 5628de6c Simon Schulz
53
    def __str__(self):
54
        return "%f" % self.to_seconds()