Mojtaba,

Which node is 1 sending to and when??? I see that the node boot times are pretty far spaced apart. It could be that if you're sending from 1 to 2, node 2 is not booted up when node 1 sends, thus, it will never receive an ACK and sendDone will never be called.

-Paul

mojtaba raznahan wrote:
Hi Paul,

Thank you very much for answer.
I checked out this problem,but still doen't work!!
This is my simulation code and node 1 is the sender node :(Is it correct ?)

#! /usr/bin/python

import TOSSIM
import sys
import random

from TOSSIM import *

t = TOSSIM.Tossim([])
r = t.radio();

for i in range(0, 3):
  m = t.getNode(i);
  m.bootAtTime(5000003 * i + 1);

r.add(1,0,-50.0);
r.add(0,1,-50.0);
r.add(1,2,-50.0);
r.add(2,1,-50.0);
r.add(2,0,-50.0);
r.add(0,2,-50.0);



t.addChannel("Boot",sys.stdout);
t.addChannel("Base",sys.stdout);
t.addChannel("Receive",sys.stdout);
t.addChannel("Control",sys.stdout);

for i in range(0, 1000):
  t.runNextEvent();

sincerley,
Mojtaba


On Sat, Nov 14, 2009 at 8:11 PM, Paul Johnson <[email protected] <mailto:[email protected]>> wrote:

    Mojtaba,

    Make sure when you are setting up your links in the simulation you
    set up BOTH directions of the link.  For example if you're trying
    to send something from node 1 to node 2, you need to define the
    gain for link 1->2 and from 2->1.  Otherwise, 1 will be able to
    send to 2, but 2 will never respond with an ACK.

    -Paul

    mojtaba raznahan wrote:

    Really need your helps...

    Can't anybody help me ??

    Does it related to simulation section ??





    On Tue, Nov 10, 2009 at 10:09 PM, mojtaba raznahan
    <[email protected] <mailto:[email protected]>>
    wrote:

        I'm still bickering with this issue...some help plz


        On Tue, Nov 10, 2009 at 7:44 PM, mojtaba raznahan
        <[email protected]
        <mailto:[email protected]>> wrote:

            How can i make sure that the message ACK is active or not
            ? I have not worked with ACK yet


            On Tue, Nov 10, 2009 at 7:26 PM, Ricardo .
            <[email protected]
            <mailto:[email protected]>> wrote:

                I read one of the threads that the cause of the issue
                might be the ACK messages.  ACK will arrive at the
                event will never be signaled.  If the message ACK is
active and no ACK is received sendDone is not signaled.

                On Tue, Nov 10, 2009 at 3:37 PM, mojtaba raznahan
                <[email protected]
                <mailto:[email protected]>> wrote:

                    Hi Ricardo,

                    Thanks for reply. I wrote a dbg statement in
                    first of sendDone event but ...the sendDone event
                    is not signaled at all!


                    event void AMSend.sendDone(message_t* bufPtr,
                    error_t error)
                    {
                       * dbg("Base","sendDone %s
                    .\n",sim_time_string());*

                        if (&pkt == bufPtr) {
                          busy = FALSE;
                        }

                    }

                    There isn'nt any statement to print while
                    simulating!!!!

                    Really confused! What's your idea ??
                    Does it related to Radio configuration of
                    simulation code ?(python code ?)




                    On Tue, Nov 10, 2009 at 6:43 PM, Ricardo .
                    <[email protected]
                    <mailto:[email protected]>> wrote:

                        Try print the value of error_t error in
                        sendDone event

                        On Mon, Nov 9, 2009 at 3:53 PM, mojtaba
                        raznahan <[email protected]
                        <mailto:[email protected]>> wrote:

                            Hi,

                            Im writing a simple application to test
                            send and receive of motes .AMSend.send
                            command works but AMSend.sendDone event
                            isn't signaled after sending so the busy
                            flag does'nt change to false. and in the
                            next time the AMSend.send command does
                            not return SUCCESS .
                            this is my code :

                            event void Boot.booted() {
                            dbg("Boot","Booted at time %s
                            .\n",sim_time_string());
                            call AMControl.start();
                            }

                            event void AMControl.startDone(error_t err)
                            {
                            dbg("Control","AMControl started %s
                            .\n",sim_time_string());
                              if(err == SUCCESS) {
                               if(TOS_NODE_ID == 1 ) {
                                dbg("Base","This is the base
                            station...ready for sending packets
                            %s.\n",sim_time_string());
                                call Timer.startPeriodic(TIMER_DELAY);
                                }
                            }
                              else
                               call AMControl.start();
                            }

                            event void AMControl.stopDone(error_t err)
                            {
}

                            event void Timer.fired()
                            {

                               if(!busy)
                                  {
RbsMsg* data = (RbsMsg*) (
                            call Packet.getPayload(&pkt,sizeof(RbsMsg)));
                                      data->count = counter;
                                       if( call
                            AMSend.send(AM_BROADCAST_ADDR,&pkt,sizeof(RbsMsg))
                            == SUCCESS)
                                       {
                                         dbg("Base","Packet sent
                            %s.\n",sim_time_string());
                                         busy= TRUE;
                                         counter++;
                                        }
                                else
                                   dbg("Base","was not SUCCESSFULL %s
                            .\n",sim_time_string());
}

                            }

                            --------------------
                            event void AMSend.sendDone(message_t*
                            bufPtr, error_t error)
                            {
if (&pkt == bufPtr) {
                                  busy = FALSE;
                                  dbg("Base","send Done %s
                            .\n",sim_time_string());
                                }

                            }

                            and this is my simulation code with python :

                            #! /usr/bin/python

                            import sys
                            import random
                            from TOSSIM import *
                            t = Tossim([])
                            r = t.radio();

                            for i in range (0, 3):
                             m = t.getNode(i);
                             m.bootAtTime(1000 * i+ 1);

                            r.add(1, 0, -54.0);
                            r.add(1, 2, -54.0);
                            r.add(0, 2, -20.0);
                            r.add(2, 0, -20.0);

t.addChannel("Boot",sys.stdout);
                            t.addChannel("Base",sys.stdout);
                            t.addChannel("Receive",sys.stdout);
                            t.addChannel("Control",sys.stdout);

                            for i in range(0, 20000):
                              t.runNextEvent();


                            Would you help me please? i really need
                            your helps.

                            Regards,
-- Mojtaba Raznahan
                            BS of Computer engineering
                            TMU university
                            www.raznahan.com <http://www.raznahan.com>

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





-- Mojtaba Raznahan
                    BS of Computer engineering
                    TMU university
                    www.raznahan.com <http://www.raznahan.com>



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




-- Mojtaba Raznahan
            BS of Computer engineering
            TMU university
            www.raznahan.com <http://www.raznahan.com>




-- Mojtaba Raznahan
        BS of Computer engineering
        TMU university
        www.raznahan.com <http://www.raznahan.com>




-- Mojtaba Raznahan
    BS of Computer engineering
    TMU university
    www.raznahan.com <http://www.raznahan.com>
    ------------------------------------------------------------------------
    _______________________________________________ Tinyos-help
    mailing list [email protected]
    <mailto:[email protected]>
    https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help




--
Mojtaba Raznahan
BS of Computer engineering
TMU university
www.raznahan.com <http://www.raznahan.com>

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

Reply via email to