LoginSignup
0
1

More than 1 year has passed since last update.

SHARP Brain に Linux を入れて遊ぶ(6) - 入力

Posted at

目次

概要

SHARP Brain のキーボードとタッチパネルを取得したい

/dev/input/event

linux系でキーボードやマウスを直接取得したいんなら、/dev/input/eventほげ を見るのが速い。

user@brain:~$ ls /dev/input/
by-path  event0  event1

と、event0 と event1 があるようだ。

ちょっと覗いてみよう。

/dev/input/event0

タッチパネルを触ると色々データが流れてくる。

user@brain:~$ sudo od /dev/input/event0
0000000 046462 061613 156201 000016 000003 000000 004074 000000
0000020 046462 061613 156201 000016 000003 000001 004351 000000
0000040 046462 061613 156201 000016 000003 000030 003534 000000
0000060 046462 061613 156201 000016 000001 000512 000001 000000
0000100 046462 061613 156201 000016 000000 000000 000000 000000

/dev/input/event1

キーボードを押下すると色々データが流れてくる。

user@brain:~$ sudo od /dev/input/event1
0000000 046543 061613 075246 000006 000001 000042 000001 000000
0000020 046543 061613 075246 000006 000000 000000 000000 000000
0000040 046543 061613 160504 000010 000001 000042 000000 000000
0000060 046543 061613 160504 000010 000000 000000 000000 000000
0000100 046543 061613 050232 000014 000001 000043 000001 000000

event の内容

event の内容は linux/input.h で定義されている構造体 struct input_event である。
linuxディストリビューションによって異なるが、基本は下記の通り。

struct input_event {
  struct timeval time;
  __u16 type;
  __u16 code;
  __s32 value;
};

構造体の内容は以下のとおり。

type code value 内容
EV_SYN 同期信号、無視して良い
EV_KEY キーコード 押下フラグ キーボードやボタンが押された
EV_REL 軸番号 相対位置 ホイールなどが動いた
EV_ABS 軸番号 絶対位置 マウスが動いた

テストコード

適当に作ったテストコード
https://gitlab.com/nekodevteam/brainux/-/blob/main/inputtest/inputtest.cpp

  • 噂通り、稀にキー リリースを取り逃すようだ
  • なんかタッチパネルは3軸取れる。。。なんだこれ

と謎は深まるばかり、追々確認しよう。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1