วิธีที่จะทำให้หน้าจอสัมผัส Elo ทำงานสำหรับ Linux?


10

รุ่นหน้าจอสัมผัส Elo:

  • Elo TouchSystems, Inc. Elo TouchSystems 2700 IntelliTouch (r)

คำอธิบายปัญหา:

คำอธิบายภาพ คำอธิบายภาพ คำอธิบายภาพ คำอธิบายภาพ

  • ปัญหาของฉัน + ปัญหาอื่น ๆ ของเรื่องนี้คือเมื่อฉันแตะหน้าจอ (เลื่อนเมาส์) บนหน้าจอสัมผัสเคอร์เซอร์ของเมาส์จะไม่ติดตามการเคลื่อนไหว (นิ้ว / สัมผัส) ของฉัน เมื่อกดเคอร์เซอร์กด (คลิก) ในตำแหน่งที่ผิด

เป้าหมายของฉันคือการแก้ไขเพื่อให้ตำแหน่งสื่อถูกต้อง

พยายาม

ฉันได้ทำไปแล้ว แต่ก็ไม่มีโชค

1) สถานะการสืบค้น / อุปกรณ์

--

udi = '/org/freedesktop/Hal/devices/usb_device_4e7_20_20B23159_if0_logicaldev_input'
  button.has_state = false  (bool)
  info.addons.singleton = {'hald-addon-input'} (string list)
  info.capabilities = {'input', 'button', 'input.mouse'} (string list)
  info.category = 'input'  (string)
  info.parent = '/org/freedesktop/Hal/devices/usb_device_4e7_20_20B23159_if0'  (string)
  info.product = 'Elo TouchSystems, Inc. Elo TouchSystems 2700 IntelliTouch(r) USB Touchmonitor Interface'  (string)
  info.subsystem = 'input'  (string)
  info.udi = '/org/freedesktop/Hal/devices/usb_device_4e7_20_20B23159_if0_logicaldev_input'  (string)
  input.device = '/dev/input/event11'  (string)
  input.originating_device = '/org/freedesktop/Hal/devices/usb_device_4e7_20_20B23159_if0'  (string)
  input.product = 'Elo TouchSystems, Inc. Elo TouchSystems 2700 IntelliTouch(r) USB Touchmonitor Interface'  (string)
  input.x11_driver = 'evdev'  (string)
  linux.device_file = '/dev/input/event11'  (string)
  linux.hotplug_type = 2  (0x2)  (int)
  linux.subsystem = 'input'  (string)
  linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1:1.0/input/input11/event11'  (string)

2) เพิ่มไฟล์ใหม่

$ vim /etc/X11/xorg.conf.d/elo.conf
Section "InputDevice"
    Identifier "touchscreen1"
    Driver "elographics"
    Option "Device" "/dev/ttyS0"
    Option "MinX" "470"
    Option "MaxX" "3670"
    Option "MinY" "600"
    Option "MaxY" "3550"
    Option "ScreenNumber" "0"
    Option "ReportingMode" "Scaled"
    Option "ButtonThreshold" "17"
    Option "ButtonNumber" "1"
    Option "SendCoreEvents"
EndSection

3) ออกจากระบบเพื่อรีสตาร์ท X

4) ผลลัพธ์ยังคงเหมือนเดิมไม่มีอะไรดีขึ้น

ฉันขอขอบคุณคำแนะนำของคุณเกี่ยวกับเรื่องนี้

ติดตาม:

$ cat /proc/bus/input/devices
I: Bus=0003 Vendor=04e7 Product=0020 Version=0100
N: Name="Elo TouchSystems, Inc. Elo TouchSystems 2700 IntelliTouch(r) USB Touchmonitor Interface"
P: Phys=usb-0000:00:1d.1-1/input0
S: Sysfs=/devices/pci0000:00/0000:00:1d.1/usb3/3-1/3-1:1.0/input/input6
U: Uniq=20B23159
H: Handlers=mouse1 event6 js0 
B: PROP=0
B: EV=1b
B: KEY=10000 0 0 0 0 0 0 0 0
B: ABS=100 3
B: MSC=10   
$ cat /dev/input/event6
$ xinput_calibrator -v --device 14 --precalib 0 1024 0 768 --output-type xinput
DEBUG: XInputExtension version is 2.0
DEBUG: Skipping virtual master devices and devices without axis valuators.
DEBUG: Selected device: Elo TouchSystems, Inc. Elo TouchSystems 2700 IntelliTouch(r) USB Touchmonitor Interface
DEBUG: Setting precalibration: 0, 1024, 0, 768
DEBUG: Not usbtouchscreen calibrator: Not a usbtouchscreen device
DEBUG: Read axes swap value of 0.
Calibrating EVDEV driver for "Elo TouchSystems, Inc. Elo TouchSystems 2700 IntelliTouch(r) USB Touchmonitor Interface" id=14
    current calibration values (from XInput): min_x=0, max_x=4095 and min_y=0, max_y=4095
DEBUG: Adding click 0 (X=1908, Y=731)

; ; แก้ไข! ส่วน;

$ yum search xinput; install xinput
$ xinput --help
usage :
    xinput get-feedbacks <device name>
    xinput set-ptr-feedback <device name> <threshold> <num> <denom>
    xinput set-integer-feedback <device name> <feedback id> <value>
    xinput get-button-map <device name>
    xinput set-button-map <device name> <map button 1> [<map button 2> [...]]
    xinput set-pointer <device name> [<x index> <y index>]
    xinput set-mode <device name> ABSOLUTE|RELATIVE
    xinput list [--short || --long] [<device name>...]
    xinput query-state <device name>
    xinput test [-proximity] <device name>
    xinput create-master <id> [<sendCore (dflt:1)>] [<enable (dflt:1)>]
    xinput remove-master <id> [Floating|AttachToMaster (dflt:Floating)] [<returnPointer>] [<returnKeyboard>]
    xinput reattach <id> <master>
    xinput float <id>
    xinput set-cp <window> <device>
    xinput test-xi2 <device>
    xinput list-props <device> [<device> ...]
    xinput set-int-prop <device> <property> <format (8, 16, 32)> <val> [<val> ...]
    xinput set-float-prop <device> <property> <val> [<val> ...]
    xinput set-atom-prop <device> <property> <val> [<val> ...]
    xinput watch-props <device>
    xinput delete-prop <device> <property>
    xinput set-prop <device> [--type=atom|float|int] [--format=8|16|32] <property> <val> [<val> ...]

; Hey how do i use xinput for query my stuffs?

$ xinput list
         ^
         |_______________ Show me what i got! for <input source> to my local

⎡ Virtual core pointer                      id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ Broadcom Corp                             id=10   [slave  pointer  (2)]
⎜   ↳ SynPS/2 Synaptics TouchPad                id=12   [slave  pointer  (2)]
⎣ Virtual core keyboard                     id=3    [master keyboard (2)]
    ↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
    ↳ Video Bus                                 id=6    [slave  keyboard (3)]
    ↳ Power Button                              id=7    [slave  keyboard (3)]
    ↳ Sleep Button                              id=8    [slave  keyboard (3)]
    ↳ Broadcom Corp                             id=9    [slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard              id=11   [slave  keyboard (3)]
    ↳ Dell WMI hotkeys                          id=13   [slave  keyboard (3)]
⎡ main pointer                              id=15   [master pointer  (16)]
⎜   ↳ Elo TouchSystems, Inc. Elo TouchSystems 2700 IntelliTouch(r) USB Touchmonitor Interface   id=14   [slave  pointer  (15)]
⎜   ↳ main XTEST pointer                        id=17   [slave  pointer  (15)]
⎣ main keyboard                             id=16   [master keyboard (15)]
    ↳ main XTEST keyboard                       id=18   [slave  keyboard (16)]


$ xinput get-feedbacks 14
1 feedback class
PtrFeedbackClass id=0
    accelNum is 2
    accelDenom is 1
    threshold is 4

$ xinput watch-props 14
Device 'Elo TouchSystems, Inc. Elo TouchSystems 2700 IntelliTouch(r) USB Touchmonitor Interface':
    Device Enabled (150):   1
    Coordinate Transformation Matrix (152): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
    Device Accel Profile (272): 0
    Device Accel Constant Deceleration (273):   1.000000
    Device Accel Adaptive Deceleration (274):   1.000000
    Device Accel Velocity Scaling (275):    10.000000
    Device Product ID (269):    1255, 32
    Device Node (270):  "/dev/input/event11"
    Evdev Axis Inversion (276): 0, 0
    Evdev Axis Calibration (277):   -4000, 4093, -100, 4089
    Evdev Axes Swap (278):  0
    Axis Labels (279):  "Abs X" (369), "Abs Y" (370), "Abs Misc" (580)
    Button Labels (280):    "Button Left" (153), "Button Unknown" (271), "Button Unknown" (271), "Button Wheel Up" (156), "Button Wheel Down" (157)
    Evdev Middle Button Emulation (281):    0
    Evdev Middle Button Timeout (282):  50
    Evdev Wheel Emulation (283):    0
    Evdev Wheel Emulation Axes (284):   0, 0, 4, 5
    Evdev Wheel Emulation Inertia (285):    10
    Evdev Wheel Emulation Timeout (286):    200
    Evdev Wheel Emulation Button (287): 4
    Evdev Drag Lock Buttons (288):  0

$ xinput query-state 14
2 classes :
ButtonClass
    button[1]=up
    button[2]=up
    button[3]=up
    button[4]=up
    button[5]=up
ValuatorClass Mode=Absolute Proximity=In
    valuator[0]=3018
    valuator[1]=3226
    valuator[2]=0

$ xinput test 14
motion a[0]=2940 a[1]=1717 a[2]=158 
motion a[0]=2940 a[1]=1717 a[2]=201 
button release 1 a[0]=2938 a[1]=1719 a[2]=0 
^C

; Hey, how do i apply now settings to my local using xinput??

$ xinput set-pointer <device name> [<x index> <y index>]
         ^
         |___this does not work anymore in latest kernels 
             report a bug it wasted my time

$ xinput set-int-prop "Elo TouchSystems, Inc. Elo TouchSystems 2700 IntelliTouch(r) USB Touchmonitor Interface" "Evdev Axis Calibration" 32 -4000 4093 -100 4089

ตอนนี้หน้าจอด้านขวาของฉันมีความละเอียด 1024x768 และหน้าจอแล็ปท็อปซ้ายเช่นกันโดยใช้ข้อความด้านบนเคอร์เซอร์เมาส์เหมาะสมดี หากฉันมีความละเอียดที่แตกต่างกันฉันจำเป็นต้องปรับใหม่แน่นอน


2
xinputรายการ * ภาคบอกว่า ... ?
Ignacio Vazquez-Abrams

คุณได้ลองติดตั้งจอแสดงผลกับพีซีที่ใช้ Windows ปรับเทียบจากนั้นเชื่อมต่อใหม่เข้ากับกล่อง Fedora ของคุณหรือไม่
Tog

7
คุณได้ "แก้ไข" ในคำถามของคุณหากคุณตอบคุณควรเพิ่มคำตอบด้านล่างและตอบคำถามของคุณ :) ฉันลองใช้ Dell / ELO touch ในอูบุนตูและมันก็เป็น PITA ที่แท้จริงที่ทำให้มันทำงานได้อย่างถูกต้อง
Chris K

-1 สำหรับคำถามที่ยังไม่ได้ตอบตอบด้วยตนเองสงสัยโฆษณา

จากความอยากรู้อยากเห็นทำไมคุณใส่อะไรที่ดูเหมือนเป็นถุงมือ? คุณมีโอกาสในห้องแล็บหรือไม่?
Ben Franchuk

คำตอบ:


1

เมื่อกดเคอร์เซอร์กด (คลิก) ในตำแหน่งที่ผิด

เป้าหมายของฉันคือการแก้ไขเพื่อให้ตำแหน่งสื่อถูกต้อง

ดูเหมือนคุณจะต้องปรับหน้าจอสัมผัสของคุณ สำหรับสิ่งที่ผมขอแนะนำให้xinput_calibrator

บน Ubuntu ก็ใช้ได้เป็นแพคเกจ


1

ฉันมีชิ้นส่วนที่มี fedora 25 และจอมอนิเตอร์ Elo ที่ทำงานกับพวกเขาทั้งหมดฉันเพียงแค่เรียกใช้เครื่องมือสอบเทียบ Elo touch เพื่อปรับเทียบความแม่นยำและนั่นคือทั้งหมด

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.