Beispiel #1
0
 def test_convert_to_lsb_list(self):
     bytes_list = convert_to_lsb_list(0x04030201, 4)
     self.assertEqual(len(bytes_list), 4)
     self.assertEqual(bytes_list[0], 0x80)  ## 0b 1000 0000
     self.assertEqual(bytes_list[1], 0x40)  ## 0b 0100 0000
     self.assertEqual(bytes_list[2], 0xC0)  ## 0b 1100 0000
     self.assertEqual(bytes_list[3], 0x20)  ## 0b 0010 0000
Beispiel #2
0
        def test_hw_crc8_calculate_3_reverse(self):
            data = 0x000300
            dataSize = 24
            poly = 0x1BF

            poly = reverse_number(poly, 8)
            bytes_list = convert_to_lsb_list(data, dataSize / 8)
            calc_crc = hw_crc8_calculate(bytes_list, poly, 0x00, 0x00)
            calc_crc = reverse_number(calc_crc, 8)

            self.assertEqual(calc_crc, 0x50)  ## 80
Beispiel #3
0
        def test_hw_crc8_calculate_1_reverse(self):
            data = 0x12
            dataSize = 8
            poly = 0xBF

            poly = reverse_number(poly, 8)
            bytes_list = convert_to_lsb_list(data, dataSize / 8)
            calc_crc = hw_crc8_calculate(bytes_list, poly, 0x00, 0x00)
            calc_crc = reverse_number(calc_crc, 8)

            self.assertEqual(calc_crc, 0x3F)  ## 63
Beispiel #4
0
    def calculateLSB(self, dataMask, polyMask):
        #         return self.calculateLSBClassic(dataMask, polyMask)
        if dataMask.dataSize % 8 != 0:
            ## fast crc only supports full bytes
            return self.calculateLSBClassic(dataMask, polyMask)

        bytesList = convert_to_lsb_list(dataMask.dataNum,
                                        dataMask.dataSize / 8)
        poly = reverse_number(polyMask.dataNum, polyMask.dataSize)

        initReg = reverse_number(self.registerInit, polyMask.dataSize)
        xor_val = reverse_number(self.xorOut, polyMask.dataSize)

        calc_crc = hw_crc8_calculate(bytesList, poly, initReg, xor_val)

        return reverse_number(calc_crc, polyMask.dataSize)