Hi Sara
 
as what I understand in tinyos because I am new in it that 
the command call ReadLight.read();
after read process done the seconde will be 
event void ReadLight.readDone(error_t result, uint16_t data)
so your program may be will not go through sending process.
 
try to change the order of your commands, and sorry if I am wrong.



Thanks  & Have a Nice Day

 
Mohamed

--- On Thu, 4/16/09, Varun Jain <[email protected]> wrote:


From: Varun Jain <[email protected]>
Subject: Re: [Tinyos-help] generate data tinyos
To: "sara so" <[email protected]>
Cc: [email protected]
Date: Thursday, April 16, 2009, 2:10 AM








Hi Sara,
 
Sorry for replying late but I was busy setting up a 25 node Sensor network 
after the Easter break.
 
The code seems to be alright, it seems to be more the Serial side problem. 
Search the list about baudrates and keywords such as "bad packet", "packet too 
long" and I am sure you will be able to find the solution. From my experience, 
try to adjust the baudrate to 57600bps. You need to make changes at two places. 
 
/platform/hardware.h
 
and
 
/support/sdk/java/net/tinyos/packet/Baudrate.java    and then recompile the 
tinyos.jar by doing a make in this location /support/sdk/java/
 
 
 
Hope it helps,
 
Varun
 
 

From: sara so [mailto:[email protected]] 
Sent: Friday, 10 April 2009 6:34 PM
To: Varun Jain
Subject: Re: generate data tinyos
 
Hi Varun,
I have posted this to the mailing list, but could you please help. I have a 
little problem in the attached code, what I am trying to do is just read the 
light sensor periodically and send it with some other data to the Basestation 
but whenever I run Listen application then it display "bad packet", "packet too 
long",  resynchronising!!!
Could you please take a quick look to my small code, maybe I miss something.
Thanks for any help and happy Easter 
        Sara


include <Timer.h>
#include "BlinkToRadio.h"

module BlinkToRadioC {
  uses interface Boot;
  uses interface Leds;
  uses interface Timer<TMilli> as Timer0;
  uses interface Packet;
  uses interface AMPacket;
  uses interface AMSend;
  uses interface Read<uint16_t> as ReadLight; 
  uses interface SplitControl as AMControl;
}
implementation {
  uint16_t counter;
  message_t pkt;
  bool busy = FALSE;
  uint16_t  light;

  event void Boot.booted() {
      call AMControl.start();
  }

  event void AMControl.startDone(error_t err) {
    if (err == SUCCESS) {
      call Timer0.startPeriodic(TIMER_

PERIOD_MILLI);
    }
    else {  
      call AMControl.start();
    }
  }

  event void AMControl.stopDone(error_t err) {
  }



\\ may be here is the problem 
  event void Timer0.fired() {
   call ReadLight.read();
   
 if (!busy) {
  
BlinkToRadioMsg* btrpkt = (BlinkToRadioMsg*)(call Packet.getPayload(&pkt, 
sizeof(BlinkToRadioMsg) ));
btrpkt->nodeid = TOS_NODE_ID;
      btrpkt->counter = counter++;
      btrpkt->photo =light;
    if (call AMSend.send(0, &pkt, sizeof(BlinkToRadioMsg)) == SUCCESS) {
        busy = TRUE;
      }
    }
  }

  event void AMSend.sendDone(message_t* msg, error_t err) {
    if (&pkt == msg) {
  busy = FALSE;
    }
  }

  event void ReadLight.readDone(error_t result, uint16_t data)

  {

    if (result == SUCCESS){

     light = data;

  } }}

for wireing :
implementation {
  components MainC;
  components BlinkToRadioC as App;
  components new TimerMilliC() as Timer0;
  components ActiveMessageC;
  components new AMSenderC(AM_BLINKTORADIO);
  components new HamamatsuS10871TsrC() as SensorLght;
 

On Wed, Apr 8, 2009 at 3:39 AM, sara so <[email protected]> wrote:
Hi Varun,
Just to say thank you very much for your help. I will go through that and see. 
Happy Easter
 Sara 


 

On Wed, Apr 8, 2009 at 2:38 AM, Varun Jain <[email protected]> wrote:


Hi Sara,
 
There is a test application given in tinyos-2.x:
 
 /apps/tests/TestNetwork 
 
This application does both the network protocols possible with TINYOS-2.x i.e. 
Collection (send data from all the nodes to a SINK node) and also Dissemination 
(Sending small data items to all the nodes from the Root Node) and I would say 
that you should play with this application
 
There is another interesting application /apps/Antitheft  which does similar to 
above but it provides you a GUI interface as well to disseminate the items in 
the network.
 
If you are a beginner, then you can probably take the concept from these 
applications and change it a little bit to get periodic data for your testing 
purposes. Say you just have three timers firing at different interval, sending 
the data to the SINK every time a timer fires and the skeleton code will look 
something like this:
{
uses interface Timer<TMilli> as Timer1;
uses interface Timer<TMilli> as Timer2;
uses interface Timer<TMilli> as Timer3;
}
 
{
Call Timer1. startPeriodic (256);
Call Timer2. startPeriodic (512);
Call Timer3. startPeriodic (1024);
Uint16_t counter1 = 0;
 
Event void Timer1.fired () {
                counter1++;
                atomic {
                                if (!sendBusy) 
                                                post sendMessage();       
                }
}
 
void sendMessage() {
    TestNetworkMsg* msg = (TestNetworkMsg*)call Send.getPayload(&packet, 
sizeof(TestNetworkMsg));
    uint16_t metric;
    am_addr_t parent;
 
    call CtpInfo.getParent(&parent);
    call CtpInfo.getEtx(&metric);
 
    msg->source = TOS_NODE_ID;
    msg->seqno = seqno;
    msg->data = counter1;
    msg->parent = parent;
    msg->hopcount = 0;
    msg->metric = metric;
 
    if (call Send.send(&packet, sizeof(TestNetworkMsg)) != SUCCESS) {
            call Leds.led0On();
      dbg("TestNetworkC", "%s: Transmission failed.\n", __FUNCTION__);
    }
    else {
      sendBusy = TRUE;
      seqno++; 
      dbg("TestNetworkC", "%s: Transmission succeeded.\n", __FUNCTION__);
    }
  }
 
 
 
Similarly you can send data when other timers fire.
 
 
Hope this helps. Let me know if you need any more help.
 
 
Regards,
Varun
 
P.S: I am more than happy to help as much as I can so send me as many queries 
as you want but also CC your queries to “tinyos-help mailing list” as there are 
so many other people in the community who can give answers from different 
perspective. This also helps to people who are looking for your kind of 
problem/query.
 
 

From: sara so [mailto:[email protected]] 
Sent: Tuesday, 7 April 2009 6:41 PM
To: Varun Jain
Subject: generate data tinyos


 
Hi Varun,
I am Sara from Berlin. I found your email while I was searching in Google and 
hope that you can help me with the following question!
I want to be able to to generate data periodically from tmote sky node and send 
it to the sink. Do you know how can  I generate any kind of data and send it. 
Is there any application that do that. 
thank you for any help
 Sara 
  
 
 
-----Inline Attachment Follows-----


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


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

Reply via email to