Android'de farklı bir dokunmatik ekran kullanmaya çalışıyorum. Dokunmatik ekran USB üzerinden bağlanır ve HID cihazı olarak tanınır, ancak çalışmaz. Konumların gösterilmesini sağladığımda bile ekranda olayları göremiyorum (hangisi 1280x800). Ekran beklemeye geçtiğinde, dokunma uyanmaz (ancak bir USB fare bağlarsam sistemle etkileşime girebilirim). Neyin işe yaramadığını anlayamıyorum. Çekirdek aygıtı algılar:
input: HID 03eb:214e as /devices/platform/fsl-ehci.1/usb2/2-1/2-1.3/2-1.3:1.1/input/input2
Android EventHub ayrıca:
I/EventHub( 2499): New device: id=2, fd=92, path='/dev/input/event2', name='HID 03eb:214e', classes=0x80000004, configuration='/system/usr/idc/Vendor_03eb_Product_214e.idc', keyLayout='', keyCharacterMap='', builtinKeyboard=false
Android InputReader da:
I/InputReader( 2499): Touch device 'HID 03eb:214e' could not query the properties of its associated display. The device will be inoperable until the display size becomes available.
...
I/InputReader( 2499): Device reconfigured: id=2, name='HID 03eb:214e', size 1280x800, orientation 0, mode 3, display id 0
Android işaretçisi bu mesajları gösterir:
I/Pointer ( 2499): Device Enumerated: Input Device 2: HID 03eb:214e
I/Pointer ( 2499): Descriptor: b73a78ee3e94e1f7d81637579fe842568d9492f6
I/Pointer ( 2499): Generation: 12
I/Pointer ( 2499): Location: external
I/Pointer ( 2499): Keyboard Type: none
I/Pointer ( 2499): Has Vibrator: false
I/Pointer ( 2499): Sources: 0x2002 ( mouse )
I/Pointer ( 2499): AXIS_X: source=0x2002 min=0.0 max=1279.0 flat=0.0 fuzz=0.3125
I/Pointer ( 2499): AXIS_Y: source=0x2002 min=0.0 max=799.0 flat=0.0 fuzz=0.1953125
I/Pointer ( 2499): AXIS_PRESSURE: source=0x2002 min=0.0 max=1.0 flat=0.0 fuzz=0.0
Dumpsys komutunun çıktısı şöyle diyor:
Device 2: HID 03eb:214e
Generation: 12
IsExternal: true
Sources: 0x00002002
KeyboardType: 0
Motion Ranges:
X: source=0x00002002, min=0.000, max=1279.000, flat=0.000, fuzz=0.312
Y: source=0x00002002, min=0.000, max=799.000, flat=0.000, fuzz=0.195
PRESSURE: source=0x00002002, min=0.000, max=1.000, flat=0.000, fuzz=0.000
Touch Input Mapper:
Parameters:
GestureMode: spots
DeviceType: pointer
AssociatedDisplay: hasAssociatedDisplay=true, isExternal=false
OrientationAware: true
Raw Touch Axes:
X: min=0, max=4095, flat=0, fuzz=0, resolution=0
Y: min=0, max=4095, flat=0, fuzz=0, resolution=0
Pressure: unknown range
TouchMajor: unknown range
TouchMinor: unknown range
ToolMajor: unknown range
ToolMinor: unknown range
Orientation: unknown range
Distance: unknown range
TiltX: unknown range
TiltY: unknown range
TrackingId: unknown range
Slot: unknown range
Calibration:
touch.size.calibration: none
touch.pressure.calibration: none
touch.orientation.calibration: none
touch.distance.calibration: none
Viewport: displayId=0, orientation=0, logicalFrame=[0, 0, 1280, 800], physicalFrame=[0, 0, 1280, 800], deviceSize=[1280, 800]
SurfaceWidth: 1280px
SurfaceHeight: 800px
SurfaceLeft: 0
SurfaceTop: 0
SurfaceOrientation: 0
Translation and Scaling Factors:
XTranslate: 0.000
YTranslate: 0.000
XScale: 0.312
YScale: 0.195
XPrecision: 3.200
YPrecision: 5.120
GeometricScale: 0.254
PressureScale: 0.000
SizeScale: 0.000
OrientationScale: 0.000
DistanceScale: 0.000
HaveTilt: false
TiltXCenter: 0.000
TiltXScale: 0.000
TiltYCenter: 0.000
TiltYScale: 0.000
Last Button State: 0x00000000
Last Raw Touch: pointerCount=0
Last Cooked Touch: pointerCount=0
Pointer Gesture Detector:
XMovementScale: 0.208
YMovementScale: 0.208
XZoomScale: 0.078
YZoomScale: 0.078
MaxSwipeWidth: 1448.154663
Getevent -l kullanarak ve sol üst köşeye dokunarak bu çıktıya sahibim:
/dev/input/event2: EV_MSC MSC_SCAN 000d0042
/dev/input/event2: EV_KEY BTN_TOUCH DOWN
/dev/input/event2: EV_ABS ABS_MISC 00000001
/dev/input/event2: EV_ABS ABS_X 0000001c
/dev/input/event2: EV_ABS ABS_Y 0000004a
/dev/input/event2: EV_MSC MSC_SCAN 000d0042
/dev/input/event2: EV_KEY BTN_TOUCH UP
/dev/input/event2: EV_ABS 0029 00000002
/dev/input/event2: EV_ABS 002a 00000003
/dev/input/event2: EV_ABS 002b 00000004
/dev/input/event2: EV_ABS 002c 00000005
/dev/input/event2: EV_ABS 002d 0000000f
/dev/input/event2: EV_ABS 002e 00000005
/dev/input/event2: EV_SYN SYN_REPORT 00000000
/dev/input/event2: EV_MSC MSC_SCAN 000d0042
/dev/input/event2: EV_KEY BTN_TOUCH DOWN
/dev/input/event2: EV_MSC MSC_SCAN 000d0042
/dev/input/event2: EV_KEY BTN_TOUCH UP
/dev/input/event2: EV_ABS 002d 00000014
/dev/input/event2: EV_SYN SYN_REPORT 00000000
Onun yerine sağ alt köşeye dokunurum:
/dev/input/event2: EV_MSC MSC_SCAN 000d0042
/dev/input/event2: EV_KEY BTN_TOUCH DOWN
/dev/input/event2: EV_ABS ABS_X 00000fb0
/dev/input/event2: EV_ABS ABS_Y 00000fd4
/dev/input/event2: EV_MSC MSC_SCAN 000d0042
/dev/input/event2: EV_KEY BTN_TOUCH UP
/dev/input/event2: EV_ABS 002d 00000050
/dev/input/event2: EV_SYN SYN_REPORT 00000000
/dev/input/event2: EV_MSC MSC_SCAN 000d0042
/dev/input/event2: EV_KEY BTN_TOUCH DOWN
/dev/input/event2: EV_MSC MSC_SCAN 000d0042
/dev/input/event2: EV_KEY BTN_TOUCH UP
/dev/input/event2: EV_ABS 002d 00000055
/dev/input/event2: EV_SYN SYN_REPORT 00000000
/dev/input/event2: EV_ABS 002d 00000091
/dev/input/event2: EV_SYN SYN_REPORT 00000000
"/System/usr/idc/Vendor_03eb_Product_214e.idc" giriş aygıtı yapılandırma dosyasında şu satırlar bulunur:
device.internal = 0
touch.deviceType = default
touch.orientationAware = 1
Umarım biri yanlış yaptığımı anlamama yardımcı olabilir!
Şimdiden teşekkürler!