Exercise component-1 solution and TimerComponent

In rtt-exercises-1.10.0/controller-1-solution (a) Automatic and manual control are simultaneously start()-ed after startup; (b) The Timer component fails to shut down cleanly.

On Ubuntu Jaunty with

orocos-ocl-1.10.1 orocos-rtt-1.10.1 rtt-examples-1.10.0 rtt-exercises-1.10.0

The solution rtt-exercises-1.10.0/controller-1-solution/ mostly works. However (1) In application.cpf the Joystick component is set to auto-start, which seems to me to be incorrect; (2) On quitting, the following repeated error is logged, and the program does not terminate:

 8.472 [ ERROR  ][DeploymentComponent::startComponents] Could not unload Component Timer: still running.
 8.472 [ ERROR  ][DeploymentComponent::startComponents] Could not unload Component Timer: still running.
 8.472 [ ERROR  ][DeploymentComponent::startComponents] Could not unload Component Timer: still running.
 [Repeated ad infinitum]
This is probably because of an error that occurs when the deployer shuts down the components:
 7.605 [ Warning][DeploymentComponent::stopComponents] Failed to stop thread NonPeriodicActivity: breakLoop() returned false.
Two attempts at Timer.stop are required, with sufficient time in between, in order to stop the Timer component:

 deployer-gnulinux --start deployment/application.cpf -linfo
 ...
 (type 'ls' for context info) :ls
 
 Listing TaskContext Deployer :
 ...
 Peers        : Automatic[R] Controller[R] Joystick[S] ModeSwitch[R] Plant[R] Reporting[S] Timer[R] 
 ...
 
 (type 'ls' for context info) :Timer.stop
       Got :Timer.stop
 9.703 [ Warning][ModeSwitch] Failed to stop thread NonPeriodicActivity: breakLoop() returned false.
  = false               
 
 In Task Deployer[S]. (Status of last Command : none )
 (type 'ls' for context info) :ls

 Listing TaskContext Deployer :
 ...
 Peers        : Automatic[S] Controller[R] Joystick[S] ModeSwitch[R] Plant[R] Reporting[S] Timer[R] 
At this point, quitting or stopping Timer both work fine.

/Alex

Exercise component-1 solution and TimerComponent

On Wed, Nov 18, 2009 at 22:49, <alex [dot] stark [..] ...> wrote:
> In rtt-exercises-1.10.0/controller-1-solution (a) Automatic and manual control are simultaneously start()-ed after startup;

Oops ! I would guess starting in manual makes more sense.

(b) The Timer component fails to shut down cleanly.

We tried to fix that, but the necessary patch was accidentally left
out. We can't backport it to 1.10, or we need to redefine what 'binary
compatibility' means.

If you use OCL trunk, it will/should work.

>
> On Ubuntu Jaunty with
>
> orocos-ocl-1.10.1
> orocos-rtt-1.10.1
> rtt-examples-1.10.0
> rtt-exercises-1.10.0
>
> The solution rtt-exercises-1.10.0/controller-1-solution/ mostly works.  However
> (1) In application.cpf the Joystick component is set to auto-start, which seems to me to be incorrect;

The state machine should decide.

> (2) On quitting, the following repeated error is logged, and the program does not terminate:
>
>  8.472 [ ERROR  ][DeploymentComponent::startComponents] Could not unload Component Timer: still running.
>  8.472 [ ERROR  ][DeploymentComponent::startComponents] Could not unload Component Timer: still running.
>  8.472 [ ERROR  ][DeploymentComponent::startComponents] Could not unload Component Timer: still running.
>  [Repeated ad infinitum]
>
> This is probably because of an error that occurs when the deployer shuts down the components:
>  7.605 [ Warning][DeploymentComponent::stopComponents] Failed to stop thread NonPeriodicActivity: breakLoop() returned false.
>
> Two attempts at Timer.stop are required, with sufficient time in between, in order to stop the Timer component:
>
>
>  deployer-gnulinux --start deployment/application.cpf -linfo
>  ...
>  (type 'ls' for context info) :ls
>
>  Listing TaskContext Deployer :
>  ...
>  Peers        : Automatic[R] Controller[R] Joystick[S] ModeSwitch[R] Plant[R] Reporting[S] Timer[R]
>  ...
>
>  (type 'ls' for context info) :Timer.stop
>       Got :Timer.stop
>  9.703 [ Warning][ModeSwitch] Failed to stop thread NonPeriodicActivity: breakLoop() returned false.
>  = false
>
>  In Task Deployer[S]. (Status of last Command : none )
>  (type 'ls' for context info) :ls
>
>  Listing TaskContext Deployer :
>  ...
>  Peers        : Automatic[S] Controller[R] Joystick[S] ModeSwitch[R] Plant[R] Reporting[S] Timer[R]
>
> At this point, quitting or stopping Timer both work fine.

Annoying indeed.

Peter

Exercise component-1 solution and TimerComponent

In rtt-exercises-1.10.0/controller-1-solution (a) Automatic and manual control are simultaneously start()-ed after startup; (b) The Timer component fails to shut down cleanly.

On Ubuntu Jaunty with

orocos-ocl-1.10.1
orocos-rtt-1.10.1
rtt-examples-1.10.0
rtt-exercises-1.10.0

The solution rtt-exercises-1.10.0/controller-1-solution/ mostly works. However
(1) In application.cpf the Joystick component is set to auto-start, which seems to me to be incorrect;
(2) On quitting, the following repeated error is logged, and the program does not terminate:

8.472 [ ERROR ][DeploymentComponent::startComponents] Could not unload Component Timer: still running.
8.472 [ ERROR ][DeploymentComponent::startComponents] Could not unload Component Timer: still running.
8.472 [ ERROR ][DeploymentComponent::startComponents] Could not unload Component Timer: still running.
[Repeated ad infinitum]

This is probably because of an error that occurs when the deployer shuts down the components:
7.605 [ Warning][DeploymentComponent::stopComponents] Failed to stop thread NonPeriodicActivity: breakLoop() returned false.

Two attempts at Timer.stop are required, with sufficient time in between, in order to stop the Timer component:

deployer-gnulinux --start deployment/application.cpf -linfo
...
(type 'ls' for context info) :ls

Listing TaskContext Deployer :
...
Peers : Automatic[R] Controller[R] Joystick[S] ModeSwitch[R] Plant[R] Reporting[S] Timer[R]
...

(type 'ls' for context info) :Timer.stop
Got :Timer.stop
9.703 [ Warning][ModeSwitch] Failed to stop thread NonPeriodicActivity: breakLoop() returned false.
= false

In Task Deployer[S]. (Status of last Command : none )
(type 'ls' for context info) :ls

Listing TaskContext Deployer :
...
Peers : Automatic[S] Controller[R] Joystick[S] ModeSwitch[R] Plant[R] Reporting[S] Timer[R]

At this point, quitting or stopping Timer both work fine.

/Alex