示例#1
0
 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)
示例#2
0
    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")
示例#3
0
    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)