[Tinyos-help] Calling nesC Commands from C functions

Jay Taneja taneja at cs.berkeley.edu
Fri Jul 7 22:03:43 PDT 2006


David - Thanks for the help. It worked.

Cory - not quite. Interestingly enough, how you solved the problem is
exactly how I had my program working until now. However, I need to be able
to call the variable-argument-list function from my module, but I do not
want the code for the vararg function in that module. That means that
myfun() in your example would need to be a command. As far as I understand,
the limitation with nesC is that there cannot be varargs in commands
(externally exposed), but they are acceptable in internal functions.

Thanks again for the help, guys.

Cheers.

-jay

On 7/7/06, Cory Sharp <cory at moteiv.com> wrote:
>
> Jay, this works fine for me.  Does it do what you want?
>
>   // a portion of a nesC module implementation
>
>   uint16_t m_count;
>
>   void myfun( int n, ... ) {
>     va_list args;
>     int count;
>     va_start( args, n );
>     count = va_arg( args, int );
>     va_end( args );
>     call Leds.set( count );
>   }
>
>   event void Timer.fired() {
>     m_count++;
>     myfun( 1, m_count );
>   }
>
> - Cory
>
> On 7/7/06, Jay Taneja <taneja at cs.berkeley.edu> wrote:
> > Hi,
> >
> > I have a program where some processing is performed in an included C
> > function. Ideally, I would like the C function to call and return the
> > result of a nesC command. The reason I am using C is because the
> > function takes a variable number of arguments, a feature not yet
> > supported in nesC. However, I am unsure if there is any way to call a
> > nesC command in my C function. I realize it is possible to have the C
> > function simply return the parameters to be passed to the nesC
> > command, but that involves two separate operations to be called in my
> > module. Any ideas how to get around this?
> >
> > Here is some simple code:
> >
> > # myfile.h
> > bool my_func(int number, ...);
> >
> > # myfile.c
> > bool my_func(int number, ...) {
> >    return call MyProg.my_cmd(number);
> > }
> >
> > Hopefully I've described the issue enough. Thanks.
> >
> > -jay
> > _______________________________________________
> > Tinyos-help mailing list
> > Tinyos-help at Millennium.Berkeley.EDU
> >
> https://mail.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
> >
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.millennium.berkeley.edu/pipermail/tinyos-help/attachments/20060707/205206e6/attachment.htm


More information about the Tinyos-help mailing list