Hi silva, The tinyos message length is set in the Makefile (in TestDhv directory) using the tag DTOSH_DATA_LENGTH (eg. -DTOSH_DATA_LENGTH=32 ).
The actual size of the data to be disseminated is however set in TestDhvP.nc. For example, the current version has uses interface DisseminationUpdate<uint16_t> as DisseminationUpdate1; uses interface DisseminationValue<uint16_t> as DisseminationValue1; you can change "uint16_t" to any data structure of any size you want. However, the overall TOS message length is consistent with DTOSH_DATA_LENGTH and should be smaller than 127 bytes. Hope that helps, Thanh Quoting sadun silva <[email protected]>: > hi, > > you mentioned dtosh "data length is set in the TestDhvP.nc/TestDipP.nc when > you declare the DisseminationValue/DisseminationUpdate interfaces." can you > exactly tell where? > > thank you very much > > silva > > On Tue, Aug 17, 2010 at 10:01 AM, <[email protected]> wrote: > >> >> >> >> >> ---------- Forwarded message ---------- >> From: [email protected] >> To: [email protected] >> Date: Tue, 17 Aug 2010 09:59:12 -0700 >> Subject: Re: Fwd: [Tinyos-help] Dissemination Protocols Comparison >> Hi Paul, >> >> Quoting Omprakash Gnawali <[email protected]>: >> >> ---------- Forwarded message ---------- >>> From: Paul Gildea <[email protected]> >>> Date: Fri, Aug 13, 2010 at 12:22 PM >>> Subject: [Tinyos-help] Dissemination Protocols Comparison >>> To: [email protected] >>> >>> >>> Hello, I am new to tinyos, I am following this tutorial on >>> dissemination protocols, DIP/DRIP/DHV >>> http://docs.tinyos.net/index.php/Dissemination >>> I have created the test application and wish to study the power use of >>> the three of the protocols using powertossim z and graph the power >>> used by each when values are tuned etc. >>> DIP/DHV have three tunable parameters. >>> >>> The first is the Trickle values. >>> >>> #define DIP_TAU_LOW (1024L) >>> #define DIP_TAU_HIGH (65535L) >>> >>> The second is data size. >>> >>> typedef nx_struct dip_data { >>> nx_uint8_t data[16]; >>> } dip_data_t; >>> >>> The third is advertisement size >>> >>> #define DIP_SUMMARY_VALUES_PER_PACKET 2 >>> #define DIP_VECTOR_VALUES_PER_PACKET 2 >>> >>> You can compute the proper size with the following formulas: >>> >>> DIP_SUMMARY_VALUES_PER_PACKET = (DTOSH_DATA_LENGTH - 5) / 3 >>> DIP_VECTOR_VALUES_PER_PACKET = (DTOSH_DATA_LENGTH - 1) / 2 >>> >>> >> You might want to consider the suppression constant INFO_THRESHOLD defined >> in Dhv.h. It defines when a node suppresses its own transmission. >> >> Does DRIP have similar, so I can compare it? You seem to be able to >>> change the data size but I have not found where yet. >>> >> >> I believe the current implementation of DRIP lets nodes transmit one >> (key,value) at a time randomly. >> >> I am unsure if this test application is suitable as I have tried with >>> both DIP and DHV to measure the power used when changing the data size >>> for each. Perhaps I am going about it wrong. For each I changed >>> nx_uint8_t data[x] from 0-17 and they all yielded very similar energy >>> use, which I will attach. I thought only 1-16 were valid byte sizes so >>> am confused as to why 0 and 17 still yield similar values? even >>> something like 1000 does, but for 1000000 a fault occurs, >>> 'segmentation fault'. I am wondering why all these results are so >>> similar? Perhaps more intensive use of leds etc in the program would >>> show diverse ranges? Should editing these byte sizes in Dip.h work >>> like that? >>> >> >> Leds use a lot of energy compared to a single packet transmission. Did you >> try to compare Dhv/Dip without leds (You can turn off leds in >> TestDipP.nc/TestDhvP.nc). Even so, I think the packet length plays a little >> role in energy consumption (time to transmit one byte once the radio is >> already on is only a few micro seconds). The actual saving is the number of >> transmisions (how many packets are being sent/how many times the radio is >> turned on and off) and the node duty cycles. >> >> The protocols may not check the value for data size (eg. 1000), I will look >> into that and get back to you asap. >> >> For the other two tunign parameters I am unsure as to what values >>> would be useful for my tests. the trickle counter is supposed to be in >>> millisecond gradients so is the lower tau 1024 milliseconds and the >>> higher tau 65535 milliseconds? The third tuning parameter is >>> advertisement size, I am unsure of how to change this based on the >>> formulae above, where is dtosh data length etc coming froma nd would >>> changing these values be useful for what I hope to achieve, comparing >>> the power usage in these three protocols? Thanks >>> >> >> dtosh data length is set in the TestDhvP.nc/TestDipP.nc when you declare >> the DisseminationValue/DisseminationUpdate interfaces. >> >> >>> -- >>> Paul >>> >>> >> Hope that helps, >> >> Thanh >> >> >> _______________________________________________ >> 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
