[Tinyos-help] TOSSIM-T2
Philip Levis
pal at cs.stanford.edu
Fri May 2 17:19:56 PDT 2008
On May 2, 2008, at 4:33 PM, Paul Stickney wrote:
> Hello,
>
> TOSSIM-T2 seems to have undergone a complete transformation from the
> TOSSIM present in the TOS 1.x line.
> In particular, TOSSIM-T2 (and Python) now appears to work directly
> through a C++/SWIG interface while it (TinyViz, Tython) had a JVM
> interface. While TOS 2.x changes appear to be a *good* thing, TinyViz
> (and the related plug ins) no longer seem to be usable in any extent.
> I have been searching the mailing lists, but have not found sufficient
> answers and new solutions.
>
> 1a) Is there a nice (read GUI) program to interface with TOSSIM-T2 and
> interact with the network?
No. The intention was that by having a Python/C++ interface, it would
be easy for someone to write one.
When I wrote TOSSIM for T2, I explicitly avoided doing this, for 2
reasons. First of all, any GUI-based interface is inherently
unrepeatable. Better to have scripting (this is what motivated Tython
in 1.x). Second, getting TinyViz to be useable required punching a few
holes in the simulator/mote boundary (such as FakeLocation), which
then led some systems and protocols to depend on information which
would never be possible to obtain in a real network.
> 1b) If (or if not), what tools are used to "visualize" the network
> and/or provide the capabilities some of the TinyViz plugins provided?
> (I am discounting MViz because it is both application-specific and not
> particularly designed to work with TOSSIM--please correct me if I am
> missing something big here).
You're correct about MViz.
To the best of my knowledge, there are no publicly available tools.
Someone might have written one, though.
>
>
> 2a) Is there an easy way of providing feedback to motes while
> bypassing the radio stack?
> In particular, I wish to "simulate sensor data". Looking through the
> C++ driver, there is only an exported getVariable (I believe this
> could be hacked as it seems internally pointer-based, but I'd rather
> not make additions that require patches.)
Currently, there is not. I thought about incorporating a Python/C++
callback mechanism for ADCs, but the overhead is pretty high and I
wasn't sure this was the right answer. If you're willing to go with C+
+, writing your own accessor function is really easy: just write a
TinyOS sensor module that calls a C accessor function, and write a
mutator function that your C++ driver can call. Going through Python
would require using SWIG to export the call.
>
>
> 2b) Is there a way for TOSSIM-T2 to [cleanly] post an event to a
> simulated mote (outside of packet injections)?
No, as there's no clear definition of what such an event might be.
Again, if you are willing to go with C++, then you can write a TinyOS
module which defines a C function that posts a task. Your driver could
call this function. The one trick is that you'd need to make sure that
the right mote is executing. Or, you can do the standard TOSSIM trick
you see in a few places of setting current mote to be the desired
mote, doing the operation, then changing it back to the "real"
executing mote.
> 3) Does anyone know of a [good] way to create a TOSSIM-T2 <-> JVM
> interface?
> I suppose it would be to much to hope for a simple, clean, and easy
> way to do this.
SWIG?
Phil
More information about the Tinyos-help
mailing list