/srv/irclogs.ubuntu.com/2012/04/18/#ubuntu-touch.txt

=== MacSlow is now known as MacSlow|lunch
=== MacSlow|lunch is now known as MacSlow
* bregma fills his cup from the water cooler14:14
xerenthello! I'm implementing an USB multi-touch microcontroller and am looking for info about which drivers on the linux side I should be working with14:14
bregmacnd, any suggestion? ^^^14:16
cndxerent, are you asking about kernel drivers, or X drivers, or something else?14:16
cnddandrader, tvoss, bregma: standups!14:16
bregmaI finished off the geis branch for grail property settings, I'm not completely14:17
xerentwell, both!14:17
bregma pleased so I'm buffing it, I'll post a merge request in a bit14:17
tvossworking on generic backend and putting some final touches on a huge iteration of the chromium patch14:17
cndI'm going to try to figure out why behemoth touchscreen window motion is slower than expected14:17
cndxerent, what is your end goal?14:17
xerentcnd: we've previously built our apps with Qt, using generic HID kernel and X drivers14:17
xerentand now we're looking to moving from single touch to multi touch14:18
cndfor general purposes, you want to provide multitouch through the kernel evdev interface14:18
cndthe rest of the X stack will take care of things14:18
cndso either you need to create a linux driver, or you need to take the raw events in userspace and reinject them as a new input device using uinput14:19
xerentis there some driver for hid multi-touch digitizers floating around we could use?14:20
dandraderI am frustrated with the brittleness, slowness and unreliability of utouch-* integration tests. Thus I want to make a unit test for geis bug https://bugs.launchpad.net/bugs/984069 instead of an integration test. So right now I'm evaluating the best approach (and feasibility) to isolate the grail backend of utouch-geis, that is, where to draw the lines between live code and mocked code. I believe it should be straightforward to unit test utouch stu14:20
dandraderff. After all, there's a good number of layers and interfaces around  (frame, grail, geis, frontend/backends abstractions) that must help with the isolation.14:20
cndthere's documentation on the evdev protocol in Documentation/input/multi-touch-protocol.txt and Documentation/input/event-codes.txt14:20
xerentcnd: thank you14:20
cndxerent, the generic hid-multitouch driver may work14:20
cndif your device is win7 hid-multitouch compliant14:21
cnddandrader, it would be good if we could fix some of the brittleness too14:21
cndwhat issues were you hitting after we fixed dummy.conf14:22
bregmadandrader, for better unit testing in geis, you'd want to refactor the grail back end for geis to allow for mocking Xlib14:23
bregmaor, at least, someone would want to do that14:24
bregmahmmm, maybe I'll look in to that later today14:24
xerentcnd: we might want to make it compliant in case our customers insist on installing windows on our devices, so :)14:24
cndalso, some of the long waits in the unit tests aren't really necessary if we properly code the tests to look for things like X input event addition events14:25
xerentor, at least, tricking Windows into thinking it's compliant.14:25
bregmaI'm going to want to do a little refactoring to improve unit testing for the upcoming plugin-architecture changes to geis14:25
xerentcnd: anyways, thank you.14:27
cndxerent, np :)14:27
xerentwe're looking into bringing linux-based multi-touch into industrial vehicle controls. my job is awesome.14:30
bregmahow well does multi-touch function in industrial environments?  Does the dust and grim cause problems?14:34
dandradercnd, the dummy xserver keeps hanging around instead of dying. In some tests sometimes there are protocol errors for XIQueryDevice. sometimes no device added events come at all from grail in tests14:35
dandraderthey probably all have the same cause14:35
cndhmm14:35
xerentwell the main problems has been with grounding the PCAP screens and isolating them from EM interference14:35
cndI'm guessing there is a mechanism to be sure that child processes die when parents die, we just need to find it14:36
xerentas for dust, the controls are often placed inside the vehicle (closed space)14:36
xerentthough they are rugged to prevent dust and water etc.14:37
xerentalso temperature might be an issue with some touch screens, but we havn't tested that much yet14:37
bregmacnd: setsid()?14:37
xerentwe usually heat the devices from -40 degrees C to -20 using internal heaters before turning on power14:37
cndbregma, why setsid?14:37
bregmawhen the session group leader dies, all its children should die14:39
bregmaat least, that's the way it used to be, seems things keep changing under me these days14:39
=== dandrader is now known as dandrader|afk
cndhmm14:40
bregmayou turn your back on these linux guys for a minute and they reinvent everything yet again14:40
cndbregma, how are children killed?14:41
cndare they sent a signal?14:41
cndlooks like the child gets SIGHUP?14:42
bregmaI suspect the xorg server may be doing a setsid(), which may be the cause of the problem14:42
bregmaI'm not sure what mechanism is used to kill the children, but sending a HUP followed by a KILL after a timeout rings a bell14:44
bregmaor, no, TERM followed by KILL sounds better14:45
cndbregma, I *think* because we are using the dummy driver setsid() isn't called14:45
bregmayes, and the captive server _usually_ gets shut down14:46
bregmathe fact that it sometimes doesn't smells like some sort of race14:46
cndbregma, well, xorg-gtest isn't calling setsid()14:46
cndso the pgid is left as the pgid of the shell14:46
bregmathat much is certain14:47
cndright?14:47
bregmayes14:47
cndso if we call setsid() we may be able to resolve the issue14:47
bregmait would be awkward to call setsid() in a foreground program, I think14:47
cndhmm14:47
cndbregma, maybe setpgid() for the child process?14:47
cndwould that have the effect we want?14:48
bregmamaybe we just need to have an atexit call that explicitly kills the child....  we shouldn't need to, though, because child processes should die with their parent unless they take special action14:50
bregmawe just need to find out why the captive server is not shutting down14:51
bregmaI shall turn some attention to this, it needs some14:52
cndbregma, dandrader|afk: I don't know off the top of my head under what circumstances the dummy x server will continue to live14:52
cnddo you?14:52
bregmano14:52
bregmathat's why I suspect a race somewhere14:53
=== dandrader|afk is now known as dandrader
cndwhen I run sudo ./check-grail, the sudo process becomes the process group leader for both check-grail and the X server, and bash remains the session leader15:01
cndif I run check-grail and then suspend it with ctrl-shift-z, then I kill the check-grail process, the x server lives on15:03
cndI gdb'd the server process and I got SIGCONT when I killed check-grail15:07
cndoh wait, that was probably because I had stopped it15:08
cndit got SIGPIPE when I killed check-grail while it was running15:10
cndbut it just continues on15:10
cndI'm beginning to think the best we can do is catch all fatal signals in xorg-gtest and terminate the X server15:21
cndobviously we can't catch SIGTERM15:21
cndbut c'est la vie?15:21
cndI mean we can't catch SIGKILL15:22
cndbiab15:29
=== dandrader is now known as dandrader|lunch
=== dandrader|lunch is now known as dandrader
cndbregma, metres?17:39
cndreally?17:40
bregmaaren't the values in metres?17:42
cndbregma, they are in meters!17:48
cndI have no idea what a metre is :)17:49
* bregma considers bitter remarks on cultural hegemony regarding a measurement system not even use use by the hegemon17:49
bregmahttp://en.wikipedia.org/wiki/Metre#Spelling17:53
bregmaI think the threshold properties should have been in furlongs anyway17:54
cndI think it's clear that the US has things correct, and everyone else is stuck in their ways since they use meter for devices but the two terms have the same etymology :)17:55
bregmathe Ubuntu documentation style guide says to use U.S. spellings where there are alternatives, so I will change the comments18:03
bregmaI believe the U.S. spelling is also 'the', so I will change that18:03
cndbregma, I was just joking about metre, but I guess if the ubuntu doc style guide says so...18:21
cndman, where does the time go?19:25
cndit's already lunch time19:25
=== dandrader is now known as dandrader|biab
cndbregma, dandrader|biab: I have xorg-gtest daily builds working again21:14
=== dandrader|biab is now known as dandrader
cndI have to manually push the packaging branch21:14
cndbut now you can use ppa:utouch-team/daily to get the latest fixes21:15
dandraderhmm, opk21:15
dandraderok21:15
cndi.e. please review the patches I sent out and then you can have them too :)21:15
dandraderbtw, the mocking is coming along nicely. I'm mocking all Xlib and XInput calls. Seems that only a very small subset is used by frame+grail+geis21:16
cnddandrader, if you're mocking up X, I would poke robert ancel21:16
cndhe has been mocking up other parts of X for lightdm21:16
cndand has extended an invitation for us to mock up the input stack in his X mock project21:17
cndI just can't remember what the project is called off the top of my head21:17
dandraderah, good to know21:17

Generated by irclog2html.py 2.7 by Marius Gedminas - find it at mg.pov.lt!