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
|