def newData(self, data): ''' (self, list) -> bool Открытие файла данных нового образца. ''' print data r = my_func.strHexToInt(data[1]) print r uOut = [] for i in range(self.adjTable.rowCount()): val = ''.join(data[2 + i * 4: 2 + i * 4 + 4]) uOut.append(my_func.strHexToFloat(val, 'le')) print uOut uOut = [] uOutADC = [] iOut = [] iOutADC = [] rOutADC = [] offset = 2 for i in range(self.adjTable.rowCount()): val = ''.join(data[offset: offset + 4]) offset += 4 uOut.append(round(my_func.strHexToFloat(val, 'le'), 1)) val = ''.join(data[offset: offset + 4]) offset += 4 uOutADC.append(round(my_func.strHexToFloat(val, 'le'), 1)) val = ''.join(data[offset: offset + 2]) offset += 2 iOut.append(my_func.strHexToInt(val, 'le')) val = ''.join(data[offset: offset + 2]) offset += 2 iOutADC.append(my_func.strHexToInt(val, 'le')) val = ''.join(data[offset: offset + 4]) offset += 4 rOutADC.append(round(my_func.strHexToFloat(val, 'le'), 1)) # заполнение таблицы полученными данными self.adjTable.clearTable() for i in range(len(uOut)): data = [uOut[i], uOutADC[i], iOut[i], iOutADC[i], r] self.adjTable.addRowData(data)
def testHextoFloat(self): """ (self) -> None �������� ���������� ������ ������� hexToFloat. """ val = 18.899999618530273 self.assertEqual(my_func.strHexToFloat("41973333"), val) val = 4.18142498403995e-08 self.assertEqual(my_func.strHexToFloat("41973333", "le"), val) val = 36806.078125 self.assertEqual(my_func.strHexToFloat("470FC614"), val) self.assertRaises(TypeError, my_func.strHexToFloat, 12) self.assertRaises(ValueError, my_func.strHexToFloat, "41973333", "d") self.assertRaises(ValueError, my_func.strHexToFloat, ":70FC614")
def oldData(self, data): ''' (self, list) -> bool Открытие файла данных старого образца. ''' # сопротивление r = my_func.strHexToInt(data[0]) # кол-во измерений для считывания numValues = self.adjTable.rowCount() # напряжения измеренные прибором uOut = [] try: for i in range(numValues): u = my_func.strHexToInt(data[i + 1]) if u == 0: break uOut.append(float(u)) # print u"Volatages =", uOut except: return # ток измеренный прибором iOut = [] for u in uOut: iOut.append(int(round(u * 1000 / r))) # print u"Currents =", iOut # напряжение измеренное МкУМ uOutADC = [] try: for i in range(numValues): tmp = data[41 + i * 4: 41 + i * 4 + 4] tmp = ''.join(tmp) tmp = round(my_func.strHexToFloat(tmp, 'le'), 1) uOutADC.append(tmp) except: return # print u"ADC vlotages =", uOutADC # ток имзеренный МкУМ iOutADC = [] try: for i in range(numValues): tmp = data[201 + i * 2: 201 + i * 2 + 2] tmp = ''.join(tmp) tmp = my_func.strHexToInt(tmp, 'le') iOutADC.append(tmp) except: return # print u'ADC currents =', iOutADC # сопротивление измеренное МкУМ rOutADC = [] for i in range(numValues): if iOutADC[i] != 0: tmp = round((1000 * uOutADC[i]) / iOutADC[i], 1) else: tmp = 1 rOutADC.append(tmp) # print u"ADC resistances =", rOutADC # заполнение таблицы полученными данными self.adjTable.clearTable() for i in range(len(uOut)): data = [uOut[i], uOutADC[i], iOut[i], iOutADC[i], r] self.adjTable.addRowData(data)