Jednak przez weekend mi się nie chciało z tym bawić... Zajmę się tym może później, na razie to co naklepałem wcześniej czyli wersja gotowa do użycia z pythona + kilka funkcji + spostrzeżenie.
# -*- coding: utf-8 -*-
import math
database = [
(0xf77972e8954247e17eddd54bc99b766d ,0xa8892f74cd3464f6),
(0xfeba89019d12198cbea905716d179893 ,0x7c86f419ff00c5f1),
(0x8b9230e9794703db57fa14838dfaeb2dd67616992d069b17 ,0xb0ba2e8e8a92e30e),
(0xbbe4f2dce0e9c601b3c90e6fb5ef9417f3b179666b0ba3e6 ,0xa3d6da3858d6fe0f),
(0x000206c9e974123ad786df170d1ca9b786b2d446ce3168c7 ,0x0d715258195e85ad),
(0x52890fd80f2def1aa4d7ee591479c1d4c7a2f27b0b5c4095 ,0x0ccb9ab5eaa18b55),
(0xf77972e8954247e17eddd54bc99b766d ,0xa8892f74cd3464f6),
(0x2d346cd72657109d5f0f83fc98dc976bec2b13f79c156333 ,0xdda7004cb6f648ec),
(0xb031aec99479348ee0c8760e79c9d49e ,0x4134f9f241fad90086b2d446ce3168c7),
(0x6e7a7d815801b59429f4e7f5fdb41b12 ,0x9e483c213c49c47599596576f15963ed),
(0x6e7a7d815801b59429f4e7f5fdb41b12 ,0xd7380d6e3459ff9bfa74a0da504a2b74),
(0x6e7a7d815801b59429f4e7f5fdb41b12 ,0x8a2b006d0a74cc8526e3a2e839d0b374d271343671477b7e),
(0x6e7a7d815801b59429f4e7f5fdb41b12 ,0x14c073bcae2a5802),
(0xbe015573f4c50f0f6365dc027e30ada1 ,0x26e3a2e839d0b374ac36dd13783a94e4),
(0x04b48699757fcc1a6365dc027e30ada1 ,0xdf3fcf027a088d44b4391a69cc61e33986b2d446ce3168c7),
(0x45e6f5ec91d35fb6a6ecbe4286333698 ,0xc1356606e7ae1bfb),
(0xb493d0814179013512e454111c5ec86586b2d446ce3168c7 ,0x6f0e7384d44a4f62),
]
display = [
("Rozmiar klucza","16"),
("Odstęp elektrod","1 mm"),
("Moment dokręcenia[Nm]","28 Nm"),
("Gwint zewnętrzny[mm]","14 mm"),
("Skok gwintu[mm]","1,25 mm"),
("Długosć gwintu[mm]","19 mm"),
("Rozmiar Klucza","16"),
("Położenie elektrod[mm]","5 mm"),
("Ilosć biegunów","2 biegun"),
("Nr użytkowy","FLR 8 LDCU+"),
("Nr użytkowy","FR 8 LD+U"),
("Nr użytkowy","Set 4 - 0 242 229 878"),
("Nr użytkowy","+9"),
("Numer Tec Doc","0 242 229 654"),
("Nazwa TecDoc","żwieca zapłonowa"),
("Status TecDoc","Normal"),
("Producent TecDoc","BOSCH"),
]
def hexBytes(x): return (int(math.log(x, 16)) + 1) / 2
def roundUp(x, to): return (x + (to - 1)) / to * to
def nths(t, n): return map(lambda x: x[n], t)
def mix(t1, t2, n): return zip(nths(t1, n), nths(t2, n))
def codePairToLenPair(p): return map(lambda x: (roundUp(hexBytes(x[0]), 8), len(x[1])), p)
def showLenPair(p):
for x in namecodelen:
print x[1], u" cyfr, ", x[0], u" bajtow"
valcode = mix(database, display, 0)
namecode = mix(database, display, 1)
valcodelen = codePairToLenPair(valcode)
namecodelen = codePairToLenPair(namecode)
print u"Wartości:"
showLenPair(valcodelen)
print u"Nazwy:"
showLenPair(namecodelen)
Wynik działania:
Wartości:
2 cyfr, 8 bajtow
4 cyfr, 8 bajtow
5 cyfr, 8 bajtow
5 cyfr, 8 bajtow
7 cyfr, 8 bajtow
5 cyfr, 8 bajtow
2 cyfr, 8 bajtow
4 cyfr, 8 bajtow
8 cyfr, 16 bajtow
11 cyfr, 16 bajtow
9 cyfr, 16 bajtow
21 cyfr, 24 bajtow
2 cyfr, 8 bajtow
13 cyfr, 16 bajtow
18 cyfr, 24 bajtow
6 cyfr, 8 bajtow
5 cyfr, 8 bajtow
Nazwy:
2 cyfr, 8 bajtow
4 cyfr, 8 bajtow
5 cyfr, 8 bajtow
5 cyfr, 8 bajtow
7 cyfr, 8 bajtow
5 cyfr, 8 bajtow
2 cyfr, 8 bajtow
4 cyfr, 8 bajtow
8 cyfr, 16 bajtow
11 cyfr, 16 bajtow
9 cyfr, 16 bajtow
21 cyfr, 24 bajtow
2 cyfr, 8 bajtow
13 cyfr, 16 bajtow
18 cyfr, 24 bajtow
6 cyfr, 8 bajtow
5 cyfr, 8 bajtow
Chyba widać na pierwszy rzut oka zależność?