Hệ điều hành có thể xử lý các tín hiệu phím shift, ctrl và alt tách khỏi bàn phím không?


0

Vấn đề cơ bản là thế này: tôi có một bàn phím mini Tôi đang sử dụng cho một dự án Raspberry Pi và vì chỉ có một phím ca, phím ctrl và phím alt, điều đó có nghĩa là các kết hợp ở phía bên trái của bàn phím như shift-A và ctrl-C rất khó xử lý đánh rơi nó

Giải pháp dự định của tôi là thêm một nút riêng để mô phỏng phím shift thứ hai. Với RPi và một số kinh nghiệm lập trình và điện tử rất cơ bản, lý thuyết này khá đơn giản. Ít nhất là cho hầu hết các phím. Nhưng vì phím shift là loại khóa "sửa đổi" ...

Câu hỏi là, Hệ điều hành có xử lý riêng từng phím bấm hay đó là công việc của bàn phím để gửi vốn A khi người dùng đẩy shift-A? Tôi có thể sử dụng đầu vào thứ hai để mô phỏng phím shift và sau đó nhấn phím A trên bàn phím để Hệ điều hành in chữ A không? Một câu trả lời chung được đánh giá cao, nhưng nếu nó phụ thuộc vào Hệ điều hành, thì hệ điều hành được đề cập là Raspbian Stretch, dựa trên Debian Stretch.

Câu trả lời:


3

Hầu hết các bàn phím hiện đại được giao tiếp như các thiết bị USB HID; có trường hợp ngoại lệ, nhưng trường hợp của bạn với pi mâm xôi rõ ràng là USB.

Trong trường hợp bàn phím USB, trạng thái của các phím bổ trợ được truyền thông bằng một bitmask riêng của các trạng thái được gửi cùng khi báo cáo các khóa thông thường, xem ví dụ https://wiki.osdev.org/USB_Human_Interface_Devices cho các bit và khóa cụ thể. (Điều này khác với bàn phím PS / 2, trong đó các phím bổ trợ có mã quét riêng).

Nếu bạn có thể tìm thấy mã diễn giải các sự kiện và hiểu cách nó sử dụng các bit sửa đổi, bạn cũng có thể sửa đổi logic để xem xét các thứ khác. Bạn cũng có thể có khả năng chỉ theo bit HOẶC trong trạng thái nhập thay thế của riêng bạn trên đầu các phím bổ trợ được báo cáo (vì "1" biểu thị phím được nhấn).

Đối với một số loại bàn phím đơn giản hơn sử dụng phím bấm, bạn cũng có thể nối dây trong một nút bấm riêng song song với phím bổ trợ hiện có; nhưng điều này có thể là khó khăn

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.