Re: [tuxdroid-user] last gtdi half broken
Status: Beta
Brought to you by:
ks156
From: David B. <da...@ja...> - 2007-04-16 10:28:11
|
On Sat, 14 Apr 2007 16:48:08 +0200, Damien <ror...@gm...> wrote: > Le samedi 14 avril 2007, > Philippe Teuwen <ph...@te...> a écrit : > >> Sometimes the refresh of the GUI doesn't happen, I can click and the >> tux reacts but the gui is not updated. >> When it happens, it happens from the start of the launch of gtdi, >> sometimes frozen with still the red cross on the ttsdaemon status. > > Haven't witnessed this, but I didn't use gtdi much lately. > >> If I click on radio button flips down, it does down,up,down >> If I click on radio button flips up, it does up,down,up,down,small >> pause,up >> If I click flap (1), it does up+down or down+up so 2 >> movements (compared to 1 talk or 1 blink) > > Same bug here. It's not a bug, it's a feature ;-) Short story: To use the flippers, the API should keep track of their position. So if they're low, you move them one time to get them up. It seems the API now uses the reset function to set the position to low, then move one more time to set it high. Long story: There are 3 flipper functions in tux's firmware: stop_wings, wave_wings and reset_wings. The reset is the only one that sets the position of the flippers to a defined state. The position of the flippers is not known inside tux because there's just one switch which is pushed each time the flipper position is toggled, it doesn't tell the absolute position. Now if I run the flipper motor, the time it takes to raise the wings is longer than to lower them (or the opposite) so the reset function uses that, runs the motor, measures the delays to get the absolute position and sets the flippers low. The reset function is called when you power tux in order to always start in the low poition. I plan to add a status that will do it's best to track the absolute wing position but that's a bit more complex than simply toggling a bit when the switch is pressed. When the wings are stopped, usually the switch is pressed or just release. As soon as you push on the flippers manually, the switch may toggle a couple of times as the wings are moving. Moving the flippers manually or triggering the clutch when the motor is running by holding the flippers will also corrupt the position. So we could momentarily change the API but the long term solution will come from new firmware functions to raise/lower the flippers and send back their absolute position. I plan to do some work on the firmware next week when I'll come back at the lab. david |