Найти - Пользователи
Полная версия: Ошибка формата
Начало » Центр помощи » Ошибка формата
1 2
nkol2000
Всем привет!

Помоги побороть ошибку.

Из ac.yaml берутся данные.

conditions:
air_conditioner_2:
id: “\x02”
reqs:
compr1_running:
req: “\x01\x11\x33\x00\x02”
Common_alarm:
req: “\x01\x03\xf2\x00\x02”

compr1_running проходит хорошо, а на Common_alarm выдает ошибку:
TypeError: The input CRC string should be a string. Given: u'\x02\x01\x03\xf2\x00\x02'

Часть, которая выдает ошибку
cond_addr = cfg
for req_type in sorted(cfg.iterkeys()):
if cfg.get('disable'):
continue
cmd = cond_addr+cfg
hex_result = moxa.send_command(ser, cmd, req_type)

Т.е. что-то с форматом.

Спасибо.
ZerG
Так вам же говорит что нужен стринг а вы передаете юникод
оберните переменную в str(var_name)
nkol2000
Сделал.
Теперь стало так:

cmd = str(cond_addr+cfg)
UnicodeEncodeError: ‘ascii’ codec can't encode character u'\xf2' in position 3: ordinal not in range(128)
Shaman
 (cond_addr+cfg).encode('utf-8')  # Или не utf-8
nkol2000
Переписал так:
req_tmp = cfg.encode('utf-8')
cmd = cond_addr+req_tmp
hex_result = moxa.send_command(ser, cmd, req_type)
Стала отправлять запросы, но вместо
\x01\x03\xf2\x00\x02
появляется
01 03 C3 B2 00 02
т.е. xf2 преобразует в xC3 и xB2

Откуда что берется…
nkol2000
Самое обидное, что другие запросы проходят нормально и не понятно чем этот отличается.
nkol2000
Вот такие метаморфозы с другими запросами:

\x01\x08\xA0\x00\x02
01 08 C2 A0 00 02

\x01\x03\xf2\x00\x02
01 03 C3 B2 00 02

\x01\x08\x9E\x00\x02
01 08 C2 9E 00 02

\x01\x03\xF5\x00\x02
01 03 C3 B5 00 02

При этом такие запросы проходят правильно:
\x01\x11\x33\x00\x02
\x03\x09\x50\x00\x02
\x03\x09\x54\x00\x02
ZerG
сделайте перед
 cmd = str(cond_addr+cfg)
print(type(cond_addr))
print(type(cfg))
Может вы хотите сложить строку и юникод?
nkol2000

<type ‘str’>
<type ‘dict’>
И в правильных и не правильных ответах.
nkol2000
Оба <type ‘str’>
Первый раз неправильно написАл.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB