-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtest-udev.lua
More file actions
41 lines (40 loc) · 1.43 KB
/
test-udev.lua
File metadata and controls
41 lines (40 loc) · 1.43 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
local udev = require'udev'
local D = require'util'
D'udev:'(udev)
local ctx = udev.context()
D'ctx:'(ctx)
D'sys_path:'(ctx:get_sys_path())
D'dev_path:'(ctx:get_dev_path())
D'run_path:'(ctx:get_run_path())
local monitor = ctx:monitor()
D'monitor:'(monitor)
D'monitor ctx:'(monitor:get_context())
D'monitor filter:'(monitor:filter_add_match_subsystem_devtype("usb", "usb_device"))
D'monitor enable:'(monitor:enable_receiving())
local enum = ctx:enumerate()
D'enumerate:'(enum)
D'enum filter subsystem:'(enum:add_match_subsystem ("usb"))
D'enum filter devtype:'(enum:add_match_property ("DEVTYPE", "usb_device"))
D'enum filter idVendor:'(enum:add_match_sysattr ("idVendor", "16d0"))
D'enum filter idProduct:'(enum:add_match_sysattr ("idProduct", "0450"))
D'enum scan devices:'(enum:scan_devices())
local devs = enum:get_list()
D'enum result:'(devs)
for i,d in ipairs(devs) do
d = ctx:device_from_syspath (d)
D'dev:'(i, d:get_sysattr_value'idVendor', d:get_sysattr_value'idProduct', d:get_sysattr_value'serial')
end
while true do
local dev = monitor:receive_device()
D'monitor receive:'(dev)
local attrs = {}
attrkeys = {
"devpath", "subsystem", "devtype", "syspath", "sysname", "sysnum", "devnode",
"driver", "devnum", "action", "is_initialized", "seqnum", "usec_since_initialized"
}
for _,attr in ipairs(attrkeys) do
attrs[attr] = dev['get_' .. attr](dev)
end
D'dev attrs:'(attrs)
D'dev serial:'(dev:get_sysattr_value'serial')
end