示例#1
0
 def parse_file(self):
     parsed_output = []
     self.params = config.get_parameters()
     for line in self.lines:
         line = line.strip("\n")
         line = _RE_COMBINE_WHITESPACE.sub(" ", line).strip()
         line = line.split(" ")
         data_id = line[4]
         filtered_id = data_id[2:6]
         parameter = self._hex_to_params(filtered_id)
         if parameter:
             ts = line[1]
             for key in parameter.keys():
                 name = key
                 bits = parameter[key]['Bits']
                 bits = bits.split("-")
                 rate = parameter[key]['Rate']
                 offset = parameter[key]['Offset']
                 measure = parameter[key]['Measure']
                 data = ""
                 for bit in reversed(bits):
                     data = data + line[OFFSET + int(bit)]
                 data = int("0x" + data, 16)
                 value = data * float(rate) + offset
                 parsed_output.append((name, ts, value, measure))
     return parsed_output
示例#2
0
 def init_combo_boxes(self):
     parameters = config.get_parameters()
     self.battery_saving.clear()
     self.cost_input_box.clear()
     for pgn in parameters.keys():
         for parameter in parameters[pgn].keys():
             self.battery_saving_box.addItem(parameter)
             self.cost_input_box.addItem(parameter)
示例#3
0
 def init_combo_boxes(self):
     parameters = config.get_parameters()
     self.x_box.clear()
     self.y_box.clear()
     for pgn in parameters.keys():
         for parameter in parameters[pgn].keys():
             self.x_box.addItem(parameter)
             self.y_box.addItem(parameter)
             self.selectable_box.addItem(parameter)
示例#4
0
 def get_plotting_data(self, data):
     plotting_data = []
     self.params = config.get_parameters()
     for group in self.params.keys():
         for parameter in self.params[group].keys():
             x = []
             y = []
             for d in data:
                 if d[0] == parameter:
                     x.append(float(d[1]))
                     y.append(float(d[2]))
             plotting_data.append((x, y, parameter))
     return plotting_data
示例#5
0
 def _average(self, ts):
     parameters = config.get_parameters()
     avg_parameters = []
     for pgn in parameters.keys():
         for parameter in parameters[pgn].keys():
             last_time = float(self.parsed_file[0][1])
             value_sum = float(self.parsed_file[0][2])
             count = 1
             for d in self.parsed_file:
                 if d[0] == parameter:
                     if float(d[1]) - last_time < ts:
                         value_sum = value_sum + float(d[2])
                         count = count + 1
                     else:
                         avg_parameters.append(
                             (d[0], str(last_time), str(value_sum / count),
                              d[3]))
                         value_sum = float(d[2])
                         count = 1
                         last_time = float(d[1])
     return avg_parameters
示例#6
0
 def _init_table(self):
     table = QTableWidget()
     table.setMinimumWidth(300)
     table.setColumnCount(8)
     table.setRowCount(11)
     table.setItem(0, 0, QTableWidgetItem("Name"))
     table.setItem(0, 1, QTableWidgetItem("PGN"))
     table.setItem(0, 2, QTableWidgetItem("Multiplier"))
     table.setItem(0, 3, QTableWidgetItem("Offset"))
     table.setItem(0, 4, QTableWidgetItem("Units"))
     table.setItem(0, 5, QTableWidgetItem("Lenght"))
     table.setItem(0, 6, QTableWidgetItem("Start"))
     table.setItem(0, 7, QTableWidgetItem("Plot"))
     parameters = config.get_parameters()
     i = 1
     for pgn in parameters.keys():
         for name in parameters[pgn].keys():
             bits = parameters[pgn][name]['Bits']
             bits = bits.split("-")
             if len(bits) == 1:
                 length = "1"
             else:
                 length = str(int(bits[1]) - int(bits[0]))
             start = bits[0]
             table.setItem(i, 0, QTableWidgetItem(name))
             table.setItem(i, 1, QTableWidgetItem(pgn))
             table.setItem(i, 2,
                           QTableWidgetItem(parameters[pgn][name]['Rate']))
             table.setItem(
                 i, 3,
                 QTableWidgetItem(str(parameters[pgn][name]['Offset'])))
             table.setItem(
                 i, 4, QTableWidgetItem(parameters[pgn][name]['Measure']))
             table.setItem(i, 5, QTableWidgetItem(length))
             table.setItem(i, 6, QTableWidgetItem(start))
             table.setItem(i, 7,
                           QTableWidgetItem(parameters[pgn][name]['Draw']))
             i = i + 1
     return table
示例#7
0
 def __init__(self, filename):
     tcr_file = open(filename, "r")
     self.lines = tcr_file.readlines()
     self.erase_header(HEADER)
     self.params = config.get_parameters()