Вот мой девайс:
kvim3:/ $ lsusb
Bus 001 Device 006: ID 10c4:81b9
VID/PID есть в hid-ids.h:
#define USB_VENDOR_ID_CYGNAL 0x10c4
#define USB_DEVICE_ID_CYGNAL_RADIO_SI470X 0x818a
#define USB_DEVICE_ID_FOCALTECH_FTXXXX_MULTITOUCH 0x81b9
#define USB_DEVICE_ID_CYGNAL_CP2112 0xea90
dmesg при подключении:
[ 86.582375] <6>[ 86.582375@0] input: hmnvdk IIC2HID as /devices/platform/ff500000.dwc3/xhci-hcd.0.auto/usb1/1-1/1-1.4/1-1.4.4/1-1.4.4:1.0/0003:10C4:81B9.0002/input/input8
[ 86.593617] <6>[ 86.593617@0] hid-multitouch 0003:10C4:81B9.0002: input,hidraw1: USB HID v1.11 Device [hmnvdk IIC2HID] on usb-xhci-hcd.0.auto-1.4.4/input0
dumpsys input:
Device 9: hmnvdk IIC2HID
Generation: 49
IsExternal: true
HasMic: false
Sources: 0x00001002
KeyboardType: 0
Motion Ranges:
X: source=0x00001002, min=0.000, max=1079.000, flat=0.000, fuzz=0.000, resolution=7.906
Y: source=0x00001002, min=0.000, max=1919.000, flat=0.000, fuzz=0.000, resolution=8.433
PRESSURE: source=0x00001002, min=0.000, max=1.000, flat=0.000, fuzz=0.000, resolution=0.000
SIZE: source=0x00001002, min=0.000, max=1.000, flat=0.000, fuzz=0.000, resolution=0.000
TOUCH_MAJOR: source=0x00001002, min=0.000, max=2202.907, flat=0.000, fuzz=0.000, resolution=0.000
TOUCH_MINOR: source=0x00001002, min=0.000, max=2202.907, flat=0.000, fuzz=0.000, resolution=0.000
TOOL_MAJOR: source=0x00001002, min=0.000, max=2202.907, flat=0.000, fuzz=0.000, resolution=0.000
TOOL_MINOR: source=0x00001002, min=0.000, max=2202.907, flat=0.000, fuzz=0.000, resolution=0.000
ORIENTATION: source=0x00001002, min=-1.571, max=1.571, flat=0.000, fuzz=0.000, resolution=0.000
Touch Input Mapper (mode - direct):
Parameters:
GestureMode: multi-touch
DeviceType: touchScreen
AssociatedDisplay: hasAssociatedDisplay=true, isExternal=true, displayId=''
OrientationAware: true
Raw Touch Axes:
X: min=0, max=2048, flat=0, fuzz=0, resolution=9
Y: min=0, max=2048, flat=0, fuzz=0, resolution=15
Pressure: unknown range
TouchMajor: min=0, max=255, flat=0, fuzz=0, resolution=10
TouchMinor: min=0, max=255, flat=0, fuzz=0, resolution=10
ToolMajor: unknown range
ToolMinor: unknown range
Orientation: min=0, max=1, flat=0, fuzz=0, resolution=0
Distance: unknown range
TiltX: unknown range
TiltY: unknown range
TrackingId: min=0, max=65535, flat=0, fuzz=0, resolution=0
Slot: min=0, max=4, flat=0, fuzz=0, resolution=0
Calibration:
touch.size.calibration: geometric
touch.pressure.calibration: none
touch.orientation.calibration: interpolated
touch.distance.calibration: none
touch.coverage.calibration: none
Affine Transformation:
X scale: 1.000
X ymix: 0.000
X offset: 0.000
Y xmix: 0.000
Y scale: 1.000
Y offset: 0.000
Viewport: displayId=0, orientation=1, logicalFrame=[0, 0, 1080, 1920], physicalFrame=[0, 0, 1080, 1920], deviceSize=[1080, 1920]
SurfaceWidth: 1920px
SurfaceHeight: 1080px
SurfaceLeft: 0
SurfaceTop: 0
SurfaceOrientation: 1
Translation and Scaling Factors:
XTranslate: 0.000
YTranslate: 0.000
XScale: 0.937
YScale: 0.527
XPrecision: 1.067
YPrecision: 1.897
GeometricScale: 0.732
PressureScale: 0.000
SizeScale: 0.004
OrientationScale: 1.571
DistanceScale: 0.000
HaveTilt: false
TiltXCenter: 0.000
TiltXScale: 0.000
TiltYCenter: 0.000
TiltYScale: 0.000
Last Raw Button State: 0x00000000
Last Raw Touch: pointerCount=0
Last Cooked Button State: 0x00000000
Last Cooked Touch: pointerCount=0
Stylus Fusion:
ExternalStylusConnected: false
External Stylus ID: -1
External Stylus Data Timeout: 9223372036854775807
External Stylus State:
When: 9223372036854775807
Pressure: 0.000000
Button State: 0x00000000
Tool Type: 0
Configuration:
ExcludedDeviceNames: []
VirtualKeyQuietTime: 0.0ms
PointerVelocityControlParameters: scale=1.000, lowThreshold=500.000, highThreshold=3000.000, acceleration=3.000
WheelVelocityControlParameters: scale=1.000, lowThreshold=15.000, highThreshold=50.000, acceleration=4.000
PointerGesture:
Enabled: true
QuietInterval: 100.0ms
DragMinSwitchSpeed: 50.0px/s
TapInterval: 150.0ms
TapDragInterval: 300.0ms
TapSlop: 20.0px
MultitouchSettleInterval: 100.0ms
MultitouchMinDistance: 15.0px
SwipeTransitionAngleCosine: 0.3
SwipeMaxWidthRatio: 0.2
MovementSpeedRatio: 0.8
ZoomSpeedRatio: 0.3
Viewports:
ViewportInternal:
Viewport: displayId=0, orientation=1, uniqueId='', logicalFrame=[0, 0, 1080, 1920], physicalFrame=[0, 0, 1080, 1920], deviceSize=[1080, 1920]
ViewportExternal:
Viewport: displayId=0, orientation=1, uniqueId='', logicalFrame=[0, 0, 1080, 1920], physicalFrame=[0, 0, 1080, 1920], deviceSize=[1080, 1920]
ViewportVirtual:
Input Dispatcher State:
DispatchEnabled: 1
DispatchFrozen: 0
FocusedApplication: name='AppWindowToken{930e8f8 token=Token{dd7385b ActivityRecord{6df6b6a u0 com.android.launcher3/.Launcher t2}}}', dispatchingTimeout=5000.000ms
FocusedWindow: name='Window{c255a2 u0 com.android.launcher3/com.android.launcher3.Launcher}'
TouchStates: <no displays touched>
Windows:
0: name='Window{bd86666 u0 NavigationBar}', displayId=0, paused=false, hasFocus=false, hasWallpaper=false, visible=true, canReceiveKeys=false, flags=0x21840068, type=0x000007e3, layer=0, frame=[0,1824][1080,1920], scale=1.000000, touchableRegion=[0,1824][1080,1920], inputFeatures=0x00000000, ownerPid=3570, ownerUid=10031, dispatchingTimeout=5000.000ms
1: name='Window{b685e4e u0 StatusBar}', displayId=0, paused=false, hasFocus=false, hasWallpaper=false, visible=true, canReceiveKeys=false, flags=0x81840048, type=0x000007d0, layer=0, frame=[0,0][1080,48], scale=1.000000, touchableRegion=[0,0][1080,48], inputFeatures=0x00000000, ownerPid=3570, ownerUid=10031, dispatchingTimeout=5000.000ms
2: name='Window{d517f3c u0 AssistPreviewPanel}', displayId=0, paused=false, hasFocus=false, hasWallpaper=false, visible=false, canReceiveKeys=false, flags=0x01000118, type=0x000007f1, layer=0, frame=[0,1920][1080,1920], scale=1.000000, touchableRegion=<empty>, inputFeatures=0x00000000, ownerPid=3570, ownerUid=10031, dispatchingTimeout=5000.000ms
3: name='Window{9f04731 u0 DockedStackDivider}', displayId=0, paused=false, hasFocus=false, hasWallpaper=false, visible=false, canReceiveKeys=false, flags=0x21840028, type=0x000007f2, layer=0, frame=[0,0][0,0], scale=1.000000, touchableRegion=[-96,0][96,96], inputFeatures=0x00000000, ownerPid=3570, ownerUid=10031, dispatchingTimeout=5000.000ms
4: name='Window{c255a2 u0 com.android.launcher3/com.android.launcher3.Launcher}', displayId=0, paused=false, hasFocus=true, hasWallpaper=true, visible=true, canReceiveKeys=true, flags=0x81910120, type=0x00000001, layer=0, frame=[0,0][1080,1920], scale=1.000000, touchableRegion=[0,0][1080,1920], inputFeatures=0x00000000, ownerPid=4168, ownerUid=10015, dispatchingTimeout=5000.000ms
5: name='Window{2115bed u0 com.android.systemui.ImageWallpaper}', displayId=0, paused=false, hasFocus=false, hasWallpaper=false, visible=true, canReceiveKeys=false, flags=0x00010318, type=0x000007dd, layer=0, frame=[0,0][1243,1920], scale=1.000000, touchableRegion=[0,0][1243,1920], inputFeatures=0x00000000, ownerPid=3570, ownerUid=10031, dispatchingTimeout=5000.000ms
MonitoringChannels:
0: 'WindowManager (server)'
RecentQueue: length=10
DeviceResetEvent(deviceId=4), policyFlags=0x00000000, age=961119.6ms
DeviceResetEvent(deviceId=3), policyFlags=0x00000000, age=961119.6ms
DeviceResetEvent(deviceId=1), policyFlags=0x00000000, age=961119.6ms
ConfigurationChangedEvent(), policyFlags=0x00000000, age=961119.6ms
DeviceResetEvent(deviceId=8), policyFlags=0x00000000, age=887691.0ms
ConfigurationChangedEvent(), policyFlags=0x00000000, age=887691.0ms
DeviceResetEvent(deviceId=8), policyFlags=0x00000000, age=610267.4ms
ConfigurationChangedEvent(), policyFlags=0x00000000, age=610267.4ms
DeviceResetEvent(deviceId=9), policyFlags=0x00000000, age=598895.1ms
ConfigurationChangedEvent(), policyFlags=0x00000000, age=598895.1ms
PendingEvent: <none>
InboundQueue: <empty>
ReplacedKeys: <empty>
Connections:
0: channelName='WindowManager (server)', windowName='monitor', status=NORMAL, monitor=true, inputPublisherBlocked=false
OutboundQueue: <empty>
WaitQueue: <empty>
1: channelName='9f04731 DockedStackDivider (server)', windowName='Window{9f04731 u0 DockedStackDivider}', status=NORMAL, monitor=false, inputPublisherBlocked=false
OutboundQueue: <empty>
WaitQueue: <empty>
2: channelName='c255a2 com.android.launcher3/com.android.launcher3.Launcher (server)', windowName='Window{c255a2 u0 com.android.launcher3/com.android.launcher3.Launcher}', status=NORMAL, monitor=false, inputPublisherBlocked=false
OutboundQueue: <empty>
WaitQueue: <empty>
3: channelName='b685e4e StatusBar (server)', windowName='Window{b685e4e u0 StatusBar}', status=NORMAL, monitor=false, inputPublisherBlocked=false
OutboundQueue: <empty>
WaitQueue: <empty>
4: channelName='pip_input_consumer (server)', windowName='?', status=NORMAL, monitor=false, inputPublisherBlocked=false
OutboundQueue: <empty>
WaitQueue: <empty>
5: channelName='bd86666 NavigationBar (server)', windowName='Window{bd86666 u0 NavigationBar}', status=NORMAL, monitor=false, inputPublisherBlocked=false
OutboundQueue: <empty>
WaitQueue: <empty>
6: channelName='2115bed com.android.systemui.ImageWallpaper (server)', windowName='Window{2115bed u0 com.android.systemui.ImageWallpaper}', status=NORMAL, monitor=false, inputPublisherBlocked=false
OutboundQueue: <empty>
WaitQueue: <empty>
7: channelName='d517f3c AssistPreviewPanel (server)', windowName='Window{d517f3c u0 AssistPreviewPanel}', status=NORMAL, monitor=false, inputPublisherBlocked=false
OutboundQueue: <empty>
WaitQueue: <empty>
AppSwitch: not pending
Configuration:
KeyRepeatDelay: 50.0ms
KeyRepeatTimeout: 500.0ms