From bf73530ed72a5c22d9fc6279060d909d22023d4c Mon Sep 17 00:00:00 2001 From: Marko Mecina <marko.mecina@univie.ac.at> Date: Wed, 7 Sep 2022 14:07:07 +0200 Subject: [PATCH] error handling in calc_timestamp + miniscule code formatting --- Ccs/packet_config_CHEOPS.py | 2 ++ Ccs/packet_config_SMILE.py | 2 ++ Ccs/plotter.py | 7 +++---- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/Ccs/packet_config_CHEOPS.py b/Ccs/packet_config_CHEOPS.py index dcf4d27..f5388d9 100644 --- a/Ccs/packet_config_CHEOPS.py +++ b/Ccs/packet_config_CHEOPS.py @@ -105,6 +105,8 @@ def calc_timestamp(time, sync=0, return_bytes=False): ftime = 0 sync = 1 if time[-1].upper() == 'S' else 0 elif isinstance(time, bytes): + if len(time) not in [timepack[1], timepack[1]-timepack[3]]: + raise ValueError('Bytestring size ({}) does not match length specified in format ({})'.format(len(time), timepack[1])) ctime = int.from_bytes(time[:4], 'big') ftime = int.from_bytes(time[4:6], 'big') >> 1 sync = time[-1] & 1 diff --git a/Ccs/packet_config_SMILE.py b/Ccs/packet_config_SMILE.py index 1db09e3..c9a4f5f 100644 --- a/Ccs/packet_config_SMILE.py +++ b/Ccs/packet_config_SMILE.py @@ -128,6 +128,8 @@ def calc_timestamp(time, sync=None, return_bytes=False): sync = 0b101 if time[-1].upper() == 'S' else 0 elif isinstance(time, bytes): + if len(time) not in [timepack[1], timepack[1]-timepack[3]]: + raise ValueError('Bytestring size ({}) does not match length specified in format ({})'.format(len(time), timepack[1])) ctime = int.from_bytes(time[:4], 'big') ftime = int.from_bytes(time[4:7], 'big') if len(time) == timepack[1]: diff --git a/Ccs/plotter.py b/Ccs/plotter.py index 29302f0..1193a65 100644 --- a/Ccs/plotter.py +++ b/Ccs/plotter.py @@ -622,7 +622,6 @@ class PlotViewer(Gtk.Window): dbcon.close() return sid_search - def plot_parameter(self, widget=None, parameter=None): if parameter is not None: hk, parameter = parameter @@ -643,7 +642,7 @@ class PlotViewer(Gtk.Window): st, sst, sid = dbres.fetchall()[0] rows = rows.filter(DbTelemetry.stc == st, DbTelemetry.sst == sst, - DbTelemetry.raw.like(self.sid_position_query(st,sst,sid))) + DbTelemetry.raw.like(self.sid_position_query(st, sst, sid))) #if sid == 0: # rows = rows.filter(DbTelemetry.stc == st, DbTelemetry.sst == sst) #else: @@ -659,14 +658,14 @@ class PlotViewer(Gtk.Window): #rows = rows.filter(DbTelemetry.stc == st, DbTelemetry.sst == sst, # DbTelemetry.data.like(struct.pack('>B', sid) + b'%'))# rows = rows.filter(DbTelemetry.stc == st, DbTelemetry.sst == sst, - DbTelemetry.data.like(self.sid_position_query(st,sst,sid))) + DbTelemetry.data.like(self.sid_position_query(st, sst, sid))) else: userpar = json.loads(self.cfg['ccs-plot_parameters'][parameter]) rows = rows.filter(DbTelemetry.stc == userpar['ST'], DbTelemetry.sst == userpar['SST'], DbTelemetry.apid == userpar['APID']) if 'SID' in userpar and userpar['SID']: #rows = rows.filter(DbTelemetry.data.like(struct.pack('>B', int(userpar['SID'])) + b'%')) - rows = rows.filter(DbTelemetry.raw.like(self.sid_position_query(userpar['ST'],userpar['SST'],userpar['SID']))) + rows = rows.filter(DbTelemetry.raw.like(self.sid_position_query(userpar['ST'], userpar['SST'], userpar['SID']))) if not self.filter_tl2.get_active(): rows = rows.filter(func.left(DbTelemetry.timestamp, func.length(DbTelemetry.timestamp) - 1) > 2.) try: -- GitLab