diff --git a/python/villas/node/sample.py b/python/villas/node/sample.py index 8a37e09ac..77bff9665 100644 --- a/python/villas/node/sample.py +++ b/python/villas/node/sample.py @@ -1,14 +1,24 @@ import re +from datetime import datetime class Timestamp: """Parsing the VILLASnode human-readable timestamp format""" - def __init__(self, seconds = 0, nanoseconds = None, offset = None, sequence = None): + def __init__(self, seconds=None, nanoseconds=None, offset=None, sequence=None): self.seconds = seconds self.nanoseconds = nanoseconds self.offset = offset self.sequence = sequence + @classmethod + def now(self, offset=None, sequence=None): + n = datetime.utcnow() + + secs = int(n.timestamp()) + nsecs = 1000 * n.microsecond + + return Timestamp(seconds=secs, nanoseconds=nsecs, offset=offset, sequence=sequence) + @classmethod def parse(self, ts): m = re.match('(\d+)(?:\.(\d+))?([-+]\d+(?:\.\d+)?(?:e[+-]?\d+)?)?(?:\((\d+)\))?', ts)