Hi,

I am copying your query to the chair of the "net" protocol as he will be able 
to correctly tell us.
But I think that how AMSend works is that all the nodes (with Receive interface 
wired to AMSenderC in this case) will receive the packet and the packet will be 
rejected at the link layer by all other nodes except BaseStation since you have 
given the " @param addr  in AMSend as the address to which to send the packet" 
to be "0". As BaseStation has the address of "0", so it will forward the 
incoming radio packets to the serial stack. If you add the Serial communication 
stack to your existing application as well and program one particular node with 
node_id "0", it will also do the same task as the BaseStation.

What formulas are you talking about for your ADC?? If you are talking about ADC 
conversion formulas, then you will have to look into your specific component's 
datasheet (Hamatsu....) and there will be a formula given there which you can 
use for making sense of the ADC readings.


Regards,
Varun

-----Original Message-----
From: sara so [mailto:[email protected]] 
Sent: Sunday, 19 April 2009 6:37 PM
To: Varun Jain
Subject: Re: [Tinyos-help] generate data tinyos

Hi Varun and all,
Thanks for all your help, I recompile the code without any
modification and it works fine!!
Now I am trying to convert the raw data light reading but I am really
confused there are different formula given in tinyos mailing list!
Could you please point me to the correct one or let me know how to
convert that please;. I am using HamamatsuS10871TsrC() component which
a (TSR).

Varun, why did you say that I am sending to all nodes?? In my code I
am only sending to the BS which node 0:
if (call AMSend.send(0, &pkt, sizeof(BlinkToRadioMsg)) == SUCCESS) { }

Am I right?
Thank you for all your help
  Sara


On Thu, Apr 16, 2009 at 7:04 AM, Varun Jain <[email protected]> wrote:
>
> Hi,
>
>
>
> The code written by Sara seems to be alright. (See the "Oscilloscope" 
> application).
>
>
>
> Sara, the scenario in the code that you are using the data will be sent to 
> all the nodes in the network, not to a particular SINK node. But still if you 
> can want to access this packet, you can do it using "BaseStation" 
> application. "BaseStation" application basically sends out any packet coming 
> on the radio to the serial and vice-versa. An  application already does 
> constant readings for sensors, called  "Oscilloscope", see tinyos tutorial 
> (http://docs.tinyos.net/index.php/Sensing) . If you program one node with 
> Oscilloscope application (after programming the node with a particular node 
> id and change ) and another mote with  BaseStation, you should be able to do 
> what you are doing now with a tested application.
>
>
>
> But to really test what Sara wants to do, such that a constant message is 
> sent from a node to a Sink (Root) Node, you really need to use COLLECTION and 
> Dissemination, and try to apply applications like "TestNetwork". In this 
> application, there is a section where you send the message.... Here instead 
> of "0xCAFE", you can send a counter value incremented every time the message 
> is sent..
>
>
>
>    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 = 0xCAFE;
>
>     msg->parent = parent;
>
>     msg->hopcount = 0;
>
>     msg->metric = metric;
>
>
>
>     if (call Send.send(&packet, sizeof(TestNetworkMsg)) != SUCCESS) {
>
>       failedSend();
>
>       call Leds.led0On();
>
>       dbg("TestNetworkC", "%s: Transmission failed.\n", __FUNCTION__);
>
>     }
>
>     else {
>
>       sendBusy = TRUE;
>
>       seqno++;
>
>       dbg("TestNetworkC", "%s: Transmission succeeded.\n", __FUNCTION__);
>
>     }
>
>   }
>
>
>
> ALSO note, you need to program one node with node id 500 which will act as 
> the SINK node and all other node id's will act as the sensor nodes sending 
> the data. Hope it helps, let the community know if you could solve your 
> problem or not or you need any more help.
>
>
>
>
>
> -varun
>
>
>
>
>
> From: [email protected] 
> [mailto:[email protected]] On Behalf Of Mohamed H. 
> Seddik
> Sent: Thursday, 16 April 2009 1:25 PM
> To: [email protected]
> Cc: [email protected]
> Subject: Re: [Tinyos-help] generate data tinyos
>
>
>
> 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
>
>
>
> _______________________________________________
>
> 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