Преобразование целого числа в байт (для PySerial, используя Python25) - PullRequest
0 голосов
/ 28 января 2011

Кажется, все должно быть просто, но я не смог понять ...

Я пытаюсь использовать PySerial для связи с микроконтроллером. Я хочу отправить местоположение индекса, но когда я отправляю его, PySerial отправляет ASCII числа (поэтому, когда я отправляю 0, он отправляет 48).

Я знаю, для Python26 и выше, я бы просто заключил число во встроенную функцию байтов следующим образом:

self.index = bytes([index])

Однако Python25 не имеет этой функции. Я не могу найти никаких документов, предлагающих эквивалент. Кто-нибудь знает, что я должен делать?

Заранее спасибо!

РЕДАКТИРОВАТЬ: Извините, вот упрощенная версия моего кода ...

class SecondaryImage():
    def __init__(self, index):
        self.index = index
    def sendIndex(self):
        serial.write(self.index)

for i in range(64):
    img = SecondaryImage(i)
    imgs.append(img)

А потом я бы вызвал sendIndex () отдельно -

imgs[2].sendIndex()

Ответы [ 3 ]

2 голосов
/ 28 января 2011

chr является встроенным, который будет вам символом для порядкового номера, который вы отправляете.

1 голос
/ 28 января 2011

Последовательный обмен данными в ascii, поэтому вы хотите использовать chr для преобразования чисел в их эквивалентные символы ascii.

0 голосов
/ 28 января 2011

Вы пробовали модуль binascii?

http://docs.python.org/release/2.5.4/lib/module-binascii.html

...