diff --git a/grmn/rgn.py b/grmn/rgn.py index 9fc836d..dc60e65 100644 --- a/grmn/rgn.py +++ b/grmn/rgn.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- # Thanks to Herbert Oppmann (herby) for all your work! -from .ansi import RESET, RED +from .ansi import RESET, RED, YELLOW from .chksum import ChkSum from .rgnbin import RgnBin from struct import unpack @@ -38,8 +38,6 @@ class Rgn: def load(self): if self.filename is None: return False - last_tlv6 = None - last_tlv7 = None with open(self.filename, "rb") as f: sig = f.read(4) if sig != RGN_SIG: @@ -59,6 +57,29 @@ class Rgn: self.add_rec(rec) f.close() + def load_from_bytes(self, payload: bytes): + pos = 0 + sig = payload[pos:pos+4] + if sig != RGN_SIG: + raise ParseException("Signature mismatch ({}, should be {})!".format(repr(sig), repr(RGN_SIG))) + pos += 4 + self.version = unpack("= len(payload): + #print("End of file reached.") + break + header = payload[pos:pos+5] + pos += 5 + (length, type_id) = unpack("