микро: бит Python отправить радиоизображение - PullRequest
1 голос
/ 03 августа 2020

micro: bit беспроводное радио BLE с использованием Python

Я хочу отправить по радио член коллекции изображений (Image.HEART). Я знаю, как отправлять строки и пользовательское изображение, но не являюсь членом коллекции изображений.

Я хочу, чтобы строка message_in получателя использовалась непосредственно display.show (или, возможно, промежуточной переменной для изменения). Я не хочу тестировать полученную строку для каждого возможного члена коллекции изображений с помощью if / else или словаря.

Я пробовал идеи в приведенном ниже коде, но все терпят неудачу. Я ценю вашу помощь.

# micro:bit radio: Send an image from Image collection
from microbit import *
import radio
radio.config(group=1)
radio.on()
while True:
    if button_a.is_pressed():
        radio.send(Image.HEART) # ?????
#        radio.send(index(Image.HEART)) # ?????
#        radio.send(str(Image.HEART)) # ?????
#        radio.send('Image.HEART') # ?????
#        radio.send('HEART') # ?????

    message_in = radio.receive()
    if message_in != None:
        display.show(message_in) #show heart
        # and other tries at syntax for argument

1 Ответ

1 голос
/ 03 августа 2020

Это выглядит скорее «хакерским» и хрупким, и я счастлив удалить его, если появится лучший метод, но один из способов, который работает, выглядит следующим образом.

Если вы запустите this ( ссылка на документы ):

repr(Image.HEART)

вы получите это:

"Image('09090:99999:99999:09990:00900:')"

Если вы посмотрите документацию для Image class ( ссылка на документы ), вы увидите, что можете создать новый Image из этой строки. Итак, на данный момент я предлагаю сделать следующее:

# Get a string corresponding to Image.HEART
s = repr(Image.HEART)[7:-3]

... TRANSMIT ...

# Convert received string back into Image
I = Image(received)

Думаю, это немного менее хрупкий способ извлечения цифр и двоеточий из вывода repr, но он все равно уродлив:

s = ""
for char in repr(Image.SAD):
    if char in '0123456789:': s += char
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...