diff --git a/Ccs/ccs_function_lib.py b/Ccs/ccs_function_lib.py
index 46ea60a3bb3c6d22a6b9b1e584c2fd646851f1ee..62f1d0f76ad6b55c8ccae5af07cec8d34709464e 100644
--- a/Ccs/ccs_function_lib.py
+++ b/Ccs/ccs_function_lib.py
@@ -693,7 +693,7 @@ def user_tm_decoders_func():
     return user_tm_decoders
 
 
-def Tmformatted(tm, separator='\n', sort_by_name=False, textmode=True, udef=False, nocal=False):
+def Tmformatted(tm, separator='\n', sort_by_name=False, textmode=True, udef=False, nocal=False, floatfmt=None):
     """
     Return a formatted string containing all the decoded source data of TM packet _tm_
 
@@ -705,7 +705,7 @@ def Tmformatted(tm, separator='\n', sort_by_name=False, textmode=True, udef=Fals
     :param nocal:
     :return:
     """
-    sourcedata, tmtcnames = Tmdata(tm, udef=udef)
+    sourcedata, tmtcnames = Tmdata(tm, udef=udef, floatfmt=floatfmt)
     tmtcname = " / ".join(tmtcnames)
 
     if nocal:
@@ -746,7 +746,7 @@ def Tmformatted(tm, separator='\n', sort_by_name=False, textmode=True, udef=Fals
 #
 #  Decode source data field of TM packet
 #  @param tm TM packet bytestring
-def Tmdata(tm, udef=False):
+def Tmdata(tm, udef=False, floatfmt=None):
     """
 
     :param tm:
@@ -779,7 +779,7 @@ def Tmdata(tm, udef=False):
             else:
                 vals_params = read_variable_pckt(data, params)
 
-            tmdata = [(get_calibrated(i[0], j[0]), i[6], i[1], pidfmt(i[7]), j) for i, j in zip(params, vals_params)]
+            tmdata = [(get_calibrated(i[0], j[0], floatfmt=floatfmt), i[6], i[1], pidfmt(i[7]), j) for i, j in zip(params, vals_params)]
             tmname = ['USER DEFINED: {}'.format(user_label)]
 
             return tmdata, tmname
@@ -840,7 +840,7 @@ def Tmdata(tm, udef=False):
             dbres = dbcon.execute(que)
             params = dbres.fetchall()
             vals_params = decode_pus(data, params)
-            tmdata = [(get_calibrated(i[0], j[0]), i[6], i[1], pidfmt(i[7]), j) for i, j in zip(params, vals_params)]
+            tmdata = [(get_calibrated(i[0], j[0], floatfmt=floatfmt), i[6], i[1], pidfmt(i[7]), j) for i, j in zip(params, vals_params)]
 
         elif params is not None:
             # Length of a parameter which should be decoded according to given position
@@ -850,7 +850,7 @@ def Tmdata(tm, udef=False):
             else:
                 vals_params = read_variable_pckt(data, params)
 
-            tmdata = [(get_calibrated(i[0], j[0]), i[6], i[1], pidfmt(i[7]), j) for i, j in zip(params, vals_params)]
+            tmdata = [(get_calibrated(i[0], j[0], floatfmt=floatfmt), i[6], i[1], pidfmt(i[7]), j) for i, j in zip(params, vals_params)]
 
         else:
             que = 'SELECT pcf.pcf_name,pcf.pcf_descr,pcf.pcf_ptc,pcf.pcf_pfc,pcf.pcf_curtx,pcf.pcf_width,\
@@ -861,7 +861,7 @@ def Tmdata(tm, udef=False):
             params_in = dbres.fetchall()
 
             vals_params = read_variable_pckt(data, params_in)
-            tmdata = [(get_calibrated(i[0], j), i[6], i[1], pidfmt(i[7]), j) for j, i in vals_params]
+            tmdata = [(get_calibrated(i[0], j, floatfmt=floatfmt), i[6], i[1], pidfmt(i[7]), j) for j, i in vals_params]
             # tmdata = [(get_calibrated(i[0], j[0]), i[6], i[1], pidfmt(i[7]), j) for i, j in zip(params, vals_params)]
 
         if spid is not None:
@@ -1713,7 +1713,7 @@ def pidfmt_reverse(val):
 #  Calibrate raw parameter values
 #  @param pcf_name PCF_NAME
 #  @param rawval   Raw value of the parameter
-def get_calibrated(pcf_name, rawval, properties=None, numerical=False, dbcon=None, nocal=False):
+def get_calibrated(pcf_name, rawval, properties=None, numerical=False, dbcon=None, nocal=False, floatfmt=None):
     """
 
     :param pcf_name:
@@ -1771,7 +1771,7 @@ def get_calibrated(pcf_name, rawval, properties=None, numerical=False, dbcon=Non
         if nocal:
             return rawval
         else:
-            return get_cap_yval(pcf_name, rawval)
+            return get_cap_yval(pcf_name, rawval) if floatfmt is None else format(get_cap_yval(pcf_name, rawval), floatfmt)
     elif curtx is not None and categ == 'S':
         if numerical or nocal:
             return rawval
@@ -1826,7 +1826,7 @@ def get_cap_yval(pcf_name, xval, properties=None, dbcon=None):
     # if yval == np.nan:
     #     logger.info('Calibration of {} failed. Value {} outside calibrated range {}-{}'.format(pcf_name, xval, xvals.min(), xvals.max()))
 
-    return format(yval, 'g')
+    return yval  # format(yval, 'g')
 
 
 ##
diff --git a/Ccs/monitor.py b/Ccs/monitor.py
index 3043fb534737284ad2f04a37c30c0563f10bac9e..ab52b9f5976109ebbf0dede13e3e35e10839c292 100644
--- a/Ccs/monitor.py
+++ b/Ccs/monitor.py
@@ -289,6 +289,7 @@ class ParameterMonitor(Gtk.Window):
 
                 else:
                     box.pktid = tuple(pktid)
+                    udtype, parameter = parameter.split(':')
                     dbres = dbcon.execute('SELECT pcf.pcf_name,pcf.pcf_descr,pcf.pcf_categ,pcf.pcf_unit,ocf.ocf_nbool,\
                                         ocp.ocp_lvalu,ocp.ocp_hvalu from pcf left join ocf on pcf.pcf_name=ocf.ocf_name\
                                         left join ocp on ocf_name=ocp_name where pcf.pcf_name="{}"'.format(parameter))
@@ -541,6 +542,7 @@ class ParameterMonitor(Gtk.Window):
         pinfo = cfl._parameter_decoding_info((name, udtype), check_curtx=True)
 
         ptc, pfc = pinfo[2:4]
+        curtx = pinfo[4]
 
         if ptc in [7]:
             return ''
@@ -548,6 +550,8 @@ class ParameterMonitor(Gtk.Window):
             return '.13G'
         elif ptc in [8]:
             return 's'
+        elif curtx is not None:  # numerically calibrated
+            return '.7G'
         else:
             return 'd'
 
@@ -997,7 +1001,7 @@ class MonitorSetupDialog(Gtk.Dialog):
             params = dbres.fetchall()
 
             for par in params:
-                parameter_model.append(it, [par[0], str(par[1:])])
+                parameter_model.append(it, [par[0], str(['MIB:' + par[1]] + list(par[2:]))])
 
         dbcon.close()
 
diff --git a/Ccs/poolview_sql.py b/Ccs/poolview_sql.py
index 00ceff09c4a4b7be5ce41b005696d2cb6d3f693e..25069f778e751db239ff860be4e96ac1901b75a4 100644
--- a/Ccs/poolview_sql.py
+++ b/Ccs/poolview_sql.py
@@ -989,116 +989,6 @@ class TMPoolView(Gtk.Window):
             #print(something, self.shown_offset, self.shown_upper_limit)
         self.treeview.thaw_child_notify()   # Tell GTk to reload
 
-        '''
-        # ndel = len(self.pool_liststore)
-        unfiltered_rows = dbrows[2]
-        sorted = dbrows[1]
-        dbrows = dbrows[0]
-        if not dbrows:
-            return
-
-        self.shown_lock.acquire()
-        #self.treeview.freeze_child_notify()
-        #self.pool_liststore.clear()
-
-        if self.shown_diff or self.shown_diff == 0:
-            if self.shown_diff > 0:
-                self.treeview.freeze_child_notify()
-                self.pool_liststore.clear()
-                if sorted:
-                    dbrows = unfiltered_rows.offset(self.shown_offset + self.shown_limit - self.shown_buffer).limit(self.shown_diff)
-                else:
-                    dbrows = unfiltered_rows.filter(DbTelemetry.idx > (self.shown_offset + self.shown_limit - self.shown_buffer)).limit(
-                        self.shown_diff)
-
-                #for row in self.pool_liststore:
-                #    if row[0] == range(self.shown_upper_limit, self.shown_upper_limit - self.shown_diff):
-                #        self.pool_liststore.remove(row.iter)
-
-                if self.shown_offset > self.shown_buffer:
-                    del self.shown_all_rows[0:self.shown_diff]
-
-                x = 0
-                for tm_row in self.shown_all_rows:
-                    if x in range(self.shown_offset + self.shown_diff - self.shown_upper_limit,
-                                  self.shown_offset + self.shown_diff + int(
-                                      self.adj.get_page_size()) - self.shown_upper_limit):
-                        self.pool_liststore.append(tm_row)
-                    x += 1
-
-                if not self.dbrows_list:
-                    t_shown_rows = threading.Thread(target=self.update_shown_buffer)
-                    t_shown_rows.daemon = True
-                    t_shown_rows.start()
-
-                self.dbrows_list.append([dbrows, self.shown_diff])
-                self.treeview.thaw_child_notify()
-
-            elif self.shown_diff == 0:
-                pass
-
-            else:
-                self.treeview.freeze_child_notify()
-                self.pool_liststore.clear()
-                if sorted:
-                    if self.shown_upper_limit > abs(self.shown_diff):
-                        dbrows = unfiltered_rows.offset((self.shown_upper_limit + self.shown_diff)).limit(
-                            self.shown_diff * -1)
-                    else:
-                        dbrows = unfiltered_rows.offset(0).limit(self.shown_diff * -1)
-                else:
-                    if self.shown_upper_limit > abs(self.shown_diff):
-                        dbrows = unfiltered_rows.filter(
-                            DbTelemetry.idx > (self.shown_upper_limit + self.shown_diff)).limit(
-                            self.shown_diff * -1)
-                    else:
-                        dbrows = unfiltered_rows.filter(DbTelemetry.idx > 0).limit(self.shown_diff * -1)
-
-                #for row in self.pool_liststore:
-                #    if row[0] == range(self.offset + self.shown_limit - self.shown_buffer + self.shown_diff,
-                #                       self.offset + self.shown_limit - self.shown_buffer):
-                #        self.pool_liststore.remove(row.iter)
-
-                self.shown_all_rows = self.shown_all_rows[:self.shown_diff]
-
-                if not self.dbrows_list:
-                    t_shown_rows = threading.Thread(target=self.update_shown_buffer)
-                    t_shown_rows.daemon = True
-                    t_shown_rows.start()
-
-                x = 0
-                for tm_row in self.shown_all_rows:
-                    if x in range(self.shown_offset + self.shown_diff - self.shown_upper_limit,
-                                  self.shown_offset + self.shown_diff + int(self.adj.get_page_size()) - self.shown_upper_limit):
-                        self.pool_liststore.append(tm_row)
-                    #if x in range(self.shown_offset + self.shown_diff - self.shown_upper_limit,
-                    #              self.shown_offset - self.shown_upper_limit):
-                        #self.pool_liststore.insert(0, tm_row)
-                    x += 1
-                self.dbrows_list.append([dbrows, self.shown_diff])
-                self.treeview.thaw_child_notify()
-
-            self.shown_offset = 0 if self.shown_offset < 0 else self.shown_offset + self.shown_diff
-            self.shown_upper_limit = 0 if (self.shown_offset - self.shown_buffer) < 0 else self.shown_offset -self.shown_buffer
-            #thread1 = threading.Thread(target=self.update_shown_buffer, kwargs={'rows': dbrows})
-            #thread1.daemon = True
-            #thread1.start()
-
-        else:
-            self.treeview.freeze_child_notify()
-            self.pool_liststore.clear()
-            self.reload_all_shown_rows(dbrows)
-            self.dbrows_list = []
-            self.treeview.thaw_child_notify()
-        #print(time.time()-starttime)
-        # del self.pool_liststore[:ndel]
-        #self.treeview.thaw_child_notify()
-        self.shown_lock.release()
-        self.loaded = 1
-        return
-        '''
-        return
-
     def reload_all_shown_rows(self, dbrows):
         """
         Reload all Packages (shown and in buffer) from the Database
@@ -2557,7 +2447,7 @@ class TMPoolView(Gtk.Window):
             importlib.reload(cfl)
 
     @delayed(10)
-    def set_tm_data_view(self, selection=None, event=None, change_columns=False):
+    def set_tm_data_view(self, selection=None, event=None, change_columns=False, floatfmt='.7G'):
         if not self.active_pool_info:
             self.logger.warning('No active pool')
             return
@@ -2630,11 +2520,11 @@ class TMPoolView(Gtk.Window):
             nocalibration = not self.calibrated_switch.get_active()
             try:
                 if self.UDEF:
-                    data = cfl.Tmformatted(tm, textmode=False, udef=True, nocal=nocalibration)
+                    data = cfl.Tmformatted(tm, textmode=False, udef=True, nocal=nocalibration, floatfmt=floatfmt)
                     buf = Gtk.TextBuffer(text=cfl.Tm_header_formatted(tm) + '\n{}\n'.format(data[1]))
                     self._feed_tm_data_view_model(datamodel, data[0])
                 else:
-                    data = cfl.Tmformatted(tm, textmode=False, nocal=nocalibration)
+                    data = cfl.Tmformatted(tm, textmode=False, nocal=nocalibration, floatfmt=floatfmt)
                     buf = Gtk.TextBuffer(text=cfl.Tm_header_formatted(tm) + '\n{}\n'.format(data[1]))
                     self._feed_tm_data_view_model(datamodel, data[0])