Won't that make multiple copies of the 'global' function,
with module specific extended names, in the final code?
MS

Kevin Klues wrote:
Again, bad style, but there's nothing really preventing you from just creating a c-style function in a header file, and then #including it in any component you wish to use it in. You can even declare it in a header file, #include that file in any components you wish to use it, and then implement it within the body of one of your TinyOS modules so that it will have access to the variables defined in that module. To go this route, you need to add some nesC attributes to your function definition though. Take a look at the defintiion of uart_putchar() in tos/lib/printf/PrintfP.nc for an example. And take a look at chapter 9 of the TinyOS programming Manual to understand what these attributes are doing.

http://csl.stanford.edu/~pal/pubs/tinyos-programming.pdf

Kevin

On Dec 14, 2007 8:12 AM, Greg Hackmann < [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>> wrote:

    Michiel Konstapel wrote:
     >> I'm wondering whether I can define global function.
     >> The global function mean, I define a function in
     >> component A, and I can call this function in component
     >> B without using interface, just call the function directly?
     >
     > No, all interaction between components has to go through the
    commands and
     > events they define in their interfaces. Well, you could probably
    hack your
     > way there, but you're not really supposed to.

    Actually, you can have components provide and use commands and events
    that aren't tied to any interfaces; e.g.:

    module SomeComponentP {
     provides command bool someCommand(uint8_t param);
    }
    implementation {
     command bool someCommand(uint8_t param) {
       ...
     }
    }

    This feature is used in a handful of places in TinyOS 2.0, like the
    TOSSIM ActiveMessage layer.  See
    tos/lib/tossim/ActiveMessageAddressC.nc and
    tos/lib/tossim/TossimActiveMessageP.nc for an example.

    Doing this is arguably bad style, but it's possible nonetheless.

    Greg Hackmann
    _______________________________________________
    Tinyos-help mailing list
    [email protected]
    <mailto:[email protected]>
    https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help




--
~Kevin


------------------------------------------------------------------------

_______________________________________________
Tinyos-help mailing list
[email protected]
https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help

--
Platform: WinXP/Cygwin
TinyOS version: 1.x, Boomerang
Programmer: MIB510
Device(s): Mica2, MicaZ, Tmote
Sensor board: homebrew

_______________________________________________
Tinyos-help mailing list
[email protected]
https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help

Reply via email to