From: Rene v. P. <ren...@gm...> - 2008-02-12 12:30:30
|
Hi all, I sent a message here a few days ago, and that did not generate much response. So I went ahead and did what I thought was best. The issue I had was that the wacom driver for the tablet PC's (Toshiba Portege M700) we bought for our flight test instrumentation system did not work for me. I sent the message to see if there were "worksforme" responses, but I did not see any, and I found only more problem reports by others with similar hardware. So, I started to dig, and found: 1) The baud speed at which the driver was programming the serial port was too low. A setting of 38400 works fine 2) Initial reading of the serial port at low speed failed. The response programmed in the code was to re-open the port with a higher speed (in isdv4GetRanges), but the code subsequently did not re-read the configuration; the result is an invalid range, a nice divide by 0 and a crash at using the pen. 3) The handling of pen and touch (finger) data was not working. I re-wrote most of isdv4Parse. The result (for me), is a perfectly working pen and finger (touch) input device. Both stylus and eraser are OK, stylus does button 1 and 2, eraser only 1, both correctly do pressure. Touch input is OK, but of course has only button 1. Proximity events are properly sent (it was quite a puzzle to eliminate dragging effects for the touch input when touching different spots on the screen). This works under OpenSuse 10.3 xorg-x11-server 7.2 The only thing that could be improved is that now the touch coordinates use a fixed range (4096), which is mapped to the pen range, and that no user-configurable corrections to scaling are possible. I gladly leave that bit to anyone interested. I am attaching two files, one is the (slightly updated) python script that I used to debug the pen messages, and the other is a patch (on wcmISDV4.c and the ChangeLog). Of course, there might be machines for which the current wcmISDV4.c file works flawlessly, and I have been dealing with a different version of the protocol, in that case feel free to use this patch for adding that new protocol. here is the configuration from xorg.conf: --------------------------- Section "InputDevice" Driver "wacom" Identifier "cursor" Option "Device" "/dev/ttyS0" Option "Type" "cursor" Option "Mode" "absolute" Option "debuglevel" "8" Option "ForceDevice" "ISDV4" EndSection Section "InputDevice" Driver "wacom" Identifier "stylus" Option "Device" "/dev/ttyS0" Option "Mode" "absolute" Option "Type" "stylus" Option "debuglevel" "8" Option "ForceDevice" "ISDV4" EndSection Section "InputDevice" Driver "wacom" Identifier "eraser" Option "Device" "/dev/ttyS0" Option "Type" "eraser" Option "Mode" "absolute" Option "debuglevel" "8" Option "ForceDevice" "ISDV4" EndSection --------------------------- Greetings, Rene |