The multinode simulator (not yet released) uses this capability.  Indeed,
just changing the macros it was trivial to represent many nodes on one
process with no change to the component code.

D.

Jason Hill wrote:

> There are several reasons for the frame.  First, it places all of the
> component's local state in it's own name space.  This allows all of the
> components to have a variable named "state" for example.  Additionally,
> it prevents components from accessing other component's private state.
> This is an attempt to force components to interact through the narrow
> interface of commands and events.  Finally, it allows us to modify the
> memory and storage models without modifying the components.   We have
> not released any code that does this yet, however we are leveraging this
> capability in our multimode simulator.
>
> Jason
>
>  -----Original Message-----
> From:   Jeremy Elson [mailto:[EMAIL PROTECTED]]
> Sent:   Thursday, June 21, 2001 9:14 PM
> To:     [EMAIL PROTECTED];
> [EMAIL PROTECTED]
> Subject:        [tinyos@mm] What's the purpose of TOS_FRAME_BEGIN/END
> and VAR?
>
> Hi folks,
>
> I was wondering if there's a hidden purpose I'm not seeing to the
> TOS_FRAME_BEGIN/END and VAR macros.  It looks like they are just
> helping to define a structure, declare one instance of that structure,
> and then (using VAR) reference fields of the instance.
>
> Why is all this done?  Do global variables have to be contained in a
> structure for some reason?  Can I just declare global variables and
> use them, like I would in a normal C program?
>
> Thanks,
> -Jer

Reply via email to