-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Hi Frank,
after also buying the Qsonic Master Remote 6in1 at pearl, searching for a driver the only thing I found was your post. It is btw. exactly the same as your model (same USB identification and labels). So what I did is get it working as fast as possible and I came over a few things that don't seem to be included within your last post. To complete the view I have to say that I started with the ati_remote driver from kernel version 2.6.4 (ati_remote verison 2.2.0), which has no support for the lola remote controller and there is no command repetition detection. As far as I could compare this version to the one included with kernel 2.6.9 (2.2.1) it seems that there is a repetition detection that discards up to 4-5 commands. During my initial development I recognized the following behaviour, for the Qsonic remote: 1.) Sometimes the initialization, returned one byte 0xFF. The remote works in any case, but could it be that the initialization is not correct? What does this return value states? 2.) The remote distinguishes between 6 operating modes (for PC, TV, VCR, DVD, SAT, AUX). In TV and AUX mode there is no data received by the radio adapter. For the rest of the modes, the codes and repetition is different. The PC mode is the only one which sends data if the mouse emulation buttons are used. I focused on PC mode because of this behaviour. In PC mode there will always be two commands of the same content received for one button press, regardless how short a human could make it. If you keep holding the button pressed the commands are repeated also. The time of the repetitions is 'always' the same, so you can't detect if the key is pressed just once or for a short while. Due to the same size of all time gaps between the commands I could not use the filter mechanism that was already implemented, because it filtered out every repetition with a certain amount of time between the next command, also discarding regular, wanted repetitions, that occur due to a longer button press. So I decided to record the repetition of every command (to make this more clear: the repetition count is handled for every command seperately, I only found one global repetition counter for the lola remote implementation), and only discard the second command, this work well for me (The time between commands is about 100 jiffies for my system (HZ being 1000), so I took a value that is between 100 and 200 (HZ >> 3 actually), to detect if either a repetition occured or the key was releasd meanwhile). 3.) I can't give you any new information on your point nr. 3.), because the situation is exactly the same for me. 4.) Another observation that I did not investigate further is that if you hold down the left mouse button and also use the movement button, it will result in much more movement of the mouse cursor. 5.) I could also not reproduce the length values of 10 or 8 bytes that you state in your post (the commands I received where 4 (for the mouse commands) and 5 (for everything except the mouse commands) bytes in length). Maybe you could go into more detail there. The follwing is what I noted on regarding the different modes(the 1 button is used as an example here): * 1 key analysis: * 1 press and release * * PC-Mode: * 20 ee 11 82 7d * 20 ee 11 82 7d * * TV: no radio signal emitted? * * VCR: * 20 5d d5 82 7d * 20 5d d5 82 7d * * DVD: * 20 c5 3a 99 66 * 20 f5 0a 85 7a * If the button is pressed for a longer period of time, both of the * messages are repeated, so it could not be taken as a indication for * key up and down. * * SAT: * 20 21 3c 40 bf * * AUX: no radio signal emitted? I'm not a kernel driver developer, but adoption of the existing code was not so difficult, so my offer is to assist you in development and of course do some testing, but don't expect too much time that I can spend. With all this sayed I will give you my personal oppinion on your plan: to a) Sounds good, but be aware of the different modes, that can lead to more code tables or a more complex code table. to b) Your objection is ok although I think that it wouldn't matter in practice. to c) Sounds good, but I can't think of such an highly configurable module (which may use a config file for this purpose). Projects such as lirc may be the preferred way to go, but difficult to adopt to the existing scheme (I don't know how the connection to lirc is done, but it gives you the configurability that ony might need). to d) I can't see this atm but maybe there will be a more clear view on these issues in the future. So maybe we could combine the work that we have done on developing this driver. greetings, Jörg -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (GNU/Linux) iD8DBQFCo07XW+J45ls3rm4RAqRJAKCImzlK1mLbhW63KtEmzVvCGrYZRgCg1cLB Onq/Bl/dRRS2GdxqlLqUV6M= =oXGK -----END PGP SIGNATURE----- ------------------------------------------------------- This SF.Net email is sponsored by: NEC IT Guy Games. How far can you shotput a projector? How fast can you ride your desk chair down the office luge track? If you want to score the big prize, get to know the little guy. Play to win an NEC 61" plasma display: http://www.necitguy.com/?r _______________________________________________ linux-usb-devel@lists.sourceforge.net To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel