Управляет клавиатурой компьютера через pyserial - PullRequest
1 голос
/ 26 января 2020

Я не знаю, как использовать регулярные выражения в куче кода, и я не уверен, как правильно его кодировать. Я пытался найти учебник, руководства, все. Но я до сих пор не понимаю, поэтому, пожалуйста, помогите мне исправить мой глупый код.

Резюме работы, я пытаюсь написать небольшую программу, которая контролирует клавиатуру моего компьютера через pyserial и с помощью помощь микробита. Например, когда нажата кнопка A, микробит отправляет данные на мой компьютер через uart и мою оболочку python в конце, получая сообщение, пытается сопоставить его и выполнить соответствующую команду.

Это код микробита

from microbit import *

uart.init(baudrate=57600, bits=8, parity=None, stop=1, tx=None, rx=None)
while True:
    if button_a.is_pressed():
        uart.write("Up")
        display.show(Image.ARROW_NW)
    if button_b.is_pressed():
        uart.write("Down")
        display.show(Image.ARROW_S)
    else:
        display.show(Image.ASLEEP)

Это код моего python end

import re
import serial
import keyboard

serialPort = serial.Serial(port = "COM5", baudrate=57600,
                           bytesize=8, timeout=2, stopbits=serial.STOPBITS_ONE)

serialString = ""

while(1):

    (serialPort.in_waiting > 0)

    serialString = serialPort.readline()

    wordsa = ("up")
    wordsb = ("down")

    if():
        words = [word.lower() for word in wordsa if re.match('^[a-zA-Z]+', word)]
        keyboard.press_and_release('up')

Проблема в том, что я хочу иметь Чтобы сопоставить строку или данные, полученные от микробита через uart на serialString = serial.Port.readline(), если микробит отправляет UP, я бы хотел, чтобы python совпадал с полученными данными UP или Down, затем нажмите клавишу клавиатуры UP или DOWN соответственно. После запуска этого моего дерьмового кода, никаких ошибок не появляется, и он не будет работать вообще. Я думаю, что это очень глупый вопрос, но, пожалуйста, помогите мне. Эта проблема уже сожгла дыру в моем мозгу.

1 Ответ

1 голос
/ 27 января 2020

Спасибо и спасибо DarryIG, Ссылка на профиль . Он спас мои дни

Если кто-то из новичков, как я, просто хочет подойти на строку. Вам не нужно использовать регулярное выражение. Вы можете сделать это с оператором ==, в то время как = является назначением.

Например:

Game = ['Dota2', 'LoL']; #Games that you play
Like = ['Dota2', 'LoL']; #Games that your friend likes

if Game == Like:
    print ('True')
else:
    print ('False')

Выход: True

Примечание: Я знаю, что мой ответ - отстой, но я просто хочу ответить на этот вопрос на тот случай, если кому-то как я понадобится эта информация. Спасибо за понимание.

...