You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

50 lines
2.2 KiB

4 years ago
  1. # Store all kinds of lookup table.
  2. # # generate rsPoly lookup table.
  3. # from qrcode import base
  4. # def create_bytes(rs_blocks):
  5. # for r in range(len(rs_blocks)):
  6. # dcCount = rs_blocks[r].data_count
  7. # ecCount = rs_blocks[r].total_count - dcCount
  8. # rsPoly = base.Polynomial([1], 0)
  9. # for i in range(ecCount):
  10. # rsPoly = rsPoly * base.Polynomial([1, base.gexp(i)], 0)
  11. # return ecCount, rsPoly
  12. # rsPoly_LUT = {}
  13. # for version in range(1,41):
  14. # for error_correction in range(4):
  15. # rs_blocks_list = base.rs_blocks(version, error_correction)
  16. # ecCount, rsPoly = create_bytes(rs_blocks_list)
  17. # rsPoly_LUT[ecCount]=rsPoly.num
  18. # print(rsPoly_LUT)
  19. # Result. Usage: input: ecCount, output: Polynomial.num
  20. # e.g. rsPoly = base.Polynomial(LUT.rsPoly_LUT[ecCount], 0)
  21. rsPoly_LUT = {
  22. 7: [1, 127, 122, 154, 164, 11, 68, 117],
  23. 10: [1, 216, 194, 159, 111, 199, 94, 95, 113, 157, 193],
  24. 13: [1, 137, 73, 227, 17, 177, 17, 52, 13, 46, 43, 83, 132, 120],
  25. 15: [1, 29, 196, 111, 163, 112, 74, 10, 105, 105, 139, 132, 151,
  26. 32, 134, 26],
  27. 16: [1, 59, 13, 104, 189, 68, 209, 30, 8, 163, 65, 41, 229, 98, 50, 36, 59],
  28. 17: [1, 119, 66, 83, 120, 119, 22, 197, 83, 249, 41, 143, 134, 85, 53, 125,
  29. 99, 79],
  30. 18: [1, 239, 251, 183, 113, 149, 175, 199, 215, 240, 220, 73, 82, 173, 75,
  31. 32, 67, 217, 146],
  32. 20: [1, 152, 185, 240, 5, 111, 99, 6, 220, 112, 150, 69, 36, 187, 22, 228,
  33. 198, 121, 121, 165, 174],
  34. 22: [1, 89, 179, 131, 176, 182, 244, 19, 189, 69, 40, 28, 137, 29, 123, 67,
  35. 253, 86, 218, 230, 26, 145, 245],
  36. 24: [1, 122, 118, 169, 70, 178, 237, 216, 102, 115, 150, 229, 73, 130, 72,
  37. 61, 43, 206, 1, 237, 247, 127, 217, 144, 117],
  38. 26: [1, 246, 51, 183, 4, 136, 98, 199, 152, 77, 56, 206, 24, 145, 40, 209,
  39. 117, 233, 42, 135, 68, 70, 144, 146, 77, 43, 94],
  40. 28: [1, 252, 9, 28, 13, 18, 251, 208, 150, 103, 174, 100, 41, 167, 12, 247,
  41. 56, 117, 119, 233, 127, 181, 100, 121, 147, 176, 74, 58, 197],
  42. 30: [1, 212, 246, 77, 73, 195, 192, 75, 98, 5, 70, 103, 177, 22, 217, 138,
  43. 51, 181, 246, 72, 25, 18, 46, 228, 74, 216, 195, 11, 106, 130, 150]
  44. }