Как отправить клавишу Shift на консоль, используя pyserial - PullRequest
0 голосов
/ 05 января 2019

Я новичок в Python и подключаюсь к устройству, используя pyserial , поэтому мой вопрос:

1-Могу ли я отправить на устройство событие нажатия клавиши shift ? Я пытался найти почти все, но не нашел решения, спасибо за помощь.

Ниже приведен код, над которым я работаю, извините за любые расхождения в моем коде (o_0)

import serial
import time
import serial.tools.list_ports


comlist = serial.tools.list_ports.comports()

connected = []

for ports in comlist:
connected.append(ports.device)

print("All ports on this Computer are: " + 
str(connected))
console = serial.Serial(ports[0])

while 1:
    console.write(b'+')
    time.sleep(0.2)
    console.write(b'1')
    time.sleep(0.2)

def read_from_console(console):
    bytes_to_be_read = console.inWaiting()

    while True:
        if bytes_to_be_read:
            output = 
console.read(bytes_to_be_read)
            return output.decode()
        else:
            return False
read_from_console(console)

1 Ответ

0 голосов
/ 05 января 2019

Вы должны быть в состоянии отправить Shift 0x0E для входа и 0x0F для выхода с ascii, см. Эту цитату из Википедии для справки:

Shift Out (SO) и Shift In (SI) являются управляющими символами ASCII 14 и 15 соответственно (0x0E и 0x0F). [1] Иногда их также называют «Контроль-Н» и «Контроль-О».

https://en.wikipedia.org/wiki/Shift_Out_and_Shift_In_characters

Я бы предположил, что вы можете отправить эти управляющие символы по серийному номеру. Вот пример:

# SI (Shift In)
console.write(b'14')

# some other key here that requires shift

# SO (Shift Out)
console.write(b'15')

Надеюсь, это поможет!

...