From 0b64a496e42e56c4dc60855f6b93dfc079272ffd Mon Sep 17 00:00:00 2001 From: Lan Dam <ldam@passcal.nmt.edu> Date: Fri, 18 Aug 2023 15:26:27 -0600 Subject: [PATCH] fixing displayed extreme values for channels --- sohstationviewer/database/soh.db | Bin 61440 -> 61440 bytes sohstationviewer/model/reftek/log_info.py | 10 +++++----- sohstationviewer/view/main_window.py | 1 + .../view/plotting/plotting_widget/plotting.py | 2 +- .../plotting/plotting_widget/plotting_axes.py | 16 ++++++++++++---- tests/test_database/test_extract_data.py | 5 +++-- 6 files changed, 22 insertions(+), 12 deletions(-) diff --git a/sohstationviewer/database/soh.db b/sohstationviewer/database/soh.db index c3c01eeeb559a14690a70d0fce1428347a54c664..520d7456237a43f37b1bbc4502ad632c09a6e6d4 100755 GIT binary patch delta 730 zcmXX@O=uHA7@gfslby85q^2pgu}Ochq19w#WB+on37e2M+5UvsVxdsiWG%r>1KEu= zpwOFw78<4(57yE{JruNd5j}W_snB{8Jr*J0K?;hBx1OBUz`&dDoA<u=K4!JXtk#%y zC$(KZ$2V*PU!wdn^JJ`}X$|zTJ7)L|eMXPb3YtZJWMFr!AFUgfBzA?`X>+?449To% zgf)iUPA3j=EqLq5g#8>uLNInW5{%V>)@tJ;6l_}aoi%!O>X^6PDg@^VWxfu0BK{EX zC7|{tzDF6XVbG1sLWMowXdHF}K;hqq4zrwHmXt_dRcL%?@&j#M!Ti)^*18Wm0068` z!5dR9BYFc|Zh(LK+Drq`IH>#m^0^#BkSBh89q4`&Ne%EA*Ngqr4|>Q1CozJ&oKN5C zOcq5stCs#7UZ9O0GK9jF=~fKmwnlUaXcPb_fE2BZlm^mRD2LlZS11GUis@pZAT6tr zY(Yw^`9g`CRiuK#-ONgIhKuCW#T<E6xY)#1E;$p8CKfZIDsss{z>k$hq3MP=n!A)P z4U<Hp<?`VEb%Wo`SWW?YWwlvOiQ#ukYYWrha5|tWDXPFnFA988mut4oU5aAy+o$7Z z2Gs!igHBLQYu@^VAj>!?oz7?{FWPKIdKyepC2XpsXlfTPR0eG9d*%_tGc0{fKc`Cc zJ-k^thW<FTd-?!u#`mk8XL8{gX-QOy%1}SFJHvXra?}fRVV*1`77O_6JK4Zwfe)vu z{g6vQdzV)yU8}n3qJp1Qs|NNp=)t)Icef`B?RF1<4&a;<!h)#Arc$X+SyZ!XF(Z+) vq&+`?4MS)hSad7$J#$e{1lk>X9K8^tvUK~ON+K5`%rB>N^?=%sBfIA>JGRvr delta 558 zcmXX>O=#0#0R8gQG}&yvN-a(^*Uni>BW<#7I_YIAX`!qAakeWv2(@%MRI_Fz4c$O= zM-h~TZx;{F-aH7CEr=cjYbUH8#G457P}o6wP!aE9WWBxj;Qej%h>aex$ze<8sN`4z zkutZt{B-u*&<F_8JqPn0zJX6*6D~p#lI&M@kKJOMXl(8*e&Uf8n^S1B6|;J&tC-W3 z1JO_zpuhYjlukdSB{6p6?qp1|zNL3D(tm~uBQw(``A`6$``HP!mi>ssFG$Kw)7&sM z0|21W?*lK|%8gMM80xYQpkEO`#nV*WhO>efwYp9u3PTj{97q?Dn12u$#i^hV07g>O z>K*@rQBi7*b){C9^@Q5c?Ofi+0rYeJyo+$z42L>^2T-@h-7ZMNcc5sR0c_QbbC_br zPa(aWiL2GgW^?U|F@upHT&NnFCf6H@nkH8ps<tkaRK-}4bzw1AoG)gQ389crm1=Uc zyj*EigoUXoaqku>(m3k|@D=N}n@HAjZ@<7W2EBcjqH)*<@DJ=;CtIJPd7ZWTFGt)I z+yq(d2szsYoPLdNwxe$1F;OEVg2oT=9sC}iN89Z~vvnICy;sQaHO7Mq9iG=CX~q)_ z0R{lBl#CYSx~^){@#JIT9~?l>I~{T&Y5P|8eZz(xNH8Ane<S+TJ#FpmGY)o|XFObd VkR_qj593bBzFsjj>qplU{0Gi-sBZuO diff --git a/sohstationviewer/model/reftek/log_info.py b/sohstationviewer/model/reftek/log_info.py index 2ce79fef5..54756cdfe 100644 --- a/sohstationviewer/model/reftek/log_info.py +++ b/sohstationviewer/model/reftek/log_info.py @@ -205,10 +205,10 @@ class LogInfo(): return False return epoch, disk, val - def read_dsp_clock_diff(self, line: str + def read_dps_clock_diff(self, line: str ) -> Union[bool, Tuple[float, float]]: """ - Read DSP clock difference + Read DPS clock difference :param line: str - a line of evt message :return epoch: float - time when info is recorded :return total: float - total difference time in milliseconds @@ -416,11 +416,11 @@ class LogInfo(): if epoch: self.add_chan_info('Jerks/DSP Sets', epoch, 0, idx) - elif "DSP CLOCK DIFFERENCE" in line: - ret = self.read_dsp_clock_diff(line) + elif "DPS clock diff" in line: + ret = self.read_dps_clock_diff() if ret: epoch, total = ret - self.add_chan_info('DSP Clock Diff', epoch, total, idx) + self.add_chan_info('DPS Clock Diff', epoch, total, idx) elif "ACQUISITION STARTED" in line: epoch = self.simple_read(line)[1] diff --git a/sohstationviewer/view/main_window.py b/sohstationviewer/view/main_window.py index c957bb2e0..2e47c78a8 100755 --- a/sohstationviewer/view/main_window.py +++ b/sohstationviewer/view/main_window.py @@ -772,6 +772,7 @@ class MainWindow(QtWidgets.QMainWindow, UIMainWindow): Plot using data from self.data_object with the current options set from GUI """ + self.clear_plots() if self.has_problem: return self.is_plotting_soh = True diff --git a/sohstationviewer/view/plotting/plotting_widget/plotting.py b/sohstationviewer/view/plotting/plotting_widget/plotting.py index 9e28f8d14..1a9268988 100644 --- a/sohstationviewer/view/plotting/plotting_widget/plotting.py +++ b/sohstationviewer/view/plotting/plotting_widget/plotting.py @@ -100,7 +100,7 @@ class Plotting: x += points ax.plot(points, len(points) * [0], linestyle="", - marker='s', markersize=0.5, + marker='s', markersize=2, zorder=constants.Z_ORDER['DOT'], color=clr[c], picker=True, pickradius=3) prev_val = val diff --git a/sohstationviewer/view/plotting/plotting_widget/plotting_axes.py b/sohstationviewer/view/plotting/plotting_widget/plotting_axes.py index 50d8f93fe..9becc2273 100644 --- a/sohstationviewer/view/plotting/plotting_widget/plotting_axes.py +++ b/sohstationviewer/view/plotting/plotting_widget/plotting_axes.py @@ -292,9 +292,9 @@ class PlottingAxes: ax.unit_bw = get_unit_bitweight( chan_db_info, self.main_window.bit_weight_opt ) - self.set_axes_ylim(ax, min_y, max_y) + self.set_axes_ylim(ax, min_y, max_y, chan_db_info) - def set_axes_ylim(self, ax, min_y, max_y): + def set_axes_ylim(self, ax, org_min_y, org_max_y, chan_db_info): """ Limit y range in min_y, max_y. Set y tick labels at min_y, max_y @@ -302,8 +302,16 @@ class PlottingAxes: :param min_y: float - minimum of y values :param max_y: float - maximum of y values """ - min_y = round(min_y, 2) - max_y = round(max_y, 2) + min_y = round(org_min_y, 7) + max_y = round(org_max_y, 7) + if chan_db_info['fixPoint'] == 0 and org_max_y > org_min_y: + # if fixPoint=0, the format uses the save value created + # => try to round to to the point that user can see the differences + for dec in range(2, 8, 1): + min_y = round(org_min_y, dec) + max_y = round(org_max_y, dec) + if max_y > min_y: + break if max_y > min_y: # There are different values for y => show yticks for min, max # separately diff --git a/tests/test_database/test_extract_data.py b/tests/test_database/test_extract_data.py index 6f8abbb0f..a8906f35a 100644 --- a/tests/test_database/test_extract_data.py +++ b/tests/test_database/test_extract_data.py @@ -109,8 +109,9 @@ class TestExtractData(unittest.TestCase): 'label': 'LCE-PhaseError', 'fixPoint': 0, 'valueColors': 'L:W|D:Y'} - self.assertDictEqual(get_chan_plot_info('LCE', 'Unknown'), - expected_result) + self.assertDictEqual( + get_chan_plot_info('LCE', 'Unknown'), + expected_result) def test_get_chan_plot_info_bad_channel_or_data_type(self): """ -- GitLab