Napisałem prosty skrypt w Pythonie, aby odczytywał po serialu sterownik solarów i wysyłał dane do domoticza. Oto jego kawałek - odpowiedzialny za wysłanie jednej z 5 wartości:
Otrzymaną ze sterownika 11 bajtową ramkę odpowiedzi zapisuję do tablicy, a następnie odpowiednie pola konwertuję do wartości decymalnej (binascii.b2a_hex). I tu pojawia się problem, bo konwesja nie zawsze następuje i wyrzuca błąd:
Czasami jednak skrypt idzie do końca i wysyła wszystkie 5 wartości, a czasami wiesza się z tym samym błędem w innym miejscu.
Pomożecie ?
Dodano po 2 [godziny] 58 [minuty]:
Nikomu nie muszę dziękować, bo w końcu sam sobie poradziłem.
Nie chciałem się wdrażać w pythona, bo to mi chyba nie będzie potrzebne, ale że nikt mi nie pomógł to poszperałem jeszcze trochę.
Zamieniłem :
numero1 = binascii.b2a_hex(numer1)
na
ord(numer1) i potem już z górki.
Na razie działa i już się nie wywala.
Kod: Python
Otrzymaną ze sterownika 11 bajtową ramkę odpowiedzi zapisuję do tablicy, a następnie odpowiednie pola konwertuję do wartości decymalnej (binascii.b2a_hex). I tu pojawia się problem, bo konwesja nie zawsze następuje i wyrzuca błąd:
Kod: Bash
Czasami jednak skrypt idzie do końca i wysyła wszystkie 5 wartości, a czasami wiesza się z tym samym błędem w innym miejscu.
Pomożecie ?
Dodano po 2 [godziny] 58 [minuty]:
Nikomu nie muszę dziękować, bo w końcu sam sobie poradziłem.
Nie chciałem się wdrażać w pythona, bo to mi chyba nie będzie potrzebne, ale że nikt mi nie pomógł to poszperałem jeszcze trochę.
Zamieniłem :
numero1 = binascii.b2a_hex(numer1)
na
ord(numer1) i potem już z górki.
Na razie działa i już się nie wywala.