Script commands with non periodic activities

Hello,

I am using Orocos RTT 1.6 under Linux.

I have a component with non periodic activity in the state "running". I am trying to add a command at run time to this component using script : I load a script (from the taskBrowser) containing :

export function cmdTest
{
    do mthLog("hello");
    // ...
}

Loading the program works. The command cmdTest is present in my component interface (I can see it through the TaskBrowser).

But when I call the command : cmdTest() (from the TaskBrowser) I have an error message :

"Command not accepted by TestComponent's Processor !"

If I do the same with a periodic activity, I do not have the problem, the command is executed.

Is it normal ? Did I miss something ?

Thank you Renaud Heitz

Script commands with non periodic activities

On Thu, Jul 23, 2009 at 15:57, <renaud [dot] heitz [..] ...> wrote:
> Hello,
>
> I am using Orocos RTT 1.6 under Linux.
>
> I have a component with non periodic activity in the state "running".
> I am trying to add a command at run time to this component using script : I load a script (from the taskBrowser) containing :
>
>

> export function cmdTest
> {
>        do mthLog("hello");
>        // ...
> }
> 

>
> Loading the program works. The command cmdTest is present in my component interface (I can see it through the TaskBrowser).
>
> But when I call the command : cmdTest() (from the TaskBrowser) I have an error message :
>
> "Command not accepted by TestComponent's Processor !"

Bug in the orocos-rtt/src/ProgramProcessor.cpp. Modify line 199 from :

if (this->getActivity() && this->getActivity()->isRunning() && f) {

to:
if (this->getActivity() && this->getActivity()->isActive() && f) {

This bug may be present in other code as well. We should open a bug
report to not lose sight of this. Most code should only check for
isActive(), which has same meaning for periodic and nonperiodic
activities. isRunning() has a different meaning for these two...

Sorry that this bit you. It proves that most users don't use
NonPeriodicActivity that much...

Peter

Script commands with non periodic activities

On Jul 23, 2009, at 10:44 , Peter Soetens wrote:

> On Thu, Jul 23, 2009 at 15:57, <renaud [dot] heitz [..] ...> wrote:
>> Hello,
>>
>> I am using Orocos RTT 1.6 under Linux.
>>
>> I have a component with non periodic activity in the state "running".
>> I am trying to add a command at run time to this component using
>> script : I load a script (from the taskBrowser) containing :
>>
>>

>> export function cmdTest
>> {
>>        do mthLog("hello");
>>        // ...
>> }
>> 

>>
>> Loading the program works. The command cmdTest is present in my
>> component interface (I can see it through the TaskBrowser).
>>
>> But when I call the command : cmdTest() (from the TaskBrowser) I
>> have an error message :
>>
>> "Command not accepted by TestComponent's Processor !"
>
> Bug in the orocos-rtt/src/ProgramProcessor.cpp. Modify line 199 from :
>
>
> if (this->getActivity() && this->getActivity()->isRunning() && f) {
> 

> to:
>
> if (this->getActivity() && this->getActivity()->isActive() && f) {
> 

>
> This bug may be present in other code as well. We should open a bug
> report to not lose sight of this. Most code should only check for
> isActive(), which has same meaning for periodic and nonperiodic
> activities. isRunning() has a different meaning for these two...
>
> Sorry that this bit you. It proves that most users don't use
> NonPeriodicActivity that much...

Actually we use it a lot, and this might explain some of the issues we
have had.

I wonder if this might also aid/cause/explain with the state-machine-
not-finishing bug ...? I will look into it.
S

Script commands with non periodic activities

On Thu, Jul 23, 2009 at 4:44 PM, Peter Soetens <peter [..] ...>wrote:

> On Thu, Jul 23, 2009 at 15:57, <renaud [dot] heitz [..] ...> wrote:
> > Hello,
> >
> > I am using Orocos RTT 1.6 under Linux.
> >
> > I have a component with non periodic activity in the state "running".
> > I am trying to add a command at run time to this component using script :
> I load a script (from the taskBrowser) containing :
> >
> >

> > export function cmdTest
> > {
> >        do mthLog("hello");
> >        // ...
> > }
> > 

> >
> > Loading the program works. The command cmdTest is present in my component
> interface (I can see it through the TaskBrowser).
> >
> > But when I call the command : cmdTest() (from the TaskBrowser) I have an
> error message :
> >
> > "Command not accepted by TestComponent's Processor !"
>
> Bug in the orocos-rtt/src/ProgramProcessor.cpp. Modify line 199 from :
>
>
> if (this->getActivity() && this->getActivity()->isRunning() && f) {
> 

> to:
>
> if (this->getActivity() && this->getActivity()->isActive() && f) {
> 

>
> This bug may be present in other code as well. We should open a bug
> report to not lose sight of this. Most code should only check for
> isActive(), which has same meaning for periodic and nonperiodic
> activities. isRunning() has a different meaning for these two...
>
> Sorry that this bit you. It proves that most users don't use
> NonPeriodicActivity that much...

I do!, I just don't use scripting that much. Luckily for me, if a similar
bug is present in other parts of the code, I haven't encountered them :)

Adolfo.

>
> Peter
> --
> Orocos-Users mailing list
> Orocos-Users [..] ...
> http://lists.mech.kuleuven.be/mailman/listinfo/orocos-users
>