標 準様式

RedHawk5.1 のタッチパネル

版

日付

記述

発行
版

日付
発行

版

日付

2009/04/07

1

発行

プロフェッショナルサービス

表題

作成

確認

承認

作成

確認

承認

確認

承認

記述

記述

新規発行
作成

Touch Panel for RedHaek5.1

大島龍博
No

PSG-20090304

版
ﾍﾟｰｼﾞ

1
1/14

標 準様式2009/04/06 現 在 、 RedHawk5.1(RHEL5 ベ ー ス )の タ ッ チ パ ネ ル 動 作 評 価 に つ い て 報 告 し ま す 。
な お 、評 価 し た プ ロ グ ラ ム は す べ て ソ ー ス コ ー ド が 存 在 し 、か つ RedHawk5.1 で 再 コ ン パ イ ル
可 能 な 状 態 の も の で す 。（ バ イ ナ リ の み の バ ー ジ ョ ン は 評 価 し て い ま せ ん ）
名称

供給メーカ

方式

xfdtouch

CNC/OEM

GUNZE

GUNZE

elographics

ﾀｯﾁﾊﾟﾈﾙ・ｼｽﾃﾑｽﾞ

デスクトップタイプ
外 部 電 源 と し て PS2
マウスコネクタを必
要とする
組み込み型
デスクトップタイプ

名称

TTY
X ドライバ◎
xfdtouch_drv.so

xfdtouch

GUNZE

elographics◎
gunze_drv.so◎
elographics_drv.so

5 wire ア ナ ロ グ 抵 抗 膜 方 式

5 wire ア ナ ロ グ 抵 抗 膜 方 式
超音波表面弾性波方式

キャリブレーション・プログラム◎
Linear232
9 点補正
Calib_3p_232 3 点 補 正◎
gunzets_calib 3 点 補 正◎
touchcal
９点補正

USB
X ドライバカ ー ネ ル USB ド ラ イ バ キ ャ リ ブ レ ー シ ョ ン ・ プ ロ グ ラ ム
xfdtouch
−
−
−
GUNZE
△
△
△
mouse_drv.so
input.ko & gunzets.ko gunzets_calib◎◎
elographics ◎joystick_drv.so input.ko & joydev.ko
jscal 改 造
−インターフェースは存在するが、コネクタを出力していない△動作未確認◎動作確認済み
全 て 1280x1024
名称な お 、TTY 接 続 の 場 合 に は 、TTY 入 力 を 直 接 イ ン タ ー フ ェ ー ス す る 標 準 tty ド ラ イ バ と そ の 入
力 を X の ド ラ イ バ で 認 識 す る た め の Xinput ド ラ イ バ の ２ 段 構 成 に な っ て い る が 、USB 接 続 は 、USB 入 力 を 直 接 イ ン タ ー フ ェ ー ス す る ド ラ イ バ と そ の 上 位 ド ラ イ バ で あ る input_.ko を 利 用 し 、そ の 入 力 を X の ド ラ イ バ で 認 識 す る た め の Xinput ド ラ イ バ の ３ 段 構 成 に な っ て い ま す 。
X サーバ

Xinputドライバ

Xinputドライバ
X ドライバキャリブレーション
プログラム
表題

TTY ド ラ イ バ
input ド ラ イ バ

タッチスクリーン
1280x1024

USB ド ラ イ バ

カーネルドライバ

アプリケーションプログラム

Touch Panel for RedHaek5.1

No

PSG-20090304

版
ﾍﾟｰｼﾞ

1
2/14

標 準様式

１．コンカレント日本製タッチパネル（TTY）
Xinput デ バ イ ス ド ラ イ バ
キャリブレーションプログラム

xfdtouchLinear232,Calib_3p_232

インストール方法1)/usr/local/CNC/下 に キ ッ ト を 展 開 し 、 下 記 手 順 で make し ま す 。
# tar xvfz touchpannel.tar.gz# cd touchpannel/xfdtouch/src/programs/Xserver/hw/xfree86/input/xfdrvtouch# xmkmf(OS が 変 わ っ た 時 だ け )# make# cp xfdtouch_drv.so /usr/lib/xorg/module/input# cd /usr/local/CNC/touchpannel/xfdtouch/src/rs232/linear232# xmkmf(OS が 変 わ っ た 時 だ け )# make# make install# cd /usr/local/CNC/touchpannel/xfdtouch/src/rs232/rs232# xmkmf(OS が 変 わ っ た 時 だ け )# make# make install# cd /usr/local/CNC/touchpannel/xfdtouch/# cp touch.calib /etc2)/etc/X11/xorg.conf の 設 定
Section "ServerLayout"
Identifier"Default Layout"
Screen0 "Screen0" 0 0
InputDevice"Mouse0" "CorePointer"
InputDevice"Keyboard0" "CoreKeyboard"
InputDevice"DevInputMice" "AlwaysCore"
InputDevice"Touchscreen0" #タ ッ チ パ ネ ル
EndSection：
Section "InputDevice"
キャリブレーションプログラム
Identifier "Touchscreen0"
で ”Touch”の キ ー ワ ー ド を 使 用 し て い
Driver"xfdrvtouch"る た め “Touch”を 含 ん で ユ ニ ー ク か つ
Option"Device" "/dev/ttyS0"
同じタグを使用する事
Option"ScreenNo" "0"
Option"Rotation" "0"
Option"SwapY" "0"
Option"DebugLevel" "0"
Option"AlwaysCore"
Option"LongPushTimeOut" "1000" ##1+LongPushTimeOut/(9600/10:5))Sec
Option“SendCoreEvents" “ True”
必須
EndSection
表題Touch Panel for RedHaek5.1

No

PSG-20090304

版
ﾍﾟｰｼﾞ

1
3/14

標 準様式3) キャリブレーション実施方法

(1)
(2)

セッションをファイルセーフに設定し、rootでログインします。
xtermの画面から下記コマンドを入力します。
# Linear232 /dev/ttyS0 9(3) プログラムが起動し、下図に示す操作画面になります。
(4) 1から9までを順番に、◎中心を長押しします。
注意
先の丸いペン状の物を使用して、長押ししてください。
なお、長押し時間は、10 秒以上継続しないでください。
(5) キャリブレーションポイントは、◎で表示され、長押しするポイントは、中心の丸が赤く点灯し、外側の丸は緑に点滅します。
(6) 長押しすると、押したポイントが黄色の点灯に変わり、次のポイントが、中心の丸が赤く点灯し、外側の丸は緑に点滅します。
なお、黄色の点灯に変わったら離し、黄色の点灯にならない場合は、再度押し直してくだ
さい。
(7) ⑨まで長押しが終わると、xtermの画面に戻ります(8) キーボードからexitを入力し、終了します# exit

⑤

④

③

⑥

①

②

⑦

⑧

⑨

4) キ ャ リ ブ レ ー シ ョ ン フ ァ イ ル (/etc/touch.calib)の 内 容#The following data is used to xfdrvtouch̲drv.o 3 points calibration.
3968 128
3968 128 128 128 3968 3968

表題

Touch Panel for RedHaek5.1

No

PSG-20090304

版
ﾍﾟｰｼﾞ

1
4/14

標 準様式

２．グンゼタッチパネル（TTY）
http://ar.linux.it/pub/gunzets
Gunzets-1.4（ ソ ー ス RPM は RHEL5 の DVD に 含 ま れ て い ま す ）Xinput デ バ イ ス ド ラ イ バ
gunze_drv.so
キ ャ リ ブ レ ー シ ョ ン プ ロ グ ラ ム gunzets_calib
プロジェクト

インストール方法1)/usr/local/CNC/下 に キ ッ ト を 展 開 し 、 下 記 手 順 で make し ま す 。
# tar xvfz touchpannel.tar.gz# cd touchpannel/gunze/programs/Xserver/hw/xfree86/input/gunze# xmkmf(OS が 変 わ っ た 時 だ け )# make# cp gunze_drv.so /usr/lib/xorg/module/input# cd /usr/local/CNC/touchpannel/gunze-tool# xmkmf(OS が 変 わ っ た 時 だ け )# make# make install2)/etc/X11/xorg.conf の 設 定
Section "ServerLayout"
Identifier"Default Layout"
Screen0 "Screen0" 0 0
InputDevice"Mouse0" "CorePointer"
InputDevice"Keyboard0" "CoreKeyboard"
InputDevice"DevInputMice" "AlwaysCore"
InputDevice"Touchscreen0" #タ ッ チ パ ネ ル
EndSection：
Section "InputDevice"
キャリブレーションプログラム
Identifier "Touchscreen0"
で ”Touch”の キ ー ワ ー ド を 使 用 し て い
Driver "gunze"
る た め “Touch”を 含 ん で ユ ニ ー ク か つ
Option "Device""/dev/ttyS0"
同じタグを使用する事
Option "DeviceType""serial"Option "BaudRate""9600"
Option "CalibrationFile" "/etc/gunzets.calib"
Option "Smoothness""9"
Option "TappingDelay" "0"
Option "JitterDelay""50"
Option "DebugLevel""0"
Option "Res12Bit""False"Option "ScreenNo""0"
Option "AlwaysCore"
Option “SendCoreEvents" “ True”
必須
EndSection

表題Touch Panel for RedHaek5.1

No

PSG-20090304

版
ﾍﾟｰｼﾞ

1
5/14

標 準様式
Identifier "Touchscreen0"'
The identifier string is mandatory, and appears, literally, in the`InputDevice' directive within the `ServerLayout' section that is
usually found at the end of the configuration file.
Driver "gunze"'
The name of the driver is mandatory. It is used to load theassociated module. In this case the file `gunze_drv.o'.
Option "Device" "/dev/ttyS0"'
The device name is mandatory. It states where input data iscollected from. It can be a serial port, a ps2 port or the USB
device created by the `gunzets' device driver.
Option "DeviceType" "serial"'
The device type specification is not currently supported. If theoption is present it is ignored. The actual device type isretrieved from the device name: any device name that includes thestring "tty" is assumed to be a serial port, other devices are
assumed to speak the PS/2 protocol.
Option "BaudRate" "9600"'
The transmission rate for serial ports. It defaults to 9600 and isignored for non-serial input devices.
Option "CalibrationFile" "/etc/gunzets.calib"'
The option is not currently implemented.
Option "Smoothness""9"'
The smoothness of the pointer. The default value is 9. The greater
the value the smoother the motion. If you need to do handwritingor similar "fast" interaction, you should set the smoothness to 0.
Option "TappingDelay""0"'
Optional selection of tapping mode. By default (tapping delay
set to 0), any touch event is reported as a button press. In
tapping mode the first touch event is used to move the pointer,and button press is only reported when the user taps on thedevice. If the delay, measured in milliseconds, between pen-up andpen-down is greater than the selected value, the pen-down even isconsidered motion. I personally prefer tapping mode when testing
the device, as it allows me to use thecommonpoint-and-click semantics instead of click-only; this isespecially true if your touchscreen is not placed over the image
but in side of it (as you guess, I do that).
Option "JitterDelay""50"'
The debouncing time lapse, measured in milliseconds. If a
pen-down event occurs immediately after pen-up (within this time
lapse), then both events are discarded. Debouncing has been
表題Touch Panel for RedHaek5.1

No

PSG-20090304

版
ﾍﾟｰｼﾞ

1
6/14

標 準様式
contributed by Chris Howe <chris@howeville.com>, and defaults to
50ms.
Option "DebugLevel" "0"'The level of messages spit out by the driver. The directive is
optional and it defaults to 0.
Option "Res12Bit" "False"'
The boolean option states whether your panel reports data with 12bits of resolution (i.e., as numbers in the 0-4095 range). The
default is 10 bits (0-1023). 12-bit support is implemented bydiscarding the lowest two bits, and has been contributed by
Atsushi Nemoto.
Option "SendCoreEvents"'
The directive instructs X to use the touch screen as a core input
device (like the main mouse). This module can currently only work
as a core device.

表題Touch Panel for RedHaek5.1

No

PSG-20090304

版
ﾍﾟｰｼﾞ

1
7/14

標 準様式3) キャリブレーション実施方法(9)

セッションをファイルセーフに設定し、rootでログインします。

(10)

xtermの画面から下記コマンドを入力します。
# gunzets̲calib /dev/ttyS0(11) プログラムが起動し、メッセージに従って、マウスカーソルを左下に移動後、右上に移動することで、下図の十時マーカが表示され、キャリブレーションが開始されます。
注意
先の丸いペン状の物を使用して、軽く押すこと。
(12) 下図、左下の①の十で表示された部分の中心を押します。
(13) 同様に右上の②の十で表示された部分の中心を押し終わると、xtermの画面に戻ります。
(14) キーボードからexitを入力して、終了します。
# exit②①

4)キ ャ リ ブ レ ー シ ョ ン フ ァ イ ル (/etc/gunzets.calib)の 内 容# Calibration coordinates for Gunze USB device
220 234 783 771

表題

Touch Panel for RedHaek5.1

No

PSG-20090304

版
ﾍﾟｰｼﾞ

1
8/14

標 準様式

３．Elo Graphics タッチパネル（TTY）
xf86-input-elographics-1.1.0（ ソ ー ス RPM は RHEL5 の DVD に 含 ま れ て い ま す ）Xinput デ バ イ ス ド ラ イ バ
elographics_drv.so
キ ャ リ ブ レ ー シ ョ ン プ ロ グ ラ ム http://touchcal.sourceforge.net touchcal-0.31
touchcal
プロジェクト

インストール方法1)/usr/local/CNC/下 に キ ッ ト を 展 開 し 、 下 記 手 順 で make し ま す# tar xvfz touchpannel.tar.gz# cd touchpannel/elo/xf86-input-elographics-1.1.0# configure(OS が 変 わ っ た 時 だ け )# make# cp src/.libs/elographics_drv.so /usr/lib/xorg/module/input# cd /usr/local/CNC/touchpannel/elo/touchcal-0.31# configure(OS が 変 わ っ た 時 だ け )# make# make install2)/etc/X11/xorg.conf の 設 定
Section "ServerLayout"
Identifier"Default Layout"
Screen0 "Screen0" 0 0
InputDevice"Mouse0" "CorePointer"
InputDevice"Keyboard0" "CoreKeyboard"
InputDevice"DevInputMice" "AlwaysCore"
InputDevice"Touchscreen0" #タ ッ チ パ ネ ル
EndSection：
Section "InputDevice"
キャリブレーションプログラム
Identifier "Touchscreen0"
で ”Touch”の キ ー ワ ー ド を 使 用 し て い
Driver " elographics"
る た め “Touch”を 含 ん で ユ ニ ー ク か つ
Option "Device""/dev/ttyS0"
同じタグを使用する事
Option "BaudRate" "9600"
Option "StopBits" "1"
Option "DataBits" "8"
Option "Parity" "None"
Option "Vmin" "10"Option "Vtime" "1"
Option "FlowControl" "None"
Option "MinX" "52"
Option "MaxX" "3988"
キャリブレーションデータ
Option "MinY" "26"
Option "MaxY" "4044"
Option "ScreenNo""0"
Option "AlwaysCore"
Option “SendCoreEvents" “ True”
必須
EndSection
表題Touch Panel for RedHaek5.1

No

PSG-20090304

版
ﾍﾟｰｼﾞ

1
9/14

標 準様式
Option “DeviceName" “string”
Set the X11 device name for the touchscreen. Default is "TOUCHSCREEN".
Option ”MinX” “integer“
Set the minimum value for the touchscreen X axis. Default is 600.
Option “MaxX” “integer“
Set the maximum value for the touchscreen X axis. Default is 3000.
Option “MinY” “integer“
Set the minimum value for the touchscreen Y axis. Default is 600.
Option “MaxY” “integer“
Set the maximum value for the touchscreen Y axis. Default is 3000.
Option “ScreenNo” “integer“
The screen to attach to the touchscreen when running with multiple screens.
Default is screen 0.
Option “PortraitMode” “string“
Set the X/Y axis orientation. The default is "Landscape"but you can rotate clockwise ("Portrait") or
counter¥-clockwise ("PortraitCCW").
Option “SwapXY” “boolean“
Swap the X and Y axis on the display. Default is false.
Option “UntouchDelay” “integer“
The period that finger must be released for an untouch
event to occur. Default: 5 (50ms).
Option “ReportDelay” “integer“
Delay between report packets. Default: 1 (10ms).

表題Touch Panel for RedHaek5.1

No

PSG-20090304

版
ﾍﾟｰｼﾞ

1
10/14

標 準様式3) キャリブレーション実施方法(15)

セッションをファイルセーフに設定し、rootでログインします。
あるいは、ctrl+Alt+F1でコンソール画面からログインします。

(16)

xtermの場合には、画面から下記コマンドを入力します。
# xterm -geometry 1280x1024 +sb
xtermが全面に表示されますので、下記キャリブレーションプログラムを起動します。
# touchcal e /dev/ttyS0
コンソール画面の場合には、下記コマンドのみを入力してください。
# touchcal e /dev/ttyS0(17)

プログラムが起動し、メッセージが表示され、キャリブレーションが開始されます。
注意指先を使用して、軽く押すこと。
下図①のように、、左下の十で表示された部分の中心を押します。
タッチを認識すると、②の表示に変化しますので、キーボードからENTERを入力してくだ

(18)
(19)
さい。
(20) 次に、下図③のように、左下の十で表示された部分の中心を押し、キーボードからENTERを入力してください。
(21) 同様の操作を④の様に右上で行います。
(22)(23) 終わると、xtermの画面に戻ります。
(24) 画面の表示あるいは、/tmp/touchcal.tmpの４行を、/etc/X11/xorg.confに加えてください。
(25) キーボードからexitを入力して、終了します。Xの場合には、再度exitを入力してください。
# exit

④

①

②

③

表題

Touch Panel for RedHaek5.1

No

PSG-20090304

版
ﾍﾟｰｼﾞ

1
11/14

標 準様式
キャリブレーション中の画面
4)キ ャ リ ブ レ ー シ ョ ン フ ァ イ ル に 追 記 す る (/tmp/touchcal.tmp)内 容

キャリブレーション終了画面

表題

Touch Panel for RedHaek5.1

No

PSG-20090304

版
ﾍﾟｰｼﾞ

1
12/14

標 準様式

４．Elo Graphics タッチパネル（USB）
xf86-input-joystick-1.2.0（ ソ ー ス RPM は RHEL5 の DVD に 含 ま れ て い る が 、
バ ー ジ ョ ン が 古 い た め 、joydev.ko と ミ ス マ ッ チ を 起 こ し 、
動作しない）USB ド ラ イ バ (joydev.ko)は 、RedHawk に 標 準 添 付 さ れ ている。
Xinput デ バ イ ス ド ラ イ バ
joystick_drv.so
キ ャ リ ブ レ ー シ ョ ン プ ロ グ ラ ム joystick-1.2.15 を ベ ー ス に curses 版 に 改 造 し た 物
jscal
プロジェクト

インストール方法1)/usr/local/CNC/下 に キ ッ ト を 展 開 し 、 下 記 手 順 で make す る# tar xvfz touchpannel.tar.gz# cd touchpannel/elo/xf86-input-joystick-1.2.0# configure(OS が 変 わ っ た 時 だ け )# make# cp src/.libs/joystick_drv.so /usr/lib/xorg/module/input# cd /usr/local/CNC/touchpannel/elo/joystick-1.2.15# make# make install2)/etc/X11/xorg.conf の 設 定
Section "ServerLayout"
Identifier"Default Layout"
Screen0 "Screen0" 0 0
InputDevice"Mouse0" "CorePointer"
InputDevice"Keyboard0" "CoreKeyboard"
InputDevice"DevInputMice" "AlwaysCore"
InputDevice"Touchscreen0" #タ ッ チ パ ネ ル
EndSection：
Section "InputDevice"
ユニークかつ同じタグを使用する事
Identifier "Touchscreen0"
Driver "joystick"
Option "Device" "/dev/input/js0"
Option "MapAxis1" "mode=absolute deadzone=0 axis=x"
Option "MapAxis2" "mode=absolute deadzone=0 axis=y"
Option "SendCoreEvents""True"
必須
EndSection

表題Touch Panel for RedHaek5.1

No

PSG-20090304

版
ﾍﾟｰｼﾞ

1
13/14

標 準様式3) キャリブレーション実施方法(1)

セッションをファイルセーフに設定し、rootでログインします。
あるいは、ctrl+Alt+F1でコンソール画面からログインします。

(2)

xtermの場合には、画面から下記コマンドを入力します。
# xterm -geometry 1280x1024 +sb
xtermが全面に表示されますので、下記キャリブレーションプログラムを起動します。
# jscal -c /dev/input/js0

(3)
(4)
(5)
(6)
(7)
(8)
(9)
い。

コンソール画面の場合には、下記コマンドのみを入力してください。
# jscal -c /dev/input/js0
プログラムが起動し、メッセージが表示され、キャリブレーションが開始されます。
注意指先を使用して、軽く押すこと。
下図①のように、左下の十で表示された部分の中心を押します。
タッチを認識すると、②の表示に変化します
同様の操作を③から⑨まで行います。
終わると、xtermの画面に戻ります。
下記コマンドを入力します。
# jscal -p /dev/input/js0 > /etc/joystick.cal
キーボードからexitを入力して、終了します。Xの場合には、再度exitを入力してくださ# exit

①

②

③

④

⑤

⑥

⑦

⑧

⑨

キャリブレーション中の画面
4) キ ャ リ ブ レ ー シ ョ ン フ ァ イ ル (/etc/ joystick.cal)の 内 容
jscal -s 3,1,0,1996,2001,282555,275169,1,0,2027,2073,21474181,-7158060,1,0,42,255,-2520444,-2354625 /dev/input/js0

表題Touch Panel for RedHaek5.1

No

PSG-20090304

版
ﾍﾟｰｼﾞ

1
14/14