On Jun 22, 2010, at 5:51 AM, LIU Yu wrote:

> Greetings,
> 
> I am working on an extension to TOSSIM. The idea is to bind Sensor
> components to external data sources (i.e. synthetic data generators or
> DB tables containing real historical data). With such an extension,
> data management algorithms for WSN can be evaluated in a more thorough
> way.  As the development proceeds, I came up with the following
> concerns on how to make the extension less invasive to existing TOSSIM
> code.
> 
> 1. Extending "sim.extra" v.s. Adding a new "sim-custom.extra":
> 
> My extension needs to link a separate object file into the Tossim app.
> So far as I know, this can be done in three ways, i) hack
> "$TOSROOT/support/sim.extra", ii) put custom make rules in app's local
> Makefile, iii) add a new "sim-custom.extra" to "$TOSROOT/support/".
> Unfortunately all three methods have some drawbacks.

Why does it need to link a separate object file? Can you just include the C 
code?


> 
> For the 1st method, existing code of TinyOS distribution needs to be
> modified, which is invasive. And it potentially increases maintanence
> cost (i.e. need to modify all "$TOSROOT/support/sim*.extra, including
> "sim.extra", "sim-fast.extra" and "sim-sf.extra" and those from
> upcoming extensions).
> 
> For the 2nd, the app's local Makefile becomes complicated, and
> contains details that app. developers generally need not to know.
> Worse still, these complicated details are duplicated among all
> relevant app's Makefile.
> 
> For the 3rd, each app. can only be compiled with one particular TOSSIM
> extension. For example, if "sim-custom.extra" is modified from
> "sim.extra", then the resulting app. has to be built with "make micaz
> sim-custom", and it thus cannot utilize TOSSIM Live features (which
> need to be built with "make micaz sim-sf").

Can you work it to include another .extra? So you'd do 'make sim sim-sensors'?
> 
> 
> 2. Custom initialization at the start of TOSSIM applications:
> 
> My extension needs to initialize a *singleton* connection to external
> data source at the start of simulation. I understand this can be done
> by hacking "$TOSROOT/tos/lib/tossim/sim_tossim.c" (i.e. adding the
> custom init() function into sim_init()). But again, this is invasive
> to existing code.
> 
> Of couse, the initialization task can be pushed to app's simulation
> scripts. But I am seeking to avoid this design, because it adds
> potential burden / trap to app. developers.
> 
> Could anyone suggest a better way / place invoking this initialization?

Include a component whose init calls a C function, and the C function only 
opens the connection on its first invocation?

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

Reply via email to